From 6b6ec0b6581fb2d68f9c544c7b2186495d06f3b6 Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Wed, 8 Nov 2023 22:25:25 +0700 Subject: [PATCH] UBERF-4136: New issues from command palette (#3956) Signed-off-by: Andrey Sobolev --- models/tracker/src/actions.ts | 25 ++++- models/workbench/src/index.ts | 20 +++- models/workbench/src/plugin.ts | 3 +- packages/ui/src/components/Separator.svelte | 1 + packages/ui/src/plugin.ts | 5 +- plugins/tracker/src/index.ts | 1 + .../src/components/ServerManager.svelte | 106 +++++++++++++----- plugins/workbench-resources/src/connect.ts | 25 +---- plugins/workbench-resources/src/index.ts | 4 +- server/ws/src/server_http.ts | 8 +- server/ws/src/stats.ts | 1 + server/ws/src/types.ts | 1 + 12 files changed, 141 insertions(+), 59 deletions(-) diff --git a/models/tracker/src/actions.ts b/models/tracker/src/actions.ts index fa9f27d0a6..f44cc8265b 100644 --- a/models/tracker/src/actions.ts +++ b/models/tracker/src/actions.ts @@ -212,11 +212,34 @@ export function createActions (builder: Builder, issuesId: string, componentsId: mode: ['browser'], application: tracker.app.Tracker, group: 'create' - } + }, + override: [tracker.action.NewIssueGlobal] }, tracker.action.NewIssue ) + createAction( + builder, + { + action: view.actionImpl.ShowPopup, + actionProps: { + component: tracker.component.CreateIssue, + element: 'top' + }, + label: tracker.string.NewIssue, + icon: tracker.icon.NewIssue, + keyBinding: [], + input: 'none', + category: tracker.category.Tracker, + target: core.class.Doc, + context: { + mode: [], + group: 'create' + } + }, + tracker.action.NewIssueGlobal + ) + createAction( builder, { diff --git a/models/workbench/src/index.ts b/models/workbench/src/index.ts index 5705c4cd87..992d5a4d5b 100644 --- a/models/workbench/src/index.ts +++ b/models/workbench/src/index.ts @@ -17,7 +17,7 @@ import { Class, DOMAIN_MODEL, Ref, Space } from '@hcengineering/core' import { Builder, Mixin, Model, Prop, TypeRef, UX } from '@hcengineering/model' import preference, { TPreference } from '@hcengineering/model-preference' import { createAction } from '@hcengineering/model-view' -import type { Asset, IntlString } from '@hcengineering/platform' +import { getEmbeddedLabel, type Asset, type IntlString } from '@hcengineering/platform' import view, { KeyBinding } from '@hcengineering/view' import type { Application, @@ -69,6 +69,24 @@ export function createModel (builder: Builder): void { builder.mixin(workbench.class.Application, core.class.Class, view.mixin.IgnoreActions, { actions: [view.action.Delete] }) + + createAction(builder, { + action: view.actionImpl.ShowPopup, + actionProps: { + component: workbench.component.ServerManager, + element: 'content' + }, + label: getEmbeddedLabel('Server statistics'), + icon: view.icon.Configure, + keyBinding: [], + input: 'none', + category: view.category.General, + target: core.class.Doc, + secured: true, + context: { + mode: ['workbench'] + } + }) } export default workbench diff --git a/models/workbench/src/plugin.ts b/models/workbench/src/plugin.ts index 7ca022ed3f..951434e88f 100644 --- a/models/workbench/src/plugin.ts +++ b/models/workbench/src/plugin.ts @@ -24,7 +24,8 @@ export default mergeIds(workbenchId, workbench, { ApplicationPresenter: '' as AnyComponent, Archive: '' as AnyComponent, SpaceBrowser: '' as AnyComponent, - SpecialView: '' as AnyComponent + SpecialView: '' as AnyComponent, + ServerManager: '' as AnyComponent }, string: { Application: '' as IntlString, diff --git a/packages/ui/src/components/Separator.svelte b/packages/ui/src/components/Separator.svelte index b6241e7408..cb6f4e810f 100644 --- a/packages/ui/src/components/Separator.svelte +++ b/packages/ui/src/components/Separator.svelte @@ -436,6 +436,7 @@ } const checkSibling = (start: boolean = false): void => { + if (separator === null) return if (prevElement === null || start) prevElement = separator.previousElementSibling as HTMLElement if (nextElement === null || start) nextElement = separator.nextElementSibling as HTMLElement if (separators && prevElement && separators[index].float !== undefined) { diff --git a/packages/ui/src/plugin.ts b/packages/ui/src/plugin.ts index 305df71ad6..d843b5e8dd 100644 --- a/packages/ui/src/plugin.ts +++ b/packages/ui/src/plugin.ts @@ -99,10 +99,7 @@ export const uis = plugin(uiId, { metadata: { DefaultApplication: '' as Metadata, Routes: '' as Metadata>, - Languages: '' as Metadata, - - // Will activate network click button - ShowNetwork: '' as Metadata<(evt: MouseEvent) => void> + Languages: '' as Metadata } }) diff --git a/plugins/tracker/src/index.ts b/plugins/tracker/src/index.ts index 948bec8cda..779cd7d48e 100644 --- a/plugins/tracker/src/index.ts +++ b/plugins/tracker/src/index.ts @@ -467,6 +467,7 @@ export default plugin(trackerId, { Duplicate: '' as Ref, Relations: '' as Ref, NewIssue: '' as Ref, + NewIssueGlobal: '' as Ref, NewSubIssue: '' as Ref, EditWorkflowStatuses: '' as Ref, EditProject: '' as Ref, diff --git a/plugins/workbench-resources/src/components/ServerManager.svelte b/plugins/workbench-resources/src/components/ServerManager.svelte index 9c11becb42..aa3d5562be 100644 --- a/plugins/workbench-resources/src/components/ServerManager.svelte +++ b/plugins/workbench-resources/src/components/ServerManager.svelte @@ -1,15 +1,33 @@