Buck Doyle
f10906e006
UI: add exec handling for dead jobs/task states ( #7637 )
...
This closes #7456 . It hides the terminal when the job is dead and
displays an error when trying to open an exec session for a task
that isn’t running. There’s a skipped test for the latter behaviour
that I’ll have to come back for.
2020-04-06 14:08:22 -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
bf9887083b
Merge pull request #7630 from hashicorp/f-ui/csi-acceptance-tests
...
UI: CSI Acceptance Tests
2020-04-06 09:37:45 -07:00
Mahmood Ali
23be53a366
Merge pull request #7612 from hashicorp/b-auth-alloc-exec-ws
...
Authenticate alloc/exec websocket requests
2020-04-06 09:24:51 -04:00
Michael Lange
2955d356e7
Test coverage for the volume detail page
2020-04-04 17:13:40 -07:00
Michael Lange
25f4f5a61d
Sort allocation tables by modify index
2020-04-04 17:11:58 -07:00
Michael Lange
a1d2e585a1
Update breadcrumb to match side menu
2020-04-04 17:11:29 -07:00
Michael Lange
6b798518b9
Fix the allocations page compoent to support multiple prop keys
...
It was designed to be used this way, but allocationFor has never
worked as intended 🤦
2020-04-04 10:56:12 -07:00
Michael Lange
76bead58a3
Add page size select tests to volumes list tests
2020-04-04 09:58:34 -07:00
Michael Lange
e8e41c5757
Acceptance tests for the volumes list page
2020-04-03 19:28:12 -07:00
Michael Lange
0d90d082bc
Page object for volumes list
2020-04-03 19:28:11 -07:00
Michael Lange
59427662d0
Handle namespaces in the mirage handler for volumes
2020-04-03 19:28:10 -07:00
Michael Lange
fb44f76800
Correctly handle the namespace query param and forbidden state
2020-04-03 19:28:09 -07:00
Michael Lange
280fa5d53b
Annotate volume row and make the tr clickable
2020-04-03 19:27:44 -07:00
Michael Lange
62aa943a95
Filter out volumes that don't match the chosen namespace
2020-04-03 19:27:11 -07:00
Michael Lange
62b7a07189
Sort alphabetically, A first
2020-04-03 19:26:26 -07:00
Michael Lange
1729d41509
Merge pull request #7574 from hashicorp/f-ui/configurable-page-sizes
...
UI Configurable Page Sizes
2020-04-03 16:06:17 -07:00
Mahmood Ali
340f9a5e91
ui: explicit reference to window.localStorage
2020-04-03 14:31:19 -04:00
Buck Doyle
2940aa14e5
Remove redundant step assertion
2020-04-03 12:54:47 -05:00
Buck Doyle
b9a2d20445
Remove redundant pause
2020-04-03 12:53:57 -05:00
Buck Doyle
e6ecd2bf4f
Remove redundant assertions
...
These are more things that are already covered elsewhere.
2020-04-03 12:52:39 -05:00
Buck Doyle
4de1255a31
Remove redundant assertions from token exec test
...
This only needs to check that the token is sent, the rest of
the assertions were covered by the previous test.
2020-04-03 12:35:51 -05:00
Buck Doyle
cb6f110b97
Remove intermediate storage variable
2020-04-03 12:27:03 -05:00
Buck Doyle
b12f97bb81
Change to setting token directly
...
Most tests bypass setting the token via the UI, instead choosing
to set it in localStorage directly, because the acceptance tests
for the token UI are sufficient to exercise that part of the UI,
so this speeds up the test a bit.
2020-04-03 12:26:25 -05:00
Buck Doyle
0ec5e95f46
Add space
2020-04-03 12:21:44 -05:00
Buck Doyle
fbe40a5d36
UI: add handling for exec command-editing keys ( #7601 )
...
This is a minimal implementation that closes #7463 . It doesn’t include
true support for moving around within the command to edit using arrow
keys because it gets too complex when managing wrapping at the edge of
the terminal. Instead, arrow keys are ignored. It also ignores ^A and
^E, which are cursor manipulations that pose similar problems to arrow
keys. It does support ^U, which deletes the entire command.
It also allows a command to be pasted, which was previously unsupported.
This is accomplished by migrating from Xterm.js’s onKey handler to
onData, which is recommended here:
https://github.com/xtermjs/xterm.js/issues/2673#issuecomment-574897733
onData is a higher-level handler that issues events with the final
interpreted data instead of the individual key events. That means the
processing in this PR has changed from inspecting DOM key events to
inspecting their ASCII equivalents, which I’ve extracted into a utility
dictionary for use in tests and implementation.
One consequence of ignoring most control characters is that if you paste
a string that includes a control character, that character will be
stripped. It’s somewhat strange for compound sequences like arrow keys;
if you run copy('/bin/b' + '\x1b[D' + 'ash') in a Javascript console and
paste what’s on the clipboard, you get "/bin/b[Dash". That’s because
the left arrow key, as in that centre portion of the string,
is represented by the escape character and a coded sequence. Stripping
the control character leaves the coded sequence as part of the paste.
That seems like an acceptable compromise vs either ignoring any pasted
string with control characters (confusing UX) or trying to interpret and
strip all such compound control sequences (difficult to be exhaustive).
2020-04-03 12:14:47 -05:00
Mahmood Ali
cec76a4f66
ui: send authentication ws handshake
...
Have the UI send the authentication websocket handshake message.
2020-04-03 11:49:22 -04:00
Michael Lange
edea9faf22
Refactor page-size-select page object into a reusable component
2020-04-02 15:52:44 -07:00
Michael Lange
49019bd967
Make table foot fields consistent at all breakpoints
...
This effectively overrides Bulma's default field layout tweaks
at different breakpoints. This includes going from flex to block
and different font-sizes.
2020-04-02 13:41:41 -07:00
Michael Lange
b1d5a77e76
Remove extranneous order property
...
The "default" order values as set by Bulma are different for different
breakpoints. Since this wasn't considering breakpoints, it resulted
in the unexpected reordering of pagination elements as different page
widths. Turns out removing this property gives us what we want.
2020-04-02 13:27:29 -07:00
Michael Lange
81e7296447
Apply the page size select behavior to the other pages with the page size selector
2020-04-02 12:50:37 -07:00
Michael Lange
f08fd23d00
Factor page select tests into their own behavior
2020-04-02 12:50:36 -07:00
Michael Lange
70eb558b65
Acceptance tests for the page size selector on the jobs list view
2020-04-02 12:50:35 -07:00
Michael Lange
e0110e1757
Repeat new pagination pattern throughout the app
2020-04-02 12:50:34 -07:00
Michael Lange
8dc54a6164
Reset current page when changing page size
2020-04-02 12:50:33 -07:00
Michael Lange
3d02f61455
Replace crusty lt and gt with chevron icons
2020-04-02 12:50:32 -07:00
Michael Lange
546751a9b4
Style the page size selector
2020-04-02 12:50:31 -07:00
Michael Lange
53954d1bc3
Add page size select to the jobs list page
2020-04-02 12:50:30 -07:00
Michael Lange
06524fe5a7
Page size select component
2020-04-02 12:50:29 -07:00
Michael Lange
3fc1874c0e
New service for storing user settings
2020-04-02 12:50:28 -07:00
Buck Doyle
3bc13a715e
UI: Fix confirmation position for right-aligned TSBs ( #7590 )
...
Without this, the confirmation text was extending beyond the
edge of the page.
2020-04-02 11:58:29 -05:00
Michael Lange
d91de05fc1
Fix flaky serializer test
2020-04-01 14:54:05 -07:00
Michael Lange
3a3a7f5fb4
Add new gutter menu tag pattern to Storybook
2020-04-01 10:57:33 -07:00
Michael Lange
37a1a32209
Move beta to a tag
2020-04-01 10:49:47 -07:00
Buck Doyle
eba07dabe5
CI: add xUnit reporting for UI tests ( #7585 )
...
This surfaces test failures more clearly on CircleCI by adding
testem-multi-reporter to report both via the default TAP reporter
as well as an xUnit reporter whose output is stored as an artefact.
2020-04-01 11:19:44 -05:00
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
6eaf79f928
Tests for the new volumes facet
2020-03-30 17:33:46 -07: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
c7c37250c8
Improve the node serializer tests
2020-02-13 17:42:41 -08:00
Michael Lange
53c2086a08
Add assertion for the volume k/v pairs in task rows
2020-02-13 17:11:39 -08:00
Michael Lange
b47ce637ed
Refactor task row info test to use 'as'
2020-02-13 17:11:38 -08:00
Michael Lange
41fad6b649
Test coverage for the volume table on the task group page
2020-02-13 17:11:37 -08:00
Michael Lange
44a961f4f8
Test coverage for the task detail volumes table
2020-02-13 17:11:35 -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
895d74c503
Test coverage for change in resource rows
2020-02-13 17:11:30 -08:00
Michael Lange
c57993f0a5
Add volume to the client row
2020-02-13 17:11:29 -08:00
Michael Lange
c0f1aff963
Fix flaky host volumes test
2020-02-13 17:11:28 -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
31b83b1c70
Acceptance test for disabled node write controls
2020-01-31 09:41:37 -08:00
Michael Lange
5c4c05824a
Account for disabled ACLs in ability tests
2020-01-31 09:41:36 -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
cdd7a4fdb7
New disabled buttons story
2020-01-30 21:29:26 -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
2dac1d6705
Refactor ability tests to use a setup hook for ability lookup
2020-01-30 21:29:21 -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
c0d57149ca
Update client detail test given change to the compositeStatus property
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
41eaec2d9b
Use qunit-dom where applicable
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
bfa34d5273
Update the underlying node model when toggling eligibility in mirage
2020-01-23 16:34:12 -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
c8e29c7060
cancelDrain adapter method
2020-01-23 16:34:10 -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
85066eee07
Mock the drain endpoint
2020-01-23 16:34:08 -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