* Use setTimeout instead of unstable onTransitionEnd
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove clicking Disconnect after each test
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests harder
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix dropdowns not being searchable for ClusterRoleBindingDialog and RoleBindingDialog
- Added some tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix unit test
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix: Catalog -> Columns visibility menu -> Empty title for "Icon"
Signed-off-by: Roman <ixrock@gmail.com>
* moving entity-icon inside name column / fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint
Signed-off-by: Roman <ixrock@gmail.com>
* added vertical alignment for texts in the name column
Signed-off-by: Roman <ixrock@gmail.com>
* Correctly catch and notify user about NodeShell pod failures
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix error throwing sometimes during Terminal.detach
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Making cluster area hoverable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Move sidebar cluster block to separate component
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add keyboard support
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* monaco editor refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* clean up / responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* move custom monaco themes to own folder
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint
Signed-off-by: Roman <ixrock@gmail.com>
* removed unused rules from webpack's config (renderer)
Signed-off-by: Roman <ixrock@gmail.com>
* Adding MenuItems to catalog browse add button
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Convert menuItems from Array to Map
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Use spec.serviceName as an externalIP if nothing else
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Move using externalName to display logic
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Removing tailwind base and components styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix link coloring in few places
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Navigate cluster context menus via broadcastMessage
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Ability to navigate context in different frames
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Renaming an argument
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Stop using remote to obtain app.getPath()
- Initialize entire map in bootstrap()
- Updated unit tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Resolve PR comments
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix test
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix build
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Ensure that init can only be called once and catch errors
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Replace basically all uses of app.getPath() with AppPaths.get()
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix unit tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* added support for port-forwarding https
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* added protocol to the port-forward list and details page. Added the port-forward address to the details page title
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* predict the protocol based on the port name, some cleanup
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* address review comments
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* code reorg
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fix lint
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* improved port-forward error reporting
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* satisfy lint and some autoformatting
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* added port-forward details
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* address review comments, plus added toolbar/menu to port-forward details Drawer
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* added getById() to portForwardStore to eliminate direct items access from outside
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* Check object instanceof on all detail panels
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix unit tests
- Remove prettier as snapShot testing is too tight of a bound
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Change Close menu item accelerator
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Listening global keydown event in <Dock/>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Prevent terminal to fire custom event
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refresh tooltip hint
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Make Tab line gray if Dock isn't focused
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Added ability to add custom port on pod and service port forwarding (#3295)
* Added ability to add custom port on pod and service port forwarding
Signed-off-by: rdeepc <12953177+rdeepc@users.noreply.github.com>
* Added ability to add custom port on pod and service port forwarding
- pod-container-port fixed init async and active port checking
- service-port-component fixed init async and active port checking
- port-forward-route promise and response fix
Signed-off-by: rdeepc <12953177+rdeepc@users.noreply.github.com>
* Added ability to add custom port on pod and service port forwarding
Signed-off-by: rdeepc <12953177+rdeepc@users.noreply.github.com>
* - Added Custom Port Selection for port forwarding
- Implemented Random Port if custom port is not provided
Signed-off-by: rdeepc <12953177+rdeepc@users.noreply.github.com>
Co-authored-by: Saumya Shovan Roy <saumyashovanroy@gmail.com>
* cherry-pick of hackweek work plus merge conflicts/build errors
added a route to get all port forwards
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
Added Forwarded Ports to cluster dashboard
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
working port-forward page (open, edit, remove)
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
added local storage to the port-forward store
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
automatically restore port-forward after pod is restarted
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
start port-forwards using random local port by default, rearranged pod and service port-forward UI
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* refactor
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* more refactoring, don't always open port-forwards in browser, refined reused port-forward dialog
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* removed unimplemented forwarded port details page,modified logging
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* addressed some review comments
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* made port and forwardPort query params and cleaned up port-forward routing paths
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* address more review comments and change dashboard tab name to 'Port Forwarding'
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* changed port and forwardPort fields to be Numbers
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* removed extraneous reset() call, reorder field declarations
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* port-forward now gets the bundled kubectl path without going through the 'ensureKubectl' hoops
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* more cleanup/tweaking
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fix bug where port-forward info did not update on pod details page when different pod (in same deployment?) is clicked
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
Co-authored-by: Saumya Shovan Roy (Deep) <12953177+rdeepc@users.noreply.github.com>
Co-authored-by: Saumya Shovan Roy <saumyashovanroy@gmail.com>
* Redirect from /catalog to last catalog page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up more
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Splitting url params to pass in catalogURL()
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Menu would bounce around in some cases because the
refreshPosition() would calculate different results
based on different state of the component and previous
render cycle CSS classes.
Also I found that the render function calls causes
in an infinite loop while open because of refreshPosition
will cause a state change which will rerender the function.
Fixed that with the shouldComponentUpdate which checks
if state has actually changed in between renders.
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Fix long name layout in Cluster Settings
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix local cluster delete flow
- Now checks for the cluster being the current cluster and confirms the
action
- <ConfirmDialog> is fixed to work with several confirmations happinging
at once
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Custom delete cluster dialog
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Saving kubeconfig file refactoring
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Switching current-context from dialog
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up css styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Show Delete menu item only for local cluster
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Make all dialogs rounded
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Releasing kubeconfig file after lock
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding delete cluster dialog tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Delete cluster dialog refactoring
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing typo
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing temp file on error
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Do not switch context if select is hidden
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing spread symbols
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving cluster delete event from catalog initializer to ipc
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refactor warning messages
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Getting spread (...) back to fix Select render
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using async form without promises
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Do not show context switcher if no contexts left
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating the tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* don't allow delete of the active cluster before setting to new active cluster (#3749)
* don't allow user to delete the active cluster before setting to new active cluster
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fix lint issues
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* Show delete button if no more contexts available
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com>
* Using entity name as cluster name in sidebar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Use entity name if preferences name is empty
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* simplify
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Adding home button
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Highlight catalog entity on route match
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Wait for general entites to load
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding WelcomePage catalog entity
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Highlight general entities in hotbar if their route matches
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving active entities sync to helper function
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix welcome page test
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Check only webcontent type === 'window' instead of using webContents.getFocusedWebContents(), as other webview can capture focus
Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
* Update test
Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
* Allow to configure default namespace used in terminal
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix lint issues
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
- On some KE errors are thrown if trying to get a secret with an empty
name, instead of just ignoring the entry
- Clean up the node shell settings
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Support filtering catalog entities
- This allows extensions and OpenLens to restrict which of the entities
the sources have provied are "visible" to the rest of Lens
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix lint
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* switch to filtering only for catalog view
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix test
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Add test to iter reduce
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
Co-authored-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* HistoryStore initial draft
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding history icons
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Jump history using electron methods
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using 1 topbar component for all views
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add Catalog title to sidebar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Show cluster name in sidebar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating topbar tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing Welcome tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing padding for external topbar items
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix cluster name prop
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using material icons for history buttons
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Upgrade to electron 12 and Node 14
- Compute cluster ID for tests
- Switch to temporary appData path while testing
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Allow to add WelcomeBannerRegistration.width and use that to caculate to width of Banner container
Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
* Export at const
Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
* Using RemovableItem for items in Kubernetes page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Helm Charts empty state
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Empty state for kubeconfig sync list
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove unused styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* allow to pass KubeObjectStore.api via constructor
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* remove throw for backward compat reasons
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Kubeconfig syncs from Catalog
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Allow to select directory to sync
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Convert Preferences to Route-based component
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Jump from notification to Preferences
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding navigateWithoutHistoryChange() method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing integration tests (no check for Telemetry tab)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests harder
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* refactor kube api to common
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* refactor more utils to common
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* refactor more utils to common
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* switch to use node-fetch on both sides
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* improve logger
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix lint errors
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix/improve tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix node-fetch require error on prod build
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* preload fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* read serverAddress from apiBase
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
- Make mockWindow a function and call it when needed
- Change timeouts so that better error messages happen more often in
integration tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- Keep one without any type param to make sure that an extension
developer can as well
- Keep one with a child type to make sure the same as above
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- Display previously selected namespaces at the top of the option list
when first opened
- Don't resort after every selection
- Automatically close the option list if no longer in multi-select mode
and have toggled at least one namespace
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Sort statuses allowing 'running' to be first
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix Chart legend badges
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding getStatus() tests for each store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing some props from passing to <input/>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing ns loadMetrics() this context
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
- If set (default = false) then the input will be trimmed of whitespace
before validation and before submit
- Use trim on all input's that use the systemName validator
Signed-off-by: Sebastian Malton <sebastian@malton.name>