Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion models/export/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
82 changes: 76 additions & 6 deletions models/export/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Doc>[]

@Prop(TypeRef(core.class.Class), exportPlugin.string.ExportedDocumentClass)
objectClass!: Ref<Class<Doc>>

@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
)
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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ů}}",
"SelectWorkspaceToExportSpace": "Vybrat pracovní prostor pro export dokumentů z prostoru",
"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})"
}
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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",
"SelectWorkspaceToExportSpace": "Arbeitsbereich zum Exportieren von Dokumenten aus dem Bereich auswählen",
"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})"
}
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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}}",
"SelectWorkspaceToExportSpace": "Select workspace to export documents from space",
"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})"
}
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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}}",
"SelectWorkspaceToExportSpace": "Seleccionar espacio de trabajo para exportar documentos del espacio",
"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})"
}
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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}}",
"SelectWorkspaceToExportSpace": "Sélectionner l'espace de travail pour exporter les documents de l'espace",
"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})"
}
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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}}",
"SelectWorkspaceToExportSpace": "Seleziona spazio di lavoro per esportare documenti dallo spazio",
"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})"
}
}
12 changes: 11 additions & 1 deletion plugins/export-assets/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,23 @@
"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 {# 件のドキュメント}}をエクスポートするワークスペースを選択",
"SelectWorkspaceToExportSpace": "スペースからドキュメントをエクスポートするワークスペースを選択",
"SelectSpace": "スペースを選択",
"NoSelectedDocuments": "ドキュメントが選択されていません",
"RequestPermissionToImport": "ドキュメントをインポートするには、対象ワークスペースの所有者に許可をリクエストしてください。",
"SkipDeletedObsolete": "アーカイブ済みまたは廃止されたドキュメントをスキップ"
"SkipDeletedObsolete": "アーカイブ済みまたは廃止されたドキュメントをスキップ",
"ExportResultRecordTitle": "ワークスペース {workspace} からのドキュメントのエクスポート ({date})"
}
}
Loading
Loading