* store more than largest kube api request amount in the event store
* not abstract, give default
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* performance fix when cluster has lots of namespaces
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Replacing pro-tip text
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Coloring extension name
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Eslint fixes in webpack files
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix getExtensionPageUrl on Windows
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Use path.posix.join() instead
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix lint issues
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix extensions installation on Windows
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Get rid of readFileSync
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add missing semicolon
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Using trayTemplate icon
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up nativeTheme import
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using light icon for tray
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing unused tray icons
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving lens-views behind extension views
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting z-index for all child elements of <main/>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* add no-unused-vars and no-unused-imports
* added quotes: double, and remove ignore pattern
* move itif and describeif into utils
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix: add-cluster page D&D kube-config don't work: Error-info: <DropFileInput/> must contain only single child element
Signed-off-by: Roman <ixrock@gmail.com>
* renaming
Signed-off-by: Roman <ixrock@gmail.com>
* Store prometheus metadata for clusters based on metrics requests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Use ClusterMetadataKey.PROMETEHUS as key
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Update metadata only if it is changed
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Use structural comparer as default for store sync reaction
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* No need to compare metadata as json anymore
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Use structural comparer only in cluster-store
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Refactoring
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* React only prometeheus preference changes to re-initialise prometheus connection
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add missing semicolons
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix imports
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Report metrics status in cluster-report (#1443)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Apply suggestions from code review
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix logger reference
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* refine and document cluster feature api
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* lint fix
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* change add-cluster to single column layout
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup styles
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Fine-tuning layout/coloring styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
* fix: invalid handling disabled={false} causing app crash
Signed-off-by: Roman <ixrock@gmail.com>
* re-fix: put React.Children.only() validation inside try-catch to avoid crash as well
Signed-off-by: Roman <ixrock@gmail.com>
* Option to install an extension from filesystem/url #1227 -- part 1 (UI)
Signed-off-by: Roman <ixrock@gmail.com>
* DropFileInput: common component to handle droped files (replaced also in add-cluster-page)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: install via url-string on input.submit
Signed-off-by: Roman <ixrock@gmail.com>
* ui tweaks & minor fixes
Signed-off-by: Roman <ixrock@gmail.com>
* more ui/ux tweaks & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* layout fixes
Signed-off-by: Roman <ixrock@gmail.com>
* component renaming: `copy-to-click` => `copy-to-clipboard` => `clipboard`
Signed-off-by: Roman <ixrock@gmail.com>
* reworks -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* fix downloading file, added common/utils/downloadFile
Signed-off-by: Roman <ixrock@gmail.com>
* confirm before install, unpack tar first steps
Signed-off-by: Roman <ixrock@gmail.com>
* installation flow, extracting .tgz
Signed-off-by: Roman <ixrock@gmail.com>
* clean up, fix lint issues
Signed-off-by: Roman <ixrock@gmail.com>
* update .azure-pipelines.yml
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint harder :/
Signed-off-by: Roman <ixrock@gmail.com>
* fix validation
Signed-off-by: Roman <ixrock@gmail.com>
* fix validation harder
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments, fixed package validation
Signed-off-by: Roman <ixrock@gmail.com>
* common/utils/tar.ts: reject with Error-type
Signed-off-by: Roman <ixrock@gmail.com>
* fix: unit-tests
Signed-off-by: Roman <ixrock@gmail.com>
* Setting global webkit-scrollbar styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing usage of custom-scrollbar mixin
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Set overflow:auto on .Table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing .drawer-content paddings
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Resolve extension enabled status when loading it
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Check if extension is enabled in store unless it is bundled
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Return false by default for isEnabled
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Refactor isEnabled assignment
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* add store for mapping extension names to filesystem paths
- add extension mechinism for getting a folder to save files to
- add test to make sure that extensions are being loaded
- skip extension loading test
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Save and restore lastActiveClusterId
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Activate clusters from workspaces page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix saving last cluster while jumping from tray
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding workspace switch tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove console.log()
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean duplicated ClusterId definition
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving lastActiveClusterId field into WorkspaceModel
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* fix extensionLoader error on dev environments where renderer might start early (#1447)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Add Search by Ip to Pod View (#1445)
Signed-off-by: Pavel Ashevskii <pashevskii@mirantis.com>
* Make BaseStore abstract (#1431)
* make BaseStore abstract so that implementers are forced to decide how to store data
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Enforce semicolons in eslint
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Add a few missing folders to be linted.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Use @typescript-eslint/semi.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Allow extension cluster menus to have a parent (#1452)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix SwitchCase indent rule in eslint (#1454)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Revert "fix SwitchCase indent rule in eslint (#1454)"
This reverts commit 082774fe6e.
* Revert "Allow extension cluster menus to have a parent (#1452)"
This reverts commit 622c45cd6d.
* Revert "Use @typescript-eslint/semi."
This reverts commit 890fa5dd9e.
* Revert "Add a few missing folders to be linted."
This reverts commit c7b24c2922.
* Revert "Enforce semicolons in eslint"
This reverts commit ca67caea60.
* Revert "Make BaseStore abstract (#1431)"
This reverts commit 4b56ab7c61.
* Revert "Add Search by Ip to Pod View (#1445)"
This reverts commit 4079214dc1.
* Revert "fix extensionLoader error on dev environments where renderer might start early (#1447)"
This reverts commit 8a3613ac6f.
* Split workspace tests to smaller ones
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Missing semicolons
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Split workspace tests a bit more
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding extra click in Add Cluster button
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding more awaits to check running cluster
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Wait for minikube before running tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: pashevskii <53330707+pashevskii@users.noreply.github.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Converting ansi values to colored html
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Rewriting AnsiUp colors for search overlay
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix creating new workspace
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Show not yet enabled workspaces in list
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Not showing disabled workspaces
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* PageRegistration & PageMenuRegistration fixes & more simplification, fix#1383
Signed-off-by: Roman <ixrock@gmail.com>
* clean up test, deprecate page.routePath
Signed-off-by: Roman <ixrock@gmail.com>
* fix: proper `isActive` state matching for page-menu-target to page considering current document location
Signed-off-by: Roman <ixrock@gmail.com>
* add retry cap to handleStaticFile to prevent an infitite loop
* 'yarn -> yarn run' for node_module dependencies
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix rendering of boolean values in CRDs
- add optional special casing for boolean values in DrawerItems and
TableRows since React (imo annoying fashion) does not render boolean
values by default.
- add a spinner on the sidebar for when the CRD menu is expeanded but
the entries have not been loaded yet.
- Add ability to double click a Badge to expand, also make it so that
Badges highligh all text on first click.
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Removing !important statements from theme vars
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Wait for user store to load
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix this reference
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Aligning test with resetTheme() fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add mechanism for users to specify namespaces that are accessible to them. This is generally useful for when the user doesn't have permission to list the namespaces.
- Add new component "EditableList" which provides a simple way to
display a list of items that can be added too.
- Add the ClusterAccessibleNamespaces to the GeneralClusterSettings
- style editable list list of lists, switch to using <>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* Moving logs to virtual list
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Introducing log search
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting ref for VirtualList to access its methods
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Introducing search store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Centering overlay when scroll to it
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using SearchInput in PodLogSearch
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using Prev/Next icons for search
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* No trigger logs load when scrolled by method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* SearchInput refactoring
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding find counters
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean search query on dock tab change
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refresh search when logs get changed
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Case-insensitive search
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Improve logs scrolling experience
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Catching empty logs in various places
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing downloading logs
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up some duplicated styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing jump-to-bottom animation
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing since label
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Reducing container selector size
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Scroll down to bottom after each reload
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix search within timestamps if they not provided
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Use log row hover color from theme
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add search bindings for 'Esc' & 'Enter' hits
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Focus input fields on CmdOrCtrl+F
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Move search.store.ts in to /common folder
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* search.store.ts -> search-store.ts
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding test for search store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding integration tests for logs
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing scroll jumping bug
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing download icon check for testing purpose
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing clicking on nginx-create-pod-test
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving log tests before cluster operations
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Build extensions before integration tests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Build also npm before integration tests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Move npm build and extension build into own build step
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Removing separator sketches
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Horizontal scrolling to founded keyword
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Delaying horizontal scrolling
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add webpack-dev-server (for hot module replacement) to serve statics, add HardSourceWebpackPlugin to improve re-compiling speed
* Serve statics using webpack-dev-server instead of lens-proxy, redirect request of Lens.html/Lens.js to webpack-dev-server
* Add react-refresh-webpack-plugin and its dep for hot-reload
* Add hot-reload plugin, and make proxy redirects requests to webpackdevserver
* Add hard-source webpack plugin to main process
* Remove parameter 'path' of handleStaticFile
* Upgarde webpack to v4 latest stable
* Fix build error: plugins shouldnt be null
Signed-off-by: Hung-Han (Henry) Chen <1474479+chenhunghan@users.noreply.github.com>
* fix: create extension instance only when enabled
Signed-off-by: Roman <ixrock@gmail.com>
* mark extension.isEnabled with private modifier
Signed-off-by: Roman <ixrock@gmail.com>
* try-catch errors for extension.disable()
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* make ext.isBundled non optional
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Steve Richards <srichards@mirantis.com>
Co-authored-by: Mario Sarcher <msarcher@mirantis.com>
Co-authored-by: steve richards <steve.james.richards@gmail.com>
Co-authored-by: Paul Williams <pawilliams@mirantis.com>
Co-authored-by: pauljwil <pauljwil@gmail.com>
* Extensions page and menu item
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Basic extension list view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding get userExtensions filter
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using WizardLayout at extension page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding search to extension page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Few style fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* clean up
Signed-off-by: Roman <ixrock@gmail.com>
* added folder-icon to open extensions in finder, refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* remove export warnings in dev:main, tooltip.getPosition() fix
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring base lens-extension.ts, added `isBundled` flag
Signed-off-by: Roman <ixrock@gmail.com>
* added enabled/disable buttons
Signed-off-by: Roman <ixrock@gmail.com>
* auto enable/disable extensions -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* auto enable/disable extensions -- part 2
Signed-off-by: Roman <ixrock@gmail.com>
* auto enable/disable extensions -- part 3
Signed-off-by: Roman <ixrock@gmail.com>
* auto enable/disable extensions -- part 4
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix: use page-layout with fullsize viewport
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add @testing-library/jest-dom and @testing-library/react for writing test cases
* Make eslint check __mocks__/*.ts files
* Mock electron.ipcRenderer.on to prevent errors in React compoment test cases
* Mock <Trans /> from @lingui/macro as a component simplely returns children components
* Use optional chaining operator (?.) to avoid TypeError: Cannot read property 'replicas' of undefined
* Add jest-fetch-mock for mocking global.fetch, activate for all test cases in jest.setup.ts
* Add basic tests for <DeploymentScaleDialog /> to ensure it initialises/renders without errors
* Add +/- button for changing desired replicas, and its test cases
* Adjust the styles of +/- buttons container to make sure it aligns with the slider
* Refactor after rebase from master
* Use var defined in vars.scss
* Add flex align-center to slider-container and remove margin-top: -4px
* Use <Icon /> to replace <i/>
* Add flex gaps to plus-minus-container
Signed-off-by: Hung-Han (Henry) Chen <1474479+chenhunghan@users.noreply.github.com>
* License menu item should come from an extension #1141
Signed-off-by: Roman <ixrock@gmail.com>
* fix: expose `Util.openExternal` via extensions-api
Signed-off-by: Roman <ixrock@gmail.com>
* move LICENSE back to root
Signed-off-by: Roman <ixrock@gmail.com>