- Only shows editor, and will save all text to file
- Reports some validation errors, but doesn't block the add cluster
button
- Cleanup kube helpers to facilitate clearer FS interactions
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Rendering close button in cluster view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Changing Icon hover style
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving onClick handler away
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing sidebar compact view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing 'compact' refs in SidebarItem
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Wrapping Catalog with MainLayout
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Making sidebar resizing indicator visible on hover
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding TopBar to catalog view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using TopBar in cluster views
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up Sidebar styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using getActiveClusterEntity() for searching
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix resizing anchor position
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Align cluster name on left
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing unused files
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing unused css var
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Showing Topbar in ClusterStatus page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing TopBar from ClusterManager
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cluster commands disappeared from Command Palette, close#2760
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring: get rid of ClusterStore.active && ClusterStore.activeCluster (managed via catalog's entity)
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- part 2 (npx mobx-undecorate --keepDecorators)
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- part 3 (more fixes)
Signed-off-by: Roman <ixrock@gmail.com>
* unwrap possible observables from IPC-messaging
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- remove @autobind as class-decorator
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6: replacing @autobind() as method-decorator to @boundMethod
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6: use toJS()-wrapper since monkey-patching require(mobx).toJS doesn't work
Signed-off-by: Roman <ixrock@gmail.com>
* removed `@observable static`
Signed-off-by: Roman <ixrock@gmail.com>
* use {useDefineForClassFields: true} in tsconfig.json
Signed-off-by: Roman <ixrock@gmail.com>
* remove ExtendedObservableMap
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix: removed makeObservable(this) from "terminal-tab.tsx"
Signed-off-by: Roman <ixrock@gmail.com>
* storage-helper refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* normalize usages of #observable-value.toJSON() / attempt to catch the wind
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring, more possible branch fixes + lint
Signed-off-by: Roman <ixrock@gmail.com>
* debugging cluster-view error -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* fix: refreshing cluster-view on ready
Signed-off-by: Roman <ixrock@gmail.com>
* fix: various app-crashes related to KubeObject.spec.* access from "undefined"
fix: config-map-details crash
Signed-off-by: Roman <ixrock@gmail.com>
* fix: namespace-store refactoring / saving selected-namespaces to external json-file
Signed-off-by: Roman <ixrock@gmail.com>
* fix: don't cache mobx.when(() => this.someObservable) cause might not work as expected due later call of makeObservable(this) in constructor
Signed-off-by: Roman <ixrock@gmail.com>
* fix: app-crash on editing k8s resource
Signed-off-by: Roman <ixrock@gmail.com>
* fix: restore "all namespaces" on page reload
Signed-off-by: Roman <ixrock@gmail.com>
* - fix: persist table-sort params and cluster-view's sidebar state to lens-local-storage
- new-feature: auto-open main-window's devtools in development-mode (yes/no/ugly?)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: crd definition details -> crashing with <AceEditor mode="json"> (added missing mode-file in ace-editor.tsx)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: crd definitions -> groups selector couldn't deselect last selected option
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring: extensions-api exports clarification for "@k8slens/extensions"
Signed-off-by: Roman <ixrock@gmail.com>
* fix: various app-crashes related to kube-events (events page, some details page, overview, etc.)
Signed-off-by: Roman <ixrock@gmail.com>
* Reverted "use {useDefineForClassFields: true} in tsconfig.json" (various app-crash fixes)
This flag seems to be not possible to use with class-inheritance in some cases.
Example / demo:
`KubeObject` class has initial type definitions for the fields like: "metadata", "kind", etc.
and constructor() has Object.assign(this, data);
Meanwhile child class, e.g. KubeEvent inherited from KubeObject and has it's own extra type definitions for underlying resource, e.g. "involvedObject", "source", etc.
So calling super(data) doesn't work as expected for child class as it's own type definitions overwrites data from parent's constructor with `undefined` at later point.
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge lint-fixes
Signed-off-by: Roman <ixrock@gmail.com>
* catalog.tsx / catalog-entities.store.ts refactoring & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix: Catalog -> Browse all tab
Signed-off-by: Roman <ixrock@gmail.com>
* fix: CommandPalette doesn't appear from global menu by click/hotkey
Signed-off-by: Roman <ixrock@gmail.com>
* - Merging interfaces & classses to avoid overwriting fields from parent's super(data)-call with Object.assign(this, data). Otherwise use "declare" keyword at class field definition.
- Revamping {useDefineForClassFields: true} to avoid issues with non-observable class fields in some cases (from previous commit):
```
@observer
export class CommandContainer extends React.Component<CommandContainerProps> {
// without some defined initial value "commandComponent" is non-observable for some reasons
// when tsconfig.ts has {useDefineForClassFields:false}
@observable.ref commandComponent: React.ReactNode = null;
constructor(props: CommandContainerProps) {
super(props);
makeObservable(this);
}
```
Signed-off-by: Roman <ixrock@gmail.com>
* update KubeObject class type definition
Signed-off-by: Roman <ixrock@gmail.com>
* clean up / responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* fix: app-crash when navigating to catalog from active cluster-view, refactoring `catalog-entity-store`
Signed-off-by: Roman <ixrock@gmail.com>
* catalog-pusher clean up, replaced .observe_() to external observe() helper from "mobx"
Signed-off-by: Roman <ixrock@gmail.com>
* fix: catalog's items stale/non-observable (after connection to the cluster status still "disconnected"), lint-fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix: Catalog is empty after closing main-window and re-opening app from Tray
Signed-off-by: Roman <ixrock@gmail.com>
* fix: HotBar's icon context menu items non-observable (no "disconnect cluster", etc.)
Signed-off-by: Roman <ixrock@gmail.com>
* lint-fix/license check
Signed-off-by: Roman <ixrock@gmail.com>
* fix: redirect to catalog when disconnecting active cluster
Signed-off-by: Roman <ixrock@gmail.com>
* fix: refresh visibility of active cluster-view on switching from hotbar/catalog
Signed-off-by: Roman <ixrock@gmail.com>
* updated package.json for built-in extensions to use "*" version for packages served from main app
Signed-off-by: Roman <ixrock@gmail.com>
* - added missing makeObservable(this) to metrics-settings.tsx
- updated package-lock.json for built-in extensions
- lint fixes
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge clean up fix, updated package-lock.json for built-in extensions after `make clean-extensions && make build-extensions`
Signed-off-by: Roman <ixrock@gmail.com>
* fix unit-tests
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge fixes
Signed-off-by: Roman <ixrock@gmail.com>
* make lint happy
Signed-off-by: Roman <ixrock@gmail.com>
* reverted some changes, removed auto-opening devtools in dev-mode
Signed-off-by: Roman <ixrock@gmail.com>
* merge fixes
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge conflict fixes:
- proper handling and navigating into catalog's active category via URL-builder
Signed-off-by: Roman <ixrock@gmail.com>
* reverting splitted params for catalog's page route to "/catalog/:group?/:kind?"
Signed-off-by: Roman <ixrock@gmail.com>
* clean-up: remove app's injecting dependencies from `extensions/kube-object-event-status/package.json`
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge fix: added missing makeObservable(this) for extensions.tsx
Signed-off-by: Roman <ixrock@gmail.com>
* fix: catalog entity context menu stale/unobservable
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* check source files for license header
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add license header to all relevant source files
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
- Add distinction between `getInstance` and `getInstanceOrCreate` since
it is not always possible to create an instance (since you might not
know the correct arguments)
- Remove all the `export const *Store = *Store.getInstance<*Store>();`
calls as it defeats the purpose of `Singleton`. Plus with the typing
changes the appropriate `*Store.getInstance()` is "short enough".
- Special case the two extension export facades to not need to use
`getInstanceOrCreate`. Plus since they are just facades it is always
possible to create them.
- Move some other types to be also `Singleton`'s: ExtensionLoader,
ExtensionDiscovery, ThemeStore, LocalizationStore, ...
- Fixed dev-run always using the same port with electron inspect
- Update Store documentation with new recommendations about creating
instances of singletons
- Fix all unit tests to create their dependent singletons
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* basic workspace overview
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* css tweaks for landing page as a PageLayout
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* address review comments
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* more review comment addressing, added overview to workspace command palette
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* added back the landing page startup hint
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* refactoring as per review comments
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* added original landing page back only for default workspace with no clusters
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* Workspace overview layout tweaks (#2302)
* tweaks workspace overview layout
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cluster settings on top
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* header logo for add cluster page
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak landing page
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* combine left menu icons
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* always show bottom status bar
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* integration test fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* change cluster menu
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* first attempt to fix integration test
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* lint
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* get selectors right for integration test
Signed-off-by: Jim Ehrismann <jehrismann@miranits.com>
Co-authored-by: Jim Ehrismann <jehrismann@mirantis.com>
Co-authored-by: Jim Ehrismann <jehrismann@miranits.com>
* address review comments, and rebased to master
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Jim Ehrismann <jehrismann@miranits.com>
* Convert StatusBarRegistration to use components field
- More similar to all other *Registration types for extensions
- Simpler fix for using the components.Icon type, now accepts functions
that return component instance like all other *Registration types
- Kept old fix for backwards compatability
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix docs
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* wip: command palette
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* register shortcut to global menu
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* introduce openCommandDialog & closeCommandDialog
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix ipc broadcast to frames from renderer
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add more commands
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ipc fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add integration tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ipc fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* implement workspace edit
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* workspace edit fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* make tests green
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fixes from code review
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup ipc
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup CommandRegistry
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ipc fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix ClusterManager cluster auto-init
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ensure cluster view is active before sending a command
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* switch to last active cluster when workspace change
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak integration tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* run integration tests serially
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fixes based on code review
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup more
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add workspace fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@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>
* 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>
* 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>