diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index bfa42de239f..e71bb676600 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8067,9 +8067,18 @@ importers: '@hcengineering/model-core': specifier: workspace:^0.7.0 version: link:../core + '@hcengineering/model-notification': + specifier: workspace:^0.7.0 + version: link:../notification '@hcengineering/model-presentation': specifier: workspace:^0.7.0 version: link:../presentation + '@hcengineering/model-view': + specifier: workspace:^0.7.0 + version: link:../view + '@hcengineering/notification': + specifier: workspace:^0.7.0 + version: link:../../plugins/notification '@hcengineering/platform': specifier: workspace:^0.7.19 version: link:../../foundations/core/packages/platform @@ -8079,6 +8088,9 @@ importers: '@hcengineering/ui': specifier: workspace:^0.7.0 version: link:../../packages/ui + '@hcengineering/view': + specifier: workspace:^0.7.0 + version: link:../../plugins/view '@hcengineering/workbench': specifier: workspace:^0.7.0 version: link:../../plugins/workbench @@ -20563,6 +20575,9 @@ importers: '@hcengineering/core': specifier: workspace:^0.7.24 version: link:../../foundations/core/packages/core + '@hcengineering/notification': + specifier: workspace:^0.7.0 + version: link:../notification '@hcengineering/platform': specifier: workspace:^0.7.19 version: link:../../foundations/core/packages/platform @@ -20679,6 +20694,12 @@ importers: '@hcengineering/login': specifier: workspace:^0.7.0 version: link:../login + '@hcengineering/notification': + specifier: workspace:^0.7.0 + version: link:../notification + '@hcengineering/panel': + specifier: workspace:^0.7.0 + version: link:../../packages/panel '@hcengineering/platform': specifier: workspace:^0.7.19 version: link:../../foundations/core/packages/platform @@ -20691,6 +20712,12 @@ importers: '@hcengineering/ui': specifier: workspace:^0.7.0 version: link:../../packages/ui + '@hcengineering/view': + specifier: workspace:^0.7.0 + version: link:../view + '@hcengineering/view-resources': + specifier: workspace:^0.7.0 + version: link:../view-resources svelte: specifier: ^4.2.20 version: 4.2.20 diff --git a/models/export/package.json b/models/export/package.json index 75cbe350858..0d3912b849a 100644 --- a/models/export/package.json +++ b/models/export/package.json @@ -42,7 +42,11 @@ "@hcengineering/workbench": "workspace:^0.7.0", "@hcengineering/presentation": "workspace:^0.7.0", "@hcengineering/model-presentation": "workspace:^0.7.0", + "@hcengineering/model-view": "workspace:^0.7.0", + "@hcengineering/model-notification": "workspace:^0.7.0", "@hcengineering/export-resources": "workspace:^0.7.0", - "@hcengineering/export": "workspace:^0.7.0" + "@hcengineering/export": "workspace:^0.7.0", + "@hcengineering/view": "workspace:^0.7.0", + "@hcengineering/notification": "workspace:^0.7.0" } } diff --git a/models/export/src/index.ts b/models/export/src/index.ts index f4117b6b151..05cb3384b12 100644 --- a/models/export/src/index.ts +++ b/models/export/src/index.ts @@ -13,24 +13,94 @@ // limitations under the License. // -import { type Builder } from '@hcengineering/model' -import core from '@hcengineering/model-core' +import type { Class, Doc, Domain, Ref } from '@hcengineering/core' +import type { ExportResultRecord } from '@hcengineering/export' +import { type Builder, Model, Prop, ArrOf, TypeRef, TypeString, TypeNumber, UX } from '@hcengineering/model' +import core, { TDoc } from '@hcengineering/model-core' import presentation from '@hcengineering/model-presentation' import workbench from '@hcengineering/workbench' -import exportPlugin from './plugin' +import view from '@hcengineering/model-view' +import notification from '@hcengineering/notification' +import exportPlugin from '@hcengineering/export' + +import exportModelPlugin from './plugin' export { exportId } from '@hcengineering/export' export * from './migration' -export default exportPlugin +export default exportModelPlugin + +export const DOMAIN_EXPORT = 'export' as Domain + +@Model(exportPlugin.class.ExportResultRecord, core.class.Doc, DOMAIN_EXPORT) +@UX(exportPlugin.string.ImportCompleted, exportPlugin.icon.Export) +export class TExportResultRecord extends TDoc implements ExportResultRecord { + @Prop(TypeString(), exportPlugin.string.SourceWorkspace) + sourceWorkspace!: string + + @Prop(TypeString(), exportPlugin.string.TargetWorkspace) + targetWorkspace!: string + + @Prop(TypeNumber(), exportPlugin.string.ExportedCount) + exportedCount!: number + + @Prop(ArrOf(TypeRef(core.class.Doc)), exportPlugin.string.ExportedDocumentIds) + exportedDocumentIds!: Ref[] + + @Prop(TypeRef(core.class.Class), exportPlugin.string.ExportedDocumentClass) + objectClass!: Ref> + + @Prop(TypeString(), view.string.Title) + title?: string +} export function createModel (builder: Builder): void { + builder.createModel(TExportResultRecord) + + builder.mixin(exportPlugin.class.ExportResultRecord, core.class.Class, view.mixin.ObjectPresenter, { + presenter: view.component.BaseDocPresenter + }) + + builder.mixin(exportPlugin.class.ExportResultRecord, core.class.Class, view.mixin.ObjectPanel, { + component: exportPlugin.component.ExportResultPanel + }) + + builder.mixin(exportPlugin.class.ExportResultRecord, core.class.Class, view.mixin.ObjectTitle, { + titleProvider: exportPlugin.function.ExportResultTitleProvider + }) + + builder.createDoc( + notification.class.NotificationGroup, + core.space.Model, + { + label: exportPlugin.string.Import, + icon: exportPlugin.icon.Export, + objectClass: exportPlugin.class.ExportResultRecord + }, + exportPlugin.ids.ImportNotificationGroup + ) + + builder.createDoc( + notification.class.NotificationType, + core.space.Model, + { + hidden: false, + generated: false, + label: exportPlugin.string.ImportedDocuments, + group: exportPlugin.ids.ImportNotificationGroup, + txClasses: [], + objectClass: exportPlugin.class.ExportResultRecord, + defaultEnabled: true + }, + exportPlugin.ids.ImportedDocumentsNotification + ) + builder.createDoc( presentation.class.ComponentPointExtension, core.space.Model, { extension: workbench.extensions.SpecialViewAction, - component: exportPlugin.component.ExportButton + component: exportModelPlugin.component.ExportButton }, - exportPlugin.extensions.ExportButton + exportModelPlugin.extensions.ExportButton ) } diff --git a/plugins/export-assets/lang/cs.json b/plugins/export-assets/lang/cs.json index faddf6fd9f9..4ca5af77f13 100644 --- a/plugins/export-assets/lang/cs.json +++ b/plugins/export-assets/lang/cs.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Export zahájen. Až bude dokončen, obdržíte oznámení.", "ExportToWorkspaceCompleted": "Export dokončen", "ExportToWorkspaceCompletedMessage": "Export byl úspěšně dokončen.", + "ImportToWorkspaceNotificationMessage": "{count} dokumentů importováno do vašeho pracovního prostoru", + "ImportCompleted": "Dokumenty importovány do pracovního prostoru", + "SourceWorkspace": "Zdrojový pracovní prostor", + "ExportedCount": "Počet exportovaných", + "ExportedDocumentIds": "ID exportovaných dokumentů", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 dokument byl importován z pracovního prostoru {workspace}} other {# dokumentů bylo importováno z pracovního prostoru {workspace}}}:", + "ExportedDocumentClass": "Třída exportovaných dokumentů", + "Import": "Import", + "ImportedDocuments": "Nové dokumenty", "ExportToWorkspaceFailed": "Export se nezdařil", "SelectWorkspace": "Vybrat pracovní prostor", "SelectWorkspaceToExport": "Vybrat pracovní prostor pro export {count, plural, =1 {1 dokument} other {# dokumentů}}", @@ -38,6 +47,7 @@ "SelectSpace": "Vybrat prostor", "NoSelectedDocuments": "Žádné dokumenty nevybrány", "RequestPermissionToImport": "Prosím, požádejte vlastníka cílového pracovního prostoru o povolení k importu dokumentů.", - "SkipDeletedObsolete": "Přeskočit archivované nebo zastaralé dokumenty" + "SkipDeletedObsolete": "Přeskočit archivované nebo zastaralé dokumenty", + "ExportResultRecordTitle": "Export dokumentů z pracovního prostoru {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/de.json b/plugins/export-assets/lang/de.json index b9fcd671ddd..96b79522868 100644 --- a/plugins/export-assets/lang/de.json +++ b/plugins/export-assets/lang/de.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Export gestartet. Sie erhalten eine Benachrichtigung, wenn der Export abgeschlossen ist.", "ExportToWorkspaceCompleted": "Export abgeschlossen", "ExportToWorkspaceCompletedMessage": "Export erfolgreich abgeschlossen.", + "ImportToWorkspaceNotificationMessage": "{count} Dokumente in Ihren Arbeitsbereich importiert", + "ImportCompleted": "Dokumente in Arbeitsbereich importiert", + "SourceWorkspace": "Quell-Arbeitsbereich", + "ExportedCount": "Exportierte Anzahl", + "ExportedDocumentIds": "IDs exportierter Dokumente", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 Dokument wurde aus dem Arbeitsbereich {workspace} importiert} other {# Dokumente wurden aus dem Arbeitsbereich {workspace} importiert}}:", + "ExportedDocumentClass": "Klasse exportierter Dokumente", + "Import": "Import", + "ImportedDocuments": "Neue Dokumente", "ExportToWorkspaceFailed": "Export fehlgeschlagen", "SelectWorkspace": "Arbeitsbereich auswählen", "SelectWorkspaceToExport": "Arbeitsbereich zum Exportieren von {count, plural, =1 {1 Dokument} other {# Dokumenten}} auswählen", @@ -38,6 +47,7 @@ "SelectSpace": "Bereich auswählen", "NoSelectedDocuments": "Keine Dokumente ausgewählt", "RequestPermissionToImport": "Bitte fordern Sie die Berechtigung vom Eigentümer des Ziel-Arbeitsbereichs an, um Dokumente zu importieren.", - "SkipDeletedObsolete": "Archivierte oder veraltete Dokumente überspringen" + "SkipDeletedObsolete": "Archivierte oder veraltete Dokumente überspringen", + "ExportResultRecordTitle": "Export von Dokumenten aus dem Arbeitsbereich {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/en.json b/plugins/export-assets/lang/en.json index af3fbe65fb1..7b8e1df5bbb 100644 --- a/plugins/export-assets/lang/en.json +++ b/plugins/export-assets/lang/en.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Export started. You will receive a notification when it completes.", "ExportToWorkspaceCompleted": "Export completed", "ExportToWorkspaceCompletedMessage": "Export completed successfully.", + "ImportToWorkspaceNotificationMessage": "{count} documents imported to your workspace", + "ImportCompleted": "Documents imported to workspace", + "SourceWorkspace": "Source workspace", + "ExportedCount": "Exported count", + "ExportedDocumentIds": "Exported document IDs", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 document was imported from {workspace} workspace} other {# documents were imported from {workspace} workspace}}:", + "ExportedDocumentClass": "Exported document class", + "Import": "Import", + "ImportedDocuments": "New documents", "ExportToWorkspaceFailed": "Export failed", "SelectWorkspace": "Select workspace", "SelectWorkspaceToExport": "Select workspace to export {count, plural, =1 {1 document} other {# documents}}", @@ -38,6 +47,7 @@ "SelectSpace": "Select space", "NoSelectedDocuments": "No documents selected", "RequestPermissionToImport": "Please request permission from the target workspace owner to import documents.", - "SkipDeletedObsolete": "Skip archived or obsolete documents" + "SkipDeletedObsolete": "Skip archived or obsolete documents", + "ExportResultRecordTitle": "Export of documents from {workspace} workspace ({date})" } } diff --git a/plugins/export-assets/lang/es.json b/plugins/export-assets/lang/es.json index f6ac4c270b8..d3559691d43 100644 --- a/plugins/export-assets/lang/es.json +++ b/plugins/export-assets/lang/es.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Exportación iniciada. Recibirá una notificación cuando se complete.", "ExportToWorkspaceCompleted": "Exportación completada", "ExportToWorkspaceCompletedMessage": "Exportación completada exitosamente.", + "ImportToWorkspaceNotificationMessage": "{count} documentos importados a su espacio de trabajo", + "ImportCompleted": "Documentos importados al espacio de trabajo", + "SourceWorkspace": "Espacio de trabajo de origen", + "ExportedCount": "Cantidad exportada", + "ExportedDocumentIds": "ID de documentos exportados", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 documento fue importado desde el espacio de trabajo {workspace}} other {# documentos fueron importados desde el espacio de trabajo {workspace}}}:", + "ExportedDocumentClass": "Clase de documentos exportados", + "Import": "Importar", + "ImportedDocuments": "Documentos nuevos", "ExportToWorkspaceFailed": "Exportación fallida", "SelectWorkspace": "Seleccionar espacio de trabajo", "SelectWorkspaceToExport": "Seleccionar espacio de trabajo para exportar {count, plural, =1 {1 documento} other {# documentos}}", @@ -38,6 +47,7 @@ "SelectSpace": "Seleccionar espacio", "NoSelectedDocuments": "No hay documentos seleccionados", "RequestPermissionToImport": "Por favor, solicite permiso al propietario del espacio de trabajo de destino para importar documentos.", - "SkipDeletedObsolete": "Omitir documentos archivados u obsoletos" + "SkipDeletedObsolete": "Omitir documentos archivados u obsoletos", + "ExportResultRecordTitle": "Exportación de documentos del espacio de trabajo {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/fr.json b/plugins/export-assets/lang/fr.json index b451b4fe4c8..fb4692b6e5b 100644 --- a/plugins/export-assets/lang/fr.json +++ b/plugins/export-assets/lang/fr.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Exportation démarrée. Vous recevrez une notification une fois terminée.", "ExportToWorkspaceCompleted": "Exportation terminée", "ExportToWorkspaceCompletedMessage": "Exportation terminée avec succès.", + "ImportToWorkspaceNotificationMessage": "{count} documents importés dans votre espace de travail", + "ImportCompleted": "Documents importés dans l'espace de travail", + "SourceWorkspace": "Espace de travail source", + "ExportedCount": "Nombre exporté", + "ExportedDocumentIds": "ID des documents exportés", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 document a été importé depuis l'espace de travail {workspace}} other {# documents ont été importés depuis l'espace de travail {workspace}}}:", + "ExportedDocumentClass": "Classe des documents exportés", + "Import": "Import", + "ImportedDocuments": "Nouveaux documents", "ExportToWorkspaceFailed": "Exportation échouée", "SelectWorkspace": "Sélectionner l'espace de travail", "SelectWorkspaceToExport": "Sélectionner l'espace de travail pour exporter {count, plural, =1 {1 document} other {# documents}}", @@ -38,6 +47,7 @@ "SelectSpace": "Sélectionner l'espace", "NoSelectedDocuments": "Aucun document sélectionné", "RequestPermissionToImport": "Veuillez demander l'autorisation au propriétaire de l'espace de travail cible pour importer des documents.", - "SkipDeletedObsolete": "Ignorer les documents archivés ou obsolètes" + "SkipDeletedObsolete": "Ignorer les documents archivés ou obsolètes", + "ExportResultRecordTitle": "Export de documents depuis l'espace de travail {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/it.json b/plugins/export-assets/lang/it.json index 3db1e4eaf32..1e23f728659 100644 --- a/plugins/export-assets/lang/it.json +++ b/plugins/export-assets/lang/it.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Esportazione avviata. Riceverai una notifica quando sarà completata.", "ExportToWorkspaceCompleted": "Esportazione completata", "ExportToWorkspaceCompletedMessage": "Esportazione completata con successo.", + "ImportToWorkspaceNotificationMessage": "{count} documenti importati nel tuo spazio di lavoro", + "ImportCompleted": "Documenti importati nell'area di lavoro", + "SourceWorkspace": "Spazio di lavoro di origine", + "ExportedCount": "Conteggio esportato", + "ExportedDocumentIds": "ID documenti esportati", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 documento è stato importato dallo spazio di lavoro {workspace}} other {# documenti sono stati importati dallo spazio di lavoro {workspace}}}:", + "ExportedDocumentClass": "Classe documenti esportati", + "Import": "Importa", + "ImportedDocuments": "Nuovi documenti", "ExportToWorkspaceFailed": "Esportazione fallita", "SelectWorkspace": "Seleziona spazio di lavoro", "SelectWorkspaceToExport": "Seleziona spazio di lavoro per esportare {count, plural, =1 {1 documento} other {# documenti}}", @@ -38,6 +47,7 @@ "SelectSpace": "Seleziona spazio", "NoSelectedDocuments": "Nessun documento selezionato", "RequestPermissionToImport": "Si prega di richiedere l'autorizzazione al proprietario dello spazio di lavoro di destinazione per importare documenti.", - "SkipDeletedObsolete": "Salta documenti archivati o obsoleti" + "SkipDeletedObsolete": "Salta documenti archivati o obsoleti", + "ExportResultRecordTitle": "Esportazione di documenti dallo spazio di lavoro {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/ja.json b/plugins/export-assets/lang/ja.json index 39a9f11645a..346b9148fd4 100644 --- a/plugins/export-assets/lang/ja.json +++ b/plugins/export-assets/lang/ja.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "エクスポートを開始しました。完了すると通知が届きます。", "ExportToWorkspaceCompleted": "エクスポート完了", "ExportToWorkspaceCompletedMessage": "エクスポートが正常に完了しました。", + "ImportToWorkspaceNotificationMessage": "{count} 件のドキュメントがワークスペースにインポートされました", + "ImportCompleted": "ドキュメントがワークスペースにインポートされました", + "SourceWorkspace": "ソースワークスペース", + "ExportedCount": "エクスポート数", + "ExportedDocumentIds": "エクスポートされたドキュメントのID", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 件のドキュメントがワークスペース {workspace} からインポートされました} other {# 件のドキュメントがワークスペース {workspace} からインポートされました}}:", + "ExportedDocumentClass": "エクスポートされたドキュメントのクラス", + "Import": "インポート", + "ImportedDocuments": "新しいドキュメント", "ExportToWorkspaceFailed": "エクスポート失敗", "SelectWorkspace": "ワークスペースを選択", "SelectWorkspaceToExport": "{count, plural, =1 {1 件のドキュメント} other {# 件のドキュメント}}をエクスポートするワークスペースを選択", @@ -38,6 +47,7 @@ "SelectSpace": "スペースを選択", "NoSelectedDocuments": "ドキュメントが選択されていません", "RequestPermissionToImport": "ドキュメントをインポートするには、対象ワークスペースの所有者に許可をリクエストしてください。", - "SkipDeletedObsolete": "アーカイブ済みまたは廃止されたドキュメントをスキップ" + "SkipDeletedObsolete": "アーカイブ済みまたは廃止されたドキュメントをスキップ", + "ExportResultRecordTitle": "ワークスペース {workspace} からのドキュメントのエクスポート ({date})" } } diff --git a/plugins/export-assets/lang/pt.json b/plugins/export-assets/lang/pt.json index c863d578b82..ee0d17d35d1 100644 --- a/plugins/export-assets/lang/pt.json +++ b/plugins/export-assets/lang/pt.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Exportação iniciada. Você receberá uma notificação quando for concluída.", "ExportToWorkspaceCompleted": "Exportação concluída", "ExportToWorkspaceCompletedMessage": "Exportação concluída com sucesso.", + "ImportToWorkspaceNotificationMessage": "{count} documentos importados para o seu espaço de trabalho", + "ImportCompleted": "Documentos importados para o espaço de trabalho", + "SourceWorkspace": "Espaço de trabalho de origem", + "ExportedCount": "Quantidade exportada", + "ExportedDocumentIds": "IDs dos documentos exportados", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 documento foi importado do espaço de trabalho {workspace}} other {# documentos foram importados do espaço de trabalho {workspace}}}:", + "ExportedDocumentClass": "Classe dos documentos exportados", + "Import": "Importar", + "ImportedDocuments": "Novos documentos", "ExportToWorkspaceFailed": "Exportação falhou", "SelectWorkspace": "Selecionar espaço de trabalho", "SelectWorkspaceToExport": "Selecionar espaço de trabalho para exportar {count, plural, =1 {1 documento} other {# documentos}}", @@ -38,6 +47,7 @@ "SelectSpace": "Selecionar espaço", "NoSelectedDocuments": "Nenhum documento selecionado", "RequestPermissionToImport": "Por favor, solicite permissão ao proprietário do espaço de trabalho de destino para importar documentos.", - "SkipDeletedObsolete": "Pular documentos arquivados ou obsoletos" + "SkipDeletedObsolete": "Pular documentos arquivados ou obsoletos", + "ExportResultRecordTitle": "Exportação de documentos do espaço de trabalho {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/ru.json b/plugins/export-assets/lang/ru.json index d24a9932e59..92754ff9ed4 100644 --- a/plugins/export-assets/lang/ru.json +++ b/plugins/export-assets/lang/ru.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Экспорт начат. Вы получите уведомление, когда он будет завершен.", "ExportToWorkspaceCompleted": "Экспорт завершен", "ExportToWorkspaceCompletedMessage": "Экспорт успешно завершен.", + "ImportToWorkspaceNotificationMessage": "{count} документов импортировано в ваше рабочее пространство", + "ImportCompleted": "Документы импортированы в рабочее пространство", + "SourceWorkspace": "Исходное рабочее пространство", + "ExportedCount": "Количество экспортированных", + "ExportedDocumentIds": "ID экспортированных документов", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 документ импортирован из рабочего пространства {workspace}} few {# документа импортированы из рабочего пространства {workspace}} other {# документов импортировано из рабочего пространства {workspace}}}:", + "ExportedDocumentClass": "Класс экспортированных документов", + "Import": "Импорт", + "ImportedDocuments": "Новые документы", "ExportToWorkspaceFailed": "Экспорт не удался", "SelectWorkspace": "Выбрать рабочее пространство", "SelectWorkspaceToExport": "Выбрать рабочее пространство для экспорта {count, plural, =1 {1 документ} one {# документ} few {# документа} other {# документов}}", @@ -38,6 +47,7 @@ "SelectSpace": "Выбрать пространство", "NoSelectedDocuments": "Документы не выбраны", "RequestPermissionToImport": "Пожалуйста, запросите разрешение у владельца рабочего пространства, куда вы хотите экспортировать документы.", - "SkipDeletedObsolete": "Пропускать архивированные или устаревшие документы" + "SkipDeletedObsolete": "Пропускать архивированные или устаревшие документы", + "ExportResultRecordTitle": "Экспорт документов из пространства {workspace} ({date})" } } diff --git a/plugins/export-assets/lang/tr.json b/plugins/export-assets/lang/tr.json index 0482f4c2192..67c11baaa8a 100644 --- a/plugins/export-assets/lang/tr.json +++ b/plugins/export-assets/lang/tr.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "Dışa aktarma başladı. Tamamlandığında bir bildirim alacaksınız.", "ExportToWorkspaceCompleted": "Dışa aktarma tamamlandı", "ExportToWorkspaceCompletedMessage": "Dışa aktarma başarıyla tamamlandı.", + "ImportToWorkspaceNotificationMessage": "{count} belge çalışma alanınıza içe aktarıldı", + "ImportCompleted": "Belgeler çalışma alanına içe aktarıldı", + "SourceWorkspace": "Kaynak çalışma alanı", + "ExportedCount": "Dışa aktarılan sayı", + "ExportedDocumentIds": "Dışa aktarılan belge kimlikleri", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 belge {workspace} çalışma alanından içe aktarıldı} other {# belge {workspace} çalışma alanından içe aktarıldı}}:", + "ExportedDocumentClass": "Dışa aktarılan belge sınıfı", + "Import": "İçe aktarma", + "ImportedDocuments": "Yeni belgeler", "ExportToWorkspaceFailed": "Dışa aktarma başarısız oldu", "SelectWorkspace": "Çalışma alanı seç", "SelectWorkspaceToExport": "{count, plural, =1 {1 belgeyi} other {# belgeyi}} dışa aktarmak için çalışma alanı seç", @@ -38,6 +47,7 @@ "SelectSpace": "Alan seç", "NoSelectedDocuments": "Seçili belge yok", "RequestPermissionToImport": "Belgeleri içe aktarmak için lütfen hedef çalışma alanı sahibinden izin isteyin.", - "SkipDeletedObsolete": "Arşivlenmiş veya kullanımdan kaldırılmış belgeleri atla" + "SkipDeletedObsolete": "Arşivlenmiş veya kullanımdan kaldırılmış belgeleri atla", + "ExportResultRecordTitle": "{workspace} çalışma alanından belge dışa aktarma ({date})" } } diff --git a/plugins/export-assets/lang/zh.json b/plugins/export-assets/lang/zh.json index b332bdda970..160c6d28da2 100644 --- a/plugins/export-assets/lang/zh.json +++ b/plugins/export-assets/lang/zh.json @@ -31,6 +31,15 @@ "ExportStartedMessage": "导出已开始。完成后您将收到通知。", "ExportToWorkspaceCompleted": "导出完成", "ExportToWorkspaceCompletedMessage": "导出已成功完成。", + "ImportToWorkspaceNotificationMessage": "{count} 个文档已导入到您的工作区", + "ImportCompleted": "文档已导入到工作区", + "SourceWorkspace": "源工作区", + "ExportedCount": "导出数量", + "ExportedDocumentIds": "已导出文档的 ID", + "DocumentsImportedFromWorkspace": "{count, plural, one {1 个文档已从工作区 {workspace} 导入} other {# 个文档已从工作区 {workspace} 导入}}:", + "ExportedDocumentClass": "已导出文档的类", + "Import": "导入", + "ImportedDocuments": "新文档", "ExportToWorkspaceFailed": "导出失败", "SelectWorkspace": "选择工作区", "SelectWorkspaceToExport": "选择工作区以导出 {count, plural, =1 {1 文档} other {# 个文档}}", @@ -38,6 +47,7 @@ "SelectSpace": "选择空间", "NoSelectedDocuments": "未选择文档", "RequestPermissionToImport": "请向目标工作区所有者请求导入文档的权限。", - "SkipDeletedObsolete": "跳过已归档或已过时的文档" + "SkipDeletedObsolete": "跳过已归档或已过时的文档", + "ExportResultRecordTitle": "从工作区 {workspace} 导出文档 ({date})" } } diff --git a/plugins/export-resources/package.json b/plugins/export-resources/package.json index 9d8a0ed2c99..c4d01c5ac61 100644 --- a/plugins/export-resources/package.json +++ b/plugins/export-resources/package.json @@ -44,6 +44,10 @@ "@hcengineering/ui": "workspace:^0.7.0", "@hcengineering/export": "workspace:^0.7.0", "@hcengineering/login": "workspace:^0.7.0", - "@hcengineering/theme": "workspace:^0.7.0" + "@hcengineering/notification": "workspace:^0.7.0", + "@hcengineering/panel": "workspace:^0.7.0", + "@hcengineering/theme": "workspace:^0.7.0", + "@hcengineering/view": "workspace:^0.7.0", + "@hcengineering/view-resources": "workspace:^0.7.0" } } diff --git a/plugins/export-resources/src/components/ExportResultPanel.svelte b/plugins/export-resources/src/components/ExportResultPanel.svelte new file mode 100644 index 00000000000..d2b8d5554ae --- /dev/null +++ b/plugins/export-resources/src/components/ExportResultPanel.svelte @@ -0,0 +1,142 @@ + + + +{#if object} + dispatch('close')} + withoutInput + withoutActivity + > + + +
+ {object.title ?? + `Import completed – ${object.exportedCount} document${object.exportedCount !== 1 ? 's' : ''}`} +
+
+
+ + +