Commit graph

1082 commits

Author SHA1 Message Date
Buck Doyle eaf64849f6
UI: Add localStorage persistence of exec command (#7563)
This closes #7469. Trivial thanks to localStorageProperty! 🥳
2020-04-01 08:08:42 -05:00
Michael Lange 28ba7e8075 Change CSI to Storage and mark it as beta 2020-03-31 18:21:55 -07:00
Buck Doyle d70c3fbb3e
UI: Add exec loading template (#7566)
This closes #7460. Before this, there was an incongruous flash
of the non-exec UI during loading.
2020-03-31 13:59:43 -05:00
Buck Doyle 61164b856e
UI: Change exec button to not show on dead jobs (#7548)
I still want to add acceptance tests for the existence
of these buttons but this change makes the exec button
for jobs behave similarly to the others.
2020-03-31 13:11:26 -05:00
Michael Lange b8ce8c436f Account for an empty string node class 2020-03-30 17:33:45 -07:00
Michael Lange 01341530e7 Add a volume facet to the clients list page 2020-03-30 17:33:44 -07:00
Michael Lange fdd2f8df37 Use new text encoder for stream frames
This pattern was introduced with Exec and fixes the multibyte encoding
issue that the native window.atob has.
2020-03-30 12:50:43 -07:00
Michael Lange 2711eb032c
Merge pull request #7470 from kybin/kybin-patch-1
UI: decode unicode properly in log page
2020-03-30 12:06:51 -07:00
Michael Lange 2db4f5519a Guard against a null value for the HostVolumes hash
When a node has no host volumes, the API response will
have a null value for the HostVolumes attribute, which
in turn becomes a null value instead of an empty array
in the store. This protects against that, ensuring host
volumes is always an array.
2020-03-26 09:54:59 -07:00
Buck Doyle 8932686aa6
UI: Fix check for Mirage presence setting up sockets (#7497)
Without this, exec UI doesn’t work at all in the binary. I made an
unfortunate error in not copying the environment check from
app/utils/fetch.js.
2020-03-25 13:23:23 -05:00
Buck Doyle 398db02449
UI: Change determination of exec sidebar active tasks (#7491)
This closes #7476. The decomposition of computed properties
is necessary to avoid nested aggregate dependent keys; the
previous dependent key of `taskGroup` will be inadequate
when the sidebar becomes live-updating.
2020-03-25 12:08:33 -05:00
Michael Lange 1bd6a69067
UI: Support for CSI (#7446)
Closes #7197 #7199

Note: Test coverage is limited to adapter and serializer unit tests. All
acceptance tests have been stubbed and all features have been manually
tested end-to-end.

This represents Phase 1 of #6993 which is the core workflow of CSI in
the UI. It includes a couple new pages for viewing all external volumes
as well as the allocations associated with each. It also updates
existing volume related views on job and allocation pages to handle both
Host Volumes and CSI Volumes.
2020-03-25 07:51:26 -05:00
Buck Doyle 674da96a59
UI: add exec terminal (#6697)
This connects Xterm.js to a Nomad exec websocket so people
can interact on clients via live sessions. There are buttons on
job, allocation, task group, and task detail pages that open a
popup that lets them edit their shell command and start a
session.

More is to come, as recorded in issues.
2020-03-24 18:22:16 -05:00
kim yongbin 4378db612b
UI: decode unicode properly in log page 2020-03-25 01:03:39 +09:00
Michael Lange bc87d0a440 Remove the question mark from the Volume th
This makes it consistent with other volume columns across the app.
2020-02-14 16:56:51 -08:00
Michael Lange fe685f897f Correct a test and a dependent key 2020-02-14 16:44:28 -08:00
Michael Lange 0e6c81d3ef Add volume table to the task detail page 2020-02-13 17:11:34 -08:00
Michael Lange e4dcd9c2a4 Add volume requirements table to the task group page 2020-02-13 17:11:33 -08:00
Michael Lange 3fbd267263 Add volumes column to the task row component 2020-02-13 17:11:32 -08:00
Michael Lange 9186f75c6a Fix a bug where the NodeListStub API response would override existing HostVolumes in the store 2020-02-13 17:11:31 -08:00
Michael Lange c57993f0a5 Add volume to the client row 2020-02-13 17:11:29 -08:00
Michael Lange b3452cc33c Add volume column to allocation row 2020-02-13 17:11:27 -08:00
Michael Lange 61a3b4919f Add volume column to task group row 2020-02-13 17:11:26 -08:00
Michael Lange 18cf59b22f Test coverage for the host volumes table 2020-02-13 17:11:25 -08:00
Michael Lange 1e40837731 Add a Host Volumes table to the client detail page 2020-02-13 17:11:24 -08:00
Michael Lange 849c996887 Data layer for Host Volumes in the UI 2020-02-13 17:11:22 -08:00
Michael Lange ccefc46912
Merge pull request #7099 from hashicorp/b-ui/mobile-styles-not-full-width
UI: Override the max-width on mobile to avoid losing space due to non-existent gutter menu
2020-02-07 14:27:50 -08:00
Michael Lange 1431343d18 Override the max-width on mobile to avoid losing space due to non-existent gutter menu 2020-02-07 14:22:00 -08:00
Michael Lange c7543ee020 Explicit transparent bg on popover actions 2020-02-07 14:17:13 -08:00
Michael Lange 8a9b60f011 Call out the 'down' status too, since it's a pretty bad one 2020-01-31 12:56:15 -08:00
Michael Lange 38d23b5ba8 Add an animation for the initializing state 2020-01-31 12:56:11 -08:00
Michael Lange f00a50a55b Redo the node-status-light CSS to be icon-based 2020-01-31 12:56:08 -08:00
Michael Lange 536a597a92 New node initializing icon 2020-01-31 12:56:05 -08:00
Michael Lange 9dbdbc23dd Assign icons to node statuses 2020-01-31 12:56:02 -08:00
Michael Lange 89532e27e3 Add an icon inside the node status light 2020-01-31 12:55:59 -08:00
Michael Lange 0f8ea7d37a Allow for an icon within the node status light 2020-01-31 12:55:55 -08:00
Michael Lange 59897f9716 Handle the case where ACLs aren't enabled in abilities 2020-01-31 09:41:36 -08:00
Michael Lange 175f80da16 Fix token referencing from the token controller, as well as resetting 2020-01-31 09:41:35 -08:00
Michael Lange 9438330329 Add an explanatory tooltip to the unauthorized node drain popover 2020-01-31 09:41:33 -08:00
Michael Lange 4eac743262 Update disabled 'Run Job' button to use standard disabled style 2020-01-31 09:41:32 -08:00
Michael Lange eb7d34df6b Disable options for popover and drain-popover 2020-01-30 21:29:29 -08:00
Michael Lange 1599b8b5fc Disabled button styles 2020-01-30 21:29:28 -08:00
Michael Lange 7c796a33a9 Refetch all ACL things when the token changes 2020-01-30 21:29:24 -08:00
Michael Lange c7af942652 Enable the eligibility toggle conditionally based on acls 2020-01-30 21:29:22 -08:00
Michael Lange 1fae4083eb Add an ability for client permissions 2020-01-30 21:29:19 -08:00
Michael Lange d7a3c15530 Replace custom parse-duration implementation with an existing lib 2020-01-23 16:34:38 -08:00
Michael Lange 75987840bb Tweak vertical spacing of headings 2020-01-23 16:34:37 -08:00
Michael Lange b4ab7b02ba Remove superfluous information from the client details ribbon 2020-01-23 16:34:36 -08:00
Michael Lange 7c6bf3b09c Increase the size and spacing of the toggle component 2020-01-23 16:34:35 -08:00
Michael Lange c7b7789bd4 Stack the popover menu under the subnav 2020-01-23 16:34:34 -08:00
Michael Lange 1dd1298626 New test coverage for the drain capabilities 2020-01-23 16:34:34 -08:00
Michael Lange 0f41bfafad Update existing tests 2020-01-23 16:34:33 -08:00
Michael Lange 5e95633481 PopoverMenu integration tests 2020-01-23 16:34:32 -08:00
Michael Lange 3b534bbdf9 Integration tests for the toggle component 2020-01-23 16:34:32 -08:00
Michael Lange bc555f7758 Update the client detail page object 2020-01-23 16:34:31 -08:00
Michael Lange 8deea899c1 Model the notification pattern as a page object component 2020-01-23 16:34:30 -08:00
Michael Lange 7edbf5ff58 Clear all notifications when resetting the controller 2020-01-23 16:34:29 -08:00
Michael Lange ae85882ca7 Switch drain popover checkboxes for toggles 2020-01-23 16:34:29 -08:00
Michael Lange 54d33f9ad7 Toggle bugs: focus and multiline alignment 2020-01-23 16:34:28 -08:00
Michael Lange 76bfed5f25 Swap the eligiblity checkbox out for a toggle 2020-01-23 16:34:27 -08:00
Michael Lange 95e6068d5d New toggle component 2020-01-23 16:34:27 -08:00
Michael Lange faa15bc581 Force drain button in the drain info box 2020-01-23 16:34:26 -08:00
Michael Lange 82a62089b3 Make outline buttons have a solid white background 2020-01-23 16:34:25 -08:00
Michael Lange 80642b8868 Modifiers to the two-step-button 2020-01-23 16:34:25 -08:00
Michael Lange 7097591281 Drain stop and update and notifications 2020-01-23 16:34:24 -08:00
Michael Lange 9c9c6b08c3 Drain complete notification 2020-01-23 16:34:24 -08:00
Michael Lange 8b19a19908 Fill out the metrics and time since values in the drain summary 2020-01-23 16:34:23 -08:00
Michael Lange 35671a3bd4 Fill in the drain strategy ribbon values 2020-01-23 16:34:22 -08:00
Michael Lange 6e3e8d01e2 Stub out all the markup for the new drain strategy view 2020-01-23 16:34:22 -08:00
Michael Lange 47924d05d3 Polish for the drain popover 2020-01-23 16:34:21 -08:00
Michael Lange deb1dc7ffe Refactor parseDuration to support multi-character units 2020-01-23 16:34:20 -08:00
Michael Lange c5e662a751 Test coverage for the parse duration util 2020-01-23 16:34:20 -08:00
Michael Lange 395ba979a7 Extract the duration parsing into a util 2020-01-23 16:34:19 -08:00
Michael Lange fd16612be3 Factor out the drain popover and implement its behaviors 2020-01-23 16:34:18 -08:00
Michael Lange d13af1bcb5 Add triggerClass support to the popover menu 2020-01-23 16:34:18 -08:00
Michael Lange ada745a59f Let dropdowns assume their full width 2020-01-23 16:34:17 -08:00
Michael Lange a3f32e61c1 Initial layout of the drain options popover 2020-01-23 16:34:16 -08:00
Michael Lange d1cf0e1054 More form styles as needed for the drain form 2020-01-23 16:34:16 -08:00
Michael Lange 01d0efb317 Multiline modifier for tooltips 2020-01-23 16:34:15 -08:00
Michael Lange 75c9e80251 Update the dropdown styles to be more similar to button styles 2020-01-23 16:34:14 -08:00
Michael Lange 20f83da76a PopoverMenu component 2020-01-23 16:34:14 -08:00
Michael Lange e685179c99 Eligibility toggling behavior 2020-01-23 16:34:13 -08:00
Michael Lange a8af3d67be Add tooltip to the eligibility control 2020-01-23 16:34:11 -08:00
Michael Lange 47daa980a5 Reformat the client detail page to use the two-row header design 2020-01-23 16:34:11 -08:00
Michael Lange b162fa8a28 Update drain methods to properly wrap DrainSpec params 2020-01-23 16:34:09 -08:00
Michael Lange dae33efa1d drain and forceDrain adapter methods 2020-01-23 16:34:09 -08:00
Michael Lange 321b5fb6e6 Add isMigrating property to the allocation model 2020-01-23 16:34:07 -08:00
Michael Lange aad8536949 Implement eligibility toggling in the data layer 2020-01-23 16:34:07 -08:00
Buck Doyle 576bcf554f
UI: Migrate to Storybook (#6507)
I originally planned to add component documentation, but as this dragged on and I found that JSDoc-to-Markdown sometimes needed hand-tuning, I decided to skip it and focus on replicating what was already present in Freestyle. Adding documentation is a finite task that can be revisited in the future.

My goal was to migrate everything from Freestyle with as few changes as possible. Some adaptations that I found necessary:
• the DelayedArray and DelayedTruth utilities that delay component rendering until slightly after initial render because without them:
  ◦ charts were rendering with zero width
  ◦ the JSON viewer was rendering with empty content
• Storybook in Ember renders components in a routerless/controllerless context by default, so some component stories needed changes:
  ◦ table pagination/sorting stories access to query params, which necessitates some reaching into Ember internals to start routing and dynamically generate a Storybook route/controller to render components into
  ◦ some stories have a faux controller as part of their Storybook context that hosts setInterval-linked dynamic computed properties
• some jiggery-pokery with anchor tags
  ◦ inert href='#' had to become href='javascript:;
  ◦ links that are actually meant to navigate need target='_parent' so they don’t navigate inside the Storybook iframe

Maybe some of these could be addressed by fixes in ember-cli-storybook but I’m wary of digging around in there any more than I already have, as I’ve lost a lot of time to Storybook confusion and frustrations already 😞

The STORYBOOK=true environment variable tweaks some environment settings to get things working as expected in the Storybook context.

I chose to:
• use angle bracket invocation within stories rather than have to migrate them soon after having moved to Storybook
• keep Freestyle around for now for its palette and typeface components
2020-01-21 15:46:32 -06:00
Buck Doyle 66ab14144a
ui: Change Run Job availability based on ACLs (#5944)
This builds on API changes in #6017 and #6021 to conditionally turn off the
“Run Job” button based on the current token’s capabilities, or the capabilities
of the anonymous policy if no token is present.

If you try to visit the job-run route directly, it redirects to the job list.
2020-01-20 14:57:01 -06:00
Buck Doyle 09067b4eb7
UI: Fix client sorting (#6817)
There are two changes here, and some caveats/commentary:

1. The “State“ table column was actually sorting only by status. The state was not an actual property, just something calculated in each client row, as a product of status, isEligible, and isDraining. This PR adds isDraining as a component of compositeState so it can be used for sorting.

2. The Sortable mixin declares dependent keys that cause the sort to be live-updating, but only if the members of the array change, such as if a new client is added, but not if any of the sortable properties change. This PR adds a SortableFactory function that generates a mixin whose listSorted computed property includes dependent keys for the sortable properties, so the table will live-update if any of the sortable properties change, not just the array members. There’s a warning if you use SortableFactory without dependent keys and via the original Sortable interface, so we can eventually migrate away from it.
2019-12-12 13:06:54 -06:00
Michael Lange 13d9e5ead7 Don't initialize variables before you need them 2019-12-05 10:51:51 -08:00
Michael Lange 9504d10ce7 Fix a race condition where a response sent after the logger stops never gets canceled 2019-12-05 00:19:35 -08:00
Buck Doyle e525ff99d3
Remove inverse block for list-pagination (#6523)
As the angle bracket invocation RFC says:

> There is no dedicated syntax for passing an "else" block
> directly. If needed, that can be passed using the named
> blocks syntax.

https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md#block

Unfortunately, using a contextual component doesn’t help as
the yield inside that component will still result in content
rendering that would show when the source isn’t empty. So
we decided to change the interface so you have to check
whether the source is empty before using it, which aligns with
how list-table works.
2019-10-24 07:05:43 -05:00
Buck Doyle 9b2fb14e51
UI: Update Ember to 3.12 LTS (#6419)
This is mostly deprecation fixes and blueprint changes. There
are some dependency updates too; the changes to Ember
Basic Dropdown necessitated changing it to angle bracket
component invocation. The conversion of the rest of the
templates will happen separately.
2019-10-15 13:32:58 -05:00
Michael Lange d6bbd0f9e5 Use max-width to ensure the width rule is observed in Firefox 2019-10-10 10:34:33 -07:00
Buck Doyle 9a3a6c3f62
UI: Update to Ember 3.8 LTS (#5968) 2019-10-08 13:44:19 -05:00
Buck Doyle d707038429
UI: Fix Connect proxy tag (#6343)
This fixes a race condition in the pseudo-relationship between a
TaskState and a Task that was causing the Consul Connect proxy tag
to sometimes show on the wrong task. There’s no direct Ember Data-style
relationship between a TaskState and its Task; instead, it’s determined
by searching for a Task with the matching name. The related Task was
sometimes stored before everything was ready and not recalculated when
the name became known. This ensures the relationship is accurate if the
TaskState’s name property changes.
2019-09-19 08:09:49 -05:00
Mahmood Ali 16f7a3f31b ui: protect against nil services
Protect against case where an alloc has no services and avoid
dereferencing null.

Here, we ensure that the model and test serializers mimic the API by
having nil TaskGroup.Services instead of an empty array.
2019-09-16 16:50:30 -04:00
Buck Doyle ee0e74186f
UI: Move kind property to task (#6271)
I put this property in the wrong place. 

I’ve found how to fix the mock API in the tests but
they’re failing to pass with headless Chrome only,
so they’re skipped for now.
2019-09-05 13:14:54 -05:00
Buck Doyle ec65c8e260
Add handling for not-running task filesystem query (#6267) 2019-09-04 17:38:26 -05:00
Buck Doyle b5e5798e54
UI: add Consul Connect features (#6108) 2019-09-04 09:39:56 -05:00
Buck Doyle 49b9dd5b9b
UI: Add creation time to evaluations table (#6050) 2019-08-22 08:11:24 -05:00
Michael Lange 74c9b1ac60
Merge pull request #5871 from hashicorp/f-ui/alloc-fs
UI: Allocation file system explorer
2019-08-20 10:18:23 -07:00
Michael Lange 9b669d7e38 Use the standard empty state when a dir is empty 2019-08-19 17:16:26 -07:00
Michael Lange fd6d5b274f
Merge pull request #6048 from hashicorp/f-ui/alloc-fs-files
UI: Alloc FS: File Viewer
2019-08-19 10:36:28 -07:00
Michael Lange 836e7426b8 Encode characters in file paths to ensure proper URIs 2019-08-14 12:54:11 -07:00
Michael Lange 38fce53936 Prevent a change in height when switching from a dir to a file 2019-08-08 15:41:47 -07:00
Michael Lange 2ed18864df Limit the width of the right page layout column
This was causing elements to flow off the page, since the element was
assuming 100% but also had a 250px margin for the left column.

This had previously been "fixed" by setting overflow-x: auto, but that
resulted in tooltips from being clipped.

This is a better solution to the same problem.
2019-08-08 10:00:48 -07:00
Buck Doyle 58f6e5d286
Fix navigation via clicking recent allocation row (#6087)
This fixes the recent allocation rows to navigate when clicking within them
rather than just on the link, which matches the cursor behaviour.
2019-08-08 09:26:46 -05:00
Michael Lange ae8913910c Always preload the alloc node so the client can be dialed first 2019-08-07 17:35:15 -07:00
Michael Lange 3dc7dec246 Make a dedicated fs-breadcrumbs component 2019-08-07 15:29:14 -07:00
Michael Lange 2ff4027496 Minor fixes from code review 2019-08-07 15:11:32 -07:00
Buck Doyle 2bfbc2b41b
Remove transition animation from sort arrows (#6067)
It may be an Ember bug: in some circumstances, the
ember-transitioning-in class was persisting in table
sort links even after the transition completed. This
changes the transition animations to be targeted only
for breadcrumbs and directory links.
2019-08-06 09:55:35 -05:00
Buck Doyle 88b708f188
Add page titles to filesystem routes (#6024) 2019-08-01 11:17:46 -05:00
Michael Lange 951570e72a fixup-integrate-file-component 2019-07-31 01:39:59 -07:00
Michael Lange fb0428fef3 Test coverage for task-file component 2019-07-30 17:25:49 -07:00
Michael Lange fcbd92704a Test coverage for streaming file component 2019-07-30 17:25:48 -07:00
Michael Lange ed9982aa98 Integration tests for the image-file component 2019-07-30 17:25:47 -07:00
Michael Lange e347d76c24 Refactor existing fs tests to use new mirage factories 2019-07-30 17:25:46 -07:00
Michael Lange cae543bdbb Add unsupported file type state 2019-07-30 17:25:45 -07:00
Michael Lange ddd35edb19 Add hollow variation to empty-message 2019-07-30 17:25:44 -07:00
Michael Lange 290d967222 Fix a bug where tail calls for files weren't getting the correct params 2019-07-30 17:25:41 -07:00
Michael Lange c110a4ab62 Integrate the task-file component with the fs explorer pages 2019-07-30 17:25:40 -07:00
Michael Lange 2a3806b4c1 Always escape < and > to avoid inadvertently rendering html 2019-07-30 17:22:54 -07:00
Michael Lange 2f2dca9212 Custom Log instance to deal with API quirks 2019-07-30 17:22:53 -07:00
Michael Lange bd8770d175 Add a plainText mode 2019-07-30 17:22:53 -07:00
Michael Lange f2d31fdf1a Refactored and image support of the task-file component 2019-07-30 17:22:52 -07:00
Michael Lange 29dacd0c2a Markup for the image-file component 2019-07-30 17:22:51 -07:00
Michael Lange 153218183b Address WindowResizable refactor 2019-07-30 17:22:50 -07:00
Michael Lange 3ba05a7eb7 Styles for the image-file component 2019-07-30 17:22:49 -07:00
Michael Lange 30d61fc9fc image-file component for showing an image and image metadata 2019-07-30 17:22:49 -07:00
Michael Lange 5bd9296194 Extract a streaming-file component from the task-log component
The new streaming-file component takes an arbitrary logger component
along with some mode flags and handles things like polling, DOM updates,
and scroll position.
2019-07-30 17:22:48 -07:00
Michael Lange c5ff121981 New task-file component
Based on the task-log component. Commonalities will be refactored.
2019-07-30 17:22:47 -07:00
Michael Lange 4c064a8f72 Tweak log window math 2019-07-30 17:22:46 -07:00
Michael Lange c3b33b8420 Use the stream decode util and never opt to use the plain query param 2019-07-30 17:22:45 -07:00
Michael Lange 862d6f6da6 Move common stream frame decoding to a util 2019-07-30 17:22:44 -07:00
Buck Doyle 34603b8bdf
UI: Add IPv6 bracket-wrapping to network serializer (#6007)
This addresses the issue raised by @pznamensky in #5966.
2019-07-30 16:58:01 -05:00
Buck Doyle 9f3754b46b Merge branch 'master' into f-ui/alloc-fs
# Conflicts:
#	ui/app/templates/allocations/allocation/task/index.hbs
#	ui/app/templates/allocations/allocation/task/logs.hbs
2019-07-26 14:49:36 -05:00
Buck Doyle 5efedb35d1
UI: Add allocation directory sorting (#5914)
When sorting by size, directories are sorted by name, as size
isn’t displayed.

This includes a change to the positioning of sort arrows for all tables,
moving them closer to the text, because in some cases, the arrows
for right-aligned columns were ambiguously positioned.
2019-07-23 15:37:34 -05:00
Buck Doyle b2a4ee17de
UI: Remove unused route (#5925)
This is an extraneous addition from #4612.
2019-07-23 14:48:39 -05:00
Buck Doyle 90c9b89b5e
UI: Add page titles (#5924)
This uses ember-page-title to add dynamic page titles throughout the
route hierarchy. When there’s more than one region, the current
current region is added before the final entry of “- Nomad”.
2019-07-17 15:02:58 -05:00
Buck Doyle 9322dfc46f
UI: Add copy button for client/allocation UUIDs (#5926)
The button shows a success icon and tooltip on click, and resets
after two seconds.
2019-07-15 12:14:32 -05:00
Buck Doyle 4edd1d78c1
Remove superfluous test attributes (#5927)
I found while working on #5926 that x-icon already adds
assertion-compatible selectors, so these wrappers are
unnecessary.
2019-07-08 10:36:56 -05:00
Michael Lange 1eb689aca9 Merge remote-tracking branch 'origin/master' into f-ui/alloc-fs
* origin/master: (32 commits)
  Added additional test cases and fixed go test case
  update changelog
  Add Mirage-toggling via environment variable (#5899)
  changelog: Add entries for windows fixes
  fifo: Safer access to Conn
  run post-run/post-stop task runner hooks
  Fail alloc if alloc runner prestart hooks fail
  address review comments
  changelog
  Missed one revert of backwards compatibility for node drain
  Improve test cases for detecting content type
  Undo removal of node drain compat changes
  Updated with suggestions.
  fifo: Close connections and cleanup lock handling
  logmon: Add windows compatibility test
  client: defensive against getting stale alloc updates
  Infer content type in alloc fs stat endpoint
  appveyor: Run logmon tests
  fifo: Require that fifos do not exist for create
  vendor: Use dani fork of go-winio
  ...
2019-07-02 16:40:09 -07:00
Buck Doyle 595eb480ba
UI: Add allocation directory rendering (#5873)
This lets users navigate the allocation filesystem. It doesn’t
support viewing actual files yet.
2019-07-02 16:42:38 -05:00
Michael Lange aedeeadebd Account for the search icon within the is-compact modifer 2019-06-27 12:32:26 -07:00
Michael Lange e440edfea4 Some placeholder templates and routes for new feature 2019-06-20 15:20:01 -07:00
Michael Lange 7935527020 Add new menu item to the task subnav 2019-06-20 12:02:25 -07:00
Michael Lange 3e40fcf147 Add new routes to the router 2019-06-20 12:02:06 -07:00
Michael Lange 6201003f3f New Mirage scenario for puppeteer script to use 2019-06-19 17:18:40 -07:00
Buck Doyle a2b80bebe6
Update client list to combine statuses (#5789)
The draining, eligibility, and status fields now all show under a combined
state column. Draining takes precedence, then (in)eligibility; if neither of
those is true, the status displays.
2019-06-19 10:11:17 -07:00
Buck Doyle 2d96e37390
Change sort arrow to pass through pointer events (#5833)
Without this, clicking on the sort arrow didn’t change the
sort direction.
2019-06-13 16:14:35 -05:00
Michael Lange b0d6517297 Include the _ prefix separator in both regexes
And include all prefix types in the test data
2019-05-21 14:20:40 -07:00
Michael Lange c485bc64fb Acceptance testing for allocation lifecycle 2019-05-21 09:24:19 -07:00
Michael Lange d485c040e3 Restart a single task from the task detail page 2019-05-21 09:24:18 -07:00
Michael Lange 416e9895d6 Don't cancel watchers when transitioning to a sub-route 2019-05-21 09:24:18 -07:00
Michael Lange e40a01456b Watch the next allocation on the allocation index page 2019-05-21 09:24:17 -07:00
Michael Lange 8d31474fdc Support task restarting in the allocation adapter 2019-05-21 09:24:17 -07:00
Michael Lange ffadcf5a25 Add stop and restart buttons to the allocation index page 2019-05-21 09:24:16 -07:00
Michael Lange a00bc8befc Allocation methods for stopping and restarting 2019-05-21 09:24:16 -07:00
Michael Lange d3e919a2c8 New with-headroom modifier for titles 2019-05-21 09:24:15 -07:00
Michael Lange 7933a41782 Add cancel on click outside and disabled behaviors to two-step-button 2019-05-21 09:24:14 -07:00
Michael Lange 96a1a5e812 Move addToPath to its own util 2019-05-20 11:52:47 -07:00
Michael Lange 084c4cc95f Standardize on Abort over Cancel 2019-05-20 11:08:16 -07:00
Michael Lange c9220cb929 Replace the adapter cancellation methods with a cancellation token system 2019-05-20 10:29:22 -07:00
Buck Doyle da65595db0 Change clients/jobs facets to always right-align
This changes the templates so the element that contains
the search box is always present, instead hiding only
the box itself when there’s nothing to search. Keeping
the empty element lets it take up its flexbox space so
the facets will no longer be in the centre.
2019-05-15 13:25:30 -05:00
Conor Mongey 49afa42af3
Return a htmlSafe string rather than use triple curlies 2019-05-02 21:47:24 +01:00
Conor Mongey 9ab4ef52c0
Converts ANSI terminal codes to HTML in logs 2019-05-02 21:47:23 +01:00
Michael Lange 35e34fea8b Test coverage for preemption on the client detail page 2019-04-22 16:40:10 -07:00
Michael Lange b7860a9bca Test coverage for preemption on the allocation detail page 2019-04-22 16:40:09 -07:00
Michael Lange 4c7e350e84 Show which allocations an allocation preempted on the alloc page 2019-04-22 16:40:06 -07:00
Michael Lange 42a4793d9d Show which alloc, if any, preempted an alloc on the alloc detail page 2019-04-22 16:40:05 -07:00
Michael Lange a5a659a98a Preemptions count and filtering on client detail page
Show the count in the allocations table next to the existing total alloc
count badge. Clicking either will filter by all or by preemptions.
2019-04-22 16:40:04 -07:00
Michael Lange 1266567098 Add preempted icon to alloc row 2019-04-22 16:40:04 -07:00
Michael Lange e35139e453 Make sure tooltips show up over the top of the side bar 2019-04-22 16:40:03 -07:00
Michael Lange d12d5f9163 Add wasPreempted bool to allocs 2019-04-22 16:40:02 -07:00
Michael Lange dcc219fe73 Show preemptions on the job plan phase of job submission 2019-04-22 16:40:01 -07:00
Michael Lange cb11f46ecf Data modeling for preemptions 2019-04-22 16:40:00 -07:00
Michael Lange 4736803a24 ES5 getters codemod 2019-04-10 14:54:36 -07:00
Michael Lange 346a55a093 Address the Ember.Logger deprecations 2019-04-10 14:54:35 -07:00
Michael Lange b6b2fd2114 Address the copy/copyable deprecation 2019-04-10 14:54:35 -07:00
Michael Lange 4636a9b612 Address inflector deprecations 2019-04-10 14:54:35 -07:00
Michael Lange 55ea01c1cc Address test failures 2019-04-10 14:54:35 -07:00
Michael Lange aeeca356bd Address template linting issues 2019-04-10 14:54:34 -07:00
Michael Lange 9a10780d47
Replaces .columns with .toolbar on the clients page 2019-04-10 10:34:10 -05:00
Michael Lange 09907078bd
Replace the columns pattern with the new toolbar pattern on the jobs page 2019-04-10 10:34:10 -05:00
Michael Lange 6e3a27f9e7
New toolbar CSS component 2019-04-10 10:34:10 -05:00
Michael Lange e400698905
Make the search box more elastic
1. Set a higher max-width
2. Set a min-width
3. Remove the min-width on mobile, including the invisible size="20" in
   the markup
2019-04-10 10:34:10 -05:00
Michael Lange 6a0f5b5a4d
Fixes a few minor issues with the multiselect dropdown
1. Label no longer bleeds into the downward arrow icon
2. The selection number no longer breaks onto its own line
3. Options have a min-width so short labels can't result in small click
   targets
2019-04-10 10:34:10 -05:00
Michael Lange e73add100c
Change breakpoints to match Nomad/Bulma widths 2019-04-10 10:34:10 -05:00
Michael Lange 602df55ae0
Add the ember-responsive addon 2019-04-10 10:34:10 -05:00
Michael Lange afecab1071
Improve the search box component to make it fluid and iconed 2019-04-10 10:34:10 -05:00
Michael Lange e52b6be10f
Test coverage for clients faceted search 2019-04-10 10:34:10 -05:00
Michael Lange 243982562a
Implement faceted search on the clients page 2019-04-10 10:34:10 -05:00
Michael Lange 4464c473e5
Add nodeClass to the node model 2019-04-10 10:34:10 -05:00
Michael Lange ddc577ccca
Refactor qp helpers from the jobs faceted search 2019-04-10 10:34:10 -05:00
Michael Lange ff98a744c1
Changes from code review 2019-04-10 10:34:10 -05:00
Michael Lange 06e718387c
Make the facet filter function clearer with more brackets 2019-04-10 10:34:10 -05:00
Michael Lange 80abb8d8a0
Simplify options and selection names 2019-04-10 10:34:10 -05:00
Michael Lange 5e05408ae3
Test coverage for job list facets 2019-04-10 10:34:10 -05:00
Michael Lange 3f6bbfa8ff
Model facets in the page object 2019-04-10 10:34:10 -05:00
Michael Lange 5ae2f38c4e
Introduce encode/decode for array query params 2019-04-10 10:34:10 -05:00
Michael Lange 40b1857632
Support for the no options case 2019-04-10 10:34:10 -05:00
Michael Lange 09ae9fbfa3
Implement the job list filtering based on facet selection 2019-04-10 10:34:10 -05:00
Michael Lange 8015605041
Implement the dynamic facet lists (datacenters and prefixes) 2019-04-10 10:34:10 -05:00
Michael Lange 46c6a3e4c2
Scaffold the facets and facet options for the jobs list page 2019-04-10 10:34:10 -05:00
Michael Lange b93977f61f
Remove the includes helper in favor of the contains helper 2019-04-10 10:34:10 -05:00
Michael Lange 7a183b40ac
Harden dropdown styles to avoid accidental cascading 2019-04-10 10:34:10 -05:00
Michael Lange 22225b3436
Add the right-alignment case to freestyle 2019-04-10 10:34:10 -05:00
Michael Lange 573f03d8e9
Always left-align the dropdown position to the trigger 2019-04-10 10:34:10 -05:00
Michael Lange fd34f7aa2c
Test coverage for the multi-select-dropdown component 2019-04-10 10:34:10 -05:00
Michael Lange 8a07ef2cc6
Tab and keyboard navigation for multi-select 2019-04-10 10:34:10 -05:00
Michael Lange a2bcc59963
Round out the freestyle entry 2019-04-10 10:34:10 -05:00
Michael Lange fa10e72e2b
Multi-select button-bar support 2019-04-10 10:34:10 -05:00
Michael Lange cf5f77fe4c
Color alias for tags 2019-04-10 10:34:10 -05:00
Michael Lange 6160d8af84
Persistence and onSelect handler for the multi-select-dropdown 2019-04-10 10:34:10 -05:00
Michael Lange 17ab2c22cc
Templating and styling the multi-select-dropdown component 2019-04-10 10:34:10 -05:00
Michael Lange 8166e43e8c
Simple includes helper that works like Array#includes 2019-04-10 10:34:10 -05:00
Michael Lange 22ce6cfe36
Freestyle entry for the new multi-select-dropdown component 2019-04-10 10:34:10 -05:00
Michael Lange 5bfd1d0ddd Reattach resources to stats trackers in the event they were destroyed 2019-03-29 16:09:14 -07:00
Jacek Jagiello 364f7acbb5 5303 make logs view full width to better support large screens 2019-03-06 23:29:24 +01:00
Michael Lange dfd3b097d1 Apply new date and timestamp helpers e'rywhere 2019-02-01 09:19:28 -08:00
Michael Lange 50bf9d392a New helpers to standardize date and timestamp formats 2019-02-01 09:19:28 -08:00
Michael Lange c3eb0b2493 Always show an absolute timestamp tooltip when showing relative dates 2019-01-30 09:59:41 -08:00
Michael Lange fa4333056c
Merge pull request #4981 from hashicorp/b-ui-hide-stats-graphs-for-non-running-resources
UI: Hide stats graphs for non running resources
2018-12-18 11:15:39 -08:00
Michael Lange d83be97d78 Don't use Ember.get in conjunction with dynamic strings in the job-plan serializer 2018-12-13 07:53:37 -08:00
Michael Lange 5902842d6b Don't use Ember.get in conjunction with dynamic strings in the allocation serializer 2018-12-13 07:53:37 -08:00
Michael Lange 7b466f9f60 Don't use Ember.get in conjunction with dynamic strings in the node serializer 2018-12-13 07:53:37 -08:00
Michael Lange 13b7434eca Don't use Ember.get in conjunction with dynamic strings in the deployment serializer 2018-12-13 07:53:37 -08:00
Michael Lange a00544e302 Don't use Ember.get in conjunction with dynamic strings in the job-summary serializer 2018-12-13 07:53:37 -08:00
Michael Lange b5c11b4e43 Don't use Ember.get in conjunction with dynamic strings in the evaluation serializer 2018-12-13 07:53:37 -08:00
Michael Lange 7d76b6a59f Test coverage for resource graph empty states 2018-12-13 07:53:17 -08:00
Michael Lange 76a9d7ad7c Conditionally show the utilization graphs on the allocation and task detail pages 2018-12-13 07:53:17 -08:00
Michael Lange 71a06a6b7f Conditionally show utilization metrics on alloc and task rows 2018-12-13 07:53:17 -08:00
Michael Lange 0005b1fca2 Task isRunning is based on both the task state and the allocation state 2018-12-13 07:53:17 -08:00
Michael Lange 076ae5046b Model isRunning based on the client status of the allocation 2018-12-13 07:53:17 -08:00
Michael Lange 795ea7eade Grow the default 0 to 1 bounds to the domain of the data when necessary 2018-12-05 22:07:44 -08:00
Michael Lange fd35d37f43
Merge pull request #4860 from hashicorp/b-ui-allocation-detail-empty-state
UI: Allocation detail empty state
2018-11-19 12:43:39 -08:00
Michael Lange 796967c58d Add an empty state to the allocation detail task list 2018-11-19 12:18:14 -08:00
Michael Lange b252ede5b6
Merge pull request #4850 from hashicorp/f-ui-links-on-error-pages
UI: Escape hatch links on error pages
2018-11-19 12:17:36 -08:00
Michael Lange 4e21366714
Merge pull request #4852 from hashicorp/b-ui-dispatched-job-page
UI: Show the correct template for dispatched jobs
2018-11-09 14:36:35 -08:00
Michael Lange ec21bab24d
Merge pull request #4833 from hashicorp/b-ui-gracefully-handle-stat-errors
UI: Gracefully handle stat errors
2018-11-09 14:35:48 -08:00
Michael Lange cf93e1a40c Get error messages closer to Structure designs 2018-11-09 13:23:44 -08:00
Michael Lange 8e18903996 Show the correct template for parameterized job children 2018-11-07 21:04:27 -08:00
Michael Lange f3110f978e Test coverage for error page escape hatch links 2018-11-07 16:19:45 -08:00
Michael Lange 177a998b1d Add escape hatch links to the error page 2018-11-07 16:09:23 -08:00
Michael Lange 738efdfb04 Fix a bug where with-watchers wasn't bubbling the willTransition event
The impact was the application error was no longer being nulled out,
causing the application error to continue to be shown after
transitioning.

This never happened in apps since it's not possible to transition away
from the error screen.
2018-11-07 16:08:26 -08:00
Michael Lange 777d693632 Add support for link in error containers 2018-11-07 16:08:05 -08:00
Michael Lange ab06a22954
Merge pull request #4841 from hashicorp/f-ui-error-handling-on-all-pages
UI: Error handling on all pages
2018-11-07 11:16:06 -08:00