Michael Lange
f55133e76e
Separate AllocationStat component for containing the multiple states a stat tracker can be in
2020-05-06 17:21:45 -07:00
Michael Lange
034eeb1ddb
Merge pull request #7855 from hashicorp/b-ui/alloc-wrong-reserved-resources
...
UI: Make allocation reference own task group instead of job's task group when job versions don't match
2020-05-06 10:08:37 -07:00
Michael Lange
9a857a7042
Comment why the allocation has to be reloaded
2020-05-01 14:27:53 -07:00
Jasmine Dahilig
a9004faa11
UI: Add representations for task lifecycles ( #7659 )
...
This adds details about task lifecycles to allocations, task groups,
and tasks. It includes a live-updating timeline-like chart on allocations.
2020-04-30 08:15:19 -05:00
Michael Lange
e74cd16252
Fix race condition where stdout and stderr requests can cause a no connection error
...
This would happen because a no connection error happens after the second request fails, but
that's because it's assumed the second request is to a server node. However, if a user clicks
stderr fast enough, the first and second requests are both to the client node. This changes
the logic to check if the request is to the server before deeming log streaming a total failure.
2020-04-29 17:36:17 -07:00
Michael Lange
aafbeaba75
Clicking stdout/stderr when already on that tab is now a noop
2020-04-29 17:36:16 -07:00
Michael Lange
7452a9a57d
Abort log fetch request when failing over from client to server
...
Typically a failover means that the client can't be reached. However, if
the client does eventually return after the timeout period, the log will
stream indefinitely. This fixes that using an API that wasn't broadly
available at the time this was first written.
2020-04-29 17:34:49 -07:00
Buck Doyle
d4708860f0
UI: Fix exec popup link for job id ≠ name ( #7815 )
...
This closes #7814 . It makes URL-generation more central and changes
the exec URL to include job id instead of name.
2020-04-29 07:54:04 -05:00
Buck Doyle
fc7de8b153
UI: add live-updating to exec sidebar ( #7499 )
...
This closes #7454 . It makes use of the existing watchable tools to
allow the exec popup sidebar to be live-updating. It also adds
alphabetic sorting of task groups and tasks.
2020-04-06 13:52:42 -05:00
Michael Lange
8dc54a6164
Reset current page when changing page size
2020-04-02 12:50:33 -07:00
Michael Lange
06524fe5a7
Page size select component
2020-04-02 12:50:29 -07: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
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
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
eb7d34df6b
Disable options for popover and drain-popover
2020-01-30 21:29:29 -08:00
Michael Lange
d7a3c15530
Replace custom parse-duration implementation with an existing lib
2020-01-23 16:34:38 -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
95e6068d5d
New toggle component
2020-01-23 16:34:27 -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
47924d05d3
Polish for the drain popover
2020-01-23 16:34:21 -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
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
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
9a3a6c3f62
UI: Update to Ember 3.8 LTS ( #5968 )
2019-10-08 13:44:19 -05:00
Buck Doyle
b5e5798e54
UI: add Consul Connect features ( #6108 )
2019-09-04 09:39:56 -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
836e7426b8
Encode characters in file paths to ensure proper URIs
2019-08-14 12:54:11 -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
Michael Lange
fb0428fef3
Test coverage for task-file component
2019-07-30 17:25:49 -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
c110a4ab62
Integrate the task-file component with the fs explorer pages
2019-07-30 17:25:40 -07:00
Michael Lange
2f2dca9212
Custom Log instance to deal with API quirks
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
153218183b
Address WindowResizable refactor
2019-07-30 17:22:50 -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
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
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
6201003f3f
New Mirage scenario for puppeteer script to use
2019-06-19 17:18:40 -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
4736803a24
ES5 getters codemod
2019-04-10 14:54:36 -07:00
Michael Lange
b6b2fd2114
Address the copy/copyable deprecation
2019-04-10 14:54:35 -07: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
573f03d8e9
Always left-align the dropdown position to the trigger
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
6160d8af84
Persistence and onSelect handler for the multi-select-dropdown
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
71a06a6b7f
Conditionally show utilization metrics on alloc and task rows
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
964c93e07f
Guard against the element already being destroyed
...
Since DOM code is in a run.next, it's possible that between the DOM
code being queued and running the element is destroyed. So the DOM
code needs to guard against this using the isDestroyed API.
2018-11-02 17:08:02 -07:00
Michael Lange
a82c9d4d6f
Add onChange hook to the search-box component
2018-10-30 10:50:24 -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
154dc49205
Be consistent with "time series" instead of "time-series"
2018-10-17 07:37:45 -07:00
Michael Lange
ca631ee217
Override the a11y title and description for the stats time series chart
...
Since this is a use case specific chart, we can use use case specific
language in our labels.
2018-09-27 12:55:52 -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
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
da06b48aaf
Handle the empty data cases
2018-09-19 16:32:53 -07:00
Michael Lange
c93f6506dc
Add cancelation support to stats trackers
2018-09-17 16:59:09 -07:00
Michael Lange
bc5dbe2fb7
Gap support for line charts
2018-09-17 16:58:56 -07:00
Michael Lange
8900d5c138
Add request throttling to the abstract stats tracker
...
This is the best of three options
1. Users of stats trackers control polling (old method)
2. Stat tracker is stateful and has start/stop methods (like logging)
3. Stat trackers blindly throttle requests
This is the best option because it means N number of concurrent users of
a stats tracker can request polling without inundating the tracker with
redundant frames (or the network with redundant requests), but they also
don't have to coordinate amongst themselves to determine what state a
tracker should be in.
2018-09-17 15:58:28 -07:00
Michael Lange
ae161d75bc
Use the new stats tracker service to get stats trackers in primary metric
2018-09-17 15:57:58 -07:00
Michael Lange
80fefcf369
Style the primary-metric pattern
2018-09-14 10:20:33 -07:00
Michael Lange
379b17acbd
Handle the length = 0 and length = 1 cases for activeDatum
2018-09-14 10:19:35 -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
b6382fe7dc
Use percent for the y-axis binding
2018-09-13 17:01:24 -07:00
Michael Lange
659e19303c
Unit test coverage for the line chart component
2018-09-13 16:45:56 -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
05c7706487
Avoid race conditions around showing and hiding the line chart tooltip
2018-09-13 16:45:13 -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
46cceb2daa
Don't round numbers when the domain is between 0 and 1
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
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
715e2ac82a
Simplify the data control flow around job.plan()
2018-08-23 15:40:42 -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
a7cd7b39d6
fixup-job-editor
2018-08-21 16:43:46 -07:00
Michael Lange
527b5d5e97
Support different contexts for the job editor
2018-08-21 16:41:05 -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
9cab82146c
Show the scheduler dry-run output on the plan page
2018-08-20 16:44:37 -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
148495e853
Add region switcher to the global header
2018-08-09 18:22:37 -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
50794a7626
Treat filtering on an async relationship as async
2018-08-06 11:02:21 -07:00
Michael Lange
0ac91ff15b
Add recent allocations to relevant job overview pages
2018-08-06 10:59:35 -07:00
Michael Lange
f0ab8a231f
Merge pull request #4533 from hashicorp/f-ui-refactor-page-chrome
...
UI: Refactor page chrome
2018-08-06 10:50:03 -07:00
Michael Lange
c0966f7cc1
Give the running-deployment component a more appropriate name
2018-07-30 15:31:31 -07:00
Michael Lange
4a2b2fd4f5
Make running-deployment always show the latest deployment
2018-07-30 15:31:31 -07:00
Michael Lange
6da20ef717
New page-layout component that contains both the header and the gutter menu
2018-07-30 13:13:52 -07:00
Michael Lange
393b39d259
Remove all references to onNamespaceChange
2018-07-30 13:13:52 -07:00
Michael Lange
4e22c1018f
Redo onNamespaceChange to use the router
2018-07-30 13:13:52 -07:00
Michael Lange
9413c719a6
Merge pull request #4507 from hashicorp/b-ui-dist-bar-corners
...
UI: Fix the missing pixels issue with distribution-bar
2018-07-13 11:04:29 -07:00
Michael Lange
77a9e844a1
Make job alloc/children summary collapsable (and persist the choice in localStorage)
2018-07-13 10:26:46 -07:00
Michael Lange
c1bc54878d
Add an option to start expanded and an onToggle action to list-accordion
2018-07-13 10:26:46 -07:00
Michael Lange
72f4f213d9
Compute the correct number of pixels to shave off of bar width
2018-07-13 10:26:01 -07:00
Michael Lange
79725168b8
Create a single-bar example of distribution-bar in the styleguide
2018-07-13 10:26:01 -07:00
Michael Lange
e3b020e201
Fix a bug where the wrong index could be used when some bars had no value
2018-07-13 10:26:01 -07:00
Michael Lange
559ddf4b2b
Guard against URI encoding
2018-07-10 11:29:00 -07:00
Michael Lange
38b4d30272
Merge pull request #4458 from hashicorp/f-ui-refactor-breadcrumbs
...
UI: Refactor breadcrumbs
2018-07-10 11:01:28 -07:00
Michael Lange
fa00dc0748
Remove evaluations from the job overview page
2018-07-06 16:53:13 -07:00
Michael Lange
a526eab044
Merge pull request #4468 from hashicorp/f-ui-styleguide-progress
...
UI: Fill out the styleguide
2018-07-06 16:03:41 -07:00
Michael Lange
6e00633d77
Update all the awkward browserify imports to plain ol' es6 imports
2018-07-06 13:38:57 -07:00
Michael Lange
43d9a94c96
Remove all references to breadcrumbs outside of routes
2018-07-06 11:12:12 -07:00
Michael Lange
865105734e
New breadcrumb service and component for describing breadcrumbs in routes
...
Works by segmenting the currentRouteName from the router service
and walking over each route in the current hierarchy to collect crumbs.
2018-07-06 11:12:10 -07:00
Michael Lange
b854168654
Styleguide entries for accordion
2018-07-03 14:30:40 -07:00
Michael Lange
43c118dfa7
Styleguide entry for Progress Bar
2018-07-03 13:54:00 -07:00
Michael Lange
5ced0f70b9
Styleguide entry for Table, Configuration
2018-07-03 13:06:39 -07:00
Michael Lange
1b2a253cbb
Styleguide entry for tables
2018-07-03 12:30:34 -07:00
Michael Lange
2d7a3d9139
Styleguide entry for Log Stream
2018-07-02 15:33:37 -07:00
Michael Lange
e6ecab0c27
Styleguide entry for the JSON Viewer
2018-06-30 11:31:17 -07:00
Michael Lange
2db7544f85
Styleguide entry for the timeline component
2018-06-29 18:33:23 -07:00
Michael Lange
ac89f346d4
Dropdown entry to the styleguide
2018-06-29 14:21:33 -07:00
Michael Lange
15de710759
Styleguide entry for the diff-viewer
2018-06-29 13:34:01 -07:00
Michael Lange
c86183154b
Remove hacky code that worked around an Ember Data bug
...
The bug is fixed in 2.18, so this can be written in the normal
less surprising way.
2018-06-13 15:05:18 -07:00
Michael Lange
5f9632bee8
Acceptance tests for node driver and node events
2018-05-25 10:15:24 -07:00
Michael Lange
524ec8633a
New accordion component
...
Follows the same style as the table and pagination components.
2018-05-25 10:15:23 -07:00
Michael Lange
feec8aa5e7
Integration tests for the various reschedule events timeline permutations
2018-05-04 19:36:55 -07:00
Michael Lange
940a5325c7
New reschedule-event-row component
...
Intended to be used in a timeline view.
2018-05-04 19:36:54 -07:00
Michael Lange
927caa441e
Refactor allocation-row
2018-05-04 19:36:54 -07:00
Michael Lange
0c1c66776b
Merge pull request #4195 from hashicorp/b-ui-retry-stats-requests
...
UI: Retry stats requests
2018-04-24 14:13:34 -07:00
Michael Lange
71ca73c19b
Test coverage for alloc stats retrying
2018-04-20 18:11:32 -07:00
Michael Lange
eca7bf5ea2
Keep polling for alloc stats when a request fails
2018-04-20 16:50:54 -07:00
Michael Lange
cf7d5543c3
New errorMessage format
2018-04-19 14:22:04 -07:00
Michael Lange
ccd3a91362
Common error component for job pages
2018-04-19 14:22:04 -07:00