From 4c3ba1fbc453feaa6ad5fa2c81743d2288e3e1fb Mon Sep 17 00:00:00 2001 From: Alexander Platov Date: Mon, 13 Nov 2023 08:28:54 +0300 Subject: [PATCH] UBERF-4205: updated Panel header layout, custom aside (#3974) Signed-off-by: Alexander Platov --- models/hr/src/index.ts | 4 +- packages/panel/src/components/Panel.svelte | 94 ++++----- .../components/breadcrumbs/Breadcrumbs.svelte | 81 ++++---- packages/theme/styles/_colors.scss | 14 ++ packages/theme/styles/_layouts.scss | 1 + packages/theme/styles/button.scss | 12 ++ packages/theme/styles/global.scss | 2 +- packages/theme/styles/panel.scss | 70 +++---- packages/ui/src/components/ButtonGroup.svelte | 48 +++++ packages/ui/src/components/Panel.svelte | 181 +++++++++--------- .../ui/src/components/PanelInstance.svelte | 40 ++-- packages/ui/src/components/Separator.svelte | 10 +- packages/ui/src/components/icons/Close.svelte | 4 +- .../ui/src/components/icons/Details.svelte | 22 ++- .../src/components/icons/DetailsFilled.svelte | 4 +- packages/ui/src/components/icons/Mixin.svelte | 14 +- .../ui/src/components/internal/Clock.svelte | 2 +- .../src/components/internal/ClockPopup.svelte | 10 +- packages/ui/src/index.ts | 5 +- packages/ui/src/types.ts | 17 ++ .../src/components/EditCard.svelte | 24 +-- .../src/components/ChannelViewPanel.svelte | 2 +- .../src/components/CommentPanel.svelte | 3 +- .../src/components/EditChannel.svelte | 21 +- .../src/components/ChannelPanel.svelte | 6 +- .../src/components/NewMessages.svelte | 8 +- .../src/components/Structure.svelte | 13 +- .../src/components/EditFunnel.svelte | 3 - .../src/components/Inbox.svelte | 2 +- .../src/components/EditVacancy.svelte | 38 ++-- .../src/components/IntegrationPanel.svelte | 12 +- .../components/issues/IssuePresenter.svelte | 7 +- .../issues/edit/CopyToClipboardButton.svelte | 3 +- .../components/issues/edit/EditIssue.svelte | 106 +++++----- .../templates/EditIssueTemplate.svelte | 37 +--- plugins/view-assets/assets/icons.svg | 6 +- .../src/components/EditDoc.svelte | 55 ++---- .../src/components/ParentsNavigator.svelte | 10 +- .../src/components/ServerManager.svelte | 2 +- .../components/navigator/SpacePanel.svelte | 9 +- .../recruiting/applications-details-page.ts | 2 +- .../recruiting/common-recruiting-page.ts | 2 +- 42 files changed, 486 insertions(+), 520 deletions(-) create mode 100644 packages/ui/src/components/ButtonGroup.svelte diff --git a/models/hr/src/index.ts b/models/hr/src/index.ts index ab945950ca..0701ae2886 100644 --- a/models/hr/src/index.ts +++ b/models/hr/src/index.ts @@ -296,7 +296,7 @@ export function createModel (builder: Builder): void { builder, { action: view.actionImpl.ShowPanel, - actionProps: {}, + actionProps: { element: 'content' }, label: view.string.Open, icon: view.icon.Open, keyBinding: ['e'], @@ -353,7 +353,7 @@ export function createModel (builder: Builder): void { builder, { action: view.actionImpl.ShowPanel, - actionProps: {}, + actionProps: { element: 'content' }, label: view.string.Open, icon: view.icon.Open, keyBinding: ['e'], diff --git a/packages/panel/src/components/Panel.svelte b/packages/panel/src/components/Panel.svelte index 68490e8b6b..4be58f98c0 100644 --- a/packages/panel/src/components/Panel.svelte +++ b/packages/panel/src/components/Panel.svelte @@ -14,25 +14,15 @@ // limitations under the License. --> { + selectedAside = result.detail + dispatch('select', result.detail) + }} > - - {#if $$slots.navigator} -
- -
- {/if} -
- {#if !withoutTitle} -
- {#if $$slots.title} - - {:else} -
- {#if icon}
{/if} -
- {#if title}{title}{/if} - {#if subtitle || $$slots.subtitle} - - {#if subtitle} - {subtitle} - {/if} - - - {/if} -
-
- {/if} -
+ {#if $$slots.title} + + {:else if title} +
{title}
+ {/if} {/if}
- + - {#if isReminder} - - {/if} + + {#if isUtils && $$slots.utils} -
+ {/if} @@ -202,7 +182,7 @@ {#key object._id} {/key} {/if} @@ -221,7 +201,7 @@ props={{ object, showCommenInput: !withoutInput, - shouldScroll: embedded, + shouldScroll: true, focusIndex: 1000, boundary: content }} @@ -247,7 +227,7 @@ props={{ object, showCommenInput: !withoutInput, - shouldScroll: embedded, + shouldScroll: true, focusIndex: 1000, boundary: content }} diff --git a/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte b/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte index 5c938eb1d9..13a1d6e9fe 100644 --- a/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte +++ b/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte @@ -13,55 +13,52 @@ // limitations under the License. --> - - {#each models as model, i} - {@const { color } = model} - {#if hasComponent(model)} - {@const { component, props } = model} - - {#if typeof component === 'string'} - - {:else} - - {/if} - - {:else} - {@const { title, href, onClick } = model} - - - - {/if} - {/each} - +{#each narrowModel as model, i} + {#if hasComponent(model)} + {@const { component, props } = model} +
+ {#if typeof component === 'string'} + + {:else} + + {/if} +
+ {:else} + {@const { title, href, onClick } = model} + +
{title}
+
+ {/if} +
/
+ {#if trimmed && i === 0} + +
...
+
/
+ {/if} +{/each} diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss index 7df216f699..5ad27116fd 100644 --- a/packages/theme/styles/_colors.scss +++ b/packages/theme/styles/_colors.scss @@ -102,6 +102,13 @@ --theme-button-disabled: transparent; --theme-button-border: rgba(255, 255, 255, .09); + --theme-breadcrumb-default: rgba(255, 255, 255, 0); + --theme-breadcrumb-hovered: rgba(255, 255, 255, .08); + --theme-breadcrumb-pressed: rgba(255, 255, 255, .1); + --theme-button-icon-default: rgba(255, 255, 255, 0); + --theme-button-icon-hovered: rgba(255, 255, 255, .06); + --theme-button-icon-pressed: rgba(255, 255, 255, .1); + --theme-button-contrast-color: #000; --theme-button-contrast-enabled: rgba(255, 255, 255, .8); --theme-button-contrast-hovered: #fff; @@ -320,6 +327,13 @@ --theme-button-disabled: rgba(0, 0, 0, .08); --theme-button-border: rgba(0, 0, 0, .09); + --theme-breadcrumb-default: rgba(0, 0, 0, 0); + --theme-breadcrumb-hovered: rgba(0, 0, 0, .08); + --theme-breadcrumb-pressed: rgba(0, 0, 0, .1); + --theme-button-icon-default: rgba(0, 0, 0, 0); + --theme-button-icon-hovered: rgba(0, 0, 0, .06); + --theme-button-icon-pressed: rgba(0, 0, 0, .1); + --theme-button-contrast-color: #fff; --theme-button-contrast-enabled: rgba(0, 0, 0, .8); --theme-button-contrast-hovered: #000; diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index 2ba1e9dd96..86291e44b0 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -483,6 +483,7 @@ input.search { .ml-12 { margin-left: 3rem; } .ml-22 { margin-left: 5.5rem; } .ml-auto { margin-left: auto; } +.mr-0-5 { margin-right: .125rem; } .mr-1 { margin-right: .25rem; } .mr-1-5 { margin-right: .375rem; } .mr-2 { margin-right: .5rem; } diff --git a/packages/theme/styles/button.scss b/packages/theme/styles/button.scss index 222821b691..80a23ee1ea 100644 --- a/packages/theme/styles/button.scss +++ b/packages/theme/styles/button.scss @@ -343,4 +343,16 @@ width: 20px; } } + &:focus { z-index: 1; } + &.icon { + background-color: var(--theme-button-icon-default); + + .btn-icon { color: var(--theme-dark-color); } + + &:hover, &:focus, &.selected { background-color: var(--theme-button-icon-hovered); } + &:active { background-color: var(--theme-button-icon-pressed); } + &:hover, &:focus, &.selected, &:active { + .btn-icon { color: var(--theme-caption-color); } + } + } } diff --git a/packages/theme/styles/global.scss b/packages/theme/styles/global.scss index 971d6ab296..af9af58ea2 100644 --- a/packages/theme/styles/global.scss +++ b/packages/theme/styles/global.scss @@ -94,7 +94,7 @@ ::-webkit-scrollbar:horizontal { height: 6px; } -::-webkit-scrollbar-track, .panel-container .scroll .scroll::-webkit-scrollbar-track { +::-webkit-scrollbar-track, .panel-instance .scroll .scroll::-webkit-scrollbar-track { margin: 6px; // background-color: var(--scrollbar-bar-color); } diff --git a/packages/theme/styles/panel.scss b/packages/theme/styles/panel.scss index f1c9801715..8ba4d55833 100644 --- a/packages/theme/styles/panel.scss +++ b/packages/theme/styles/panel.scss @@ -77,54 +77,49 @@ .popupPanel { overflow: hidden; display: flex; - min-height: 0; + width: 100%; height: 100%; + min-width: 0; + min-height: 0; - &.rowContent { - width: 100%; - min-width: 0; - } &:not(.rowContent) { flex-direction: column; } - &.embedded { width: 100%; } - &:not(.embedded) { border-radius: .5rem; } .popupPanel-title { display: flex; flex-shrink: 0; justify-content: stretch; align-items: center; + padding: 0 1rem 0 1.25rem; + min-width: 0; + min-height: 3.25rem; + background-color: var(--theme-comp-header-color); + border-bottom: 1px solid var(--theme-divider-color); - &.row { - padding: .5rem .75rem; - width: 100%; - - &-top { margin: .5rem .75rem .125rem; } - &-bottom { margin: .5rem .75rem .5rem 1.25rem; } - } - &__bordered { - min-width: 0; - min-height: 3.25rem; - background-color: var(--theme-comp-header-color); - &:not(.embedded) { - border: 1px solid var(--theme-divider-color); - border-bottom: none; - border-radius: .5rem .5rem 0 0; - } - &.embedded { - border-bottom: 1px solid var(--theme-divider-color); - } - } &__content { + display: flex; + align-items: center; flex-grow: 1; - margin: 0 .75rem; + margin-right: .75rem; min-width: 0; min-height: 0; - &-container { - display: flex; - justify-content: stretch; - min-width: 0; - width: 100%; + .title { + padding: .125rem .375rem; + font-size: .8125rem; + color: var(--theme-content-color); + background-color: var(--theme-breadcrumb-default); + border-radius: .25rem; + + &:not(:last-child) { margin-right: .125rem; } + &:not(.disabled, .not-active) { + cursor: pointer; + + &:hover, &:focus { background-color: var(--theme-breadcrumb-hovered); } + &:active { background-color: var(--theme-breadcrumb-pressed); } + &:hover, &:focus, &:active { color: var(--theme-caption-color); } + } + &.disabled { color: var(--theme-dark-color); } + &.not-active { color: var(--theme-caption-color); } } } } @@ -138,13 +133,8 @@ height: 100%; background-color: var(--theme-panel-color); border: 1px solid var(--theme-divider-color); - &:not(.embedded) { - border-radius: 0 0 .5rem .5rem; - } - &.embedded { - border-top: none; - border-left: none; - } + border-top: none; + border-left: none; &.main { justify-content: stretch; diff --git a/packages/ui/src/components/ButtonGroup.svelte b/packages/ui/src/components/ButtonGroup.svelte new file mode 100644 index 0000000000..00333826f5 --- /dev/null +++ b/packages/ui/src/components/ButtonGroup.svelte @@ -0,0 +1,48 @@ + + + +{#each items as item} + {@const isSelect = selected === item.id} +
- {#if twoRows && !withoutTitle} -
- {/if} -
+
{#if $deviceInfo.isMobile}
- {#if moveUtils} -
- -
- {/if}
diff --git a/packages/ui/src/components/PanelInstance.svelte b/packages/ui/src/components/PanelInstance.svelte index 7872e4a6ce..770c8ee625 100644 --- a/packages/ui/src/components/PanelInstance.svelte +++ b/packages/ui/src/components/PanelInstance.svelte @@ -143,7 +143,6 @@
-
- -
+
{#if props.element !== 'content'}
{ if (separator === null) return - if (prevElement === null || start) prevElement = separator.previousElementSibling as HTMLElement - if (nextElement === null || start) nextElement = separator.nextElementSibling as HTMLElement + if ((prevElement === null || start) && separator) { + prevElement = separator.previousElementSibling as HTMLElement + } + if ((nextElement === null || start) && separator) { + nextElement = separator.nextElementSibling as HTMLElement + } if (separators && prevElement && separators[index].float !== undefined) { prevElement.setAttribute('data-float', separators[index].float ?? '') } @@ -447,7 +451,7 @@ } } const checkParent = (): void => { - if (parentElement === null) parentElement = separator.parentElement as HTMLElement + if (parentElement === null && separator) parentElement = separator.parentElement as HTMLElement if (parentElement && typeof float === 'string') parentElement.setAttribute('data-float', float) } diff --git a/packages/ui/src/components/icons/Close.svelte b/packages/ui/src/components/icons/Close.svelte index 30ae93d76f..43e7e89743 100644 --- a/packages/ui/src/components/icons/Close.svelte +++ b/packages/ui/src/components/icons/Close.svelte @@ -3,8 +3,8 @@ export let fill: string = 'currentColor' - + diff --git a/packages/ui/src/components/icons/Details.svelte b/packages/ui/src/components/icons/Details.svelte index 4e52bbb0d5..29e530364e 100644 --- a/packages/ui/src/components/icons/Details.svelte +++ b/packages/ui/src/components/icons/Details.svelte @@ -15,14 +15,22 @@ --> - - - + + {#if filled} + + {:else} + + {/if} diff --git a/packages/ui/src/components/icons/DetailsFilled.svelte b/packages/ui/src/components/icons/DetailsFilled.svelte index 4920b7de4f..bf6e9fe47c 100644 --- a/packages/ui/src/components/icons/DetailsFilled.svelte +++ b/packages/ui/src/components/icons/DetailsFilled.svelte @@ -18,10 +18,10 @@ const fill: string = 'currentColor' - + diff --git a/packages/ui/src/components/icons/Mixin.svelte b/packages/ui/src/components/icons/Mixin.svelte index 56da0a6849..b82e96d16e 100644 --- a/packages/ui/src/components/icons/Mixin.svelte +++ b/packages/ui/src/components/icons/Mixin.svelte @@ -19,14 +19,20 @@ const fill: string = 'currentColor' - + diff --git a/packages/ui/src/components/internal/Clock.svelte b/packages/ui/src/components/internal/Clock.svelte index 1f8d879577..0f8de565c8 100644 --- a/packages/ui/src/components/internal/Clock.svelte +++ b/packages/ui/src/components/internal/Clock.svelte @@ -33,7 +33,7 @@ }) }} > - {getTimeZoneName()}   + {#if getTimeZoneName() !== ''}{getTimeZoneName()}  {/if} {hours} : {minutes} diff --git a/packages/ui/src/components/internal/ClockPopup.svelte b/packages/ui/src/components/internal/ClockPopup.svelte index 541233c251..bfe524ce54 100644 --- a/packages/ui/src/components/internal/ClockPopup.svelte +++ b/packages/ui/src/components/internal/ClockPopup.svelte @@ -84,10 +84,12 @@ {#each selectedTZ as selected, i}
- - changeTimeZone(ev, i)}> - {selected === '' ? '--' : convertTimeZone(selected).short} - + {#if selected !== ''} + + changeTimeZone(ev, i)}> + {convertTimeZone(selected).short} + + {/if}
{/each}
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 8a8aa78ab9..7a1a1707ac 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -33,6 +33,7 @@ export type { PopupPositionElement, ButtonKind, ButtonSize, + ButtonItem, IconSize, TabItem, DeviceOptions, @@ -40,7 +41,8 @@ export type { SeparatedItem, DefSeparators, SeparatedElement, - TimeZone + TimeZone, + MouseTargetEvent } from './types' export { themeStore } from '@hcengineering/theme' @@ -50,6 +52,7 @@ export { getCurrentLocation, locationToUrl, navigate, location, setLocationStora export { default as EditBox } from './components/EditBox.svelte' export { default as Label } from './components/Label.svelte' export { default as Button } from './components/Button.svelte' +export { default as ButtonGroup } from './components/ButtonGroup.svelte' export { default as Status } from './components/Status.svelte' export { default as Component } from './components/Component.svelte' export { default as Icon } from './components/Icon.svelte' diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index 2f8d392e63..e796b488be 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -141,6 +141,7 @@ export type ButtonKind = | 'negative' | 'regular' | 'ghost' + | 'icon' | 'no-border' | 'link' | 'link-bordered' @@ -170,6 +171,16 @@ export type EditStyle = | 'ghost' | 'default-large' | 'ghost-large' + +export interface ButtonItem { + id: string + icon?: Asset | AnySvelteComponent | ComponentType + label?: IntlString + labelParams?: Record + disabled?: boolean + showTooltip?: LabelAndProps +} + export interface PopupPositionElement { getBoundingClientRect: () => DOMRect position?: { @@ -241,6 +252,7 @@ export interface IconProps { icon?: number size?: IconSize fill?: string + filled?: boolean } export function getIconSize2x (size: IconSize): IconSize { @@ -484,3 +496,8 @@ export interface TimeZone { short: string offset?: number } + +/** + * @public + */ +export type MouseTargetEvent = MouseEvent & { currentTarget: EventTarget & HTMLElement } diff --git a/plugins/board-resources/src/components/EditCard.svelte b/plugins/board-resources/src/components/EditCard.svelte index ecc36aff31..ed7ac2e105 100644 --- a/plugins/board-resources/src/components/EditCard.svelte +++ b/plugins/board-resources/src/components/EditCard.svelte @@ -32,13 +32,7 @@ Label, showPopup } from '@hcengineering/ui' - import { - ContextMenu, - DocAttributeBar, - invokeAction, - ParentsNavigator, - UpDownNavigator - } from '@hcengineering/view-resources' + import { ContextMenu, DocAttributeBar, invokeAction, ParentsNavigator } from '@hcengineering/view-resources' import { createEventDispatcher, onMount } from 'svelte' import board from '../plugin' import { getCardActions } from '../utils/CardActionUtils' @@ -112,18 +106,12 @@ {#if object !== undefined} - dispatch('close')} - > - - + dispatch('close')}> + + {#if object?.title} +
{object?.title}
+ {/if}
diff --git a/plugins/chunter-resources/src/components/ChannelViewPanel.svelte b/plugins/chunter-resources/src/components/ChannelViewPanel.svelte index fc12b6a724..71c2f1e3e4 100644 --- a/plugins/chunter-resources/src/components/ChannelViewPanel.svelte +++ b/plugins/chunter-resources/src/components/ChannelViewPanel.svelte @@ -20,7 +20,7 @@ export let _id: Ref -
+
diff --git a/plugins/chunter-resources/src/components/CommentPanel.svelte b/plugins/chunter-resources/src/components/CommentPanel.svelte index a0dbdf562f..06a54ac302 100644 --- a/plugins/chunter-resources/src/components/CommentPanel.svelte +++ b/plugins/chunter-resources/src/components/CommentPanel.svelte @@ -21,7 +21,6 @@ import { Class, Doc, Ref, getCurrentAccount } from '@hcengineering/core' export let _id: Ref | undefined - export let embedded: boolean = true const client = getClient() const hierarchy = client.getHierarchy() @@ -91,5 +90,5 @@ {#if loading} {:else if component && attachedDocId && attachedDocClass} - + {/if} diff --git a/plugins/chunter-resources/src/components/EditChannel.svelte b/plugins/chunter-resources/src/components/EditChannel.svelte index fe8b1be205..685691d2b4 100644 --- a/plugins/chunter-resources/src/components/EditChannel.svelte +++ b/plugins/chunter-resources/src/components/EditChannel.svelte @@ -18,13 +18,12 @@ import type { Class, Ref } from '@hcengineering/core' import { createQuery, getClient } from '@hcengineering/presentation' import { SpaceMembers } from '@hcengineering/contact-resources' - import { Icon, Label, Panel, Scroller } from '@hcengineering/ui' + import { Label, Panel, Scroller } from '@hcengineering/ui' import { createEventDispatcher } from 'svelte' import chunter from '../plugin' import EditChannelDescriptionTab from './EditChannelDescriptionTab.svelte' import EditChannelSettingsTab from './EditChannelSettingsTab.svelte' - import Lock from './icons/Lock.svelte' export let _id: Ref export let _class: Ref> @@ -54,20 +53,12 @@ {#if clazz && channel} {#if _class === chunter.class.DirectMessage} - + {:else} -
-
- {#if clazz.icon}{/if} -
-
- - - {channel.name} - - {channel.description} -
-
+ + + {channel.name} + {/if} {/if}
diff --git a/plugins/contact-resources/src/components/ChannelPanel.svelte b/plugins/contact-resources/src/components/ChannelPanel.svelte index aeb8c8a8e6..deb72fb035 100644 --- a/plugins/contact-resources/src/components/ChannelPanel.svelte +++ b/plugins/contact-resources/src/components/ChannelPanel.svelte @@ -21,7 +21,6 @@ export let _id: Ref export let _class: Ref> - export let embedded = false const client = getClient() @@ -43,9 +42,6 @@ {#await getPresenter(channel) then presenter} {#if presenter} - + {/if} {/await} diff --git a/plugins/gmail-resources/src/components/NewMessages.svelte b/plugins/gmail-resources/src/components/NewMessages.svelte index 81658ae672..256e730141 100644 --- a/plugins/gmail-resources/src/components/NewMessages.svelte +++ b/plugins/gmail-resources/src/components/NewMessages.svelte @@ -27,7 +27,6 @@ Button, EditBox, eventToHTMLElement, - Icon, IconAttachment, Label, Panel, @@ -236,12 +235,7 @@ }} > -
-
-
- Email -
-
+
Email
diff --git a/plugins/hr-resources/src/components/Structure.svelte b/plugins/hr-resources/src/components/Structure.svelte index fcd8b5a7ec..c6fee0e563 100644 --- a/plugins/hr-resources/src/components/Structure.svelte +++ b/plugins/hr-resources/src/components/Structure.svelte @@ -17,16 +17,7 @@ import { DocumentQuery, Ref, WithLookup } from '@hcengineering/core' import type { Department, Staff } from '@hcengineering/hr' import { createQuery } from '@hcengineering/presentation' - import { - Button, - deviceOptionsStore as deviceInfo, - eventToHTMLElement, - Label, - Scroller, - SearchEdit, - showPopup, - IconAdd - } from '@hcengineering/ui' + import { Button, eventToHTMLElement, Label, Scroller, SearchEdit, showPopup, IconAdd } from '@hcengineering/ui' import hr from '../plugin' import CreateDepartment from './CreateDepartment.svelte' import DepartmentCard from './DepartmentCard.svelte' @@ -75,8 +66,6 @@ spaceMembers.query(hr.mixin.Staff, {}, (res) => { allEmployees = res }) - - $: twoRows = $deviceInfo.twoRows
diff --git a/plugins/lead-resources/src/components/EditFunnel.svelte b/plugins/lead-resources/src/components/EditFunnel.svelte index 1df85264f1..fd98cf8826 100644 --- a/plugins/lead-resources/src/components/EditFunnel.svelte +++ b/plugins/lead-resources/src/components/EditFunnel.svelte @@ -38,7 +38,6 @@ const client = getClient() const query = createQuery() - const clazz = client.getHierarchy().getClass(lead.class.Funnel) function updateObject (_id: Ref): void { query.query(lead.class.Funnel, { _id }, (result) => { @@ -58,8 +57,6 @@ {#if object} {:else if component && _id && _class} - select(undefined)} /> + select(undefined)} /> {/if}
diff --git a/plugins/recruit-resources/src/components/EditVacancy.svelte b/plugins/recruit-resources/src/components/EditVacancy.svelte index 6daad0316f..7ef6f75d73 100644 --- a/plugins/recruit-resources/src/components/EditVacancy.svelte +++ b/plugins/recruit-resources/src/components/EditVacancy.svelte @@ -23,14 +23,22 @@ import { Vacancy } from '@hcengineering/recruit' import tracker from '@hcengineering/tracker' import view from '@hcengineering/view' - import { Button, Component, EditBox, IconMixin, IconMoreH, Label, LinkWrapper, showPopup } from '@hcengineering/ui' - import { ContextMenu, DocAttributeBar } from '@hcengineering/view-resources' + import { + Button, + Component, + EditBox, + IconMixin, + IconMoreH, + Label, + showPopup, + deviceOptionsStore as deviceInfo + } from '@hcengineering/ui' + import { ContextMenu, DocAttributeBar, DocNavLink } from '@hcengineering/view-resources' import { createEventDispatcher, onDestroy } from 'svelte' import recruit from '../plugin' import VacancyApplications from './VacancyApplications.svelte' export let _id: Ref - export let embedded = false let object: Required let rawName: string = '' @@ -50,7 +58,7 @@ const client = getClient() const query = createQuery() - const clazz = client.getHierarchy().getClass(recruit.class.Vacancy) + // const clazz = client.getHierarchy().getClass(recruit.class.Vacancy) function updateObject (_id: Ref): void { if (lastId !== _id) { @@ -125,26 +133,19 @@ {#if object} { dispatch('close') }} > - - {#if object.description} -
- - - -
- {/if} + + +
{object.name}
+
@@ -159,7 +160,7 @@ placeholder={recruit.string.VacancyPlaceholder} kind={'large-style'} focusable - autoFocus={!embedded} + autoFocus={!$deviceInfo.isMobile} on:blur={save} /> @@ -170,10 +171,11 @@ {/if} -