diff --git a/models/contact/src/plugin.ts b/models/contact/src/plugin.ts index 293ea6ecfd..f02943278c 100644 --- a/models/contact/src/plugin.ts +++ b/models/contact/src/plugin.ts @@ -29,7 +29,6 @@ export default mergeIds(contactId, contact, { CreatePerson: '' as AnyComponent, EditPerson: '' as AnyComponent, EditOrganization: '' as AnyComponent, - CreateOrganization: '' as AnyComponent, CreatePersons: '' as AnyComponent, CreateOrganizations: '' as AnyComponent, OrganizationPresenter: '' as AnyComponent, diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index f2285acd4c..8574079be7 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -390,6 +390,42 @@ export function createModel (builder: Builder): void { } }) + createAction(builder, { + action: view.actionImpl.ShowPopup, + actionProps: { + component: recruit.component.CreateVacancy, + element: 'top' + }, + label: recruit.string.CreateVacancy, + icon: recruit.icon.Create, + keyBinding: [], + input: 'none', + category: recruit.category.Recruit, + target: core.class.Doc, + context: { + mode: ['workbench', 'browser'], + application: recruit.app.Recruit + } + }) + + createAction(builder, { + action: view.actionImpl.ShowPopup, + actionProps: { + component: recruit.component.CreateApplication, + element: 'top' + }, + label: recruit.string.CreateApplication, + icon: recruit.icon.Create, + keyBinding: [], + input: 'none', + category: recruit.category.Recruit, + target: core.class.Doc, + context: { + mode: ['workbench', 'browser'], + application: recruit.app.Recruit + } + }) + builder.createDoc( task.class.KanbanTemplateSpace, core.space.Model, @@ -438,6 +474,17 @@ export function createModel (builder: Builder): void { createReviewModel(builder) // createAction(builder, { ...viewTemplates.open, target: recruit.class.Vacancy, context: { mode: ['browser', 'context'] } }) + + createAction(builder, { + ...viewTemplates.open, + target: recruit.class.Vacancy, + context: { mode: ['browser', 'context'] }, + action: workbench.actionImpl.Navigate, + actionProps: { + mode: 'space' + } + }) + createAction(builder, { ...viewTemplates.open, target: recruit.class.Applicant, diff --git a/models/recruit/src/plugin.ts b/models/recruit/src/plugin.ts index 27c8c89e50..8d307eaa68 100644 --- a/models/recruit/src/plugin.ts +++ b/models/recruit/src/plugin.ts @@ -58,7 +58,6 @@ export default mergeIds(recruitId, recruit, { ReviewValidator: '' as Resource<(doc: T, client: Client) => Promise> }, component: { - CreateVacancy: '' as AnyComponent, CreateApplication: '' as AnyComponent, KanbanCard: '' as AnyComponent, ApplicationPresenter: '' as AnyComponent, @@ -68,7 +67,6 @@ export default mergeIds(recruitId, recruit, { TemplatesIcon: '' as AnyComponent, Applications: '' as AnyComponent, Candidates: '' as AnyComponent, - CreateCandidate: '' as AnyComponent, SkillsView: '' as AnyComponent, Vacancies: '' as AnyComponent, diff --git a/packages/presentation/src/components/Avatar.svelte b/packages/presentation/src/components/Avatar.svelte index 1def12bb13..8945d86e46 100644 --- a/packages/presentation/src/components/Avatar.svelte +++ b/packages/presentation/src/components/Avatar.svelte @@ -13,13 +13,15 @@ // limitations under the License. --> + + + +
+
+
+ +
+ + {#if create !== undefined} + +
+
+
+ + + {@const obj = objects[item]} + + + +
+
+
+ + diff --git a/packages/presentation/src/components/SpaceSelect.svelte b/packages/presentation/src/components/SpaceSelect.svelte index 66de9ad61e..c432350d38 100644 --- a/packages/presentation/src/components/SpaceSelect.svelte +++ b/packages/presentation/src/components/SpaceSelect.svelte @@ -16,7 +16,17 @@ import type { IntlString } from '@anticrm/platform' import { getClient } from '../utils' - import { Label, showPopup, IconFolder, Button, eventToHTMLElement, getFocusManager } from '@anticrm/ui' + import { + Label, + showPopup, + IconFolder, + Button, + eventToHTMLElement, + getFocusManager, + AnyComponent, + Tooltip, + TooltipAlignment + } from '@anticrm/ui' import SpacesPopup from './SpacesPopup.svelte' import type { Ref, Class, Space, DocumentQuery } from '@anticrm/core' @@ -27,6 +37,13 @@ export let value: Ref | undefined export let focusIndex = -1 export let focus = false + export let create: + | { + component: AnyComponent + label: IntlString + } + | undefined = undefined + export let labelDirection: TooltipAlignment | undefined = undefined let selected: Space | undefined @@ -40,22 +57,36 @@ $: updateSelected(value) - + + + diff --git a/packages/presentation/src/components/SpaceSelector.svelte b/packages/presentation/src/components/SpaceSelector.svelte new file mode 100644 index 0000000000..90287fe074 --- /dev/null +++ b/packages/presentation/src/components/SpaceSelector.svelte @@ -0,0 +1,34 @@ + + + + diff --git a/packages/presentation/src/components/SpacesPopup.svelte b/packages/presentation/src/components/SpacesPopup.svelte index d85dc4de44..d7f6c7cbb8 100644 --- a/packages/presentation/src/components/SpacesPopup.svelte +++ b/packages/presentation/src/components/SpacesPopup.svelte @@ -13,94 +13,43 @@ // limitations under the License. --> -
-
- {}} on:change /> -
-
-
- handleSelection(evt, evt.detail)} - > - - {@const space = objects[item]} - - - - -
-
-
+ + + + + diff --git a/packages/presentation/src/components/UserBox.svelte b/packages/presentation/src/components/UserBox.svelte index 84fa3c0db8..169bacae12 100644 --- a/packages/presentation/src/components/UserBox.svelte +++ b/packages/presentation/src/components/UserBox.svelte @@ -15,10 +15,20 @@ -->
- +
{#if subtitle}
{subtitle}
{/if}
{formatName(value.name)}
diff --git a/packages/presentation/src/components/UsersPopup.svelte b/packages/presentation/src/components/UsersPopup.svelte index a0831eb313..bb89af427a 100644 --- a/packages/presentation/src/components/UsersPopup.svelte +++ b/packages/presentation/src/components/UsersPopup.svelte @@ -13,19 +13,16 @@ // limitations under the License. --> -
-
- -
-
-
- - - {@const person = objects[item]} - - - + + +
+
-
-
- - + + diff --git a/packages/presentation/src/components/icons/Avatar.svelte b/packages/presentation/src/components/icons/Avatar.svelte index 374570853b..a5f76e1e5c 100644 --- a/packages/presentation/src/components/icons/Avatar.svelte +++ b/packages/presentation/src/components/icons/Avatar.svelte @@ -14,7 +14,9 @@ // limitations under the License. --> diff --git a/packages/presentation/src/index.ts b/packages/presentation/src/index.ts index 18c815b016..003cd37d92 100644 --- a/packages/presentation/src/index.ts +++ b/packages/presentation/src/index.ts @@ -21,17 +21,18 @@ export { default as AttributeBarEditor } from './components/AttributeBarEditor.s export { default as AttributeEditor } from './components/AttributeEditor.svelte' export { default as AttributesBar } from './components/AttributesBar.svelte' export { default as Avatar } from './components/Avatar.svelte' -export { default as CombineAvatars } from './components/CombineAvatars.svelte' export { default as Card } from './components/Card.svelte' +export { default as CombineAvatars } from './components/CombineAvatars.svelte' export { default as EditableAvatar } from './components/EditableAvatar.svelte' export { default as Members } from './components/Members.svelte' export { default as MessageBox } from './components/MessageBox.svelte' export { default as MessageViewer } from './components/MessageViewer.svelte' export { default as PDFViewer } from './components/PDFViewer.svelte' export { default as SpaceCreateCard } from './components/SpaceCreateCard.svelte' -export { default as SpacesMultiPopup } from './components/SpacesMultiPopup.svelte' export { default as SpaceMultiBoxList } from './components/SpaceMultiBoxList.svelte' export { default as SpaceSelect } from './components/SpaceSelect.svelte' +export { default as SpaceSelector } from './components/SpaceSelector.svelte' +export { default as SpacesMultiPopup } from './components/SpacesMultiPopup.svelte' export { default as UserBox } from './components/UserBox.svelte' export { default as UserBoxList } from './components/UserBoxList.svelte' export { default as UserInfo } from './components/UserInfo.svelte' diff --git a/packages/ui/src/components/Dropdown.svelte b/packages/ui/src/components/Dropdown.svelte index 0c6f29dd89..235b464ae5 100644 --- a/packages/ui/src/components/Dropdown.svelte +++ b/packages/ui/src/components/Dropdown.svelte @@ -15,6 +15,7 @@
- {/each} + + + {@const item = objects[idx]} + + + +
diff --git a/packages/ui/src/components/DropdownPopup.svelte b/packages/ui/src/components/DropdownPopup.svelte index 230fe1c46c..d64a910a38 100644 --- a/packages/ui/src/components/DropdownPopup.svelte +++ b/packages/ui/src/components/DropdownPopup.svelte @@ -20,6 +20,7 @@ import type { AnySvelteComponent, ListItem } from '../types' import plugin from '../plugin' import Icon from './Icon.svelte' + import ListView from './ListView.svelte' export let icon: Asset | AnySvelteComponent export let placeholder: IntlString = plugin.string.SearchDots @@ -33,25 +34,50 @@ }) } const dispatch = createEventDispatcher() - const btns: HTMLButtonElement[] = [] let searchInput: HTMLInputElement - const keyDown = (ev: KeyboardEvent, n: number): void => { - if (ev.key === 'ArrowDown') { - if (n === btns.length - 1) btns[0].focus() - else btns[n + 1].focus() - } else if (ev.key === 'ArrowUp') { - if (n === 0) btns[btns.length - 1].focus() - else btns[n - 1].focus() - } else searchInput.focus() - } - onMount(() => { if (searchInput) searchInput.focus() }) + + let selection = 0 + let list: ListView + + $: objects = items.filter((x) => x.label.toLowerCase().includes(search.toLowerCase())) + + async function handleSelection (evt: Event | undefined, selection: number): Promise { + const item = objects[selection] + + if (item.isSelectable ?? true) { + dispatch('close', item) + } + } + + function onKeydown (key: KeyboardEvent): void { + if (key.code === 'ArrowUp') { + key.stopPropagation() + key.preventDefault() + list.select(selection - 1) + } + if (key.code === 'ArrowDown') { + key.stopPropagation() + key.preventDefault() + list.select(selection + 1) + } + if (key.code === 'Enter') { + key.preventDefault() + key.stopPropagation() + handleSelection(key, selection) + } + if (key.code === 'Escape') { + key.preventDefault() + key.stopPropagation() + dispatch('close') + } + } -
+
- {#each items.filter((x) => x.label.toLowerCase().includes(search.toLowerCase())) as item, i} - - - {/each} + + + {@const item = objects[idx]} + + + +
diff --git a/packages/ui/src/components/Icon.svelte b/packages/ui/src/components/Icon.svelte index 463ba38d24..0e7bab4433 100644 --- a/packages/ui/src/components/Icon.svelte +++ b/packages/ui/src/components/Icon.svelte @@ -14,10 +14,10 @@ -->
{ + clearTimeout(toHandler) + }} on:mousemove={() => { - if (!shown) showTooltip(label, triggerHTML, direction, component, props, anchor, onUpdate) + if (!shown) { + clearTimeout(toHandler) + toHandler = setTimeout(() => { + showTooltip(label, triggerHTML, direction, component, props, anchor, onUpdate) + }, 250) + } }} > diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index fddb1d6ea4..769b830d73 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -32,7 +32,8 @@ export type { PopupAlignment, PopupPositionElement, ButtonKind, - ButtonSize + ButtonSize, + IconSize } from './types' // export { applicationShortcutKey } from './utils' export { getCurrentLocation, locationToUrl, navigate, location } from './location' diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index ae4cbd01da..3d6a4afe9a 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -80,6 +80,8 @@ export type TooltipAlignment = 'top' | 'bottom' | 'left' | 'right' export type VerticalAlignment = 'top' | 'bottom' export type HorizontalAlignment = 'left' | 'right' +export type IconSize = 'inline' | 'tiny' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'full' + export interface LabelAndProps { label: IntlString | undefined element: HTMLElement | undefined diff --git a/plugins/activity-assets/src/tsdoc-metadata.json b/plugins/activity-assets/src/tsdoc-metadata.json index 1de76b30c9..83b5aaf730 100644 --- a/plugins/activity-assets/src/tsdoc-metadata.json +++ b/plugins/activity-assets/src/tsdoc-metadata.json @@ -1,11 +1,11 @@ -// This file is read by tools that parse documentation comments conforming to the TSDoc standard. -// It should be published with your NPM package. It should not be tracked by Git. -{ - "tsdocVersion": "0.12", - "toolPackages": [ - { - "packageName": "@microsoft/api-extractor", - "packageVersion": "7.23.0" - } - ] -} +// This file is read by tools that parse documentation comments conforming to the TSDoc standard. +// It should be published with your NPM package. It should not be tracked by Git. +{ + "tsdocVersion": "0.12", + "toolPackages": [ + { + "packageName": "@microsoft/api-extractor", + "packageVersion": "7.23.0" + } + ] +} diff --git a/plugins/activity-resources/src/components/Activity.svelte b/plugins/activity-resources/src/components/Activity.svelte index 57daeb2de2..8a614f9b53 100644 --- a/plugins/activity-resources/src/components/Activity.svelte +++ b/plugins/activity-resources/src/components/Activity.svelte @@ -73,7 +73,7 @@
{#if txes} - {#each txes as tx (tx.tx._id)} + {#each txes as tx} {/each} diff --git a/plugins/board-resources/src/components/CreateCard.svelte b/plugins/board-resources/src/components/CreateCard.svelte index 30ae6eb117..d00c3c2b6b 100644 --- a/plugins/board-resources/src/components/CreateCard.svelte +++ b/plugins/board-resources/src/components/CreateCard.svelte @@ -18,6 +18,7 @@ import { AttachedData, generateId, Ref, SortingOrder, Space } from '@anticrm/core' import { OK, Status } from '@anticrm/platform' import { Card, getClient } from '@anticrm/presentation' + import SpaceSelector from '@anticrm/presentation/src/components/SpaceSelector.svelte' import task, { calcRank } from '@anticrm/task' import { EditBox, Grid, Status as StatusControl } from '@anticrm/ui' import { createEventDispatcher } from 'svelte' @@ -77,14 +78,13 @@ label={board.string.CreateCard} okAction={createCard} canSave={title.length > 0} - spaceClass={board.class.Board} - spaceLabel={board.string.BoardName} - spacePlaceholder={board.string.SelectBoard} - bind:space={_space} on:close={() => { dispatch('close') }} > + + + 0 && participants.length > 0} - {space} on:close={() => { dispatch('close') }} diff --git a/plugins/calendar-resources/src/components/EditReminder.svelte b/plugins/calendar-resources/src/components/EditReminder.svelte index c8aa2046e2..9fee0f16e7 100644 --- a/plugins/calendar-resources/src/components/EditReminder.svelte +++ b/plugins/calendar-resources/src/components/EditReminder.svelte @@ -57,7 +57,6 @@ okAction={saveReminder} okLabel={presentation.string.Save} canSave={title.trim().length > 0 && startDate > 0 && participants.length > 0} - {space} on:close={() => { dispatch('close') }} diff --git a/plugins/contact-resources/src/components/ChannelsDropdown.svelte b/plugins/contact-resources/src/components/ChannelsDropdown.svelte index 447468d18f..6da1b53216 100644 --- a/plugins/contact-resources/src/components/ChannelsDropdown.svelte +++ b/plugins/contact-resources/src/components/ChannelsDropdown.svelte @@ -121,7 +121,6 @@ let actions: Action[] = [] let addBtn: HTMLButtonElement const btns: HTMLButtonElement[] = [] - let anchor: HTMLElement let opened: number | undefined = undefined function filterUndefined (channels: AttachedData[]): AttachedData[] { @@ -215,7 +214,6 @@
[] = [] @@ -65,7 +65,6 @@ label={contact.string.CreateOrganization} okAction={createOrganization} canSave={object.name.length > 0} - space={contact.space.Contacts} on:close={() => { dispatch('close') }} diff --git a/plugins/contact-resources/src/components/CreatePerson.svelte b/plugins/contact-resources/src/components/CreatePerson.svelte index 07fa97700b..b833faba17 100644 --- a/plugins/contact-resources/src/components/CreatePerson.svelte +++ b/plugins/contact-resources/src/components/CreatePerson.svelte @@ -88,7 +88,6 @@ label={contact.string.CreatePerson} okAction={createPerson} canSave={firstName.length > 0 && lastName.length > 0 && matches.length === 0} - bind:space={contact.space.Contacts} on:close={() => { dispatch('close') }} diff --git a/plugins/contact-resources/src/components/OrganizationSelector.svelte b/plugins/contact-resources/src/components/OrganizationSelector.svelte index 27daa28e6f..6631e28d37 100644 --- a/plugins/contact-resources/src/components/OrganizationSelector.svelte +++ b/plugins/contact-resources/src/components/OrganizationSelector.svelte @@ -17,8 +17,8 @@ import { Ref } from '@anticrm/core' import { IntlString } from '@anticrm/platform' import { createQuery } from '@anticrm/presentation' + import type { ButtonKind, ButtonSize, TooltipAlignment } from '@anticrm/ui' import { Dropdown } from '@anticrm/ui' - import type { TooltipAlignment, ButtonKind, ButtonSize } from '@anticrm/ui' import { ListItem } from '@anticrm/ui/src/types' import { createEventDispatcher } from 'svelte' import contact from '../plugin' @@ -32,6 +32,7 @@ export let justify: 'left' | 'center' = 'center' export let width: string | undefined = undefined export let labelDirection: TooltipAlignment | undefined = undefined + export let focusIndex = -1 const query = createQuery() const dispatch = createEventDispatcher() @@ -69,6 +70,7 @@ > }, component: { - SocialEditor: '' as AnyComponent + SocialEditor: '' as AnyComponent, + CreateOrganization: '' as AnyComponent }, channelProvider: { Email: '' as Ref, @@ -197,7 +198,8 @@ const contactPlugin = plugin(contactId, { }, string: { PersonAlreadyExists: '' as IntlString, - Person: '' as IntlString + Person: '' as IntlString, + CreateOrganization: '' as IntlString } }) diff --git a/plugins/inventory-resources/src/components/CreateCategory.svelte b/plugins/inventory-resources/src/components/CreateCategory.svelte index 5cf6c7a510..e450318247 100644 --- a/plugins/inventory-resources/src/components/CreateCategory.svelte +++ b/plugins/inventory-resources/src/components/CreateCategory.svelte @@ -58,7 +58,6 @@ 0} on:close={() => { dispatch('close') diff --git a/plugins/inventory-resources/src/components/CreateProduct.svelte b/plugins/inventory-resources/src/components/CreateProduct.svelte index 119ea6e535..fc93460197 100644 --- a/plugins/inventory-resources/src/components/CreateProduct.svelte +++ b/plugins/inventory-resources/src/components/CreateProduct.svelte @@ -72,7 +72,6 @@ label={inventory.string.CreateProduct} okAction={create} canSave={doc.name.trim().length > 0 && doc.attachedTo.length > 0} - bind:space={doc.space} on:close={() => { dispatch('close') }} diff --git a/plugins/inventory-resources/src/components/CreateVariant.svelte b/plugins/inventory-resources/src/components/CreateVariant.svelte index 8581f85afa..052abc5f77 100644 --- a/plugins/inventory-resources/src/components/CreateVariant.svelte +++ b/plugins/inventory-resources/src/components/CreateVariant.svelte @@ -60,7 +60,6 @@ label={inventory.string.CreateVariant} okAction={create} canSave={doc.name.trim().length > 0 && doc.sku.trim().length > 0} - bind:space={doc.space} on:close={() => { dispatch('close') }} diff --git a/plugins/lead-resources/src/components/CreateCustomer.svelte b/plugins/lead-resources/src/components/CreateCustomer.svelte index 32cee95db1..259299c339 100644 --- a/plugins/lead-resources/src/components/CreateCustomer.svelte +++ b/plugins/lead-resources/src/components/CreateCustomer.svelte @@ -169,7 +169,6 @@ label={lead.string.CreateCustomer} okAction={createCustomer} {canSave} - space={contact.space.Contacts} on:close={() => { dispatch('close') }} diff --git a/plugins/lead-resources/src/components/CreateLead.svelte b/plugins/lead-resources/src/components/CreateLead.svelte index 3b98c65ae8..658cc92366 100644 --- a/plugins/lead-resources/src/components/CreateLead.svelte +++ b/plugins/lead-resources/src/components/CreateLead.svelte @@ -18,7 +18,7 @@ import { AttachedData, generateId, Ref, SortingOrder, Space } from '@anticrm/core' import type { Customer, Lead } from '@anticrm/lead' import { OK, Status } from '@anticrm/platform' - import { Card, getClient, UserBox } from '@anticrm/presentation' + import { Card, getClient, SpaceSelector, UserBox } from '@anticrm/presentation' import task, { calcRank } from '@anticrm/task' import { EditBox, Status as StatusControl } from '@anticrm/ui' import { createEventDispatcher } from 'svelte' @@ -90,14 +90,13 @@ label={lead.string.CreateLead} okAction={createLead} canSave={title.length > 0 && customer !== null} - spaceClass={lead.class.Funnel} - spaceLabel={lead.string.FunnelName} - spacePlaceholder={lead.string.SelectFunnel} - bind:space={_space} on:close={() => { dispatch('close') }} > + + + [] = [] + $: existingApplicationsQuery.query( + recruit.class.Applicant, + { + space: doc.space + }, + (result) => { + existingApplicants = result.map((it) => it.attachedTo) + }, + { + projection: { + _id: 1, + attachedTo: 1 + } + } + ) @@ -174,27 +192,37 @@ label={recruit.string.CreateApplication} okAction={createApplication} canSave={status.severity === Severity.OK} - spaceClass={recruit.class.Vacancy} - spaceQuery={{ archived: false }} - spaceLabel={recruit.string.Vacancy} - spacePlaceholder={recruit.string.SelectVacancy} createMore={false} - bind:space={doc.space} on:close={() => { dispatch('close') }} > + + + {#if !preserveCandidate} {/if} 0 && lastName.length > 0 && matches.length === 0} - space={contact.space.Contacts} on:close={() => { dispatch('close') }} diff --git a/plugins/recruit-resources/src/components/CreateVacancy.svelte b/plugins/recruit-resources/src/components/CreateVacancy.svelte index c571060a43..c9bf21bcd9 100644 --- a/plugins/recruit-resources/src/components/CreateVacancy.svelte +++ b/plugins/recruit-resources/src/components/CreateVacancy.svelte @@ -13,14 +13,14 @@ // limitations under the License. --> +
-
- + { templateId = evt.detail diff --git a/plugins/recruit-resources/src/components/review/CreateOpinion.svelte b/plugins/recruit-resources/src/components/review/CreateOpinion.svelte index fb7a13602e..dd6f8221d8 100644 --- a/plugins/recruit-resources/src/components/review/CreateOpinion.svelte +++ b/plugins/recruit-resources/src/components/review/CreateOpinion.svelte @@ -83,7 +83,6 @@ label={recruit.string.CreateOpinion} okAction={createOpinion} canSave={(doc.value ?? '').trim().length > 0} - bind:space={doc.space} on:close={() => { dispatch('close') }} diff --git a/plugins/recruit-resources/src/components/review/EditOpinion.svelte b/plugins/recruit-resources/src/components/review/EditOpinion.svelte index 5fefe0c1aa..39d55595a9 100644 --- a/plugins/recruit-resources/src/components/review/EditOpinion.svelte +++ b/plugins/recruit-resources/src/components/review/EditOpinion.svelte @@ -62,7 +62,6 @@ label={recruit.string.Opinion} okAction={editOpinion} canSave={value.length > 0} - space={item.space} on:close={() => { dispatch('close') }} diff --git a/plugins/recruit-resources/src/plugin.ts b/plugins/recruit-resources/src/plugin.ts index 452208bd02..ec130ad3cf 100644 --- a/plugins/recruit-resources/src/plugin.ts +++ b/plugins/recruit-resources/src/plugin.ts @@ -51,6 +51,7 @@ export default mergeIds(recruitId, recruit, { AssignRecruiter: '' as IntlString, Recruiters: '' as IntlString, UnAssignRecruiter: '' as IntlString, + UnAssignCompany: '' as IntlString, Create: '' as IntlString, Applications: '' as IntlString, ThisVacancyIsPrivate: '' as IntlString, @@ -118,6 +119,8 @@ export default mergeIds(recruitId, recruit, { VacancyCountPresenter: '' as AnyComponent, OpinionsPresenter: '' as AnyComponent, VacancyModifiedPresenter: '' as AnyComponent, - EditReviewCategory: '' as AnyComponent + EditReviewCategory: '' as AnyComponent, + CreateVacancy: '' as AnyComponent, + CreateCandidate: '' as AnyComponent } }) diff --git a/plugins/tags-resources/src/components/CreateTagElement.svelte b/plugins/tags-resources/src/components/CreateTagElement.svelte index 24638c02f8..9b118f38dc 100644 --- a/plugins/tags-resources/src/components/CreateTagElement.svelte +++ b/plugins/tags-resources/src/components/CreateTagElement.svelte @@ -96,7 +96,6 @@ labelProps={{ word: keyTitle }} okAction={createTagElenent} canSave={title.length > 0} - space={tags.space.Tags} createMore={false} on:close={() => { dispatch('close') diff --git a/plugins/tags-resources/src/components/EditTagElement.svelte b/plugins/tags-resources/src/components/EditTagElement.svelte index 2b80573ec2..fac63be84b 100644 --- a/plugins/tags-resources/src/components/EditTagElement.svelte +++ b/plugins/tags-resources/src/components/EditTagElement.svelte @@ -94,7 +94,6 @@ labelProps={{ word: keyTitle }} okAction={updateElement} canSave={value.title.length > 0} - space={tags.space.Tags} on:close={() => { dispatch('close') }} diff --git a/plugins/task-resources/src/components/kanban/KanbanTemplateSelector.svelte b/plugins/task-resources/src/components/kanban/KanbanTemplateSelector.svelte index 6c48901ee1..87eab3f616 100644 --- a/plugins/task-resources/src/components/kanban/KanbanTemplateSelector.svelte +++ b/plugins/task-resources/src/components/kanban/KanbanTemplateSelector.svelte @@ -24,6 +24,7 @@ export let folders: Ref[] export let template: Ref | undefined = undefined + export let focusIndex = -1 let templates: KanbanTemplate[] = [] const templatesQ = createQuery() @@ -47,4 +48,10 @@ } - + diff --git a/plugins/task-resources/src/components/todos/CreateTodo.svelte b/plugins/task-resources/src/components/todos/CreateTodo.svelte index b74c17f9ab..2a34f1ef0c 100644 --- a/plugins/task-resources/src/components/todos/CreateTodo.svelte +++ b/plugins/task-resources/src/components/todos/CreateTodo.svelte @@ -52,7 +52,6 @@ label={plugin.string.TodoCreate} okAction={createTodo} canSave={name?.length > 0} - bind:space={_space} on:close={() => { dispatch('close') }} diff --git a/plugins/task-resources/src/components/todos/EditTodo.svelte b/plugins/task-resources/src/components/todos/EditTodo.svelte index f92b1b3347..3aaf9e05bb 100644 --- a/plugins/task-resources/src/components/todos/EditTodo.svelte +++ b/plugins/task-resources/src/components/todos/EditTodo.svelte @@ -66,7 +66,6 @@ label={plugin.string.TodoEdit} okAction={editTodo} canSave={name.length > 0} - space={item.space} on:close={() => { dispatch('close') }} diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index be843cb70c..b6c9fd0930 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -16,23 +16,23 @@ import contact, { Employee } from '@anticrm/contact' import core, { Data, generateId, Ref, SortingOrder, WithLookup } from '@anticrm/core' import { Asset, IntlString } from '@anticrm/platform' - import presentation, { getClient, UserBox, Card, createQuery } from '@anticrm/presentation' - import { Issue, IssuePriority, IssueStatus, Team, calcRank, Project } from '@anticrm/tracker' + import presentation, { Card, createQuery, getClient, SpaceSelector, UserBox } from '@anticrm/presentation' import { StyledTextBox } from '@anticrm/text-editor' + import { calcRank, Issue, IssuePriority, IssueStatus, Project, Team } from '@anticrm/tracker' import { - EditBox, Button, - showPopup, DatePresenter, - SelectPopup, + EditBox, + eventToHTMLElement, IconAttachment, - eventToHTMLElement + SelectPopup, + showPopup } from '@anticrm/ui' import { createEventDispatcher } from 'svelte' import tracker from '../plugin' - import StatusSelector from './StatusSelector.svelte' import PrioritySelector from './PrioritySelector.svelte' import ProjectSelector from './ProjectSelector.svelte' + import StatusSelector from './StatusSelector.svelte' export let space: Ref export let parent: Ref | undefined @@ -178,15 +178,14 @@ okAction={createIssue} {canSave} okLabel={tracker.string.SaveIssue} - spaceClass={tracker.class.Team} - spaceLabel={tracker.string.Team} - spacePlaceholder={tracker.string.SelectTeam} - createMore={false} - bind:space={_space} on:close={() => { dispatch('close') }} + createMore={false} > + + +