Commit Graph

839 Commits

Author SHA1 Message Date
Michael Lange
fa3a4e4074 Enable the eligibility toggle conditionally based on acls 2020-01-30 21:29:22 -08:00
Michael Lange
88d646b48d Add an ability for client permissions 2020-01-30 21:29:19 -08:00
Michael Lange
4793dc9afb Replace custom parse-duration implementation with an existing lib 2020-01-23 16:34:38 -08:00
Michael Lange
40d65319e7 Tweak vertical spacing of headings 2020-01-23 16:34:37 -08:00
Michael Lange
deb2b310f6 Remove superfluous information from the client details ribbon 2020-01-23 16:34:36 -08:00
Michael Lange
66ea7c100f Increase the size and spacing of the toggle component 2020-01-23 16:34:35 -08:00
Michael Lange
1d6799e5e5 Stack the popover menu under the subnav 2020-01-23 16:34:34 -08:00
Michael Lange
93eaaab77e New test coverage for the drain capabilities 2020-01-23 16:34:34 -08:00
Michael Lange
b11c82caaf Update existing tests 2020-01-23 16:34:33 -08:00
Michael Lange
413681e317 PopoverMenu integration tests 2020-01-23 16:34:32 -08:00
Michael Lange
8dadd3db46 Integration tests for the toggle component 2020-01-23 16:34:32 -08:00
Michael Lange
b03e1e6ee2 Update the client detail page object 2020-01-23 16:34:31 -08:00
Michael Lange
da941d2e44 Model the notification pattern as a page object component 2020-01-23 16:34:30 -08:00
Michael Lange
8f67e4ba25 Clear all notifications when resetting the controller 2020-01-23 16:34:29 -08:00
Michael Lange
3009ad3f38 Switch drain popover checkboxes for toggles 2020-01-23 16:34:29 -08:00
Michael Lange
a36290ddc4 Toggle bugs: focus and multiline alignment 2020-01-23 16:34:28 -08:00
Michael Lange
595f3c9b1a Swap the eligiblity checkbox out for a toggle 2020-01-23 16:34:27 -08:00
Michael Lange
2e39c0a529 New toggle component 2020-01-23 16:34:27 -08:00
Michael Lange
6a0a77c5ad Force drain button in the drain info box 2020-01-23 16:34:26 -08:00
Michael Lange
4bcd47c0b3 Make outline buttons have a solid white background 2020-01-23 16:34:25 -08:00
Michael Lange
504a7afa03 Modifiers to the two-step-button 2020-01-23 16:34:25 -08:00
Michael Lange
96522e7f53 Drain stop and update and notifications 2020-01-23 16:34:24 -08:00
Michael Lange
fabf956b6e Drain complete notification 2020-01-23 16:34:24 -08:00
Michael Lange
e886361075 Fill out the metrics and time since values in the drain summary 2020-01-23 16:34:23 -08:00
Michael Lange
ad8df16c44 Fill in the drain strategy ribbon values 2020-01-23 16:34:22 -08:00
Michael Lange
4439853737 Stub out all the markup for the new drain strategy view 2020-01-23 16:34:22 -08:00
Michael Lange
2ddc54e7a1 Polish for the drain popover 2020-01-23 16:34:21 -08:00
Michael Lange
da576bc805 Refactor parseDuration to support multi-character units 2020-01-23 16:34:20 -08:00
Michael Lange
6f6b9c2443 Test coverage for the parse duration util 2020-01-23 16:34:20 -08:00
Michael Lange
faffb83d1d Extract the duration parsing into a util 2020-01-23 16:34:19 -08:00
Michael Lange
e47d255b07 Factor out the drain popover and implement its behaviors 2020-01-23 16:34:18 -08:00
Michael Lange
d401a11d0c Add triggerClass support to the popover menu 2020-01-23 16:34:18 -08:00
Michael Lange
7eb71ca439 Let dropdowns assume their full width 2020-01-23 16:34:17 -08:00
Michael Lange
0a8c27d0cf Initial layout of the drain options popover 2020-01-23 16:34:16 -08:00
Michael Lange
030b449463 More form styles as needed for the drain form 2020-01-23 16:34:16 -08:00
Michael Lange
5098b552cf Multiline modifier for tooltips 2020-01-23 16:34:15 -08:00
Michael Lange
b02f05fbda Update the dropdown styles to be more similar to button styles 2020-01-23 16:34:14 -08:00
Michael Lange
de03d82df9 PopoverMenu component 2020-01-23 16:34:14 -08:00
Michael Lange
8788d39987 Eligibility toggling behavior 2020-01-23 16:34:13 -08:00
Michael Lange
09b62eb8cb Add tooltip to the eligibility control 2020-01-23 16:34:11 -08:00
Michael Lange
3ad898762b Reformat the client detail page to use the two-row header design 2020-01-23 16:34:11 -08:00
Michael Lange
0b031f0b27 Update drain methods to properly wrap DrainSpec params 2020-01-23 16:34:09 -08:00
Michael Lange
4ddcd6044e drain and forceDrain adapter methods 2020-01-23 16:34:09 -08:00
Michael Lange
b22047e6e2 Add isMigrating property to the allocation model 2020-01-23 16:34:07 -08:00
Michael Lange
649be7f599 Implement eligibility toggling in the data layer 2020-01-23 16:34:07 -08:00
Buck Doyle
9f86f5a1fc 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
3adb3cd1fe 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
83d92251c5 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
60c80696b7 Don't initialize variables before you need them 2019-12-05 10:51:51 -08:00
Michael Lange
a8f668667d Fix a race condition where a response sent after the logger stops never gets canceled 2019-12-05 00:19:35 -08:00