@acorex/modules 18.1.0 → 18.1.2
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/application-management/lib/application-management-mock-data.d.ts +7 -0
- package/application-management/lib/layouts/index.d.ts +1 -0
- package/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +5 -1
- package/application-management/lib/layouts/property-detail-view/modify-property-interface.component.d.ts +5 -0
- package/application-management/lib/module-designer/module-designer.component.d.ts +4 -2
- package/application-management/lib/services/context-menu.service.d.ts +2 -2
- package/application-management/lib/workflows/create-module-entity.workflow.d.ts +8 -1
- package/application-management/lib/workflows/index.d.ts +1 -0
- package/application-management/lib/workflows/modify-property-interface.workflow.d.ts +26 -0
- package/backend/lib/data/api/comment.service.d.ts +7 -6
- package/esm2022/application-management/lib/application-management-mock-data.mjs +21 -1
- package/esm2022/application-management/lib/application-management.module.mjs +6 -3
- package/esm2022/application-management/lib/application-management.service.mjs +3 -3
- package/esm2022/application-management/lib/entities/applications.entity.mjs +3 -3
- package/esm2022/application-management/lib/entities/entity.entity.mjs +16 -2
- package/esm2022/application-management/lib/entities/modules.entity.mjs +4 -4
- package/esm2022/application-management/lib/entities/property.entity.mjs +7 -3
- package/esm2022/application-management/lib/layouts/index.mjs +2 -1
- package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +32 -8
- package/esm2022/application-management/lib/layouts/property-detail-view/modify-property-interface.component.mjs +55 -0
- package/esm2022/application-management/lib/module-designer/module-designer.component.mjs +13 -5
- package/esm2022/application-management/lib/services/context-menu.service.mjs +6 -8
- package/esm2022/application-management/lib/workflows/create-module-entity.workflow.mjs +25 -1
- package/esm2022/application-management/lib/workflows/index.mjs +2 -1
- package/esm2022/application-management/lib/workflows/modify-property-interface.workflow.mjs +79 -0
- package/esm2022/auth/lib/shared/layouts/master/master.layout.mjs +3 -3
- package/esm2022/backend/lib/data/api/comment.service.mjs +14 -16
- package/fesm2022/acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs +332 -0
- package/fesm2022/acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs.map +1 -0
- package/fesm2022/acorex-modules-application-management.mjs +217 -43
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-D09VaQPe.mjs → acorex-modules-auth-acorex-modules-auth-CS3UFdX0.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-D09VaQPe.mjs.map → acorex-modules-auth-acorex-modules-auth-CS3UFdX0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DN1ZJiZs.mjs → acorex-modules-auth-app-chooser.component-BlJbIMKi.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DN1ZJiZs.mjs.map → acorex-modules-auth-app-chooser.component-BlJbIMKi.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-CGA5aTg2.mjs → acorex-modules-auth-login.module-DGBKGxI3.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-CGA5aTg2.mjs.map → acorex-modules-auth-login.module-DGBKGxI3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-ZJWzjLrb.mjs → acorex-modules-auth-master.layout-B_8Sfw0M.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-master.layout-ZJWzjLrb.mjs.map → acorex-modules-auth-master.layout-B_8Sfw0M.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-MJhNk3UI.mjs → acorex-modules-auth-password.component-BfDjRRN_.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-MJhNk3UI.mjs.map → acorex-modules-auth-password.component-BfDjRRN_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-C4yqf342.mjs → acorex-modules-auth-password.component-DZJ1qwfa.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-C4yqf342.mjs.map → acorex-modules-auth-password.component-DZJ1qwfa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-DhORV1Js.mjs → acorex-modules-auth-routes-Bw7nXDvx.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-DhORV1Js.mjs.map → acorex-modules-auth-routes-Bw7nXDvx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-BWKP0_jO.mjs → acorex-modules-auth-two-factor.module-DKStBo1V.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-BWKP0_jO.mjs.map → acorex-modules-auth-two-factor.module-DKStBo1V.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-backend.mjs +13 -15
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/package.json +7 -7
- package/application-management/lib/actions/index.d.ts +0 -1
- package/application-management/lib/actions/show-detail.action.d.ts +0 -8
- package/esm2022/application-management/lib/actions/index.mjs +0 -2
- package/esm2022/application-management/lib/actions/show-detail.action.mjs +0 -25
- package/fesm2022/acorex-modules-application-management-module-designer.component-CDZZ-5pF.mjs +0 -323
- package/fesm2022/acorex-modules-application-management-module-designer.component-CDZZ-5pF.mjs.map +0 -1
@@ -1,16 +1,15 @@
|
|
1
|
-
import {
|
2
|
-
import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
|
1
|
+
import { AXPEntityDefinitionRegistryService, AXP_ENTITY_CONFIG_TOKEN, AXPEntityMasterUpdateViewModelFactory, AXPEntityDetailViewModelResolver } from '@acorex/platform/layout/entity';
|
2
|
+
import { AXPEntityDetailListViewComponent, AXPRootLayoutComponent } from '@acorex/platform/themes/default';
|
3
3
|
import * as i1$1 from '@acorex/platform/workflow';
|
4
|
-
import { AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
4
|
+
import { AXPWorkflowService, AXPWorkflowAction, createWorkFlowEvent, AXPWorkflowModule } from '@acorex/platform/workflow';
|
5
5
|
import * as i0 from '@angular/core';
|
6
|
-
import { inject,
|
6
|
+
import { inject, signal, Component, ChangeDetectionStrategy, Injectable, Injector, NgModule, Optional, Inject } from '@angular/core';
|
7
7
|
import * as i2 from '@angular/router';
|
8
8
|
import { ActivatedRoute, RouterModule } from '@angular/router';
|
9
|
-
import { AXPWorkflowNavigateAction, isSmallScreen, getChildDrawer, AXPStickyDirective, AXPGridLayoutDirective, AXPDataGenerator, AXPStorageService, AXPEntityDataProviderImpl, AXPEntityQueryType, AXPEntityCommandScope } from '@acorex/platform/common';
|
10
9
|
import { AXActionSheetModule } from '@acorex/components/action-sheet';
|
11
|
-
import * as
|
10
|
+
import * as i8 from '@acorex/components/breadcrumbs';
|
12
11
|
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
13
|
-
import * as
|
12
|
+
import * as i7 from '@acorex/components/button';
|
14
13
|
import { AXButtonModule } from '@acorex/components/button';
|
15
14
|
import * as i3 from '@acorex/components/decorators';
|
16
15
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
@@ -22,59 +21,64 @@ import * as i5 from '@acorex/components/form';
|
|
22
21
|
import { AXFormModule } from '@acorex/components/form';
|
23
22
|
import { AXLoadingModule } from '@acorex/components/loading';
|
24
23
|
import { AXPopoverModule } from '@acorex/components/popover';
|
24
|
+
import * as i6 from '@acorex/components/tabs';
|
25
25
|
import { AXTabsModule } from '@acorex/components/tabs';
|
26
26
|
import { AXTranslationModule } from '@acorex/core/translation';
|
27
|
-
import
|
27
|
+
import { isSmallScreen, getChildDrawer, AXPStickyDirective, AXPGridLayoutDirective, AXPWorkflowNavigateAction, AXPDataGenerator, AXPStorageService, AXPEntityDataProviderImpl, AXPEntityQueryType, AXPEntityCommandScope } from '@acorex/platform/common';
|
28
|
+
import * as i9 from '@acorex/platform/layout/builder';
|
28
29
|
import { AXPLayoutBuilderModule, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
|
29
30
|
import { AXPWidgetsModule } from '@acorex/platform/widgets';
|
30
31
|
import * as i1 from '@angular/common';
|
31
32
|
import { CommonModule } from '@angular/common';
|
32
33
|
import { Store } from '@ngrx/store';
|
34
|
+
import { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';
|
35
|
+
import { AXPopupService } from '@acorex/components/popup';
|
36
|
+
import { AXPlatform } from '@acorex/core/platform';
|
37
|
+
import { cloneDeep } from 'lodash-es';
|
33
38
|
import { applySortArray, applyFilterArray } from '@acorex/platform/core';
|
34
39
|
|
35
|
-
class AXPShowModuleEntityDetailViewAction extends AXPWorkflowAction {
|
36
|
-
constructor() {
|
37
|
-
super(...arguments);
|
38
|
-
this.navigation = inject(AXPWorkflowNavigateAction);
|
39
|
-
}
|
40
|
-
async execute(context) {
|
41
|
-
const [module, entity] = context.getVariable('entity').split('.');
|
42
|
-
const { id } = context.getVariable('data');
|
43
|
-
const newPayload = {
|
44
|
-
commands: `/console/module-designer/m/${module}/e/${entity}/${id}/view`,
|
45
|
-
};
|
46
|
-
context.setVariable('payload', newPayload);
|
47
|
-
this.navigation.execute(context);
|
48
|
-
}
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
50
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction }); }
|
51
|
-
}
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction, decorators: [{
|
53
|
-
type: Injectable
|
54
|
-
}] });
|
55
|
-
|
56
40
|
class AXPModuleEntityDetailViewComponent {
|
57
41
|
constructor() {
|
58
42
|
this.activeRoute = inject(ActivatedRoute);
|
43
|
+
this.workflow = inject(AXPWorkflowService);
|
59
44
|
this.vm = this.activeRoute.snapshot.data['vm'];
|
60
45
|
//
|
61
46
|
this.store = inject((Store));
|
62
47
|
this.isSM = this.store.select(isSmallScreen());
|
63
48
|
this.isOpen = this.store.select(getChildDrawer());
|
49
|
+
this.selectedRelatedIEntityTabIndex = signal(0);
|
64
50
|
this.selectedDetailTabIndex = signal(0);
|
65
51
|
}
|
52
|
+
handleActiveRelatedEntityChanged(e) {
|
53
|
+
this.selectedRelatedIEntityTabIndex.set(e.index);
|
54
|
+
this.vm.sections;
|
55
|
+
}
|
66
56
|
handleActiveDetailTabChanged(e) {
|
67
57
|
this.selectedDetailTabIndex.set(e.index);
|
68
58
|
}
|
59
|
+
handleEditSection(section) {
|
60
|
+
if (section.group.id === 'interface') {
|
61
|
+
this.workflow.execute('modify-property-interface', {
|
62
|
+
entity: 'application.property',
|
63
|
+
data: {
|
64
|
+
id: this.vm.context().id,
|
65
|
+
properties: section.editableProps().map((m) => m.name()),
|
66
|
+
},
|
67
|
+
});
|
68
|
+
}
|
69
|
+
else {
|
70
|
+
this.vm.executeCommand('modify-entity-section', section);
|
71
|
+
}
|
72
|
+
}
|
69
73
|
ngOnDestroy() {
|
70
74
|
this.vm.destroy();
|
71
75
|
}
|
72
76
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModuleEntityDetailViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPModuleEntityDetailViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPModuleEntityDetailViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"handleEditSection(section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i5.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i7.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i7.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i7.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i8.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i8.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
|
74
78
|
//
|
75
|
-
AXPLayoutBuilderModule }, { kind: "component", type:
|
79
|
+
AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i9.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "ngmodule", type:
|
76
80
|
//
|
77
|
-
AXTranslationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
81
|
+
AXTranslationModule }, { kind: "component", type: AXPEntityDetailListViewComponent, selector: "axp-entity-detail-list-view", inputs: ["viewModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
78
82
|
}
|
79
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModuleEntityDetailViewComponent, decorators: [{
|
80
84
|
type: Component,
|
@@ -99,9 +103,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
99
103
|
AXPGridLayoutDirective,
|
100
104
|
//
|
101
105
|
AXTranslationModule,
|
102
|
-
|
106
|
+
AXPEntityDetailListViewComponent,
|
107
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"handleEditSection(section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n" }]
|
103
108
|
}] });
|
104
109
|
|
110
|
+
class AXPModifyPropertyInterfaceComponent {
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModifyPropertyInterfaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPModifyPropertyInterfaceComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "MODIFY\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
|
113
|
+
//
|
114
|
+
AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type:
|
115
|
+
//
|
116
|
+
AXTranslationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
117
|
+
}
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModifyPropertyInterfaceComponent, decorators: [{
|
119
|
+
type: Component,
|
120
|
+
args: [{ imports: [
|
121
|
+
CommonModule,
|
122
|
+
RouterModule,
|
123
|
+
AXDecoratorModule,
|
124
|
+
AXDropdownModule,
|
125
|
+
AXPopoverModule,
|
126
|
+
AXFormModule,
|
127
|
+
AXActionSheetModule,
|
128
|
+
AXDrawerModule,
|
129
|
+
AXDialogModule,
|
130
|
+
AXLoadingModule,
|
131
|
+
AXTabsModule,
|
132
|
+
AXButtonModule,
|
133
|
+
AXBreadcrumbsModule,
|
134
|
+
//
|
135
|
+
AXPLayoutBuilderModule,
|
136
|
+
AXPWidgetsModule,
|
137
|
+
AXPStickyDirective,
|
138
|
+
AXPGridLayoutDirective,
|
139
|
+
AXPWidgetPropertyViewerComponent,
|
140
|
+
//
|
141
|
+
AXTranslationModule,
|
142
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "MODIFY\n" }]
|
143
|
+
}] });
|
144
|
+
|
145
|
+
class AXPShowModuleEntityDetailViewAction extends AXPWorkflowAction {
|
146
|
+
constructor() {
|
147
|
+
super(...arguments);
|
148
|
+
this.navigation = inject(AXPWorkflowNavigateAction);
|
149
|
+
}
|
150
|
+
async execute(context) {
|
151
|
+
const [module, entity] = context.getVariable('entity').split('.');
|
152
|
+
const { id } = context.getVariable('data');
|
153
|
+
const newPayload = {
|
154
|
+
commands: `/console/module-designer/m/${module}/e/${entity}/${id}/view`,
|
155
|
+
};
|
156
|
+
context.setVariable('payload', newPayload);
|
157
|
+
this.navigation.execute(context);
|
158
|
+
}
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
160
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction }); }
|
161
|
+
}
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction, decorators: [{
|
163
|
+
type: Injectable
|
164
|
+
}] });
|
105
165
|
const AXPCreateModuleEntityWorkflow = {
|
106
166
|
startStepId: 'show-popup',
|
107
167
|
steps: {
|
@@ -144,6 +204,78 @@ const AXPCreateModuleEntityWorkflow = {
|
|
144
204
|
},
|
145
205
|
};
|
146
206
|
|
207
|
+
const AXPEntityModifyEvent = createWorkFlowEvent('[Entity] Modified');
|
208
|
+
class AXPEntityModifyPropertyInterfacePopupAction extends AXPWorkflowAction {
|
209
|
+
constructor() {
|
210
|
+
super(...arguments);
|
211
|
+
this.popupService = inject(AXPopupService);
|
212
|
+
this.platform = inject(AXPlatform);
|
213
|
+
this.entityRegistery = inject(AXPEntityDefinitionRegistryService);
|
214
|
+
this.config = inject(AXP_ENTITY_CONFIG_TOKEN);
|
215
|
+
this.factory = inject(AXPEntityMasterUpdateViewModelFactory);
|
216
|
+
}
|
217
|
+
async execute(context) {
|
218
|
+
const [moduleName, entityName] = context.getVariable('entity').split('.');
|
219
|
+
const { properties, id, title } = context.getVariable('data');
|
220
|
+
const entityRef = await this.entityRegistery.resolve(moduleName, entityName);
|
221
|
+
const vm = await this.factory.create(moduleName, entityName, id, properties);
|
222
|
+
const com = await this.config.viewers.master.modify();
|
223
|
+
const popup = await this.popupService.open(com, {
|
224
|
+
title: title ?? `Modify ${entityRef.formats.individual}`,
|
225
|
+
size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
|
226
|
+
data: {
|
227
|
+
vm,
|
228
|
+
properties,
|
229
|
+
entity: entityRef,
|
230
|
+
},
|
231
|
+
});
|
232
|
+
context.setOutput('result', false);
|
233
|
+
if (popup.data?.result == true) {
|
234
|
+
context.setOutput('result', true);
|
235
|
+
context.setVariable('data', cloneDeep(popup.data.context));
|
236
|
+
}
|
237
|
+
}
|
238
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
239
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction }); }
|
240
|
+
}
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction, decorators: [{
|
242
|
+
type: Injectable
|
243
|
+
}] });
|
244
|
+
const AXPModifyPropertyInterfaceWorkflow = {
|
245
|
+
startStepId: 'modifyPopup',
|
246
|
+
steps: {
|
247
|
+
modifyPopup: {
|
248
|
+
id: 'modifyPopup',
|
249
|
+
action: 'AXPEntityModifyPropertyInterfacePopupAction',
|
250
|
+
nextSteps: [
|
251
|
+
{
|
252
|
+
conditions: [{ type: 'SINGLE', expression: 'context.getOutput("result") == true' }],
|
253
|
+
nextStepId: 'successToast',
|
254
|
+
},
|
255
|
+
],
|
256
|
+
},
|
257
|
+
successToast: {
|
258
|
+
id: 'successToast',
|
259
|
+
action: 'AXPToastAction',
|
260
|
+
input: {
|
261
|
+
color: 'success',
|
262
|
+
title: 'Entity Modified',
|
263
|
+
content: 'Record has been successfully updated.',
|
264
|
+
},
|
265
|
+
nextSteps: [
|
266
|
+
{
|
267
|
+
conditions: [],
|
268
|
+
nextStepId: 'modifyConfirmed',
|
269
|
+
},
|
270
|
+
],
|
271
|
+
},
|
272
|
+
modifyConfirmed: {
|
273
|
+
id: 'modifyConfirmed',
|
274
|
+
action: 'AXPEntityModifyConfirmedAction',
|
275
|
+
},
|
276
|
+
},
|
277
|
+
};
|
278
|
+
|
147
279
|
const AXPShowModuleEntityDetailsViewWorkflow = {
|
148
280
|
startStepId: 'showDetailView',
|
149
281
|
steps: {
|
@@ -160,7 +292,7 @@ const routes = [
|
|
160
292
|
children: [
|
161
293
|
{
|
162
294
|
path: 'module-designer',
|
163
|
-
loadComponent: () => import('./acorex-modules-application-management-module-designer.component-
|
295
|
+
loadComponent: () => import('./acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs').then((c) => c.AXMModuleDesignerComponent),
|
164
296
|
children: [
|
165
297
|
{
|
166
298
|
path: 'm/:module',
|
@@ -212,10 +344,12 @@ class AXMApplicationManagementModule {
|
|
212
344
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMApplicationManagementModule, imports: [AXPWorkflowModule.forChild({
|
213
345
|
actions: {
|
214
346
|
AXPShowModuleEntityDetailViewAction,
|
347
|
+
AXPEntityModifyPropertyInterfacePopupAction,
|
215
348
|
},
|
216
349
|
workflows: {
|
217
350
|
'create-module-entity': AXPCreateModuleEntityWorkflow,
|
218
351
|
'show-module-entity-details': AXPShowModuleEntityDetailsViewWorkflow,
|
352
|
+
'modify-property-interface': AXPModifyPropertyInterfaceWorkflow,
|
219
353
|
},
|
220
354
|
}),
|
221
355
|
RouterModule.forChild(routes)] }); }
|
@@ -227,10 +361,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
227
361
|
AXPWorkflowModule.forChild({
|
228
362
|
actions: {
|
229
363
|
AXPShowModuleEntityDetailViewAction,
|
364
|
+
AXPEntityModifyPropertyInterfacePopupAction,
|
230
365
|
},
|
231
366
|
workflows: {
|
232
367
|
'create-module-entity': AXPCreateModuleEntityWorkflow,
|
233
368
|
'show-module-entity-details': AXPShowModuleEntityDetailsViewWorkflow,
|
369
|
+
'modify-property-interface': AXPModifyPropertyInterfaceWorkflow,
|
234
370
|
},
|
235
371
|
}),
|
236
372
|
RouterModule.forChild(routes),
|
@@ -332,6 +468,26 @@ const PERMISSIONS = Array.from({ length: 5 }).map((_, i) => {
|
|
332
468
|
isArchived: AXPDataGenerator.boolean(),
|
333
469
|
};
|
334
470
|
});
|
471
|
+
const PROPERTIES = Array.from({ length: 10 }).map((_, i) => {
|
472
|
+
const source = [
|
473
|
+
'property1',
|
474
|
+
'property2',
|
475
|
+
'property3',
|
476
|
+
'property4',
|
477
|
+
'property5',
|
478
|
+
'property6',
|
479
|
+
'property7',
|
480
|
+
'property8',
|
481
|
+
];
|
482
|
+
const name = AXPDataGenerator.pick(source);
|
483
|
+
return {
|
484
|
+
id: AXPDataGenerator.uuid(),
|
485
|
+
entityId: AXPDataGenerator.pick(ENTITIES).id,
|
486
|
+
name: name,
|
487
|
+
title: name,
|
488
|
+
path: name,
|
489
|
+
};
|
490
|
+
});
|
335
491
|
|
336
492
|
class AXPApplicationManagementService {
|
337
493
|
constructor(injector) {
|
@@ -356,7 +512,7 @@ class AXPApplicationManagementService {
|
|
356
512
|
this._entityDataProvider.initial(ENTITIES);
|
357
513
|
//
|
358
514
|
this._propertyDataProvider = new AXPEntityDataProviderImpl(storageService, 'properties');
|
359
|
-
this._propertyDataProvider.initial(
|
515
|
+
this._propertyDataProvider.initial(PROPERTIES);
|
360
516
|
//
|
361
517
|
this._permissionDataProvider = new AXPEntityDataProviderImpl(storageService, 'permissions');
|
362
518
|
this._permissionDataProvider.initial(PERMISSIONS);
|
@@ -681,7 +837,7 @@ async function applicationEntityFactory(injector) {
|
|
681
837
|
columns: ['application.title', 'module.title'],
|
682
838
|
conditions: [
|
683
839
|
{
|
684
|
-
name: '
|
840
|
+
name: 'applicationId',
|
685
841
|
operator: {
|
686
842
|
type: 'equal',
|
687
843
|
},
|
@@ -694,7 +850,7 @@ async function applicationEntityFactory(injector) {
|
|
694
850
|
columns: ['name', 'title', 'isArchived'],
|
695
851
|
conditions: [
|
696
852
|
{
|
697
|
-
name: '
|
853
|
+
name: 'applicationId',
|
698
854
|
operator: {
|
699
855
|
type: 'equal',
|
700
856
|
},
|
@@ -1262,7 +1418,21 @@ async function entityEntityFactory(injector) {
|
|
1262
1418
|
individual: 'Entity',
|
1263
1419
|
plural: 'Entities',
|
1264
1420
|
},
|
1265
|
-
relatedEntities: [
|
1421
|
+
relatedEntities: [
|
1422
|
+
{
|
1423
|
+
entity: 'application-management.property',
|
1424
|
+
columns: ['entity.title', 'name', 'title', 'isArchived'],
|
1425
|
+
conditions: [
|
1426
|
+
{
|
1427
|
+
name: 'entityId',
|
1428
|
+
operator: {
|
1429
|
+
type: 'equal',
|
1430
|
+
},
|
1431
|
+
value: 'id',
|
1432
|
+
},
|
1433
|
+
],
|
1434
|
+
},
|
1435
|
+
],
|
1266
1436
|
groups: [
|
1267
1437
|
{
|
1268
1438
|
id: 'entity',
|
@@ -1838,7 +2008,7 @@ async function modulesEntityFactory(injector) {
|
|
1838
2008
|
columns: ['module.title', 'name', 'title', 'isArchived'],
|
1839
2009
|
conditions: [
|
1840
2010
|
{
|
1841
|
-
name: '
|
2011
|
+
name: 'moduleId',
|
1842
2012
|
operator: {
|
1843
2013
|
type: 'equal',
|
1844
2014
|
},
|
@@ -1851,7 +2021,7 @@ async function modulesEntityFactory(injector) {
|
|
1851
2021
|
columns: ['module.title', 'name', 'title', 'isArchived'],
|
1852
2022
|
conditions: [
|
1853
2023
|
{
|
1854
|
-
name: '
|
2024
|
+
name: 'moduleId',
|
1855
2025
|
operator: {
|
1856
2026
|
type: 'equal',
|
1857
2027
|
},
|
@@ -1864,7 +2034,7 @@ async function modulesEntityFactory(injector) {
|
|
1864
2034
|
columns: ['module.title', 'name', 'title', 'isArchived'],
|
1865
2035
|
conditions: [
|
1866
2036
|
{
|
1867
|
-
name: '
|
2037
|
+
name: 'moduleId',
|
1868
2038
|
operator: {
|
1869
2039
|
type: 'equal',
|
1870
2040
|
},
|
@@ -2521,6 +2691,10 @@ async function propertyEntityFactory(injector) {
|
|
2521
2691
|
dataType: 'boolean',
|
2522
2692
|
interface: {
|
2523
2693
|
type: AXPWidgetsCatalog.toggle,
|
2694
|
+
options: {
|
2695
|
+
falsyText: 'False',
|
2696
|
+
trulyText: 'True',
|
2697
|
+
},
|
2524
2698
|
},
|
2525
2699
|
},
|
2526
2700
|
},
|
@@ -2744,7 +2918,7 @@ async function propertyEntityFactory(injector) {
|
|
2744
2918
|
layout: {
|
2745
2919
|
positions: {
|
2746
2920
|
lg: {
|
2747
|
-
colSpan:
|
2921
|
+
colSpan: 12,
|
2748
2922
|
},
|
2749
2923
|
},
|
2750
2924
|
},
|
@@ -2820,7 +2994,7 @@ async function propertyEntityFactory(injector) {
|
|
2820
2994
|
layout: {
|
2821
2995
|
positions: {
|
2822
2996
|
lg: {
|
2823
|
-
colSpan:
|
2997
|
+
colSpan: 12,
|
2824
2998
|
},
|
2825
2999
|
},
|
2826
3000
|
},
|