From ba17bed87eef1953877e481654f3efcaa9b230ae Mon Sep 17 00:00:00 2001 From: Denis Bykhov <80476319+BykhovDenis@users.noreply.github.com> Date: Fri, 13 May 2022 23:31:57 +0600 Subject: [PATCH] Viewlet setting fixes (#1751) Signed-off-by: Denis Bykhov <80476319+BykhovDenis@users.noreply.github.com> --- models/contact/src/index.ts | 3 +- models/lead/src/index.ts | 3 +- models/recruit/src/index.ts | 3 +- models/view/src/index.ts | 1 + packages/core/src/query.ts | 2 +- packages/core/src/storage.ts | 4 +++ .../src/components/Contacts.svelte | 21 ++++++----- .../src/components/EmployeePresenter.svelte | 4 +-- .../components/EmployeePreviewPopup.svelte | 32 +++++++++-------- .../src/components/Products.svelte | 21 ++++++----- .../src/components/Customers.svelte | 13 ++++--- .../src/components/ApplicationsView.svelte | 21 ++++++----- .../src/components/Candidates.svelte | 13 ++++--- plugins/view-assets/lang/en.json | 2 +- plugins/view-assets/lang/ru.json | 1 + .../src/components/ViewletSetting.svelte | 11 ++++-- plugins/view-resources/src/plugin.ts | 1 + plugins/view/src/index.ts | 1 + .../src/components/SpaceHeader.svelte | 21 ++++++----- server/mongo/src/storage.ts | 36 ++++++++++++++++--- 20 files changed, 128 insertions(+), 86 deletions(-) diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts index 4233a5b341..5403c6b94b 100644 --- a/models/contact/src/index.ts +++ b/models/contact/src/index.ts @@ -173,7 +173,8 @@ export function createModel (builder: Builder): void { 'modifiedOn', { key: '', presenter: view.component.RolePresenter, label: view.string.Role }, '$lookup.channels' - ] + ], + hiddenKeys: ['name'] }) builder.mixin(contact.class.Person, core.class.Class, view.mixin.ObjectEditor, { diff --git a/models/lead/src/index.ts b/models/lead/src/index.ts index ec66408700..5f45fdf90e 100644 --- a/models/lead/src/index.ts +++ b/models/lead/src/index.ts @@ -127,7 +127,8 @@ export function createModel (builder: Builder): void { { key: 'leads', presenter: lead.component.LeadsPresenter, label: lead.string.Leads }, 'modifiedOn', '$lookup.channels' - ] + ], + hiddenKeys: ['name'] }) builder.createDoc(view.class.Viewlet, core.space.Model, { diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index 7c5dcc235d..f2285acd4c 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -271,7 +271,8 @@ export function createModel (builder: Builder): void { }, 'modifiedOn', '$lookup.channels' - ] + ], + hiddenKeys: ['name'] }) builder.createDoc(view.class.Viewlet, core.space.Model, { diff --git a/models/view/src/index.ts b/models/view/src/index.ts index 9eb79b8557..f8885bfb7a 100644 --- a/models/view/src/index.ts +++ b/models/view/src/index.ts @@ -139,6 +139,7 @@ export class TViewlet extends TDoc implements Viewlet { descriptor!: Ref open!: AnyComponent config!: (BuildModelKey | string)[] + hiddenKeys?: string[] } @Model(view.class.Action, core.class.Doc, DOMAIN_MODEL) diff --git a/packages/core/src/query.ts b/packages/core/src/query.ts index 10752f4cbc..041c331c45 100644 --- a/packages/core/src/query.ts +++ b/packages/core/src/query.ts @@ -38,7 +38,7 @@ export function resultSort (result: T[], sortOptions: SortingQuer for (const key in sortOptions) { const aValue = getValue(key, a) const bValue = getValue(key, b) - const result = getSortingResult(aValue, bValue, sortOptions[key] as SortingOrder) + const result = getSortingResult(aValue, bValue, sortOptions[key]) if (result !== 0) return result } return 0 diff --git a/packages/core/src/storage.ts b/packages/core/src/storage.ts index 6237a34b0f..04ba8a5c52 100644 --- a/packages/core/src/storage.ts +++ b/packages/core/src/storage.ts @@ -121,6 +121,10 @@ export type FindOptions = { */ export type SortingQuery = { [P in keyof T]?: SortingOrder +} & { + // support nested queries e.g. 'user.friends.name' + // this will mark all unrecognized properties as any (including nested queries) + [key: string]: SortingOrder } /** diff --git a/plugins/contact-resources/src/components/Contacts.svelte b/plugins/contact-resources/src/components/Contacts.svelte index d89472ec0f..5f5eb103ab 100644 --- a/plugins/contact-resources/src/components/Contacts.svelte +++ b/plugins/contact-resources/src/components/Contacts.svelte @@ -75,17 +75,6 @@ - {#if viewlet} - { - showPopup(ViewletSetting, { viewlet }) - }} - /> - {/if} { @@ -98,6 +87,16 @@ kind={'primary'} on:click={(ev) => showCreateDialog(ev)} /> + {#if viewlet} + { + showPopup(ViewletSetting, { viewlet }) + }} + /> + {/if} {#if viewlet} diff --git a/plugins/contact-resources/src/components/EmployeePresenter.svelte b/plugins/contact-resources/src/components/EmployeePresenter.svelte index 74bcf63ecd..d999fb1e0d 100644 --- a/plugins/contact-resources/src/components/EmployeePresenter.svelte +++ b/plugins/contact-resources/src/components/EmployeePresenter.svelte @@ -22,11 +22,11 @@ } -
+
-
+
diff --git a/plugins/contact-resources/src/components/EmployeePreviewPopup.svelte b/plugins/contact-resources/src/components/EmployeePreviewPopup.svelte index 7d920684e7..54f6ac071e 100644 --- a/plugins/contact-resources/src/components/EmployeePreviewPopup.svelte +++ b/plugins/contact-resources/src/components/EmployeePreviewPopup.svelte @@ -1,6 +1,6 @@