Commit graph

282 commits

Author SHA1 Message Date
Michael Lange 20f83da76a PopoverMenu component 2020-01-23 16:34:14 -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 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
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
Buck Doyle b5e5798e54
UI: add Consul Connect features (#6108) 2019-09-04 09:39:56 -05: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 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
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 cae543bdbb Add unsupported file type state 2019-07-30 17:25:45 -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 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 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
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 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
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
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
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 1266567098 Add preempted icon to alloc row 2019-04-22 16:40:04 -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 aeeca356bd Address template linting issues 2019-04-10 14:54:34 -07: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 afecab1071
Improve the search box component to make it fluid and iconed 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 40b1857632
Support for the no options case 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 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 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 22ce6cfe36
Freestyle entry for the new multi-select-dropdown component 2019-04-10 10:34:10 -05:00
Michael Lange dfd3b097d1 Apply new date and timestamp helpers e'rywhere 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 71a06a6b7f Conditionally show utilization metrics on alloc and task rows 2018-12-13 07:53:17 -08:00
Michael Lange 8e18903996 Show the correct template for parameterized job children 2018-11-07 21:04:27 -08:00
Michael Lange b2acd381f9 Test coverage for resetPagination 2018-10-30 14:17:23 -07:00
Michael Lange 42432bbb52
Merge pull request #4727 from hashicorp/f-ui-improved-stats-charts
UI: Improved stats charts
2018-10-17 10:55:54 -07:00
Michael Lange aeea4076b7
Merge pull request #4718 from hashicorp/f-ui-a11y-line-chart
UI: Add some simple accessibility labels for line charts
2018-10-17 09:43:27 -07:00
Michael Lange 1be400d18e Add role="tooltip" to tooltips throughout the app 2018-10-17 07:17:24 -07:00
Michael Lange cdb1831ceb Add a11y features to the line-chart component
- Treat it as an image
- Add a title and a description
- Hide the axes, just in case
2018-09-27 12:55:52 -07:00
Michael Lange 4a98bf989f Make the global logo link to the jobs page (home page) 2018-09-26 11:19:24 -07:00
Michael Lange ea87417d4f Add utilization stats to the task rows on allocation detail 2018-09-26 10:59:26 -07:00
Michael Lange 9b90683e6b Use the StatsTracker method of getting alloc stats in alloc row 2018-09-26 10:59:26 -07:00
Michael Lange 09497b20b8 Acceptance test coverage for all the pages with resource utilization graphs 2018-09-19 16:33:51 -07:00
Michael Lange 18b18da49f Integration tests for the primary-metric component 2018-09-19 14:15:32 -07:00
Michael Lange bc5dbe2fb7 Gap support for line charts 2018-09-17 16:58:56 -07:00
Michael Lange 80fefcf369 Style the primary-metric pattern 2018-09-14 10:20:33 -07:00
Michael Lange 768f67e336 New primary-metric component
It encapsulates all the tracker, polling, and markup for this style
of metric.
2018-09-13 17:01:24 -07:00
Michael Lange 63b89904f3 Split the line-chart and stats-time-series freestyle entries 2018-09-13 16:45:56 -07:00
Michael Lange 569ba3c48a Updates to the styleguide 2018-09-13 16:45:56 -07:00
Michael Lange f2bab4591d Use "global" gradients via a clipping mask and a rect w/100% height 2018-09-13 16:45:54 -07:00
Michael Lange 9008c48cd1 Stats time series
A use-case specific line-chart for showing utilization metrics by
percent
2018-09-13 16:45:13 -07:00
Michael Lange 7a8a4c32f4 Make the tooltip animation snappier for line charts
When data is coming in live, the tooltip can get bogged down by updates
causing the tooltip to never make it under the mouse, which looks like
either lag or a bug.
2018-09-13 16:45:13 -07:00
Michael Lange a74e6648b9 Styleguide entry for the line chart component 2018-09-13 16:45:13 -07:00
Michael Lange d516daf83e New line chart component 2018-09-13 16:45:08 -07:00
Michael Lange ebe0e97b1a
Merge pull request #4615 from hashicorp/f-ui-restart-stopped-job
UI: Restart stopped job
2018-08-30 09:49:14 -07:00
Michael Lange 3c2e7b7dd3
Merge pull request #4616 from hashicorp/f-ui-promote-canary
UI: Promote canary
2018-08-30 09:48:31 -07:00
Michael Lange 62e9cf268b Test coverage for the promote canary feature 2018-08-30 09:38:29 -07:00
Michael Lange 182e020835 Fix the flickering issue with start/stop job
When the server doesn't respond immediately, there is a visible window
of time between the action being submitted and the blocking query coming
back with the new job status.
2018-08-28 11:27:00 -07:00
Michael Lange 37acc77c9c Add a confirmation loading state to the two-step-button component 2018-08-28 11:27:00 -07:00
Michael Lange c8492682e1 Switch stop/run job actions to EC tasks 2018-08-28 11:27:00 -07:00
Michael Lange a4d951a757 Add Start Job action on the job overview page for when a job is dead 2018-08-28 11:27:00 -07:00
Michael Lange bcbeac7f35 Change the latest deployment component to include a Promote Canary button
Before it would say the deployment required promotion, now it has a
button that triggers the promotion.
2018-08-24 16:41:47 -07:00
Michael Lange b5b4a979f9 Test coverage for the job-editor component
Most of this was ported over from the existing job run acceptance tests
2018-08-23 09:00:14 -07:00
Michael Lange 3ca2237b29 Support cancellation of editing in the job-editor 2018-08-21 16:45:53 -07:00
Michael Lange cd6d4e41e5 Fix multiple highlight bug in the distribution-bar component
Caused by the re-indexing that occurs to remove zero-value bars.
2018-08-21 16:37:36 -07:00
Michael Lange b3c2538c68 Move the bulk of the new job page into a new job editor component 2018-08-21 12:07:45 -07:00
Michael Lange 063021081d Fixed bug that prevented non verbose job diffs from printing changed leaf nodes 2018-08-20 16:44:37 -07:00
Michael Lange 9cab82146c Show the scheduler dry-run output on the plan page 2018-08-20 16:44:37 -07:00
Michael Lange ee074e9ef5 Don't use the verbose diff for job run plan 2018-08-17 18:32:59 -07:00
Michael Lange de4caacb6d Fix no allocations error message layout for the recent allocations component 2018-08-14 17:37:15 -07:00
Michael Lange dd9202769a Delete the removed "depth" aspect of json viewer from the styleguide 2018-08-13 17:04:14 -07:00
Michael Lange c5b54393d0 Theme CodeMirror
Borrowed heavily from Vault
2018-08-13 17:04:14 -07:00
Michael Lange 0746501bc8 Use ivy-codemirror in the JSON Viewer component 2018-08-13 17:04:14 -07:00
Michael Lange 104e5196a6 Acceptance tests for the region switcher 2018-08-10 12:52:05 -07:00
Michael Lange 9f3a37f1c2 Simplify the control flow around changing namespaces and regions
The UI will no longer try to redirect to the appropriate namespace or
region if one is found in localStorage. Instead, it will assume that
the lack of query param means the default namespaces or region is
desired.
2018-08-09 18:22:39 -07:00
Michael Lange 32d05509ca Move the region switcher out of the secondary nav and into the gutter when the gutter is collapsed 2018-08-09 18:22:37 -07:00
Michael Lange 2877b6b351 Only show the region switcher when there are multiple regions 2018-08-09 18:22:37 -07:00
Michael Lange 9a9cc35bd0 Styles for the region switcher 2018-08-09 18:22:37 -07:00
Michael Lange b9fa9a98bc Test coverage for gutter menu interactions 2018-08-06 11:21:54 -07:00
Michael Lange aec990e41d Make it "feel" mobile with a backdrop that closes the gutter menu on tap 2018-08-06 11:21:54 -07:00
Michael Lange 97220ae5fb Visual treatment for the collapsed gutter menu 2018-08-06 11:21:54 -07:00
Michael Lange ed4dcbe061 Refactor navbar markup 2018-08-06 11:21:53 -07:00
Michael Lange f2f8c28a91 Style the hamburber menu icon 2018-08-06 11:21:53 -07:00
Michael Lange 737805272a Add open/close functionality to the gutter-menu when it's collapsed 2018-08-06 11:21:53 -07:00
Michael Lange e774163360 Tests for the recent allocations table 2018-08-06 11:02:21 -07:00
Michael Lange 8eca16774e Link to the allocations page from the recent allocations table 2018-08-06 11:00:23 -07:00
Michael Lange 30b0c9b262 Use the correct allocation row context in various places 2018-08-06 11:00:23 -07:00
Michael Lange 15da9f8250 Use the new taskGroup context for allocation row 2018-08-06 10:59:35 -07:00