diff --git a/models/controlled-documents/src/index.ts b/models/controlled-documents/src/index.ts index fed07c2329..0885da5aee 100644 --- a/models/controlled-documents/src/index.ts +++ b/models/controlled-documents/src/index.ts @@ -150,6 +150,7 @@ export function createModel (builder: Builder): void { ['inProgress', documents.string.InProgress, {}], ['effective', documents.string.Effective, {}], ['archived', documents.string.Archived, {}], + ['obsolete', documents.string.Obsolete, {}], ['all', documents.string.All, {}] ] } @@ -170,6 +171,7 @@ export function createModel (builder: Builder): void { ['effective', documents.string.Effective, {}], ['inProgress', documents.string.InProgress, {}], ['archived', documents.string.Archived, {}], + ['obsolete', documents.string.Obsolete, {}], ['all', documents.string.All, {}] ] } @@ -774,16 +776,37 @@ export function createModel (builder: Builder): void { documents.action.DeleteDocument ) + // createAction( + // builder, + // { + // action: documents.actionImpl.ArchiveDocument, + // label: view.string.Archive, + // icon: view.icon.Archive, + // input: 'any', + // category: view.category.General, + // target: documents.class.Document, + // visibilityTester: documents.function.CanArchiveDocument, + // query: { + // state: DocumentState.Effective + // }, + // context: { + // mode: ['context', 'browser'], + // group: 'remove' + // } + // }, + // documents.action.ArchiveDocument + // ) + createAction( builder, { - action: documents.actionImpl.ArchiveDocument, - label: view.string.Archive, + action: documents.actionImpl.MakeDocumentObsolete, + label: documents.string.MakeDocumentObsolete, icon: view.icon.Archive, input: 'any', category: view.category.General, target: documents.class.Document, - visibilityTester: documents.function.CanArchiveDocument, + visibilityTester: documents.function.CanMakeDocumentObsolete, query: { state: DocumentState.Effective }, @@ -792,7 +815,7 @@ export function createModel (builder: Builder): void { group: 'remove' } }, - documents.action.ArchiveDocument + documents.action.MakeDocumentObsolete ) createAction( diff --git a/models/controlled-documents/src/plugin.ts b/models/controlled-documents/src/plugin.ts index 64e6f5692b..8d9c54b779 100644 --- a/models/controlled-documents/src/plugin.ts +++ b/models/controlled-documents/src/plugin.ts @@ -68,6 +68,7 @@ export default mergeIds(documentsId, documents, { TransferTemplate: '' as ViewAction, DeleteDocument: '' as ViewAction, ArchiveDocument: '' as ViewAction, + MakeDocumentObsolete: '' as ViewAction, TransferDocument: '' as ViewAction, EditDocSpace: '' as ViewAction }, diff --git a/plugins/controlled-documents-assets/lang/cs.json b/plugins/controlled-documents-assets/lang/cs.json index e2619c2ef8..72564318c7 100644 --- a/plugins/controlled-documents-assets/lang/cs.json +++ b/plugins/controlled-documents-assets/lang/cs.json @@ -295,7 +295,12 @@ "CreateFolder": "Vytvořit novou složku", "RenameFolder": "Přejmenovat složku", - "CreateChildFolder": "Vytvořit podsložku" + "CreateChildFolder": "Vytvořit podsložku", + + "Obsolete": "Zastaralé", + "MakeDocumentObsolete": "Označit jako zastaralé", + "MakeDocumentObsoleteDialog": "Označit {count, plural, one {dokument jako zastaralý} other {dokumenty jako zastaralé}}", + "MakeDocumentObsoleteConfirm": "Opravdu chcete označit následující dokumenty jako zastaralé: {titles}?" }, "controlledDocStates": { "Empty": "", diff --git a/plugins/controlled-documents-assets/lang/de.json b/plugins/controlled-documents-assets/lang/de.json index 22ef0595b0..3c44f68fda 100644 --- a/plugins/controlled-documents-assets/lang/de.json +++ b/plugins/controlled-documents-assets/lang/de.json @@ -302,7 +302,12 @@ "CreateFolder": "Neuen Ordner erstellen", "RenameFolder": "Ordner umbenennen", - "CreateChildFolder": "Unterordner erstellen" + "CreateChildFolder": "Unterordner erstellen", + + "Obsolete": "Veraltet", + "MakeDocumentObsolete": "Als veraltet markieren", + "MakeDocumentObsoleteDialog": "{count, plural, one {Dokument als veraltet markieren} other {Dokumente als veraltet markieren}}", + "MakeDocumentObsoleteConfirm": "Möchten Sie die folgenden Dokumente wirklich als veraltet markieren: {titles}?" }, "controlledDocStates": { "Empty": "", diff --git a/plugins/controlled-documents-assets/lang/en.json b/plugins/controlled-documents-assets/lang/en.json index 0ad18214f6..9bbde8a196 100644 --- a/plugins/controlled-documents-assets/lang/en.json +++ b/plugins/controlled-documents-assets/lang/en.json @@ -119,6 +119,11 @@ "Archived": "Archived", "Deleted": "Deleted", "MetaAbstract": "Abstract", + + "Obsolete": "Obsolete", + "MakeDocumentObsolete": "Mark as obsolete", + "MakeDocumentObsoleteDialog": "Mark {count, plural, =0 {document} other {documents}} as obsolete", + "MakeDocumentObsoleteConfirm": "Do you really want to mark the following documents as obsolete: {titles}?", "ContentTab": "Content", "TeamTab": "Team", diff --git a/plugins/controlled-documents-assets/lang/fr.json b/plugins/controlled-documents-assets/lang/fr.json index 9100cfe799..5ccba0a666 100644 --- a/plugins/controlled-documents-assets/lang/fr.json +++ b/plugins/controlled-documents-assets/lang/fr.json @@ -262,7 +262,12 @@ "CreateFolder": "Créer un nouveau dossier", "RenameFolder": "Renommer le dossier", - "CreateChildFolder": "Créer un sous-dossier" + "CreateChildFolder": "Créer un sous-dossier", + + "Obsolete": "Obsolète", + "MakeDocumentObsolete": "Marquer comme obsolète", + "MakeDocumentObsoleteDialog": "Marquer {count, plural, one {le document comme obsolète} other {les documents comme obsolètes}}", + "MakeDocumentObsoleteConfirm": "Voulez-vous vraiment marquer les documents suivants comme obsolètes : {titles} ?" }, "controlledDocStates": { "Empty": "", diff --git a/plugins/controlled-documents-assets/lang/it.json b/plugins/controlled-documents-assets/lang/it.json index 61fe609756..5fcaf63e52 100644 --- a/plugins/controlled-documents-assets/lang/it.json +++ b/plugins/controlled-documents-assets/lang/it.json @@ -260,7 +260,12 @@ "CreateFolder": "Crea nuova cartella", "RenameFolder": "Rinomina cartella", - "CreateChildFolder": "Crea sottocartella" + "CreateChildFolder": "Crea sottocartella", + + "Obsolete": "Obsoleto", + "MakeDocumentObsolete": "Segna come obsoleto", + "MakeDocumentObsoleteDialog": "Segna {count, plural, one {il documento come obsoleto} other {i documenti come obsoleti}}", + "MakeDocumentObsoleteConfirm": "Vuoi davvero segnare i seguenti documenti come obsoleti: {titles}?" }, "controlledDocStates": { "Empty": "", diff --git a/plugins/controlled-documents-assets/lang/ru.json b/plugins/controlled-documents-assets/lang/ru.json index 3afb969e8d..9093c92ee1 100644 --- a/plugins/controlled-documents-assets/lang/ru.json +++ b/plugins/controlled-documents-assets/lang/ru.json @@ -304,7 +304,12 @@ "CreateFolder": "Создать новую папку", "RenameFolder": "Переименовать папку", - "CreateChildFolder": "Создать подпапку" + "CreateChildFolder": "Создать подпапку", + + "Obsolete": "Устаревший", + "MakeDocumentObsolete": "Пометить как устаревшее", + "MakeDocumentObsoleteDialog": "Пометить {count, plural, one {документ как устаревший} other {документы как устаревшие}}", + "MakeDocumentObsoleteConfirm": "Вы действительно хотите пометить следующие документы как устаревшие: {titles}?" }, "controlledDocStates": { "Empty": "", diff --git a/plugins/controlled-documents-assets/lang/zh.json b/plugins/controlled-documents-assets/lang/zh.json index 83021ea4c1..f7ac73621a 100644 --- a/plugins/controlled-documents-assets/lang/zh.json +++ b/plugins/controlled-documents-assets/lang/zh.json @@ -301,7 +301,12 @@ "CreateFolder": "创建新文件夹", "RenameFolder": "重命名文件夹", - "CreateChildFolder": "创建子文件夹" + "CreateChildFolder": "创建子文件夹", + + "Obsolete": "已过时", + "MakeDocumentObsolete": "标记为过时", + "MakeDocumentObsoleteDialog": "标记 {count, plural, one {文档为过时} other {文档为过时}}", + "MakeDocumentObsoleteConfirm": "您确定要将以下文档标记为过时吗:{titles}?" }, "controlledDocStates": { "Empty": "", diff --git a/plugins/controlled-documents-resources/src/components/DocumentsContainer.svelte b/plugins/controlled-documents-resources/src/components/DocumentsContainer.svelte index 0f7cfbe967..6ca5759f70 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentsContainer.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentsContainer.svelte @@ -57,9 +57,10 @@ $: inProgress = { state: { $in: [DocumentState.Draft] }, space: { $in: spaces } } $: effective = { state: { $in: [DocumentState.Effective] }, space: { $in: spaces } } $: archived = { state: { $in: [DocumentState.Archived, DocumentState.Deleted] }, space: { $in: spaces } } + $: obsolete = { state: { $in: [DocumentState.Obsolete] }, space: { $in: spaces } } $: all = { space: { $in: spaces } } - $: queries = { inProgress, effective, archived, all } + $: queries = { inProgress, effective, archived, obsolete, all } $: mode = $resolvedLocationStore.query?.mode ?? undefined $: if (mode === undefined || (queries as any)[mode] === undefined) { diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte index 44456f32e4..efe2ffc34c 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte @@ -118,6 +118,7 @@ DocumentState.Archived, DocumentState.Deleted, DocumentState.Effective, + DocumentState.Obsolete, ControlledDocumentState.InApproval, ControlledDocumentState.Approved, ControlledDocumentState.ToReview diff --git a/plugins/controlled-documents-resources/src/components/document/common/DocumentStatusTag.svelte b/plugins/controlled-documents-resources/src/components/document/common/DocumentStatusTag.svelte index 5939ec0f64..ec664b47cc 100644 --- a/plugins/controlled-documents-resources/src/components/document/common/DocumentStatusTag.svelte +++ b/plugins/controlled-documents-resources/src/components/document/common/DocumentStatusTag.svelte @@ -37,11 +37,11 @@ } &.obsolete { - background: var(--theme-state-ghost-background-color); - border-color: var(--theme-state-ghost-border-color); + background: var(--theme-state-negative-background-color); + border-color: var(--theme-state-negative-border-color); .label { - color: var(--theme-state-ghost-color); + color: var(--theme-state-negative-color); } } diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte index f878052779..3be626ba9c 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte @@ -148,9 +148,10 @@ {@const title = doc ? getDocumentName(doc) : meta?.title ?? ''} {@const docid = doc?._id ?? prjdoc._id} {@const isFolder = prjdoc.document === documents.ids.Folder} + {@const isObsolete = doc ? doc.state === DocumentState.Obsolete : false} + {@const children = metaid ? childrenByParent[metaid] ?? [] : []} - {#if metaid} - {@const children = childrenByParent[metaid] ?? []} + {#if metaid && (!isObsolete || children.length > 0)} {@const isDraggedOver = draggedOver === metaid}