* 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>
* 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>
* 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>
* 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>
* Making inputs consistent
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing hover effect in inputs
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding separators to sidebar menu
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning general section
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning hidden metrics area
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* EntityIcon in Settings sidebar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving cluster icon settings on top
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Shrink Apply button a big
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* rename PageLayout to SettingLayout
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* expose to extensions
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* 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>
* remove isClusterScoped from ItemListLayout
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Move <NamespaceSelectFilter> to KubeObjectListLayout
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* revert to simpler NamespaceSelectFilter fix
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* 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>
* Setting up tailwind and css modules env
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using tailwind with scss files also
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Introducing react-table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Spread extensions to smaller components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add table sorting
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing inputs line-height
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning page view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Align table rows
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding extension notice
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning overall styling
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding a extensions placeholder
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating MaterialIcons font
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Aligning not found state
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Making extension components observable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing search input cross icon
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix drag-n-drop indication
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing extension name sorting
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix linter
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Ignoring ts files to tailwind purge
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Renaming Table -> ReactTable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing integration tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving tailwind imports into app.scss
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving userExtensionList() out from extension-loader
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Transform extension list to array
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Expand install input placeholder a bit
Signed-off-by: Alex Andreev <alex.andreev.email@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>
- Removed `getFreePort` as its use is always a race condition. Change
all uses of it to retrive the port after listening
- Added `getPortFrom` as a helper function to read a port from a stream
- Remove `Cluster.ownerRef` as it is outdated and no longer needed for 5.0
- Remove `Cluster.enabled`, no longer needed because of above
- Removed `Cluster.init`, moved its contents into `Cluster.constructor`
as nothing in that function is asyncronous. Currently only being run
on `main` as a stop gap until `renderer` gets its own version of
`Cluster`
- Refactored `LensProxy` so as to prevent `pty.node` (a NodeJS
extension) being included in `webpack.extension.ts`'s run
- Removed the passing around of the proxy port as that can now be
accessed from an instance of `LensProxy`
- purge ContextHandler's cache on disconnect
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* Configure ts to use react-jsx rule
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving HotbarSelector to separate component
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Initial drag-n-drop implementation
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Revert tsconfig and linter changes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Reverting back active cell effect
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding drag-n-drop behavior
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix drag-n-drop logic
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* White border on dragging over
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding test coverage
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing cell hover effect
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Increase PageLayout z-index
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Styling hotbar selector tooltip
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix: logs data disapearing causing crashes (#2566)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Refactor helm-chart.api and improve kube validation and error handling (#2265)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix: HPA's not sortable by age (#2565)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Conditionally render status icon for kube meta (#2298)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix custom resource loading spinner appears above extensions' cluster menus (#2344)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Lens should point to the release docs (#2268)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Refactor the Extensions settings page (#2221)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* try and get jest to not core dump
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- 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>
* - fix: highlight active sidebar section / link
- fix: caching crd definitions to prevent sidebar's scroll jumps
- refactored & simplified `Sidebar` and `SidebarItem`
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* adding @jsdoc comments to SidebarItem
Signed-off-by: Roman <ixrock@gmail.com>
* 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>
* Removing @observer decorator from <App/>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add observer wrapper to <MainLayoutHeader/>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix eslint claim
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving extension route renderers to components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing external observables out from App render()
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fetching hosted cluster inside Command Palette
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting route lists explicitly
To avoid using observable data within tabRoutes arrays
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Review fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* fix lint
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint, micro-refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* more refactoring, clean up, responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* fix: remove extra check for cluster.allowedApi from processing buffered watch-api events
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring, detaching NamespaceStore from KubeObjectStore
Signed-off-by: Roman <ixrock@gmail.com>
* fix: wait for contextReady in NamespaceStore
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint
Signed-off-by: Roman <ixrock@gmail.com>
* fixes: reloading context stores on NamespaceSelect-change
Signed-off-by: Roman <ixrock@gmail.com>
* optimize loading all resources when "all namespaces" selected -> single request per resource (when have rights)
Signed-off-by: Roman <ixrock@gmail.com>
* use native k8s api watches
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* retry watch when it makes sense
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* workaround for browser connection limits
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* use always random subdomain for getResponse
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* resubscribe stores on contextNamespace change
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* modify watch event before calling callback
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Roman <ixrock@gmail.com>
* Detach NamespaceStore from KubeWatchApi, proper KubeObjectStore.loadAll (rebase of #2033)
Signed-off-by: Roman <ixrock@gmail.com>
* Watch-api requests optimization (#2066)
* subscribe for watching resources in single request when has admin-like access rights
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* fix unit-tests
Signed-off-by: Roman <ixrock@gmail.com>
* fix: reloading stores when preloading enabled and waitUntilLoaded=false
Signed-off-by: Roman <ixrock@gmail.com>
* mark Cluster.canUseWatchApi() and Cluster.refreshAccessibility() as private
Signed-off-by: Roman <ixrock@gmail.com>
* fix unit test: make public Cluster.canUseWatchApi()
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments in #2066
Signed-off-by: Roman <ixrock@gmail.com>
* Moving SidebarNavItem component to its own file
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using id prop to preserve expanding state
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* ClusterOverview page refactorings
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Minor test fix for MainLayoutHeader
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Replacing class name in tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove unnecessary parenthesis
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>
* 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>
* 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>
* 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>
* 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>
* Tray icon #833 -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 2
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 3
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 4
Signed-off-by: Roman <ixrock@gmail.com>
* fix: lint / linux build failed
Signed-off-by: Roman <ixrock@gmail.com>
* allow to disable tray from preferences
Signed-off-by: Roman <ixrock@gmail.com>
* allow to tweak svg-icon before applying as tray-icon
Signed-off-by: Roman <ixrock@gmail.com>
* add checkbox indication, setActive workspace on cluster select
Signed-off-by: Roman <ixrock@gmail.com>
* fix build version (cannon find module 'react')
Signed-off-by: Roman <ixrock@gmail.com>
* - switching dark/light icon depending on os-x theme settings
- optimization: don't re-create tray icon on menu udpates (avoid blinking)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: refresh icon after turning on/off + switching dark-mode
Signed-off-by: Roman <ixrock@gmail.com>
* allow to close main window and re-open from dock or tray icon
Signed-off-by: Roman <ixrock@gmail.com>
* small fix
Signed-off-by: Roman <ixrock@gmail.com>
* fix: ensure main-window from global menu
Signed-off-by: Roman <ixrock@gmail.com>
* chore
Signed-off-by: Roman <ixrock@gmail.com>
* fix: hide traffic-light buttons for tray window
Signed-off-by: Roman <ixrock@gmail.com>
* removed redundant tray window
Signed-off-by: Roman <ixrock@gmail.com>
* removed delay from base-store
Signed-off-by: Roman <ixrock@gmail.com>
* adding cluster fix (reverted changes from master)
Signed-off-by: Roman <ixrock@gmail.com>
* - hide icon in dock when main-window closed (mac-os only)
- added preferences checkbox to open app at system start-up
Signed-off-by: Roman <ixrock@gmail.com>
* handle quit app action from tray menu
Signed-off-by: Roman <ixrock@gmail.com>
* moved generating tray icons to build step
Signed-off-by: Roman <ixrock@gmail.com>
* Fix integration tests (#1080)
* Fix integration tests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Update integration/helpers/utils.ts
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* fix-build: invisible app icon when there are more files within "build/icons/*.png"
Signed-off-by: Roman <ixrock@gmail.com>
* chore
Signed-off-by: Roman <ixrock@gmail.com>
* yarn i18n.extract
Signed-off-by: Roman <ixrock@gmail.com>
* clean-up
Signed-off-by: Roman <ixrock@gmail.com>
* navigation refactoring, move out `buildUrl` to common/utils so `react` and `react-router` not required as package.json dependecies in runtime (main)
Signed-off-by: Roman <ixrock@gmail.com>
* Ignore namespace query param on integration tests (#1109)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* merge-conflicts fixes
Signed-off-by: Roman <ixrock@gmail.com>
* support page fixes
Signed-off-by: Roman <ixrock@gmail.com>
* make eslint happy again
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* initial telemetry extension
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Fix preferences saving and default value
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
* fix bug: side bar scrolls after clicking on lower item
Signed-off-by: Yangjun Wang <yangjun.wang@wartsila.com>
* fix issue main area missing issue, add mobx observer to TabLayout
Signed-off-by: Yangjun Wang <yangjun.wang@wartsila.com>
Co-authored-by: Yangjun Wang <yangjun.wang@wartsila.com>
* Allow user to select Kubeconfig from filesystem, fix#738
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding cluster menu colors
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding theme class name flag into #app
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up mixins
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Tuning up Wizard Layout styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using theme-light global flag
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Minor style fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using .theme-light flag across components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Set theme as @computed value
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Preventing Drawer slide-in scroll flickering
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting background for settings views
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Minor layout fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Switching AceEditor theme reactively
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>