@acorex/modules 21.0.0-next.89 → 21.0.0-next.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-modules-common.mjs +9 -9
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-B_JcAHvL.mjs → acorex-modules-conversation-acorex-modules-conversation-Dc8te-PO.mjs} +364 -237
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-Dc8te-PO.mjs.map +1 -0
- package/fesm2022/{acorex-modules-conversation-after-message-sent.command-DcrS7_vV.mjs → acorex-modules-conversation-after-message-sent.command-DxDe6o9N.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-after-message-sent.command-DcrS7_vV.mjs.map → acorex-modules-conversation-after-message-sent.command-DxDe6o9N.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-BCkJEAmX.mjs → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Dyx_n0bi.mjs} +3 -3
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-BCkJEAmX.mjs.map → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Dyx_n0bi.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-comments-page.component-B6TJhe4T.mjs → acorex-modules-conversation-comments-page.component--g4ugC_L.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-comments-page.component-B6TJhe4T.mjs.map → acorex-modules-conversation-comments-page.component--g4ugC_L.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-emit-typing-indicator.command-CWRdPl-S.mjs → acorex-modules-conversation-emit-typing-indicator.command-BOldPLQ0.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-emit-typing-indicator.command-CWRdPl-S.mjs.map → acorex-modules-conversation-emit-typing-indicator.command-BOldPLQ0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-mark-conversation-unread.command-CZlsLAsb.mjs → acorex-modules-conversation-mark-conversation-unread.command-O_zPrBQ0.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-mark-conversation-unread.command-CZlsLAsb.mjs.map → acorex-modules-conversation-mark-conversation-unread.command-O_zPrBQ0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-retry-assist-response.command-Cly1-RKt.mjs → acorex-modules-conversation-retry-assist-response.command-DsB-CP3R.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-retry-assist-response.command-Cly1-RKt.mjs.map → acorex-modules-conversation-retry-assist-response.command-DsB-CP3R.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-D5QWTKqh.mjs → acorex-modules-conversation-send-assist-chat-message.command-g_NgPuxP.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-D5QWTKqh.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-g_NgPuxP.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-DkSZj8fj.mjs → acorex-modules-conversation-start-assist-chat.command-DeMmJdd6.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-DkSZj8fj.mjs.map → acorex-modules-conversation-start-assist-chat.command-DeMmJdd6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-sync-read-state.command-jiEsdxUB.mjs → acorex-modules-conversation-sync-read-state.command-4YxdwLaE.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-sync-read-state.command-jiEsdxUB.mjs.map → acorex-modules-conversation-sync-read-state.command-4YxdwLaE.mjs.map} +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLuhOPFz.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-kph3UxDu.mjs} +94 -41
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-kph3UxDu.mjs.map +1 -0
- package/fesm2022/{acorex-modules-dashboard-management-index-gjCiELmH.mjs → acorex-modules-dashboard-management-index-rp9dgARq.mjs} +2 -2
- package/fesm2022/{acorex-modules-dashboard-management-index-gjCiELmH.mjs.map → acorex-modules-dashboard-management-index-rp9dgARq.mjs.map} +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DyJoXajP.mjs → acorex-modules-document-management-drive-choose.component-Dx1slMSA.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DyJoXajP.mjs.map → acorex-modules-document-management-drive-choose.component-Dx1slMSA.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +268 -351
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-VJ2NUSm1.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-BZwLfZkb.mjs} +42 -21
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-BZwLfZkb.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-FgXkyZR_.mjs → acorex-modules-human-capital-management-approve-leave-request.command-B_EBDijL.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-FgXkyZR_.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-B_EBDijL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-D2yCvifI.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-ZzWBeTv1.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-D2yCvifI.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-ZzWBeTv1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DnmsVNwU.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-Bd3RvlNm.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DnmsVNwU.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-Bd3RvlNm.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-edit-personal-info.command-B0ZUfbqn.mjs → acorex-modules-human-capital-management-edit-personal-info.command-Drbi1WMd.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-edit-personal-info.command-B0ZUfbqn.mjs.map → acorex-modules-human-capital-management-edit-personal-info.command-Drbi1WMd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-edit-signature.command-h2kTqSg0.mjs → acorex-modules-human-capital-management-edit-signature.command-CRPqnXIj.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-edit-signature.command-h2kTqSg0.mjs.map → acorex-modules-human-capital-management-edit-signature.command-CRPqnXIj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-BdrdgvbN.mjs → acorex-modules-human-capital-management-reject-leave-request.command-BC-1Kixd.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-BdrdgvbN.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-BC-1Kixd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-S7Px6Y4B.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-Caylq9Rv.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-S7Px6Y4B.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-Caylq9Rv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-start-leave-request-flow.command-C_tE-D_Y.mjs → acorex-modules-human-capital-management-start-leave-request-flow.command-BsEwA1VM.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-start-leave-request-flow.command-C_tE-D_Y.mjs.map → acorex-modules-human-capital-management-start-leave-request-flow.command-BsEwA1VM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-start-lifecycle-event-flow.command-mMP3Yy01.mjs → acorex-modules-human-capital-management-start-lifecycle-event-flow.command-B8xK2iTn.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-start-lifecycle-event-flow.command-mMP3Yy01.mjs.map → acorex-modules-human-capital-management-start-lifecycle-event-flow.command-B8xK2iTn.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/acorex-modules-platform-dev-tools.mjs +2 -2
- package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +707 -424
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-task-management-start-task-flow.command-HYdQOWDe.mjs +115 -0
- package/fesm2022/acorex-modules-task-management-start-task-flow.command-HYdQOWDe.mjs.map +1 -0
- package/fesm2022/{acorex-modules-task-management-task-board.page-DTWxd_vG.mjs → acorex-modules-task-management-task-board.page-BMTjJlry.mjs} +3 -3
- package/fesm2022/{acorex-modules-task-management-task-board.page-DTWxd_vG.mjs.map → acorex-modules-task-management-task-board.page-BMTjJlry.mjs.map} +1 -1
- package/fesm2022/acorex-modules-task-management.mjs +433 -460
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-timesheet-management-report-hours-by-project.query-z38wZLKJ.mjs → acorex-modules-timesheet-management-report-hours-by-project.query-CGc1Q6aB.mjs} +2 -2
- package/fesm2022/acorex-modules-timesheet-management-report-hours-by-project.query-CGc1Q6aB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-timesheet-management-resolve-work-item-from-jira-issue.command-BDfvz6fH.mjs → acorex-modules-timesheet-management-resolve-work-item-from-jira-issue.command-AIcAUd3s.mjs} +2 -2
- package/fesm2022/{acorex-modules-timesheet-management-resolve-work-item-from-jira-issue.command-BDfvz6fH.mjs.map → acorex-modules-timesheet-management-resolve-work-item-from-jira-issue.command-AIcAUd3s.mjs.map} +1 -1
- package/fesm2022/acorex-modules-timesheet-management.mjs +8 -8
- package/fesm2022/acorex-modules-timesheet-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workplacesafety-management-control-hierarchy-diagram-widget-edit.component-CFF7X1MO.mjs +70 -0
- package/fesm2022/acorex-modules-workplacesafety-management-control-hierarchy-diagram-widget-edit.component-CFF7X1MO.mjs.map +1 -0
- package/fesm2022/acorex-modules-workplacesafety-management-control-hierarchy-diagram-widget-view.component-DwC2aHVt.mjs +70 -0
- package/fesm2022/acorex-modules-workplacesafety-management-control-hierarchy-diagram-widget-view.component-DwC2aHVt.mjs.map +1 -0
- package/fesm2022/acorex-modules-workplacesafety-management-control-hierarchy-diagram.types-DmzV305e.mjs +195 -0
- package/fesm2022/acorex-modules-workplacesafety-management-control-hierarchy-diagram.types-DmzV305e.mjs.map +1 -0
- package/fesm2022/acorex-modules-workplacesafety-management.mjs +139 -16
- package/fesm2022/acorex-modules-workplacesafety-management.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-dashboard-management.d.ts +30 -11
- package/types/acorex-modules-document-management.d.ts +21 -5
- package/types/acorex-modules-human-capital-management.d.ts +4 -0
- package/types/acorex-modules-project-management.d.ts +46 -23
- package/types/acorex-modules-task-management.d.ts +80 -11
- package/types/acorex-modules-timesheet-management.d.ts +2 -2
- package/types/acorex-modules-workplacesafety-management.d.ts +7 -2
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-B_JcAHvL.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLuhOPFz.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-VJ2NUSm1.mjs.map +0 -1
- package/fesm2022/acorex-modules-timesheet-management-report-hours-by-project.query-z38wZLKJ.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AXPStateMessageComponent, AXPLayoutSideDetailPanelComponent, AXPLayoutSideDetailPanelSectionDirective, AXP_PAGE_COMPONENT_PROVIDER, AXPThemeLayoutBlockComponent, AXPQueryFiltersComponent } from '@acorex/platform/layout/components';
|
|
2
2
|
import { AXPEntityService, resolveEntityPluginDetailPageOrder, ensureListActions, AXPEntityDefinitionRegistryService, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
|
3
|
-
import { AXPHookService, AXPDeviceService, AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from '@acorex/platform/core';
|
|
3
|
+
import { AXPHookService, AXPDeviceService, AXPExpressionEvaluatorService, getSmart, AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from '@acorex/platform/core';
|
|
4
4
|
import { AXPSearchCommandProvider, createEntitySearchCommand, AXPFileTypeProviderService, AXP_FILE_TYPE_INFO_PROVIDER, AXPFileStorageService, AXPFilterOperatorMiddlewareService, AXPSettingsService, AXPLockService, UploadFromComputerActionProvider, AXP_FILE_ACTION_PROVIDER, AXP_PROTECTED_ROUTE_GUARDS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
|
|
5
5
|
import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
@@ -9,11 +9,11 @@ import * as i5 from '@acorex/core/translation';
|
|
|
9
9
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
|
10
10
|
import { AXPCommonMenuKeys } from '@acorex/modules/common';
|
|
11
11
|
import { firstValueFrom } from 'rxjs';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i7 from '@acorex/platform/layout/widget-core';
|
|
13
13
|
import { AXPValueWidgetComponent, AXPWidgetCoreModule, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';
|
|
14
14
|
import { AXPWidgetsCatalog, AXPPlatformScope, AXPDataGenerator, AXPWidgetsList, resolvePlatformScopeKey, resolvePlatformScopeName } from '@acorex/platform/contracts';
|
|
15
15
|
import { AXDataSource } from '@acorex/cdk/common';
|
|
16
|
-
import * as
|
|
16
|
+
import * as i8 from '@acorex/components/collapse';
|
|
17
17
|
import { AXCollapseModule } from '@acorex/components/collapse';
|
|
18
18
|
import * as i3$1 from '@acorex/components/decorators';
|
|
19
19
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
@@ -21,11 +21,15 @@ import * as i3 from '@acorex/components/form';
|
|
|
21
21
|
import { AXFormModule } from '@acorex/components/form';
|
|
22
22
|
import * as i4 from '@acorex/components/label';
|
|
23
23
|
import { AXLabelModule } from '@acorex/components/label';
|
|
24
|
+
import * as i6 from '@acorex/components/search-box';
|
|
25
|
+
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
24
26
|
import * as i1 from '@acorex/components/select-box';
|
|
25
27
|
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
26
28
|
import * as i2 from '@angular/forms';
|
|
27
29
|
import { FormsModule } from '@angular/forms';
|
|
28
30
|
import get from 'lodash-es/get';
|
|
31
|
+
import isEmpty from 'lodash-es/isEmpty';
|
|
32
|
+
import isString from 'lodash-es/isString';
|
|
29
33
|
import set from 'lodash-es/set';
|
|
30
34
|
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/layout/widgets';
|
|
31
35
|
import * as i1$1 from '@angular/common';
|
|
@@ -38,7 +42,7 @@ import { AXPCommandService } from '@acorex/platform/runtime';
|
|
|
38
42
|
import * as i2$3 from '@acorex/platform/workflow';
|
|
39
43
|
import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
40
44
|
import { AXFileService, AXFileModule } from '@acorex/core/file';
|
|
41
|
-
import { castArray, get as get$1, set as set$1 } from 'lodash-es';
|
|
45
|
+
import { isArray, castArray, get as get$1, isString as isString$1, set as set$1 } from 'lodash-es';
|
|
42
46
|
import * as i1$3 from '@acorex/components/media-viewer';
|
|
43
47
|
import { AXMediaViewerModule } from '@acorex/components/media-viewer';
|
|
44
48
|
import * as i1$2 from '@acorex/components/button';
|
|
@@ -56,7 +60,6 @@ import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
|
56
60
|
import * as i2$2 from '@acorex/components/dropdown';
|
|
57
61
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
58
62
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
59
|
-
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
60
63
|
import { AXPPageLayoutBaseComponent, AXPPageLayoutBase, AXPPageLayoutComponent } from '@acorex/platform/layout/views';
|
|
61
64
|
import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity-contracts';
|
|
62
65
|
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
|
@@ -745,6 +748,7 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
745
748
|
constructor() {
|
|
746
749
|
super(...arguments);
|
|
747
750
|
this.fileTypeService = inject(AXPFileTypeProviderService);
|
|
751
|
+
this.searchValue = signal(undefined, ...(ngDevMode ? [{ debugName: "searchValue" }] : /* istanbul ignore next */ []));
|
|
748
752
|
this.dataSource = new AXDataSource({
|
|
749
753
|
load: async (_) => {
|
|
750
754
|
try {
|
|
@@ -763,9 +767,14 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
763
767
|
});
|
|
764
768
|
})
|
|
765
769
|
.flat();
|
|
770
|
+
const query = this.normalizeSearchQuery(this.searchValue());
|
|
771
|
+
const items = query
|
|
772
|
+
? types.filter((item) => item.title.toLowerCase().includes(query) ||
|
|
773
|
+
item.name.toLowerCase().includes(query))
|
|
774
|
+
: types;
|
|
766
775
|
return {
|
|
767
|
-
items
|
|
768
|
-
total:
|
|
776
|
+
items,
|
|
777
|
+
total: items.length,
|
|
769
778
|
};
|
|
770
779
|
}
|
|
771
780
|
catch (e) {
|
|
@@ -795,6 +804,26 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
795
804
|
this.context.set(e.data);
|
|
796
805
|
this.setValue({ ...this.getValue(), context: e.data });
|
|
797
806
|
}
|
|
807
|
+
handleSearchQueryChange(value) {
|
|
808
|
+
this.applySearchQuery(value);
|
|
809
|
+
}
|
|
810
|
+
handleSearchValueChange(e) {
|
|
811
|
+
this.applySearchQuery(e.value);
|
|
812
|
+
}
|
|
813
|
+
applySearchQuery(value) {
|
|
814
|
+
const next = isString(value) && !isEmpty(value.trim()) ? value : undefined;
|
|
815
|
+
if (this.searchValue() === next) {
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
this.searchValue.set(next);
|
|
819
|
+
void this.dataSource.refresh();
|
|
820
|
+
}
|
|
821
|
+
normalizeSearchQuery(value) {
|
|
822
|
+
if (!isString(value) || isEmpty(value.trim())) {
|
|
823
|
+
return undefined;
|
|
824
|
+
}
|
|
825
|
+
return value.trim().toLowerCase();
|
|
826
|
+
}
|
|
798
827
|
async handleValueChange(e) {
|
|
799
828
|
const selectItems = e.component.selectedItems;
|
|
800
829
|
this.setValue({ ...this.getValue(), selectedItems: selectItems });
|
|
@@ -872,6 +901,14 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
872
901
|
[ngModel]="getValue()?.selectedItems"
|
|
873
902
|
(onValueChanged)="handleValueChange($event)"
|
|
874
903
|
>
|
|
904
|
+
<ax-search-box
|
|
905
|
+
[autoSearch]="false"
|
|
906
|
+
[ngModel]="searchValue()"
|
|
907
|
+
(ngModelChange)="handleSearchQueryChange($event)"
|
|
908
|
+
(onValueChanged)="handleSearchValueChange($event)"
|
|
909
|
+
>
|
|
910
|
+
<ax-clear-button></ax-clear-button>
|
|
911
|
+
</ax-search-box>
|
|
875
912
|
</ax-select-box>
|
|
876
913
|
<div class="ax-py-3"></div>
|
|
877
914
|
<axp-widgets-container (onContextChanged)="handleOnContextChange($event)" [context]="context()">
|
|
@@ -925,7 +962,7 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
925
962
|
</ax-collapse-group>
|
|
926
963
|
}
|
|
927
964
|
</axp-widgets-container>
|
|
928
|
-
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type:
|
|
965
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i8.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i8.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
929
966
|
}
|
|
930
967
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, decorators: [{
|
|
931
968
|
type: Component,
|
|
@@ -940,6 +977,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
940
977
|
[ngModel]="getValue()?.selectedItems"
|
|
941
978
|
(onValueChanged)="handleValueChange($event)"
|
|
942
979
|
>
|
|
980
|
+
<ax-search-box
|
|
981
|
+
[autoSearch]="false"
|
|
982
|
+
[ngModel]="searchValue()"
|
|
983
|
+
(ngModelChange)="handleSearchQueryChange($event)"
|
|
984
|
+
(onValueChanged)="handleSearchValueChange($event)"
|
|
985
|
+
>
|
|
986
|
+
<ax-clear-button></ax-clear-button>
|
|
987
|
+
</ax-search-box>
|
|
943
988
|
</ax-select-box>
|
|
944
989
|
<div class="ax-py-3"></div>
|
|
945
990
|
<axp-widgets-container (onContextChanged)="handleOnContextChange($event)" [context]="context()">
|
|
@@ -1001,6 +1046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1001
1046
|
AXFormModule,
|
|
1002
1047
|
AXLabelModule,
|
|
1003
1048
|
AXDecoratorModule,
|
|
1049
|
+
AXSearchBoxModule,
|
|
1004
1050
|
AXPWidgetCoreModule,
|
|
1005
1051
|
AXCollapseModule,
|
|
1006
1052
|
],
|
|
@@ -1294,6 +1340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1294
1340
|
class AXMDocumentDialogService {
|
|
1295
1341
|
constructor() {
|
|
1296
1342
|
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
1343
|
+
this.translateService = inject(AXTranslationService);
|
|
1297
1344
|
this.entityService = inject(AXPEntityService);
|
|
1298
1345
|
this.documentData = this.entityService
|
|
1299
1346
|
.withEntity(RootConfig.module.name, RootConfig.entities.document.name)
|
|
@@ -1556,7 +1603,10 @@ class AXMDocumentDialogService {
|
|
|
1556
1603
|
}
|
|
1557
1604
|
async chooseDocumentType() {
|
|
1558
1605
|
const res = await this.documentTypeService.query({ skip: 0, take: 100 });
|
|
1559
|
-
const items = (res?.items ?? []).map((x) => ({
|
|
1606
|
+
const items = (res?.items ?? []).map((x) => ({
|
|
1607
|
+
value: x.id,
|
|
1608
|
+
text: this.translateService.resolve(x.title ?? x.name ?? x.id),
|
|
1609
|
+
}));
|
|
1560
1610
|
const result = await this.layoutBuilder
|
|
1561
1611
|
.create()
|
|
1562
1612
|
.dialog((dialog) => {
|
|
@@ -1620,7 +1670,7 @@ class DocumentAttachmentsService {
|
|
|
1620
1670
|
version: 0,
|
|
1621
1671
|
};
|
|
1622
1672
|
const title = await this.translateService.translateAsync('@document-management:dialogs.attach-file.title', {
|
|
1623
|
-
params: { title: fileTypeEntity.title },
|
|
1673
|
+
params: { title: this.translateService.resolve(fileTypeEntity.title) },
|
|
1624
1674
|
});
|
|
1625
1675
|
const result = await this.documentDialog.openAttachmentDialog(title, popupData);
|
|
1626
1676
|
return this.handlePopupResult(result);
|
|
@@ -2495,7 +2545,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2495
2545
|
* Opens the drive folder picker and creates a shortcut to the given node in the selected folder.
|
|
2496
2546
|
*/
|
|
2497
2547
|
async createShortcutWithPicker(node, scope) {
|
|
2498
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
2548
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-Dx1slMSA.mjs')).AXMDocumentDriveChooseComponent;
|
|
2499
2549
|
const popup = await this.popupService.open(comp, {
|
|
2500
2550
|
title: await this.translate.translateAsync('@document-management:actions.choose-folder-for-shortcut'),
|
|
2501
2551
|
data: {
|
|
@@ -2573,7 +2623,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2573
2623
|
* Moves a node to another location
|
|
2574
2624
|
*/
|
|
2575
2625
|
async moveTo(options) {
|
|
2576
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
2626
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-Dx1slMSA.mjs')).AXMDocumentDriveChooseComponent;
|
|
2577
2627
|
const popup = await this.popupService.open(comp, {
|
|
2578
2628
|
title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,
|
|
2579
2629
|
data: {
|
|
@@ -2606,7 +2656,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2606
2656
|
* Copies a node to another location
|
|
2607
2657
|
*/
|
|
2608
2658
|
async copyTo(options) {
|
|
2609
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
2659
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-Dx1slMSA.mjs')).AXMDocumentDriveChooseComponent;
|
|
2610
2660
|
const popup = await this.popupService.open(comp, {
|
|
2611
2661
|
title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,
|
|
2612
2662
|
data: {
|
|
@@ -2854,18 +2904,36 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2854
2904
|
*/
|
|
2855
2905
|
initialFolderDialogDocumentTypes(items, existing) {
|
|
2856
2906
|
if (Array.isArray(existing) && existing.length > 0) {
|
|
2857
|
-
return existing
|
|
2907
|
+
return existing.map((entry) => {
|
|
2908
|
+
const name = typeof entry === 'object' && entry != null && 'name' in entry
|
|
2909
|
+
? entry.name
|
|
2910
|
+
: String(entry);
|
|
2911
|
+
return items.find((it) => it?.name === name) ?? entry;
|
|
2912
|
+
});
|
|
2858
2913
|
}
|
|
2859
2914
|
const anyType = items.find((it) => it?.name === 'any');
|
|
2860
2915
|
return anyType ? [anyType] : [];
|
|
2861
2916
|
}
|
|
2917
|
+
mapDocumentTypesForPicker(items) {
|
|
2918
|
+
return items.map((it) => ({
|
|
2919
|
+
...it,
|
|
2920
|
+
displayTitle: this.resolveDocumentTypeLabel(it),
|
|
2921
|
+
}));
|
|
2922
|
+
}
|
|
2923
|
+
resolveDocumentTypeLabel(item) {
|
|
2924
|
+
const value = item.title ?? item.name ?? item.id;
|
|
2925
|
+
if (value == null || value === '') {
|
|
2926
|
+
return '';
|
|
2927
|
+
}
|
|
2928
|
+
return this.translate.resolve(value);
|
|
2929
|
+
}
|
|
2862
2930
|
/**
|
|
2863
2931
|
* Shows folder edit dialog
|
|
2864
2932
|
*/
|
|
2865
2933
|
async showFolderEditDialog(node) {
|
|
2866
2934
|
// Load document types for selection
|
|
2867
2935
|
const res = await this.documentTypeService.query({ skip: 0, take: 1000 });
|
|
2868
|
-
const items = res?.items ?? [];
|
|
2936
|
+
const items = this.mapDocumentTypesForPicker(res?.items ?? []);
|
|
2869
2937
|
const result = await this.layoutBuilder
|
|
2870
2938
|
.create()
|
|
2871
2939
|
.dialog((dialog) => {
|
|
@@ -2905,7 +2973,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2905
2973
|
field.path('documentTypes');
|
|
2906
2974
|
field.selectBox({
|
|
2907
2975
|
valueField: 'name',
|
|
2908
|
-
textField: '
|
|
2976
|
+
textField: 'displayTitle',
|
|
2909
2977
|
dataSource: items,
|
|
2910
2978
|
multiple: true,
|
|
2911
2979
|
allowSearch: true,
|
|
@@ -2952,11 +3020,16 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2952
3020
|
*/
|
|
2953
3021
|
async showCreateFolderDialog(parentId, options) {
|
|
2954
3022
|
const res = await this.documentTypeService.query({ skip: 0, take: 1000 });
|
|
2955
|
-
let items = res?.items ?? [];
|
|
3023
|
+
let items = this.mapDocumentTypesForPicker(res?.items ?? []);
|
|
2956
3024
|
const allowedNames = options?.allowedDocumentTypeNames;
|
|
2957
|
-
if (
|
|
2958
|
-
|
|
2959
|
-
|
|
3025
|
+
if (isArray(allowedNames)) {
|
|
3026
|
+
if (allowedNames.length === 0) {
|
|
3027
|
+
items = [];
|
|
3028
|
+
}
|
|
3029
|
+
else {
|
|
3030
|
+
const set = new Set(allowedNames);
|
|
3031
|
+
items = items.filter((it) => it?.name && set.has(it.name));
|
|
3032
|
+
}
|
|
2960
3033
|
}
|
|
2961
3034
|
const defaultDocumentTypes = this.initialFolderDialogDocumentTypes(items, []);
|
|
2962
3035
|
const result = await this.layoutBuilder
|
|
@@ -2998,7 +3071,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2998
3071
|
field.path('documentTypes');
|
|
2999
3072
|
field.selectBox({
|
|
3000
3073
|
valueField: 'name',
|
|
3001
|
-
textField: '
|
|
3074
|
+
textField: 'displayTitle',
|
|
3002
3075
|
dataSource: items,
|
|
3003
3076
|
multiple: true,
|
|
3004
3077
|
allowSearch: true,
|
|
@@ -3158,7 +3231,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
3158
3231
|
* Shows choose file dialog
|
|
3159
3232
|
*/
|
|
3160
3233
|
async showChooseFileDialog(scope) {
|
|
3161
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
3234
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-Dx1slMSA.mjs')).AXMDocumentDriveChooseComponent;
|
|
3162
3235
|
const result = await this.popupService.open(comp, {
|
|
3163
3236
|
title: await this.translate.translateAsync('@document-management:actions.choose-from-drive'),
|
|
3164
3237
|
data: {
|
|
@@ -3856,8 +3929,10 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
3856
3929
|
: [];
|
|
3857
3930
|
const folderTypes = store.currentFolder()?.documentTypes ?? [];
|
|
3858
3931
|
const allowedNames = store.allowedDocumentTypeNames();
|
|
3859
|
-
let typesToShow = allowedNames != null
|
|
3860
|
-
?
|
|
3932
|
+
let typesToShow = allowedNames != null
|
|
3933
|
+
? allowedNames.length > 0
|
|
3934
|
+
? folderTypes.filter((t) => t?.name && allowedNames.includes(t.name))
|
|
3935
|
+
: []
|
|
3861
3936
|
: folderTypes;
|
|
3862
3937
|
if (allowedNames != null &&
|
|
3863
3938
|
allowedNames.length > 0 &&
|
|
@@ -3877,7 +3952,7 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
3877
3952
|
},
|
|
3878
3953
|
}] : []),
|
|
3879
3954
|
...typesToShow.map((type) => ({
|
|
3880
|
-
title: type.title,
|
|
3955
|
+
title: translateService.resolve(type.title),
|
|
3881
3956
|
icon: 'fa-light fa-file-arrow-up',
|
|
3882
3957
|
break: true,
|
|
3883
3958
|
command: {
|
|
@@ -4086,7 +4161,7 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
4086
4161
|
break: true,
|
|
4087
4162
|
items: node.documentTypes.map((type, index, array) => ({
|
|
4088
4163
|
name: `upload.${type.name}`,
|
|
4089
|
-
text: type.title,
|
|
4164
|
+
text: translateService.resolve(type.title),
|
|
4090
4165
|
icon: 'fa-light fa-file-arrow-up',
|
|
4091
4166
|
break: index !== array.length - 1,
|
|
4092
4167
|
data: {
|
|
@@ -4319,9 +4394,8 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
4319
4394
|
const parentId = node?.id ?? store.currentNode()?.id;
|
|
4320
4395
|
if (parentId) {
|
|
4321
4396
|
const allowedNames = store.allowedDocumentTypeNames();
|
|
4322
|
-
console.log('allowedNames', allowedNames);
|
|
4323
4397
|
const result = await driveService.showCreateFolderDialog(parentId, {
|
|
4324
|
-
allowedDocumentTypeNames: allowedNames
|
|
4398
|
+
allowedDocumentTypeNames: allowedNames ?? undefined,
|
|
4325
4399
|
});
|
|
4326
4400
|
if (result) {
|
|
4327
4401
|
await this.refresh();
|
|
@@ -4998,7 +5072,7 @@ class AXMDocumentExplorerDetailPanelComponent {
|
|
|
4998
5072
|
this.multiSelectLabel.set(`${this.vm.selectedCount()} ${itemsSelected}`);
|
|
4999
5073
|
}
|
|
5000
5074
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5001
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "@if (vm.hasMultipleSelectedItems() && multiSelectLabel(); as multiLabel) {\n <axp-layout-side-detail-panel [multiSelectLabel]=\"multiLabel\" (panelClose)=\"onPanelClose()\" />\n} @else {\n <axp-layout-side-detail-panel\n [header]=\"panelHeader()\"\n [sections]=\"panelSections()\"\n (panelClose)=\"onPanelClose()\"\n >\n @if (metadataWidgetNode(); as widgetNode) {\n <ng-template axpLayoutSideDetailPanelSection=\"metadata\">\n <axp-widgets-container [context]=\"metadataContext()\">\n <ng-container axp-widget-renderer [node]=\"widgetNode\" [mode]=\"'view'\"></ng-container>\n </axp-widgets-container>\n </ng-template>\n }\n </axp-layout-side-detail-panel>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type:
|
|
5075
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "@if (vm.hasMultipleSelectedItems() && multiSelectLabel(); as multiLabel) {\n <axp-layout-side-detail-panel [multiSelectLabel]=\"multiLabel\" (panelClose)=\"onPanelClose()\" />\n} @else {\n <axp-layout-side-detail-panel\n [header]=\"panelHeader()\"\n [sections]=\"panelSections()\"\n (panelClose)=\"onPanelClose()\"\n >\n @if (metadataWidgetNode(); as widgetNode) {\n <ng-template axpLayoutSideDetailPanelSection=\"metadata\">\n <axp-widgets-container [context]=\"metadataContext()\">\n <ng-container axp-widget-renderer [node]=\"widgetNode\" [mode]=\"'view'\"></ng-container>\n </axp-widgets-container>\n </ng-template>\n }\n </axp-layout-side-detail-panel>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "component", type: AXPLayoutSideDetailPanelComponent, selector: "axp-layout-side-detail-panel", inputs: ["multiSelectLabel", "header", "sections", "rows", "rowsSectionTitle", "noRowsMessage", "emptyState"], outputs: ["panelClose"] }, { kind: "directive", type: AXPLayoutSideDetailPanelSectionDirective, selector: "[axpLayoutSideDetailPanelSection]", inputs: ["axpLayoutSideDetailPanelSection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5002
5076
|
}
|
|
5003
5077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, decorators: [{
|
|
5004
5078
|
type: Component,
|
|
@@ -5033,6 +5107,9 @@ class AXMDocumentDrivePageComponent extends AXPPageLayoutBaseComponent {
|
|
|
5033
5107
|
this.driveService = inject(AXMDocumentManagerService);
|
|
5034
5108
|
this.vm = inject(AXPDocumentExplorerViewModel);
|
|
5035
5109
|
this.route = inject(ActivatedRoute);
|
|
5110
|
+
this.expressionEvaluator = inject(AXPExpressionEvaluatorService);
|
|
5111
|
+
/** Resolved restriction list; null = not configured (allow all). */
|
|
5112
|
+
this.resolvedAllowedDocumentTypeNames = signal(null, ...(ngDevMode ? [{ debugName: "resolvedAllowedDocumentTypeNames" }] : /* istanbul ignore next */ []));
|
|
5036
5113
|
//#endregion
|
|
5037
5114
|
//#region ---- View State ----
|
|
5038
5115
|
this.filterItems = signal([], ...(ngDevMode ? [{ debugName: "filterItems" }] : /* istanbul ignore next */ []));
|
|
@@ -5084,12 +5161,23 @@ class AXMDocumentDrivePageComponent extends AXPPageLayoutBaseComponent {
|
|
|
5084
5161
|
this.layoutService.setNavigationLoading(isLoading);
|
|
5085
5162
|
});
|
|
5086
5163
|
}, ...(ngDevMode ? [{ debugName: "#loadingEffect" }] : /* istanbul ignore next */ []));
|
|
5164
|
+
/** Re-apply document type restrictions when record context or plugin options change. */
|
|
5165
|
+
this.#allowedDocumentTypesEffect = effect(() => {
|
|
5166
|
+
this.rootContext();
|
|
5167
|
+
this.options();
|
|
5168
|
+
this.pageConfig();
|
|
5169
|
+
untracked(() => {
|
|
5170
|
+
void this.applyAllowedDocumentTypeNames();
|
|
5171
|
+
});
|
|
5172
|
+
}, ...(ngDevMode ? [{ debugName: "#allowedDocumentTypesEffect" }] : /* istanbul ignore next */ []));
|
|
5087
5173
|
}
|
|
5088
5174
|
//#endregion
|
|
5089
5175
|
//#region ---- Effects ----
|
|
5090
5176
|
/** In embedded mode: when VM requests folder navigation, load that folder (no router). */
|
|
5091
5177
|
#navigateEffect;
|
|
5092
5178
|
#loadingEffect;
|
|
5179
|
+
/** Re-apply document type restrictions when record context or plugin options change. */
|
|
5180
|
+
#allowedDocumentTypesEffect;
|
|
5093
5181
|
//#endregion
|
|
5094
5182
|
//#region ---- Lifecycle ----
|
|
5095
5183
|
async ngOnInit() {
|
|
@@ -5099,25 +5187,56 @@ class AXMDocumentDrivePageComponent extends AXPPageLayoutBaseComponent {
|
|
|
5099
5187
|
if (!refType || !refId) {
|
|
5100
5188
|
return;
|
|
5101
5189
|
}
|
|
5102
|
-
console.log('options: ', this.options());
|
|
5103
5190
|
await this.vm.initialize({ browseMode: 'file', scope: AXPPlatformScope.Tenant });
|
|
5104
|
-
|
|
5105
|
-
console.log('[document-drive-page] ngOnInit pageConfig():', pageConfigSnapshot);
|
|
5106
|
-
const allowedNames = this.getAllowedDocumentTypeNames();
|
|
5107
|
-
console.log('[document-drive-page] getAllowedDocumentTypeNames():', allowedNames);
|
|
5108
|
-
if (allowedNames) {
|
|
5109
|
-
this.vm.setAllowedDocumentTypeNames(allowedNames);
|
|
5110
|
-
}
|
|
5191
|
+
await this.applyAllowedDocumentTypeNames();
|
|
5111
5192
|
const { result } = await this.driveService.getRootByEntityRef(refType, refId);
|
|
5112
5193
|
this.pageRootFolderId.set(result.id);
|
|
5113
5194
|
await this.vm.loadFolderContents(result.id);
|
|
5195
|
+
await this.applyAllowedDocumentTypeNames();
|
|
5114
5196
|
this.recompute();
|
|
5115
5197
|
}
|
|
5116
|
-
/**
|
|
5117
|
-
|
|
5198
|
+
/**
|
|
5199
|
+
* Resolves allowed document type names from static plugin config or an expression evaluated against rootContext.
|
|
5200
|
+
* Returns null when not configured (no restriction).
|
|
5201
|
+
*/
|
|
5202
|
+
async resolveAllowedDocumentTypeNames() {
|
|
5118
5203
|
const config = this.pageConfig();
|
|
5119
|
-
const
|
|
5120
|
-
|
|
5204
|
+
const configNames = config && config.allowedDocumentTypeNames;
|
|
5205
|
+
if (isArray(configNames)) {
|
|
5206
|
+
return configNames.filter((name) => isString$1(name) && name.trim().length > 0);
|
|
5207
|
+
}
|
|
5208
|
+
const raw = this.options()?.['documentTypeNames'];
|
|
5209
|
+
if (raw == null) {
|
|
5210
|
+
return null;
|
|
5211
|
+
}
|
|
5212
|
+
if (isArray(raw)) {
|
|
5213
|
+
return raw.filter((name) => isString$1(name) && name.trim().length > 0);
|
|
5214
|
+
}
|
|
5215
|
+
if (isString$1(raw) && raw.trim()) {
|
|
5216
|
+
const scope = {
|
|
5217
|
+
context: {
|
|
5218
|
+
eval: (path) => getSmart(this.rootContext(), path),
|
|
5219
|
+
},
|
|
5220
|
+
};
|
|
5221
|
+
const evaluated = await this.expressionEvaluator.evaluate(raw.trim(), scope);
|
|
5222
|
+
if (isArray(evaluated)) {
|
|
5223
|
+
return evaluated.filter((name) => isString$1(name) && name.trim().length > 0);
|
|
5224
|
+
}
|
|
5225
|
+
return [];
|
|
5226
|
+
}
|
|
5227
|
+
return null;
|
|
5228
|
+
}
|
|
5229
|
+
async applyAllowedDocumentTypeNames() {
|
|
5230
|
+
const names = await this.resolveAllowedDocumentTypeNames();
|
|
5231
|
+
if (names === null) {
|
|
5232
|
+
return;
|
|
5233
|
+
}
|
|
5234
|
+
this.resolvedAllowedDocumentTypeNames.set(names);
|
|
5235
|
+
this.vm.setAllowedDocumentTypeNames(names);
|
|
5236
|
+
}
|
|
5237
|
+
getAllowedDocumentTypeNames() {
|
|
5238
|
+
const names = this.resolvedAllowedDocumentTypeNames();
|
|
5239
|
+
return names === null ? undefined : names;
|
|
5121
5240
|
}
|
|
5122
5241
|
/**
|
|
5123
5242
|
* Resolves refType and refId for getRootByEntityRef from pageConfig, rootContext, or route.
|
|
@@ -5220,8 +5339,7 @@ class AXMDocumentDrivePageComponent extends AXPPageLayoutBaseComponent {
|
|
|
5220
5339
|
},
|
|
5221
5340
|
];
|
|
5222
5341
|
}
|
|
5223
|
-
const addItemItems = await this.vm.getFolderAddMenuItems(
|
|
5224
|
-
console.log('[document-drive-page] addItemItems:', addItemItems);
|
|
5342
|
+
const addItemItems = await this.vm.getFolderAddMenuItems();
|
|
5225
5343
|
if (addItemItems.length > 0) {
|
|
5226
5344
|
addItemItems[addItemItems.length - 1].break = false;
|
|
5227
5345
|
return [
|
|
@@ -6079,11 +6197,18 @@ async function documentTypeFactory() {
|
|
|
6079
6197
|
plural: RootConfig.entities.documentType.titlePlural,
|
|
6080
6198
|
searchResult: {
|
|
6081
6199
|
title: '{{ title }}',
|
|
6082
|
-
description:
|
|
6200
|
+
description: '{{ description }}',
|
|
6083
6201
|
},
|
|
6084
6202
|
},
|
|
6085
6203
|
plugins: [
|
|
6086
6204
|
{ name: 'history' },
|
|
6205
|
+
{
|
|
6206
|
+
name: 'unique-fields',
|
|
6207
|
+
options: {
|
|
6208
|
+
fields: 'name',
|
|
6209
|
+
scope: 'global',
|
|
6210
|
+
},
|
|
6211
|
+
},
|
|
6087
6212
|
{
|
|
6088
6213
|
name: 'meta-data-builder',
|
|
6089
6214
|
options: {
|
|
@@ -6095,7 +6220,11 @@ async function documentTypeFactory() {
|
|
|
6095
6220
|
groups: [
|
|
6096
6221
|
{
|
|
6097
6222
|
id: 'basic-info',
|
|
6098
|
-
title:
|
|
6223
|
+
title: '@general:terms.interface.basic-info',
|
|
6224
|
+
},
|
|
6225
|
+
{
|
|
6226
|
+
id: 'configuration',
|
|
6227
|
+
title: '@general:terms.interface.configuration',
|
|
6099
6228
|
},
|
|
6100
6229
|
{
|
|
6101
6230
|
id: 'management',
|
|
@@ -6111,23 +6240,41 @@ async function documentTypeFactory() {
|
|
|
6111
6240
|
sort: {
|
|
6112
6241
|
enabled: true,
|
|
6113
6242
|
},
|
|
6243
|
+
filter: {
|
|
6244
|
+
advance: { enabled: true },
|
|
6245
|
+
inline: { enabled: true },
|
|
6246
|
+
},
|
|
6114
6247
|
},
|
|
6115
6248
|
schema: {
|
|
6116
6249
|
dataType: 'string',
|
|
6250
|
+
readonly: '{{ !!context.eval("id") }}',
|
|
6117
6251
|
interface: {
|
|
6118
6252
|
type: AXPWidgetsList.Editors.TextBox,
|
|
6253
|
+
options: {
|
|
6254
|
+
disabled: '{{ !!context.eval("id") }}',
|
|
6255
|
+
},
|
|
6119
6256
|
},
|
|
6120
6257
|
},
|
|
6121
6258
|
validations: [
|
|
6122
6259
|
{
|
|
6123
6260
|
rule: 'required',
|
|
6124
6261
|
},
|
|
6262
|
+
{
|
|
6263
|
+
rule: 'variable-name',
|
|
6264
|
+
},
|
|
6125
6265
|
],
|
|
6126
6266
|
},
|
|
6127
6267
|
{
|
|
6128
6268
|
name: 'title',
|
|
6129
6269
|
title: '@general:terms.common.title',
|
|
6130
6270
|
groupId: 'basic-info',
|
|
6271
|
+
options: {
|
|
6272
|
+
sort: { enabled: true },
|
|
6273
|
+
filter: {
|
|
6274
|
+
advance: { enabled: true },
|
|
6275
|
+
inline: { enabled: true },
|
|
6276
|
+
},
|
|
6277
|
+
},
|
|
6131
6278
|
schema: {
|
|
6132
6279
|
dataType: 'string',
|
|
6133
6280
|
interface: {
|
|
@@ -6140,12 +6287,31 @@ async function documentTypeFactory() {
|
|
|
6140
6287
|
},
|
|
6141
6288
|
],
|
|
6142
6289
|
},
|
|
6290
|
+
{
|
|
6291
|
+
name: 'description',
|
|
6292
|
+
title: '@general:terms.common.description',
|
|
6293
|
+
groupId: 'basic-info',
|
|
6294
|
+
options: {
|
|
6295
|
+
sort: { enabled: false },
|
|
6296
|
+
filter: { advance: { enabled: true }, inline: { enabled: true } },
|
|
6297
|
+
},
|
|
6298
|
+
schema: {
|
|
6299
|
+
dataType: 'string',
|
|
6300
|
+
interface: {
|
|
6301
|
+
type: AXPWidgetsList.Editors.LargeTextBox,
|
|
6302
|
+
options: {
|
|
6303
|
+
rows: 3,
|
|
6304
|
+
},
|
|
6305
|
+
},
|
|
6306
|
+
},
|
|
6307
|
+
},
|
|
6143
6308
|
{
|
|
6144
6309
|
name: 'maxSize',
|
|
6145
6310
|
title: `@${i18n}:terms.document.max-size`,
|
|
6146
|
-
groupId: '
|
|
6311
|
+
groupId: 'configuration',
|
|
6147
6312
|
schema: {
|
|
6148
6313
|
dataType: 'number',
|
|
6314
|
+
defaultValue: 50000,
|
|
6149
6315
|
interface: {
|
|
6150
6316
|
type: AXPWidgetsList.Editors.UnitValueBox,
|
|
6151
6317
|
options: {
|
|
@@ -6181,7 +6347,7 @@ async function documentTypeFactory() {
|
|
|
6181
6347
|
{
|
|
6182
6348
|
name: 'isEncrypted',
|
|
6183
6349
|
title: `@${i18n}:terms.document.is-encrypted`,
|
|
6184
|
-
groupId: '
|
|
6350
|
+
groupId: 'configuration',
|
|
6185
6351
|
schema: {
|
|
6186
6352
|
dataType: 'boolean',
|
|
6187
6353
|
interface: {
|
|
@@ -6189,6 +6355,21 @@ async function documentTypeFactory() {
|
|
|
6189
6355
|
},
|
|
6190
6356
|
},
|
|
6191
6357
|
},
|
|
6358
|
+
{
|
|
6359
|
+
name: 'type',
|
|
6360
|
+
title: `@${i18n}:terms.common.type`,
|
|
6361
|
+
groupId: 'configuration',
|
|
6362
|
+
options: {
|
|
6363
|
+
sort: { enabled: false },
|
|
6364
|
+
},
|
|
6365
|
+
schema: {
|
|
6366
|
+
dataType: 'object',
|
|
6367
|
+
interface: {
|
|
6368
|
+
type: AXPWidgetsList.Editors.FileTypeExtension,
|
|
6369
|
+
options: {},
|
|
6370
|
+
},
|
|
6371
|
+
},
|
|
6372
|
+
},
|
|
6192
6373
|
{
|
|
6193
6374
|
name: 'enableExpiration',
|
|
6194
6375
|
title: `@${i18n}:terms.document.enable-expiration`,
|
|
@@ -6242,214 +6423,36 @@ async function documentTypeFactory() {
|
|
|
6242
6423
|
// },
|
|
6243
6424
|
// },
|
|
6244
6425
|
// },
|
|
6245
|
-
{
|
|
6246
|
-
name: 'type',
|
|
6247
|
-
title: `@${i18n}:terms.common.type`,
|
|
6248
|
-
groupId: 'basic-info',
|
|
6249
|
-
schema: {
|
|
6250
|
-
dataType: 'object',
|
|
6251
|
-
interface: {
|
|
6252
|
-
type: AXPWidgetsList.Editors.FileTypeExtension,
|
|
6253
|
-
options: {},
|
|
6254
|
-
},
|
|
6255
|
-
},
|
|
6256
|
-
},
|
|
6257
6426
|
],
|
|
6258
|
-
columns: [{ name: 'name' }, { name: 'title' }],
|
|
6427
|
+
columns: [{ name: 'name' }, { name: 'title' }, { name: 'description' }],
|
|
6259
6428
|
interfaces: {
|
|
6260
6429
|
master: {
|
|
6261
6430
|
create: {
|
|
6262
|
-
sections: [
|
|
6263
|
-
{
|
|
6264
|
-
id: 'basic-info',
|
|
6265
|
-
},
|
|
6266
|
-
{
|
|
6267
|
-
id: 'management',
|
|
6268
|
-
},
|
|
6269
|
-
],
|
|
6431
|
+
sections: [{ id: 'basic-info' }, { id: 'configuration' }, { id: 'management' }],
|
|
6270
6432
|
properties: [
|
|
6271
|
-
{
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6275
|
-
|
|
6276
|
-
|
|
6277
|
-
|
|
6278
|
-
|
|
6279
|
-
|
|
6280
|
-
},
|
|
6281
|
-
{
|
|
6282
|
-
name: 'title',
|
|
6283
|
-
layout: {
|
|
6284
|
-
positions: {
|
|
6285
|
-
lg: {
|
|
6286
|
-
colSpan: 6,
|
|
6287
|
-
},
|
|
6288
|
-
},
|
|
6289
|
-
},
|
|
6290
|
-
},
|
|
6291
|
-
{
|
|
6292
|
-
name: 'maxSize',
|
|
6293
|
-
layout: {
|
|
6294
|
-
positions: {
|
|
6295
|
-
lg: {
|
|
6296
|
-
colSpan: 6,
|
|
6297
|
-
},
|
|
6298
|
-
},
|
|
6299
|
-
},
|
|
6300
|
-
},
|
|
6301
|
-
{
|
|
6302
|
-
name: 'isEncrypted',
|
|
6303
|
-
layout: {
|
|
6304
|
-
positions: {
|
|
6305
|
-
lg: {
|
|
6306
|
-
colSpan: 6,
|
|
6307
|
-
},
|
|
6308
|
-
},
|
|
6309
|
-
},
|
|
6310
|
-
},
|
|
6311
|
-
{
|
|
6312
|
-
name: 'enableExpiration',
|
|
6313
|
-
layout: {
|
|
6314
|
-
positions: {
|
|
6315
|
-
lg: {
|
|
6316
|
-
colSpan: 6,
|
|
6317
|
-
},
|
|
6318
|
-
},
|
|
6319
|
-
},
|
|
6320
|
-
},
|
|
6321
|
-
{
|
|
6322
|
-
name: 'requiresReview',
|
|
6323
|
-
layout: {
|
|
6324
|
-
positions: {
|
|
6325
|
-
lg: {
|
|
6326
|
-
colSpan: 6,
|
|
6327
|
-
},
|
|
6328
|
-
},
|
|
6329
|
-
},
|
|
6330
|
-
},
|
|
6331
|
-
{
|
|
6332
|
-
name: 'enableVersioning',
|
|
6333
|
-
layout: {
|
|
6334
|
-
positions: {
|
|
6335
|
-
lg: {
|
|
6336
|
-
colSpan: 6,
|
|
6337
|
-
},
|
|
6338
|
-
},
|
|
6339
|
-
},
|
|
6340
|
-
},
|
|
6341
|
-
// {
|
|
6342
|
-
// name: 'meta',
|
|
6343
|
-
// layout: {
|
|
6344
|
-
// positions: {
|
|
6345
|
-
// lg: {
|
|
6346
|
-
// colSpan: 12,
|
|
6347
|
-
// },
|
|
6348
|
-
// },
|
|
6349
|
-
// },
|
|
6350
|
-
// },
|
|
6351
|
-
{
|
|
6352
|
-
name: 'type',
|
|
6353
|
-
layout: {
|
|
6354
|
-
positions: {
|
|
6355
|
-
lg: {
|
|
6356
|
-
colSpan: 12,
|
|
6357
|
-
},
|
|
6358
|
-
},
|
|
6359
|
-
},
|
|
6360
|
-
},
|
|
6433
|
+
{ name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
|
|
6434
|
+
{ name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
|
|
6435
|
+
{ name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
6436
|
+
{ name: 'maxSize', layout: { positions: { lg: { colSpan: 4, order: 1 } } } },
|
|
6437
|
+
{ name: 'isEncrypted', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
|
|
6438
|
+
{ name: 'type', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
6439
|
+
{ name: 'enableExpiration', layout: { positions: { lg: { colSpan: 4, order: 1 } } } },
|
|
6440
|
+
{ name: 'requiresReview', layout: { positions: { lg: { colSpan: 4, order: 2 } } } },
|
|
6441
|
+
{ name: 'enableVersioning', layout: { positions: { lg: { colSpan: 4, order: 3 } } } },
|
|
6361
6442
|
],
|
|
6362
6443
|
},
|
|
6363
6444
|
update: {
|
|
6364
|
-
sections: [
|
|
6365
|
-
{
|
|
6366
|
-
id: 'basic-info',
|
|
6367
|
-
},
|
|
6368
|
-
{
|
|
6369
|
-
id: 'management',
|
|
6370
|
-
},
|
|
6371
|
-
],
|
|
6445
|
+
sections: [{ id: 'basic-info' }, { id: 'configuration' }, { id: 'management' }],
|
|
6372
6446
|
properties: [
|
|
6373
|
-
{
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
},
|
|
6383
|
-
{
|
|
6384
|
-
name: 'title',
|
|
6385
|
-
layout: {
|
|
6386
|
-
positions: {
|
|
6387
|
-
lg: {
|
|
6388
|
-
colSpan: 6,
|
|
6389
|
-
},
|
|
6390
|
-
},
|
|
6391
|
-
},
|
|
6392
|
-
},
|
|
6393
|
-
{
|
|
6394
|
-
name: 'maxSize',
|
|
6395
|
-
layout: {
|
|
6396
|
-
positions: {
|
|
6397
|
-
lg: {
|
|
6398
|
-
colSpan: 6,
|
|
6399
|
-
},
|
|
6400
|
-
},
|
|
6401
|
-
},
|
|
6402
|
-
},
|
|
6403
|
-
{
|
|
6404
|
-
name: 'isEncrypted',
|
|
6405
|
-
layout: {
|
|
6406
|
-
positions: {
|
|
6407
|
-
lg: {
|
|
6408
|
-
colSpan: 6,
|
|
6409
|
-
},
|
|
6410
|
-
},
|
|
6411
|
-
},
|
|
6412
|
-
},
|
|
6413
|
-
{
|
|
6414
|
-
name: 'enableExpiration',
|
|
6415
|
-
layout: {
|
|
6416
|
-
positions: {
|
|
6417
|
-
lg: {
|
|
6418
|
-
colSpan: 6,
|
|
6419
|
-
},
|
|
6420
|
-
},
|
|
6421
|
-
},
|
|
6422
|
-
},
|
|
6423
|
-
{
|
|
6424
|
-
name: 'requiresReview',
|
|
6425
|
-
layout: {
|
|
6426
|
-
positions: {
|
|
6427
|
-
lg: {
|
|
6428
|
-
colSpan: 6,
|
|
6429
|
-
},
|
|
6430
|
-
},
|
|
6431
|
-
},
|
|
6432
|
-
},
|
|
6433
|
-
{
|
|
6434
|
-
name: 'enableVersioning',
|
|
6435
|
-
layout: {
|
|
6436
|
-
positions: {
|
|
6437
|
-
lg: {
|
|
6438
|
-
colSpan: 6,
|
|
6439
|
-
},
|
|
6440
|
-
},
|
|
6441
|
-
},
|
|
6442
|
-
},
|
|
6443
|
-
{
|
|
6444
|
-
name: 'type',
|
|
6445
|
-
layout: {
|
|
6446
|
-
positions: {
|
|
6447
|
-
lg: {
|
|
6448
|
-
colSpan: 12,
|
|
6449
|
-
},
|
|
6450
|
-
},
|
|
6451
|
-
},
|
|
6452
|
-
},
|
|
6447
|
+
{ name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
|
|
6448
|
+
{ name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
|
|
6449
|
+
{ name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
6450
|
+
{ name: 'maxSize', layout: { positions: { lg: { colSpan: 4, order: 1 } } } },
|
|
6451
|
+
{ name: 'isEncrypted', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
|
|
6452
|
+
{ name: 'type', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
6453
|
+
{ name: 'enableExpiration', layout: { positions: { lg: { colSpan: 4, order: 1 } } } },
|
|
6454
|
+
{ name: 'requiresReview', layout: { positions: { lg: { colSpan: 4, order: 2 } } } },
|
|
6455
|
+
{ name: 'enableVersioning', layout: { positions: { lg: { colSpan: 4, order: 3 } } } },
|
|
6453
6456
|
],
|
|
6454
6457
|
},
|
|
6455
6458
|
single: {
|
|
@@ -6457,116 +6460,30 @@ async function documentTypeFactory() {
|
|
|
6457
6460
|
sections: [
|
|
6458
6461
|
{
|
|
6459
6462
|
id: 'basic-info',
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
},
|
|
6463
|
+
order: 1,
|
|
6464
|
+
layout: { positions: { lg: { colSpan: 12 } } },
|
|
6465
|
+
},
|
|
6466
|
+
{
|
|
6467
|
+
id: 'configuration',
|
|
6468
|
+
order: 2,
|
|
6469
|
+
layout: { positions: { lg: { colSpan: 12 } } },
|
|
6467
6470
|
},
|
|
6468
6471
|
{
|
|
6469
6472
|
id: 'management',
|
|
6470
|
-
|
|
6471
|
-
|
|
6472
|
-
lg: {
|
|
6473
|
-
colSpan: 12,
|
|
6474
|
-
},
|
|
6475
|
-
},
|
|
6476
|
-
},
|
|
6473
|
+
order: 3,
|
|
6474
|
+
layout: { positions: { lg: { colSpan: 12 } } },
|
|
6477
6475
|
},
|
|
6478
6476
|
],
|
|
6479
6477
|
properties: [
|
|
6480
|
-
{
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
},
|
|
6490
|
-
{
|
|
6491
|
-
name: 'title',
|
|
6492
|
-
layout: {
|
|
6493
|
-
positions: {
|
|
6494
|
-
lg: {
|
|
6495
|
-
colSpan: 6,
|
|
6496
|
-
},
|
|
6497
|
-
},
|
|
6498
|
-
},
|
|
6499
|
-
},
|
|
6500
|
-
{
|
|
6501
|
-
name: 'maxSize',
|
|
6502
|
-
layout: {
|
|
6503
|
-
positions: {
|
|
6504
|
-
lg: {
|
|
6505
|
-
colSpan: 6,
|
|
6506
|
-
},
|
|
6507
|
-
},
|
|
6508
|
-
},
|
|
6509
|
-
},
|
|
6510
|
-
{
|
|
6511
|
-
name: 'isEncrypted',
|
|
6512
|
-
layout: {
|
|
6513
|
-
positions: {
|
|
6514
|
-
lg: {
|
|
6515
|
-
colSpan: 6,
|
|
6516
|
-
},
|
|
6517
|
-
},
|
|
6518
|
-
},
|
|
6519
|
-
},
|
|
6520
|
-
{
|
|
6521
|
-
name: 'enableExpiration',
|
|
6522
|
-
layout: {
|
|
6523
|
-
positions: {
|
|
6524
|
-
lg: {
|
|
6525
|
-
colSpan: 6,
|
|
6526
|
-
},
|
|
6527
|
-
},
|
|
6528
|
-
},
|
|
6529
|
-
},
|
|
6530
|
-
{
|
|
6531
|
-
name: 'requiresReview',
|
|
6532
|
-
layout: {
|
|
6533
|
-
positions: {
|
|
6534
|
-
lg: {
|
|
6535
|
-
colSpan: 6,
|
|
6536
|
-
},
|
|
6537
|
-
},
|
|
6538
|
-
},
|
|
6539
|
-
},
|
|
6540
|
-
{
|
|
6541
|
-
name: 'enableVersioning',
|
|
6542
|
-
layout: {
|
|
6543
|
-
positions: {
|
|
6544
|
-
lg: {
|
|
6545
|
-
colSpan: 6,
|
|
6546
|
-
},
|
|
6547
|
-
},
|
|
6548
|
-
},
|
|
6549
|
-
},
|
|
6550
|
-
// {
|
|
6551
|
-
// name: 'meta',
|
|
6552
|
-
// layout: {
|
|
6553
|
-
// positions: {
|
|
6554
|
-
// lg: {
|
|
6555
|
-
// colSpan: 12,
|
|
6556
|
-
// },
|
|
6557
|
-
// },
|
|
6558
|
-
// },
|
|
6559
|
-
// },
|
|
6560
|
-
{
|
|
6561
|
-
name: 'type',
|
|
6562
|
-
layout: {
|
|
6563
|
-
positions: {
|
|
6564
|
-
lg: {
|
|
6565
|
-
colSpan: 12,
|
|
6566
|
-
},
|
|
6567
|
-
},
|
|
6568
|
-
},
|
|
6569
|
-
},
|
|
6478
|
+
{ name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
|
|
6479
|
+
{ name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
|
|
6480
|
+
{ name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
6481
|
+
{ name: 'maxSize', layout: { positions: { lg: { colSpan: 4, order: 1 } } } },
|
|
6482
|
+
{ name: 'isEncrypted', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
|
|
6483
|
+
{ name: 'type', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
6484
|
+
{ name: 'enableExpiration', layout: { positions: { lg: { colSpan: 4, order: 1 } } } },
|
|
6485
|
+
{ name: 'requiresReview', layout: { positions: { lg: { colSpan: 4, order: 2 } } } },
|
|
6486
|
+
{ name: 'enableVersioning', layout: { positions: { lg: { colSpan: 4, order: 3 } } } },
|
|
6570
6487
|
],
|
|
6571
6488
|
actions: [...entityMasterRecordActions()],
|
|
6572
6489
|
},
|
|
@@ -6741,7 +6658,7 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
|
|
|
6741
6658
|
const docTypes = await this.documentTypeService.query({ skip: 0, take: 1000 });
|
|
6742
6659
|
this.documentTypeFilterOptions.set((docTypes.items ?? []).map((it) => ({
|
|
6743
6660
|
id: it.id,
|
|
6744
|
-
title: (it.title ?? it.name ?? it.id),
|
|
6661
|
+
title: this.translateService.resolve(it.title ?? it.name ?? it.id),
|
|
6745
6662
|
})));
|
|
6746
6663
|
await this.loadAdvancedFilterDefinitions([]);
|
|
6747
6664
|
const searchQuery = snapshot.queryParams['search'];
|