diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index 2b84a5d739f..4e1c13ef9df 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -127,7 +127,7 @@ export class TTypeMilestoneStatus extends TType {} @Model(tracker.class.Project, core.class.Space, DOMAIN_SPACE) @UX(tracker.string.Project, tracker.icon.Issues, 'Project', 'name') export class TProject extends TSpace implements Project { - @Prop(TypeString(), tracker.string.Identifier) + @Prop(TypeString(), tracker.string.ProjectIdentifier) @Index(IndexKind.FullText) identifier!: IntlString diff --git a/packages/presentation/src/components/Card.svelte b/packages/presentation/src/components/Card.svelte index 893bec0ac43..37813827e10 100644 --- a/packages/presentation/src/components/Card.svelte +++ b/packages/presentation/src/components/Card.svelte @@ -30,7 +30,9 @@ export let fullSize: boolean = false export let hideAttachments: boolean = false export let hideSubheader: boolean = false + export let accentHeader: boolean = false export let gap: string | undefined = undefined + export let width: 'large' | 'medium' | 'small' | 'x-small' = 'large' const dispatch = createEventDispatcher() @@ -39,7 +41,7 @@
{}} use:resizeObserver={() => { @@ -52,7 +54,7 @@ {/if} - + {#if $$slots.title} {:else} diff --git a/packages/text-editor/src/components/StyledTextBox.svelte b/packages/text-editor/src/components/StyledTextBox.svelte index b417ea6d805..712b9e15446 100644 --- a/packages/text-editor/src/components/StyledTextBox.svelte +++ b/packages/text-editor/src/components/StyledTextBox.svelte @@ -36,6 +36,7 @@ export let enableFormatting = false export let autofocus = false export let enableBackReferences: boolean = false + export let isScrollable: boolean = true const Mode = { View: 1, @@ -159,6 +160,7 @@ {focusable} {enableFormatting} {autofocus} + {isScrollable} extensions={enableBackReferences ? [completionPlugin] : []} bind:content={rawValue} bind:this={textEditor} diff --git a/packages/text-editor/src/components/StyledTextEditor.svelte b/packages/text-editor/src/components/StyledTextEditor.svelte index 1d73846ee15..7ced756e900 100644 --- a/packages/text-editor/src/components/StyledTextEditor.svelte +++ b/packages/text-editor/src/components/StyledTextEditor.svelte @@ -646,13 +646,19 @@ // max-height: 100%; height: 100%; } - &:not(.showScroll)::-webkit-scrollbar-thumb { - background-color: transparent; - } - &.scrollable { - overflow: auto; max-height: var(--texteditor-maxheight); + + &.showScroll { + overflow: auto; + } + } + &:not(.showScroll) { + overflow-y: hidden; + + &::-webkit-scrollbar-thumb { + background-color: transparent; + } } } diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss index 41a8c97daa0..2f8358f9c96 100644 --- a/packages/theme/styles/_colors.scss +++ b/packages/theme/styles/_colors.scss @@ -59,7 +59,7 @@ --primary-button-hovered: #1A53AF; --primary-button-pressed: #144CA8; --primary-button-focused: #144CA8; - --primary-button-disabled: #6E9FED; + --primary-button-disabled: #484662; --primary-button-focused-border: #6E9FED; --primary-button-border: rgba(255, 255, 255, .09); --primary-button-outline: rgba(87, 132, 255, .3); // OLD @@ -142,6 +142,13 @@ --theme-calendar-holiday-bgcolor: rgba(235, 87, 87, .1); --theme-calendar-weekend-bgcolor: rgba(242, 153, 74, .05); + --theme-toggle-sw-color: #fff; + --theme-toggle-on-sw-color: #fff; + --theme-toggle-bg-color: rgba(120, 120, 128, 0.32); + --theme-toggle-bg-hover: rgba(120, 120, 128, 0.64); + --theme-toggle-on-bg-color: #205dc2; + --theme-toggle-on-bg-hover: #1A53AF; + --theme-error-color: #eb5757; --theme-urgent-color: #F5694A; --theme-warning-color: #f2994a; @@ -208,13 +215,6 @@ --dangerous-bg-hover: #ff6464; --dangerous-shadow: var(--dangerous-bg-color) 0px 0px 12px -1px; - --toggle-sw-color: #27282b; - --toggle-on-sw-color: #fff; - --toggle-bg-color: #3c3f44; - --toggle-bg-hover: #45484e; - --toggle-on-bg-color: #5e6ad2; - --toggle-on-bg-hover: #828fff; - --incoming-msg: rgba(67, 67, 72, .3); --outcoming-msg: rgba(67, 67, 72, .6); @@ -226,12 +226,12 @@ /* Light Theme */ .theme-light { --primary-button-color: #fff; - --primary-button-enabled: rgb(43, 82, 144); - --primary-button-transparent: rgba(43, 82, 144, 0.2); - --primary-button-hovered: #1A53AF; // DARK - --primary-button-pressed: #144CA8; // DARK - --primary-button-focused: #144CA8; // DARK - --primary-button-disabled: #6E9FED; // DARK + --primary-button-enabled: #205DC2; + --primary-button-transparent: rgba(32, 93, 194, 0.2); + --primary-button-hovered: #1A53AF; + --primary-button-pressed: #144CA8; + --primary-button-focused: #144CA8; + --primary-button-disabled: #EBEBEB; --primary-button-focused-border: #6E9FED; // DARK --primary-button-border: rgba(255, 255, 255, .09); --primary-button-outline: rgba(87, 132, 255, .3); // OLD @@ -313,6 +313,12 @@ --theme-calendar-today-bgcolor: rgba(43, 81, 144, .1); --theme-calendar-holiday-bgcolor: rgba(235, 87, 87, .1); --theme-calendar-weekend-bgcolor: rgba(242, 153, 74, .1); + --theme-toggle-sw-color: #fff; + --theme-toggle-on-sw-color: #fff; + --theme-toggle-bg-color: rgba(120, 120, 128, 0.32); + --theme-toggle-bg-hover: rgba(120, 120, 128, 0.64); + --theme-toggle-on-bg-color: #205dc2; + --theme-toggle-on-bg-hover: #1A53AF; --theme-error-color: #eb5757; // Dark --theme-urgent-color: #F5694A; @@ -380,13 +386,6 @@ --dangerous-bg-hover: #d44e4e; --dangerous-shadow: var(--dangerous-bg-color) 0px 0px 12px -1px; - --toggle-sw-color: #fff; - --toggle-on-sw-color: #fff; - --toggle-bg-color: #dfe1e4; - --toggle-bg-hover: #c9cbcd; - --toggle-on-bg-color: #6e79d6; - --toggle-on-bg-hover: #535db3; - --incoming-msg: rgba(67, 67, 72, .1); --outcoming-msg: rgba(67, 67, 72, .2); diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index fadee6c0ec8..f94805eff5b 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -413,6 +413,8 @@ input.search { &.reverse > *:not(:last-child) { margin-right: 1rem; } } .gapV-4 > *:not(:last-child) { margin-bottom: 1rem; } +.gapV-6 > *:not(:last-child) { margin-bottom: 1.5rem; } +.gapV-8 > *:not(:last-child) { margin-bottom: 2rem; } .gap-around-2 > * { margin: .25rem; } .gap-around-4 > * { margin: .5rem; } diff --git a/packages/theme/styles/common.scss b/packages/theme/styles/common.scss index a8771bfe4c2..66b1db77a73 100644 --- a/packages/theme/styles/common.scss +++ b/packages/theme/styles/common.scss @@ -256,6 +256,49 @@ padding: .5rem 0 1.25rem; } +/* Basic */ +.antiGrid { + display: flex; + flex-direction: column; + flex-shrink: 0; + min-width: 0; + min-height: 0; + + &-row { + display: flex; + align-items: center; + min-width: 0; + + &__header { + width: 15rem; + padding-right: 1rem; + color: var(--theme-caption-color); + + &.withDesciption { + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; + + span { + font-size: .75rem; + color: var(--theme-halfcontent-color); + } + } + &.topAlign { + align-self: flex-start; + margin-top: .75rem; + } + } + .padding { + flex-grow: 1; + padding: .75rem 0; + } + &:not(:last-child) { margin-bottom: .5rem; } + & > *:not(.padding, .topAlign) { margin: .25rem 0; } + } +} + /* Basic */ .antiTitle { .icon-wrapper, &.icon-wrapper, diff --git a/packages/theme/styles/dialogs.scss b/packages/theme/styles/dialogs.scss index 3fcebef26ca..49f827435fc 100644 --- a/packages/theme/styles/dialogs.scss +++ b/packages/theme/styles/dialogs.scss @@ -58,6 +58,8 @@ min-width: 0; line-height: 150%; color: var(--theme-caption-color); + + &.accentHeader { font-size: 1rem; } } &__divider { color: var(--theme-dark-color); } &__error { @@ -190,10 +192,25 @@ } &.dialog { - width: 45rem; height: auto; - max-width: 60rem; max-height: inherit; + + &.large { + width: 45rem; + max-width: 60rem; + } + &.medium { + width: 37.5rem; + max-width: 37.5rem; + } + &.small { + width: 30rem; + max-width: 30rem; + } + &.x-small { + width: 25rem; + max-width: 25rem; + } &.full { width: max-content; // max-width: 100%; diff --git a/packages/ui/src/components/EditBox.svelte b/packages/ui/src/components/EditBox.svelte index 65c22e7a24c..c4c1ecc1b11 100644 --- a/packages/ui/src/components/EditBox.svelte +++ b/packages/ui/src/components/EditBox.svelte @@ -37,8 +37,9 @@ export let select: boolean = false export let focusable: boolean = false export let disabled: boolean = false - export let fullSize = false - export let required = false + export let fullSize: boolean = false + export let required: boolean = false + export let uppercase: boolean = false const dispatch = createEventDispatcher() @@ -134,6 +135,7 @@ class="editbox-container" class:flex-grow={fullSize} class:w-full={focusable || fullSize} + class:uppercase on:click={() => { input.focus() }} @@ -210,8 +212,8 @@ align-items: flex-start; .large-style { - font-weight: 500; - font-size: 1.125rem; + font-weight: 400; + font-size: 1.25rem; } .small-style { font-weight: 400; @@ -271,5 +273,9 @@ input[type='number'] { -moz-appearance: textfield; } + &.uppercase .hidden-text, + &.uppercase input { + text-transform: uppercase; + } } diff --git a/packages/ui/src/components/TabList.svelte b/packages/ui/src/components/TabList.svelte index d5dfcf7be78..21a3831b7d5 100644 --- a/packages/ui/src/components/TabList.svelte +++ b/packages/ui/src/components/TabList.svelte @@ -22,7 +22,7 @@ export let selected: string | string[] = '' export let multiselect: boolean = false export let items: TabItem[] - export let kind: 'normal' | 'secondary' | 'plain' | 'separated' = 'normal' + export let kind: 'normal' | 'secondary' | 'plain' | 'separated' | 'separated-free' = 'normal' export let onlyIcons: boolean = false export let size: 'small' | 'medium' = 'medium' @@ -50,7 +50,8 @@
.toggle { display: inline-block; - width: 2rem; - min-width: 2rem; - height: 1.5rem; + width: 2.25rem; + min-width: 2.25rem; + height: 1.25rem; // line-height: 1.75rem; vertical-align: middle; font-size: inherit; @@ -55,13 +55,13 @@ overflow: hidden; &:checked + .toggle-switch { - background-color: var(--toggle-on-bg-color); + background-color: var(--theme-toggle-on-bg-color); &:hover { - background-color: var(--toggle-on-bg-hover); + background-color: var(--theme-toggle-on-bg-hover); } &:before { - left: 0.75rem; - background: var(--toggle-on-sw-color); + left: 1.125rem; + background: var(--theme-toggle-on-sw-color); } } &:not(:disabled) + .toggle-switch { @@ -79,26 +79,26 @@ .toggle-switch { position: relative; display: inline-block; - width: 2rem; - height: 1.5rem; - border-radius: 4.5rem; - background-color: var(--toggle-bg-color); + width: 2.25rem; + height: 1.25rem; + border-radius: 1.25rem; + background-color: var(--theme-toggle-bg-color); transition: left 0.2s, background-color 0.2s; &:before { content: ''; position: absolute; - top: 0.25rem; - left: 0.25rem; + top: 0.125rem; + left: 0.125rem; display: inline-block; width: 1rem; height: 1rem; border-radius: 50%; - background: var(--toggle-sw-color); - box-shadow: 1px 2px 7px rgba(119, 129, 142, 0.1); + background: var(--theme-toggle-sw-color); + box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.15), 0px 3px 1px rgba(0, 0, 0, 0.06); transition: 0.15s; } &:hover { - background-color: var(--toggle-bg-hover); + background-color: var(--theme-toggle-bg-hover); } } } diff --git a/packages/ui/src/components/calendar/DatePresenter.svelte b/packages/ui/src/components/calendar/DatePresenter.svelte index ad911110249..0e3f28d4a15 100644 --- a/packages/ui/src/components/calendar/DatePresenter.svelte +++ b/packages/ui/src/components/calendar/DatePresenter.svelte @@ -71,6 +71,7 @@ class:dateTimeButtonNoLabel={!shouldShowLabel} class:text-xs={size === 'x-small'} class:noDate={!value} + class:withIcon={showIcon} style:width on:click={(e) => { if (editable && !opened) { @@ -292,12 +293,17 @@ } } &.secondary { - padding: 0 0.625rem; color: var(--theme-caption-color); background-color: var(--theme-button-enabled); border-color: var(--theme-button-border); border-radius: 0.25rem; + &.withIcon { + padding: 0 1rem 0 0.75rem; + } + &:not(.withIcon) { + padding: 0 0.75rem; + } .btn-icon { color: var(--theme-content-color); } diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index c0e97da4e12..5f9d4657416 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -185,6 +185,7 @@ export type IconSize = | 'medium' | 'large' | 'x-large' + | '2x-large' | 'full' export interface DateOrShift { diff --git a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte index c8a62640782..5b8b1a2ad2d 100644 --- a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte @@ -94,25 +94,28 @@ {trimFilename(value.name)}
-
- {filesize(value.size, { spacer: '' })} • - - - {#if removable} - - • - { - ev.stopPropagation() - ev.preventDefault() - dispatch('remove', value) - }} - > - - {/if} +
+ {filesize(value.size, { spacer: '' })} + + + + + {#if removable} + + + { + ev.stopPropagation() + ev.preventDefault() + dispatch('remove', value) + }} + > + + {/if} +
@@ -124,7 +127,6 @@ height: 3rem; min-width: 14rem; max-width: 19rem; - background-color: var(--theme-button-hovered); border-radius: 0.25rem; .icon { @@ -152,20 +154,41 @@ padding: 0.5rem 0.75rem; width: 100%; height: 100%; + background-color: var(--theme-button-enabled); border: 1px solid var(--theme-button-border); border-left: none; border-radius: 0 0.25rem 0.25rem 0; } + .no-line:hover ~ .info-container, + .info-container:hover { + background-color: var(--theme-button-hovered); + + .actions { + opacity: 1; + } + } .name { white-space: nowrap; font-size: 0.8125rem; color: var(--theme-caption-color); cursor: pointer; + + &:hover ~ .info-content .actions { + opacity: 1; + } } .info-content { white-space: nowrap; font-size: 0.6875rem; color: var(--theme-darker-color); + + .actions { + opacity: 0; + transition: opacity 0.1s var(--timing-main); + } + &:hover .actions { + opacity: 1; + } } .remove-link { color: var(--theme-error-color); diff --git a/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte b/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte index b3bd351c9ad..b485818f1ef 100644 --- a/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte +++ b/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte @@ -339,7 +339,7 @@ on:dragleave={() => {}} on:drop|preventDefault|stopPropagation={(ev) => { if (fakeAttach === 'fake') dispatch('attach', { action: 'drop', event: ev }) - else if (fakeAttach === 'normal') fileDrop(ev) + else fileDrop(ev) }} >
diff --git a/plugins/contact-assets/lang/en.json b/plugins/contact-assets/lang/en.json index ec5a4b98cec..f36667788d6 100644 --- a/plugins/contact-assets/lang/en.json +++ b/plugins/contact-assets/lang/en.json @@ -84,7 +84,8 @@ "DisplayName": "Display name", "SelectAvatar": "Select avatar", "AvatarProvider": "Avatar provider", - "GravatarsManaged": "Gravatars are managed through", + "GravatarsManaged": "Gravatars are managed", + "Through": "through", "CategoryProjectMembers": "Project members", "AddMembersHeader": "Add members to {value}:", "Assigned": "Assigned", diff --git a/plugins/contact-assets/lang/ru.json b/plugins/contact-assets/lang/ru.json index bb452150943..edfc301fcfb 100644 --- a/plugins/contact-assets/lang/ru.json +++ b/plugins/contact-assets/lang/ru.json @@ -84,7 +84,8 @@ "MergeEmployeeTo": "В сотрудника", "DisplayName": "Отображаемое имя", "SelectAvatar": "Выбрать аватар", - "GravatarsManaged": "Граватары управляются через", + "GravatarsManaged": "Граватары управляются", + "Through": "через", "AddMembersHeader": "Добавить пользователей в {value}:", "NumberMembers": "{count, plural, =0 {нет участников} =1 {1 участник} =2 {2 участника} =3 {3 участника} =4 {4 участника} other {# участников}}", "Assigned": "Назначен", diff --git a/plugins/contact-resources/src/components/AssigneeBox.svelte b/plugins/contact-resources/src/components/AssigneeBox.svelte index b6f67a888dd..5e1e353f0d4 100644 --- a/plugins/contact-resources/src/components/AssigneeBox.svelte +++ b/plugins/contact-resources/src/components/AssigneeBox.svelte @@ -156,7 +156,7 @@
{#if icon}
- +
{/if}
diff --git a/plugins/contact-resources/src/components/Avatar.svelte b/plugins/contact-resources/src/components/Avatar.svelte index fdf5b33e9f4..ec88886d599 100644 --- a/plugins/contact-resources/src/components/Avatar.svelte +++ b/plugins/contact-resources/src/components/Avatar.svelte @@ -73,7 +73,7 @@
{#if url} - {#if size === 'large' || size === 'x-large'} + {#if size === 'large' || size === 'x-large' || size === '2x-large'} {''} {/if} {''} @@ -138,6 +138,10 @@ width: 7.5rem; // 120 height: 7.5rem; } + .ava-2x-large { + width: 10rem; // 120 + height: 10rem; + } .ava-blur { position: absolute; @@ -148,6 +152,11 @@ border: 1px solid var(--avatar-border-color); border-radius: 50%; } + .ava-large .ava-mask, + .ava-x-large .ava-mask, + .ava-2x-large .ava-mask { + border-width: 2px; + } .ava-inline .ava-mask, .ava-inline.no-img, diff --git a/plugins/contact-resources/src/components/EditAvatarPopup.svelte b/plugins/contact-resources/src/components/EditAvatarPopup.svelte index a48c42cfa83..390c1c6a8f3 100644 --- a/plugins/contact-resources/src/components/EditAvatarPopup.svelte +++ b/plugins/contact-resources/src/components/EditAvatarPopup.svelte @@ -60,21 +60,17 @@ dispatch('close') }} /> -
+
{#await CropperP then Cropper}
{/await}
@@ -87,11 +83,11 @@ bottom: 0; right: 0; - background: var(--card-overlay-color); + background: var(--theme-overlay-color); touch-action: none; } - .root { + .editavatar-container { position: absolute; top: 0; bottom: 0; @@ -105,21 +101,20 @@ transform: translate(-50%, -50%); - background: var(--popup-bg-color); + background: var(--theme-popup-color); border-radius: 1.25rem; - box-shadow: 0px 44px 154px rgba(0, 0, 0, 0.75); + box-shadow: var(--theme-popup-shadow); display: grid; grid-template-rows: minmax(min-content, 1fr) auto; - } - .cropper { - width: inherit; - } - - .footer { - display: flex; - flex-direction: row-reverse; - padding: 1rem 1.5rem; + .cropper { + width: inherit; + } + .footer { + display: flex; + flex-direction: row-reverse; + padding: 1rem 1.5rem; + } } diff --git a/plugins/contact-resources/src/components/SelectAvatarPopup.svelte b/plugins/contact-resources/src/components/SelectAvatarPopup.svelte index baf0b06fa20..1b2e569fd3d 100644 --- a/plugins/contact-resources/src/components/SelectAvatarPopup.svelte +++ b/plugins/contact-resources/src/components/SelectAvatarPopup.svelte @@ -17,7 +17,7 @@ import { AvatarType, buildGravatarId, checkHasGravatar, getAvatarColorForId } from '@hcengineering/contact' import { Asset } from '@hcengineering/platform' - import { AnySvelteComponent, DropdownLabelsIntl, Label, showPopup } from '@hcengineering/ui' + import { AnySvelteComponent, Label, showPopup, TabList } from '@hcengineering/ui' import presentation, { Card, getFileUrl } from '@hcengineering/presentation' import contact from '../plugin' @@ -29,7 +29,7 @@ export let email: string | undefined export let id: string export let file: Blob | undefined - export let icon: Asset | AnySvelteComponent | undefined + export let icon: Asset | AnySvelteComponent | undefined = undefined export let onSubmit: (avatarType?: AvatarType, avatar?: string, file?: Blob) => void const [schema, uri] = avatar?.split('://') || [] @@ -151,6 +151,8 @@ -
-
- {#if selectedAvatarType === AvatarType.IMAGE} - -
- -
- {:else} - - {/if} - {#if selectedAvatarType === AvatarType.GRAVATAR} - - - {/if} - (document.body.onfocus = handleFileSelectionCancel)} - accept={targetMimes.join(',')} - /> + + {#if selectedAvatarType === AvatarType.GRAVATAR} +
+
+ {/if} + (document.body.onfocus = handleFileSelectionCancel)} + accept={targetMimes.join(',')} + /> +
diff --git a/plugins/contact-resources/src/components/UserBoxList.svelte b/plugins/contact-resources/src/components/UserBoxList.svelte index 6ae4437eeb8..c6b590dfc69 100644 --- a/plugins/contact-resources/src/components/UserBoxList.svelte +++ b/plugins/contact-resources/src/components/UserBoxList.svelte @@ -85,9 +85,9 @@ {#if persons.length > 0}
{#if persons.length === 1} - + {:else} - + diff --git a/plugins/contact-resources/src/components/icons/Avatar.svelte b/plugins/contact-resources/src/components/icons/Avatar.svelte index a4f202ae643..99630755134 100644 --- a/plugins/contact-resources/src/components/icons/Avatar.svelte +++ b/plugins/contact-resources/src/components/icons/Avatar.svelte @@ -21,7 +21,7 @@ export let fill: string = 'var(--caption-color)' - + diff --git a/plugins/contact-resources/src/plugin.ts b/plugins/contact-resources/src/plugin.ts index 92505374cc9..8bb1360472a 100644 --- a/plugins/contact-resources/src/plugin.ts +++ b/plugins/contact-resources/src/plugin.ts @@ -66,6 +66,7 @@ export default mergeIds(contactId, contact, { MergeEmployeeTo: '' as IntlString, SelectAvatar: '' as IntlString, GravatarsManaged: '' as IntlString, + Through: '' as IntlString, AvatarProvider: '' as IntlString, CategoryProjectMembers: '' as IntlString, diff --git a/plugins/contact-resources/src/utils.ts b/plugins/contact-resources/src/utils.ts index 3cdf93f4021..78ef1a0779d 100644 --- a/plugins/contact-resources/src/utils.ts +++ b/plugins/contact-resources/src/utils.ts @@ -30,13 +30,7 @@ import { import { Client, Doc, getCurrentAccount, IdMap, ObjQueryType, Ref, Timestamp, toIdMap } from '@hcengineering/core' import { createQuery, getClient } from '@hcengineering/presentation' import { TemplateDataProvider } from '@hcengineering/templates' -import { - DropdownIntlItem, - getCurrentResolvedLocation, - getPanelURI, - Location, - ResolvedLocation -} from '@hcengineering/ui' +import { TabItem, getCurrentResolvedLocation, getPanelURI, Location, ResolvedLocation } from '@hcengineering/ui' import view, { Filter } from '@hcengineering/view' import { FilterQuery } from '@hcengineering/view-resources' import { get, writable } from 'svelte/store' @@ -269,21 +263,21 @@ function fillStores (): void { fillStores() -export function getAvatarTypeDropdownItems (hasGravatar: boolean): DropdownIntlItem[] { +export function getAvatarTypeDropdownItems (hasGravatar: boolean): TabItem[] { return [ { id: AvatarType.COLOR, - label: contact.string.UseColor + labelIntl: contact.string.UseColor }, { id: AvatarType.IMAGE, - label: contact.string.UseImage + labelIntl: contact.string.UseImage }, ...(hasGravatar ? [ { id: AvatarType.GRAVATAR, - label: contact.string.UseGravatar + labelIntl: contact.string.UseGravatar } ] : []) diff --git a/plugins/tracker-assets/lang/en.json b/plugins/tracker-assets/lang/en.json index bebd4d090a1..c3c958dde62 100644 --- a/plugins/tracker-assets/lang/en.json +++ b/plugins/tracker-assets/lang/en.json @@ -40,10 +40,13 @@ "Canceled": "Canceled", "CreateProject": "Create project", "NewProject": "New project", - "ProjectTitlePlaceholder": "Project title", - "Identifier": "Project Identifier", + "ProjectTitle": "Project title", + "ProjectTitlePlaceholder": "New project", + "UsedInIssueIDs": "Used in issue IDs", + "Identifier": "Identifier", + "ProjectIdentifier": "Project Identifier", "IdentifierExists": "Project identifier already exists", - "ProjectIdentifierPlaceholder": "Project Identifier", + "ProjectIdentifierPlaceholder": "PRJCT", "ChooseIcon": "Choose icon", "AddIssue": "Add Issue", "NewIssue": "New issue", @@ -78,7 +81,7 @@ "AssignTo": "Assign to...", "AssignedTo": "Assigned to {value}", "Parent": "Parent issue", - "SetParent": "Set parent issue", + "SetParent": "Set parent issue\u2026", "ChangeParent": "Change parent issue\u2026", "RemoveParent": "Remove parent issue", "OpenParent": "Open parent issue", @@ -93,7 +96,6 @@ "Labels": "Labels", "Component": "Component", "Space": "", - "NoDueDate": "No due date", "SetDueDate": "Set due date\u2026", "ChangeDueDate": "Change due date\u2026", "ModificationDate": "Updated {value}", @@ -106,7 +108,7 @@ "TypeIssuePriority": "Issue priority", "IssueTitlePlaceholder": "Issue title", "SubIssueTitlePlaceholder": "Sub-issue title", - "IssueDescriptionPlaceholder": "Add description", + "IssueDescriptionPlaceholder": "Add description\u2026", "SubIssueDescriptionPlaceholder": "Add sub-issue description", "AddIssueTooltip": "Add issue...", "NewIssueDialogClose": "Do you want to close this dialog?", @@ -264,7 +266,7 @@ "CurrentWorkDay": "Current Working Day", "PreviousWorkDay": "Previous Working Day", "TimeReportDayTypeLabel": "Select time report day type", - "DefaultAssignee": "Select default assignee for issues", + "DefaultAssignee": "Default assignee for issues", "SevenHoursLength": "Seven Hours", "EightHoursLength": "Eight Hours", diff --git a/plugins/tracker-assets/lang/ru.json b/plugins/tracker-assets/lang/ru.json index 3db1d0d8c14..d573fcc3b7d 100644 --- a/plugins/tracker-assets/lang/ru.json +++ b/plugins/tracker-assets/lang/ru.json @@ -40,10 +40,13 @@ "Canceled": "Отменено", "CreateProject": "Создать проект", "NewProject": "Новый проект", - "ProjectTitlePlaceholder": "Название проекта", - "Identifier": "Идентификатор проекта", + "ProjectTitle": "Название проекта", + "ProjectTitlePlaceholder": "Новый проект", + "UsedInIssueIDs": "Используется в идентификаторах задач", + "Identifier": "Идентификатор", + "ProjectIdentifier": "Идентификатор проекта", "IdentifierExists": "Идентификатор уже существует проекта", - "ProjectIdentifierPlaceholder": "Идентификатор проекта", + "ProjectIdentifierPlaceholder": "ПКТ", "ChooseIcon": "Выбрать иконку", "AddIssue": "Добавить задачу", "NewIssue": "Новая задача", @@ -78,7 +81,7 @@ "AssignTo": "Назначить...", "AssignedTo": "Назначен на {value}", "Parent": "Родительская задача", - "SetParent": "Задать родительскую задачу", + "SetParent": "Задать родительскую задачу\u2026", "ChangeParent": "Изменить родительскую задачу\u2026", "RemoveParent": "Удалить родительскую задачу", "OpenParent": "Открыть родительскую задачу", @@ -93,7 +96,6 @@ "Labels": "Метки", "Component": "Компонент", "Space": "", - "NoDueDate": "Нет срока выполнения", "SetDueDate": "Указать срок выполнения\u2026", "ChangeDueDate": "Изменить срок выполнения\u2026", "ModificationDate": "Изменено {value}", @@ -106,7 +108,7 @@ "TypeIssuePriority": "Приоритет задачи", "IssueTitlePlaceholder": "Имя задачи", "SubIssueTitlePlaceholder": "Имя подзадачи", - "IssueDescriptionPlaceholder": "Описание задачи", + "IssueDescriptionPlaceholder": "Добавить описание\u2026", "SubIssueDescriptionPlaceholder": "Описание подзадачи", "AddIssueTooltip": "Добавить задачу\u2026", "NewIssueDialogClose": "Вы действительно хотите закрыть окно?", @@ -264,7 +266,7 @@ "CurrentWorkDay": "Текущий Рабочий День", "PreviousWorkDay": "Предыдущий Рабочий День", "TimeReportDayTypeLabel": "Выберите тип дня для временного отчета", - "DefaultAssignee": "Выберите исполнителя по умолчанию", + "DefaultAssignee": "Исполнитель задачи по умолчанию", "SevenHoursLength": "Семь Часов", "EightHoursLength": "Восемь Часов", diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index 22d17e23721..3069f7be93d 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -587,7 +587,6 @@ alwaysEdit showButtons={false} kind={'indented'} - fakeAttach={'hidden'} enableBackReferences={true} bind:content={object.description} placeholder={tracker.string.IssueDescriptionPlaceholder} @@ -708,8 +707,7 @@
(defaultMilestoneLabel = result)) + $: translate(tracker.string.Milestone, {}).then((result) => (defaultMilestoneLabel = result)) const milestoneIcon = tracker.icon.Milestone $: milestoneText = shouldShowLabel ? selectedMilestone?.label ?? defaultMilestoneLabel : undefined @@ -81,7 +81,7 @@ { id: null, icon: tracker.icon.Milestone, - label: tracker.string.NoMilestone, + label: tracker.string.Milestone, isSelected: sp === undefined }, ...rawMilestones.map((p) => ({ diff --git a/plugins/tracker-resources/src/components/projects/ChangeIdentity.svelte b/plugins/tracker-resources/src/components/projects/ChangeIdentity.svelte index bda4f68910d..795a9475f06 100644 --- a/plugins/tracker-resources/src/components/projects/ChangeIdentity.svelte +++ b/plugins/tracker-resources/src/components/projects/ChangeIdentity.svelte @@ -25,7 +25,7 @@ 0 && !(members.length === 0 && isPrivate)} - gap={'gapV-4'} + accentHeader + width={'medium'} + gap={'gapV-6'} on:close={() => { dispatch('close') }} on:changeContent > -
- { - if (isNew) { - identifier = name.toLocaleUpperCase().replaceAll(' ', '_').substring(0, 5) - } - }} - /> -
- - {#if !isNew} -
-
-
-
-
-
-
-