@dignite-ng/expand.cms 3.0.0-rc.39 → 3.0.0-rc.40
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/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +38 -9
- package/esm2022/lib/components/admin/entries/create.component.mjs +49 -9
- package/esm2022/lib/components/admin/entries/edit.component.mjs +106 -4
- package/esm2022/lib/components/admin/entries/entries.component.mjs +7 -4
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +10 -1
- package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +3 -10
- package/esm2022/lib/components/admin/fields/fields.component.mjs +35 -22
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +116 -49
- package/esm2022/lib/components/admin/sections/sections.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +22 -6
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +13 -8
- package/esm2022/lib/resolvers/table-default-entity-props.mjs +12 -1
- package/esm2022/lib/services/field-abstracts.service.mjs +8 -4
- package/fesm2022/dignite-ng-expand.cms.mjs +389 -103
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +14 -3
- package/lib/components/admin/entries/create.component.d.ts +6 -0
- package/lib/components/admin/entries/edit.component.d.ts +6 -0
- package/lib/components/admin/fields/create-field.component.d.ts +5 -3
- package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +1 -2
- package/lib/components/admin/fields/fields.component.d.ts +10 -7
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +6 -4
- package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +2 -0
- package/lib/services/field-abstracts.service.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, inject, Component, ChangeDetectorRef, ViewChild, Input,
|
|
2
|
+
import { Injectable, inject, Component, ChangeDetectorRef, EventEmitter, ViewChild, Input, Output, RendererFactory2, InjectionToken, Injector, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@abp/ng.core';
|
|
4
4
|
import { mapEnumToOptions, ListService, ConfigStateService, LIST_QUERY_DEBOUNCE_TIME, LocalizationService, AuthGuard, PermissionGuard, LazyModuleFactory, CoreModule } from '@abp/ng.core';
|
|
5
5
|
import * as i3 from '@abp/ng.theme.shared';
|
|
6
6
|
import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
7
7
|
import * as i4 from '@angular/router';
|
|
8
8
|
import { Router, ActivatedRoute, RouterModule } from '@angular/router';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i8 from '@abp/ng.components/extensible';
|
|
10
10
|
import { EXTENSIONS_IDENTIFIER, ToolbarAction, EntityProp, EntityAction, ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps, ExtensibleModule } from '@abp/ng.components/extensible';
|
|
11
11
|
import * as i1$2 from '@angular/forms';
|
|
12
12
|
import { FormBuilder, Validators, FormGroup, FormControl, FormArray, FormsModule } from '@angular/forms';
|
|
13
13
|
import * as i11 from '@swimlane/ngx-datatable';
|
|
14
14
|
import { ColumnMode, NgxDatatableModule } from '@swimlane/ngx-datatable';
|
|
15
|
-
import { finalize, map, tap } from 'rxjs';
|
|
15
|
+
import { finalize, of, map, tap } from 'rxjs';
|
|
16
16
|
import { UpdateListService, ValidatorsService } from '@dignite-ng/expand.core';
|
|
17
17
|
import * as i7 from '@angular/cdk/drag-drop';
|
|
18
18
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
@@ -521,7 +521,6 @@ class EntriesComponent {
|
|
|
521
521
|
const _entryTypeList = SectionInfo?.entryTypes || [];
|
|
522
522
|
// let _entryTypeList = this.SiteOfSectionList.find(el => el.id == sectionId)?.entryTypes || [];
|
|
523
523
|
this.entryTypeList = _entryTypeList;
|
|
524
|
-
console.log(this.entryTypeList, 'entryTypeList');
|
|
525
524
|
//选择板块的类型SectionType
|
|
526
525
|
this.SiteOfSectionType = this.SiteOfSectionList.find(el => el.id == sectionId)?.type;
|
|
527
526
|
if (this.SiteOfSectionType == SectionType.Structure) {
|
|
@@ -663,6 +662,10 @@ class EntriesComponent {
|
|
|
663
662
|
return a.order - b.order;
|
|
664
663
|
});
|
|
665
664
|
}
|
|
665
|
+
for (const element of list.items) {
|
|
666
|
+
const sectionItem = this.SiteOfSectionList.find(el => el.id == element.sectionId);
|
|
667
|
+
element.sectionType = sectionItem.type;
|
|
668
|
+
}
|
|
666
669
|
this.data = list;
|
|
667
670
|
this.scrollToTop();
|
|
668
671
|
};
|
|
@@ -725,7 +728,7 @@ class EntriesComponent {
|
|
|
725
728
|
provide: EXTENSIONS_IDENTIFIER,
|
|
726
729
|
useValue: ECmsComponent.Entries,
|
|
727
730
|
},
|
|
728
|
-
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \">\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length === 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button class=\"btn btn-sm btn-primary\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\"><i\r\n class=\"fa fa-plus me-2\"></i>{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body \">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.sectionId\"\r\n (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-6\">\r\n <div class=\"input-group\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\r\n [placeholder]=\"'Cms::PagerSearch'|abpLocalization\" />\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"listget()\">\r\n <i class=\"bi bi-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(filters.culture&&enablegearchFormEntity&&enableSearchFieldList.length>0){\r\n <div id=\"entries-advanced-form\" class=\"entries-advanced-form \" [hidden]=\"isexpanded\"\r\n (abpInit)=\"abpInitss()\">\r\n <form [formGroup]=\"enablegearchFormEntity\">\r\n <div class=\"row align-items-end\">\r\n <ng-container *ngFor=\"let el of enableSearchFieldList\">\r\n <ng-container *ngIf=\"el.field&&enablegearchFormEntity&&el.enableSearch\">\r\n <div class=\"col-md-3\">\r\n <df-dynamic-search [fields]=\"el\" [parentFiledName]=\"'extraProperties'\"\r\n [culture]=\"filters.culture\"\r\n [entity]=\"enablegearchFormEntity\"></df-dynamic-search>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"col-md-3 mb-3 \">\r\n <button type=\"button\" class=\"btn btn-primary \" (click)=\"listget()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n @if(SiteOfSectionType!==SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\" [columnMode]=\"ColumnMode.force\"\r\n [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [virtualization]=\"false\"\r\n [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n @for (item of showinFieldList; track $index) {\r\n <ngx-datatable-column [name]=\"'Cms::'+item.displayName | abpLocalization\"\r\n [prop]=\"item?.field?.name\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <df-dynamic-view [type]=\"item.field.formControlName\" [showInList]=\"true\" [fields]=\"item\"\r\n [value]=\"row?.extraProperties[item.field.name]\"></df-dynamic-view>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\"\r\n [width]=\"190\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | shortDateTime }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'Cms::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button>\r\n <!-- -->\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'Cms::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n </ngx-datatable>\r\n </div>\r\n }\r\n\r\n @if(SiteOfSectionType===SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <thead>\r\n <tr>\r\n <th class=\"sticky-left-card-bg\"> <span\r\n class=\"bi bi-arrows-move fs-5 drag-handle me-2 opacity-0\"></span>{{'AbpUi::Actions'\r\n | abpLocalization}}</th>\r\n <th>{{'Cms::Title' | abpLocalization}}</th>\r\n <th>{{'Cms::EntryType' | abpLocalization}}</th>\r\n <th>{{'Cms::Slug' | abpLocalization}}</th>\r\n <th>{{'Cms::Status' | abpLocalization}}</th>\r\n @for (item of showinFieldList; track $index) {\r\n <th>{{'Cms::'+item.displayName | abpLocalization}}</th>\r\n }\r\n <th>{{'Cms::PublishTime' | abpLocalization}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of data.items\" cdkDrag>\r\n <td class=\"sticky-left-card-bg\">\r\n <div ngbDropdown container=\"body\">\r\n <span class=\"bi bi-arrows-move fs-5 drag-handle me-2\" cdkDragHandle></span>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{item.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.entryTypeId,entryVersionId:item.id,isOther:1}\">{{'Cms::CreateOtherLanguages' |\r\n abpLocalization}}</button>\r\n <!-- <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button> -->\r\n \r\n <button ngbDropdownItem (click)=\"deletefield(item)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"white-space-normal\">{{item.title}}</td>\r\n <td>\r\n <ng-container *ngFor=\"let item1 of entryTypeList\">\r\n <ng-container\r\n *ngIf=\"item1.id === item.entryTypeId\">{{item1.displayName}}</ng-container>\r\n </ng-container>\r\n </td>\r\n <td>{{item.slug}}</td>\r\n <td>\r\n <ng-container *ngFor=\"let item2 of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.status=== item2.value\">{{\r\n 'Cms::Enum:EntryStatus:'+item2.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </td>\r\n @for (item1 of showinFieldList; track $index) {\r\n <td>\r\n <df-dynamic-view [type]=\"item1.field.formControlName\" [showInList]=\"true\"\r\n [fields]=\"item1\"\r\n [value]=\"item?.extraProperties[item1.field.name]\"></df-dynamic-view>\r\n\r\n </td>\r\n }\r\n <td>{{item.publishTime | shortDateTime }}</td>\r\n </tr>\r\n </tbody>\r\n @if(data.items.length === 0){\r\n <div class=\"text-muted p-2\">\r\n {{ 'Cms::NoDataAvailableInDatatable' | abpLocalization}}\r\n </div>\r\n }\r\n </table>\r\n </div>\r\n <div class=\"card-footer py-2\">\r\n <small class=\"text-muted\"> {{data.totalCount}} {{ 'Cms::Total' | abpLocalization}}</small>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}.white-space-normal{white-space:normal;min-width:150px}.overflow-nowrap{overflow:auto;white-space:nowrap}::ng-deep .sites-page .table th{padding-left:1rem!important;padding-right:1rem!important}::ng-deep .sites-page .table td{padding:.875rem 1rem!important}::ng-deep .sites-page .table .sticky-left-card-bg{position:sticky;left:0;background:var(--bs-card-bg)}::ng-deep .sites-page .entries-advanced-form{transition:all .3s linear}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i11.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i11.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i11.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i11$1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i14.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i15.DynamicViewComponent, selector: "df-dynamic-view", inputs: ["showInList", "fields", "type", "value"] }, { kind: "component", type: i15.DynamicSearchComponent, selector: "df-dynamic-search", inputs: ["culture", "parentFiledName", "fields", "entity"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i1.ShortDateTimePipe, name: "shortDateTime" }] }); }
|
|
731
|
+
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \">\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length === 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button class=\"btn btn-sm btn-primary\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\"><i\r\n class=\"fa fa-plus me-2\"></i>{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body \">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.sectionId\"\r\n (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-6\">\r\n <div class=\"input-group\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\r\n [placeholder]=\"'Cms::PagerSearch'|abpLocalization\" />\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"listget()\">\r\n <i class=\"bi bi-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(filters.culture&&enablegearchFormEntity&&enableSearchFieldList.length>0){\r\n <div id=\"entries-advanced-form\" class=\"entries-advanced-form \" [hidden]=\"isexpanded\"\r\n (abpInit)=\"abpInitss()\">\r\n <form [formGroup]=\"enablegearchFormEntity\">\r\n <div class=\"row align-items-end\">\r\n <ng-container *ngFor=\"let el of enableSearchFieldList\">\r\n <ng-container *ngIf=\"el.field&&enablegearchFormEntity&&el.enableSearch\">\r\n <div class=\"col-md-3\">\r\n <df-dynamic-search [fields]=\"el\" [parentFiledName]=\"'extraProperties'\"\r\n [culture]=\"filters.culture\"\r\n [entity]=\"enablegearchFormEntity\"></df-dynamic-search>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"col-md-3 mb-3 \">\r\n <button type=\"button\" class=\"btn btn-primary \" (click)=\"listget()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n @if(SiteOfSectionType!==SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\" [columnMode]=\"ColumnMode.force\"\r\n [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [virtualization]=\"false\"\r\n [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"sectionType\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ 'Cms::Enum:SectionType:'+SectionType[value] |\r\n abpLocalization }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n @for (item of showinFieldList; track $index) {\r\n <ngx-datatable-column [name]=\"'Cms::'+item.displayName | abpLocalization\"\r\n [prop]=\"item?.field?.name\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <df-dynamic-view [type]=\"item.field.formControlName\" [showInList]=\"true\" [fields]=\"item\"\r\n [value]=\"row?.extraProperties[item.field.name]\"></df-dynamic-view>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\"\r\n [width]=\"190\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | shortDateTime }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'Cms::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n *ngIf=\"row.culture===defaultCultureName\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button>\r\n <!-- -->\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'Cms::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n </ngx-datatable>\r\n </div>\r\n }\r\n\r\n @if(SiteOfSectionType===SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <thead>\r\n <tr>\r\n <th class=\"sticky-left-card-bg\"> <span\r\n class=\"bi bi-arrows-move fs-5 drag-handle me-2 opacity-0\"></span>{{'AbpUi::Actions'\r\n | abpLocalization}}</th>\r\n <th>{{'Cms::Title' | abpLocalization}}</th>\r\n <th>{{'Cms::SectionType' | abpLocalization}}</th>\r\n <th>{{'Cms::EntryType' | abpLocalization}}</th>\r\n\r\n \r\n <th>{{'Cms::Slug' | abpLocalization}}</th>\r\n <th>{{'Cms::Status' | abpLocalization}}</th>\r\n @for (item of showinFieldList; track $index) {\r\n <th>{{'Cms::'+item.displayName | abpLocalization}}</th>\r\n }\r\n <th>{{'Cms::PublishTime' | abpLocalization}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of data.items\" cdkDrag>\r\n <td class=\"sticky-left-card-bg\">\r\n <div ngbDropdown container=\"body\">\r\n <span class=\"bi bi-arrows-move fs-5 drag-handle me-2\" cdkDragHandle></span>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{item.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n *ngIf=\"item.culture===defaultCultureName\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.entryTypeId,entryVersionId:item.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}}</button>\r\n <!-- <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button> -->\r\n\r\n <button ngbDropdownItem (click)=\"deletefield(item)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"white-space-normal\">{{item.title}}</td>\r\n <td>\r\n {{ 'Cms::Enum:SectionType:'+SectionType[item.sectionType] |\r\n abpLocalization }}\r\n </td>\r\n <td>\r\n <ng-container *ngFor=\"let item1 of entryTypeList\">\r\n <ng-container\r\n *ngIf=\"item1.id === item.entryTypeId\">{{item1.displayName}}</ng-container>\r\n </ng-container>\r\n </td>\r\n <td>{{item.slug}}</td>\r\n <td>\r\n <ng-container *ngFor=\"let item2 of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.status=== item2.value\">{{\r\n 'Cms::Enum:EntryStatus:'+item2.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </td>\r\n @for (item1 of showinFieldList; track $index) {\r\n <td>\r\n <df-dynamic-view [type]=\"item1.field.formControlName\" [showInList]=\"true\"\r\n [fields]=\"item1\"\r\n [value]=\"item?.extraProperties[item1.field.name]\"></df-dynamic-view>\r\n\r\n </td>\r\n }\r\n <td>{{item.publishTime | shortDateTime }}</td>\r\n </tr>\r\n </tbody>\r\n @if(data.items.length === 0){\r\n <div class=\"text-muted p-2\">\r\n {{ 'Cms::NoDataAvailableInDatatable' | abpLocalization}}\r\n </div>\r\n }\r\n </table>\r\n </div>\r\n <div class=\"card-footer py-2\">\r\n <small class=\"text-muted\"> {{data.totalCount}} {{ 'Cms::Total' | abpLocalization}}</small>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}.white-space-normal{white-space:normal;min-width:150px}.overflow-nowrap{overflow:auto;white-space:nowrap}::ng-deep .sites-page .table th{padding-left:1rem!important;padding-right:1rem!important}::ng-deep .sites-page .table td{padding:.875rem 1rem!important}::ng-deep .sites-page .table .sticky-left-card-bg{position:sticky;left:0;background:var(--bs-card-bg)}::ng-deep .sites-page .entries-advanced-form{transition:all .3s linear}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i11.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i11.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i11.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i11$1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i14.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i15.DynamicViewComponent, selector: "df-dynamic-view", inputs: ["showInList", "fields", "type", "value"] }, { kind: "component", type: i15.DynamicSearchComponent, selector: "df-dynamic-search", inputs: ["culture", "parentFiledName", "fields", "entity"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i1.ShortDateTimePipe, name: "shortDateTime" }] }); }
|
|
729
732
|
}
|
|
730
733
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EntriesComponent, decorators: [{
|
|
731
734
|
type: Component,
|
|
@@ -738,7 +741,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
738
741
|
provide: EXTENSIONS_IDENTIFIER,
|
|
739
742
|
useValue: ECmsComponent.Entries,
|
|
740
743
|
},
|
|
741
|
-
], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \">\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length === 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button class=\"btn btn-sm btn-primary\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\"><i\r\n class=\"fa fa-plus me-2\"></i>{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body \">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.sectionId\"\r\n (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-6\">\r\n <div class=\"input-group\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\r\n [placeholder]=\"'Cms::PagerSearch'|abpLocalization\" />\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"listget()\">\r\n <i class=\"bi bi-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(filters.culture&&enablegearchFormEntity&&enableSearchFieldList.length>0){\r\n <div id=\"entries-advanced-form\" class=\"entries-advanced-form \" [hidden]=\"isexpanded\"\r\n (abpInit)=\"abpInitss()\">\r\n <form [formGroup]=\"enablegearchFormEntity\">\r\n <div class=\"row align-items-end\">\r\n <ng-container *ngFor=\"let el of enableSearchFieldList\">\r\n <ng-container *ngIf=\"el.field&&enablegearchFormEntity&&el.enableSearch\">\r\n <div class=\"col-md-3\">\r\n <df-dynamic-search [fields]=\"el\" [parentFiledName]=\"'extraProperties'\"\r\n [culture]=\"filters.culture\"\r\n [entity]=\"enablegearchFormEntity\"></df-dynamic-search>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"col-md-3 mb-3 \">\r\n <button type=\"button\" class=\"btn btn-primary \" (click)=\"listget()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n @if(SiteOfSectionType!==SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\" [columnMode]=\"ColumnMode.force\"\r\n [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [virtualization]=\"false\"\r\n [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n @for (item of showinFieldList; track $index) {\r\n <ngx-datatable-column [name]=\"'Cms::'+item.displayName | abpLocalization\"\r\n [prop]=\"item?.field?.name\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <df-dynamic-view [type]=\"item.field.formControlName\" [showInList]=\"true\" [fields]=\"item\"\r\n [value]=\"row?.extraProperties[item.field.name]\"></df-dynamic-view>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\"\r\n [width]=\"190\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | shortDateTime }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'Cms::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button>\r\n <!-- -->\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'Cms::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n </ngx-datatable>\r\n </div>\r\n }\r\n\r\n @if(SiteOfSectionType===SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <thead>\r\n <tr>\r\n <th class=\"sticky-left-card-bg\"> <span\r\n class=\"bi bi-arrows-move fs-5 drag-handle me-2 opacity-0\"></span>{{'AbpUi::Actions'\r\n | abpLocalization}}</th>\r\n <th>{{'Cms::Title' | abpLocalization}}</th>\r\n <th>{{'Cms::EntryType' | abpLocalization}}</th>\r\n <th>{{'Cms::Slug' | abpLocalization}}</th>\r\n <th>{{'Cms::Status' | abpLocalization}}</th>\r\n @for (item of showinFieldList; track $index) {\r\n <th>{{'Cms::'+item.displayName | abpLocalization}}</th>\r\n }\r\n <th>{{'Cms::PublishTime' | abpLocalization}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of data.items\" cdkDrag>\r\n <td class=\"sticky-left-card-bg\">\r\n <div ngbDropdown container=\"body\">\r\n <span class=\"bi bi-arrows-move fs-5 drag-handle me-2\" cdkDragHandle></span>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{item.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.entryTypeId,entryVersionId:item.id,isOther:1}\">{{'Cms::CreateOtherLanguages' |\r\n abpLocalization}}</button>\r\n <!-- <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button> -->\r\n \r\n <button ngbDropdownItem (click)=\"deletefield(item)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"white-space-normal\">{{item.title}}</td>\r\n <td>\r\n <ng-container *ngFor=\"let item1 of entryTypeList\">\r\n <ng-container\r\n *ngIf=\"item1.id === item.entryTypeId\">{{item1.displayName}}</ng-container>\r\n </ng-container>\r\n </td>\r\n <td>{{item.slug}}</td>\r\n <td>\r\n <ng-container *ngFor=\"let item2 of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.status=== item2.value\">{{\r\n 'Cms::Enum:EntryStatus:'+item2.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </td>\r\n @for (item1 of showinFieldList; track $index) {\r\n <td>\r\n <df-dynamic-view [type]=\"item1.field.formControlName\" [showInList]=\"true\"\r\n [fields]=\"item1\"\r\n [value]=\"item?.extraProperties[item1.field.name]\"></df-dynamic-view>\r\n\r\n </td>\r\n }\r\n <td>{{item.publishTime | shortDateTime }}</td>\r\n </tr>\r\n </tbody>\r\n @if(data.items.length === 0){\r\n <div class=\"text-muted p-2\">\r\n {{ 'Cms::NoDataAvailableInDatatable' | abpLocalization}}\r\n </div>\r\n }\r\n </table>\r\n </div>\r\n <div class=\"card-footer py-2\">\r\n <small class=\"text-muted\"> {{data.totalCount}} {{ 'Cms::Total' | abpLocalization}}</small>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}.white-space-normal{white-space:normal;min-width:150px}.overflow-nowrap{overflow:auto;white-space:nowrap}::ng-deep .sites-page .table th{padding-left:1rem!important;padding-right:1rem!important}::ng-deep .sites-page .table td{padding:.875rem 1rem!important}::ng-deep .sites-page .table .sticky-left-card-bg{position:sticky;left:0;background:var(--bs-card-bg)}::ng-deep .sites-page .entries-advanced-form{transition:all .3s linear}\n"] }]
|
|
744
|
+
], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \">\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length === 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button class=\"btn btn-sm btn-primary\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\"><i\r\n class=\"fa fa-plus me-2\"></i>{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [disabled]=\"data.totalCount===1&&SiteOfSectionType===SectionType.Single\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body \">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.sectionId\"\r\n (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-md-6\">\r\n <div class=\"input-group\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\r\n [placeholder]=\"'Cms::PagerSearch'|abpLocalization\" />\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"listget()\">\r\n <i class=\"bi bi-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(filters.culture&&enablegearchFormEntity&&enableSearchFieldList.length>0){\r\n <div id=\"entries-advanced-form\" class=\"entries-advanced-form \" [hidden]=\"isexpanded\"\r\n (abpInit)=\"abpInitss()\">\r\n <form [formGroup]=\"enablegearchFormEntity\">\r\n <div class=\"row align-items-end\">\r\n <ng-container *ngFor=\"let el of enableSearchFieldList\">\r\n <ng-container *ngIf=\"el.field&&enablegearchFormEntity&&el.enableSearch\">\r\n <div class=\"col-md-3\">\r\n <df-dynamic-search [fields]=\"el\" [parentFiledName]=\"'extraProperties'\"\r\n [culture]=\"filters.culture\"\r\n [entity]=\"enablegearchFormEntity\"></df-dynamic-search>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"col-md-3 mb-3 \">\r\n <button type=\"button\" class=\"btn btn-primary \" (click)=\"listget()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n @if(SiteOfSectionType!==SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\" [columnMode]=\"ColumnMode.force\"\r\n [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [virtualization]=\"false\"\r\n [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"sectionType\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ 'Cms::Enum:SectionType:'+SectionType[value] |\r\n abpLocalization }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n @for (item of showinFieldList; track $index) {\r\n <ngx-datatable-column [name]=\"'Cms::'+item.displayName | abpLocalization\"\r\n [prop]=\"item?.field?.name\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <df-dynamic-view [type]=\"item.field.formControlName\" [showInList]=\"true\" [fields]=\"item\"\r\n [value]=\"row?.extraProperties[item.field.name]\"></df-dynamic-view>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\"\r\n [width]=\"190\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | shortDateTime }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'Cms::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n *ngIf=\"row.culture===defaultCultureName\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button>\r\n <!-- -->\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'Cms::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n </ngx-datatable>\r\n </div>\r\n }\r\n\r\n @if(SiteOfSectionType===SectionType.Structure){\r\n <div class=\"table-responsive table-fixed-header\">\r\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <thead>\r\n <tr>\r\n <th class=\"sticky-left-card-bg\"> <span\r\n class=\"bi bi-arrows-move fs-5 drag-handle me-2 opacity-0\"></span>{{'AbpUi::Actions'\r\n | abpLocalization}}</th>\r\n <th>{{'Cms::Title' | abpLocalization}}</th>\r\n <th>{{'Cms::SectionType' | abpLocalization}}</th>\r\n <th>{{'Cms::EntryType' | abpLocalization}}</th>\r\n\r\n \r\n <th>{{'Cms::Slug' | abpLocalization}}</th>\r\n <th>{{'Cms::Status' | abpLocalization}}</th>\r\n @for (item of showinFieldList; track $index) {\r\n <th>{{'Cms::'+item.displayName | abpLocalization}}</th>\r\n }\r\n <th>{{'Cms::PublishTime' | abpLocalization}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of data.items\" cdkDrag>\r\n <td class=\"sticky-left-card-bg\">\r\n <div ngbDropdown container=\"body\">\r\n <span class=\"bi bi-arrows-move fs-5 drag-handle me-2\" cdkDragHandle></span>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{item.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n *ngIf=\"item.culture===defaultCultureName\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.entryTypeId,entryVersionId:item.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}}</button>\r\n <!-- <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:row.entryTypeId,entryVersionId:row.id,isOther:1}\">{{'Cms::CreateOtherLanguages'\r\n |\r\n abpLocalization}} </button> -->\r\n\r\n <button ngbDropdownItem (click)=\"deletefield(item)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"white-space-normal\">{{item.title}}</td>\r\n <td>\r\n {{ 'Cms::Enum:SectionType:'+SectionType[item.sectionType] |\r\n abpLocalization }}\r\n </td>\r\n <td>\r\n <ng-container *ngFor=\"let item1 of entryTypeList\">\r\n <ng-container\r\n *ngIf=\"item1.id === item.entryTypeId\">{{item1.displayName}}</ng-container>\r\n </ng-container>\r\n </td>\r\n <td>{{item.slug}}</td>\r\n <td>\r\n <ng-container *ngFor=\"let item2 of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.status=== item2.value\">{{\r\n 'Cms::Enum:EntryStatus:'+item2.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </td>\r\n @for (item1 of showinFieldList; track $index) {\r\n <td>\r\n <df-dynamic-view [type]=\"item1.field.formControlName\" [showInList]=\"true\"\r\n [fields]=\"item1\"\r\n [value]=\"item?.extraProperties[item1.field.name]\"></df-dynamic-view>\r\n\r\n </td>\r\n }\r\n <td>{{item.publishTime | shortDateTime }}</td>\r\n </tr>\r\n </tbody>\r\n @if(data.items.length === 0){\r\n <div class=\"text-muted p-2\">\r\n {{ 'Cms::NoDataAvailableInDatatable' | abpLocalization}}\r\n </div>\r\n }\r\n </table>\r\n </div>\r\n <div class=\"card-footer py-2\">\r\n <small class=\"text-muted\"> {{data.totalCount}} {{ 'Cms::Total' | abpLocalization}}</small>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}.white-space-normal{white-space:normal;min-width:150px}.overflow-nowrap{overflow:auto;white-space:nowrap}::ng-deep .sites-page .table th{padding-left:1rem!important;padding-right:1rem!important}::ng-deep .sites-page .table td{padding:.875rem 1rem!important}::ng-deep .sites-page .table .sticky-left-card-bg{position:sticky;left:0;background:var(--bs-card-bg)}::ng-deep .sites-page .entries-advanced-form{transition:all .3s linear}\n"] }]
|
|
742
745
|
}], ctorParameters: () => [{ type: EntryAdminService }, { type: SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i1.ConfigStateService }, { type: i4.Router }, { type: i1.LocalizationService }, { type: FormAdminService }, { type: FieldAdminService }, { type: i0.ChangeDetectorRef }, { type: FormControlsService }] });
|
|
743
746
|
|
|
744
747
|
class CreateOrUpdateEntryInputBase {
|
|
@@ -776,8 +779,11 @@ class FieldAbstractsService {
|
|
|
776
779
|
}
|
|
777
780
|
/**获取字段分组列表 */
|
|
778
781
|
getfieldGroupList() {
|
|
779
|
-
|
|
780
|
-
this.
|
|
782
|
+
return new Promise((resolve, reject) => {
|
|
783
|
+
this._FieldGroupAdminService.getList({}).subscribe((res) => {
|
|
784
|
+
this.fieldGroupList = res.items;
|
|
785
|
+
resolve(res.items);
|
|
786
|
+
});
|
|
781
787
|
});
|
|
782
788
|
}
|
|
783
789
|
/**获取表单控件类型 */
|
|
@@ -789,6 +795,7 @@ class FieldAbstractsService {
|
|
|
789
795
|
});
|
|
790
796
|
});
|
|
791
797
|
}
|
|
798
|
+
/**获取排除指定控件类型的表单控件类型 */
|
|
792
799
|
getExcludeAssignControl(typeName) {
|
|
793
800
|
// return this.fromControlList.filter(el => el.name !== typeName)
|
|
794
801
|
return this.fromControlList;
|
|
@@ -799,7 +806,7 @@ class FieldAbstractsService {
|
|
|
799
806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FieldAbstractsService, decorators: [{
|
|
800
807
|
type: Injectable,
|
|
801
808
|
args: [{
|
|
802
|
-
providedIn: 'root'
|
|
809
|
+
providedIn: 'root',
|
|
803
810
|
}]
|
|
804
811
|
}], ctorParameters: () => [{ type: FieldGroupAdminService }, { type: FormAdminService }] });
|
|
805
812
|
|
|
@@ -925,7 +932,7 @@ class CreateOrEditEntriesComponent {
|
|
|
925
932
|
this.router = inject(Router);
|
|
926
933
|
this._CmsApiService = inject(CmsApiService);
|
|
927
934
|
this.cdRef = inject(ChangeDetectorRef);
|
|
928
|
-
this.
|
|
935
|
+
this._RegionalizationService = inject(RegionalizationService);
|
|
929
936
|
/**语言列表 */
|
|
930
937
|
this.languagesList = [];
|
|
931
938
|
/**条目列表-选择上级条目 */
|
|
@@ -940,17 +947,25 @@ class CreateOrEditEntriesComponent {
|
|
|
940
947
|
this.entryVersionId = '';
|
|
941
948
|
/**版本列表 */
|
|
942
949
|
this.AllVersionsList = [];
|
|
950
|
+
//tab切换下标
|
|
951
|
+
this.tabActive = 0;
|
|
943
952
|
this.isEdit = false;
|
|
944
953
|
//是否正在创建版本
|
|
945
954
|
this.isCreateVersion = false;
|
|
946
955
|
this.sectionId = '';
|
|
947
956
|
this.entryTypeId = '';
|
|
957
|
+
/**向父级反馈信息 */
|
|
958
|
+
this.feedbackChildInfo = new EventEmitter();
|
|
948
959
|
/**是否加载完成 */
|
|
949
960
|
this.isLoad = false;
|
|
950
961
|
/**是否创建其他语言本 */
|
|
951
962
|
this.isOther = 0;
|
|
952
963
|
/**系统默认语言 */
|
|
953
964
|
this.DefaultLanguage = '';
|
|
965
|
+
/**站点设置语言 */
|
|
966
|
+
this.SiteSettingsAdminLanguages = [];
|
|
967
|
+
/**站点设置的默认语言 */
|
|
968
|
+
this.defaultCultureName = '';
|
|
954
969
|
}
|
|
955
970
|
set select(v) {
|
|
956
971
|
this.entryVersionId = v.id;
|
|
@@ -972,13 +987,29 @@ class CreateOrEditEntriesComponent {
|
|
|
972
987
|
get initialVersionIdInput() {
|
|
973
988
|
return this.formEntity?.get('initialVersionId');
|
|
974
989
|
}
|
|
990
|
+
/**
|
|
991
|
+
* 获取站点设置语言
|
|
992
|
+
*/
|
|
993
|
+
getSiteSettingsLanguages() {
|
|
994
|
+
return new Promise((resolve, rejects) => {
|
|
995
|
+
this._RegionalizationService.get().subscribe(res => {
|
|
996
|
+
this.SiteSettingsAdminLanguages = res.availableCultureNames;
|
|
997
|
+
this.defaultCultureName = res.defaultCultureName;
|
|
998
|
+
resolve(res);
|
|
999
|
+
});
|
|
1000
|
+
});
|
|
1001
|
+
}
|
|
975
1002
|
/**加载数据 */
|
|
976
1003
|
async loadData() {
|
|
1004
|
+
await this.getSiteSettingsLanguages();
|
|
977
1005
|
//获取语言列表
|
|
978
|
-
const
|
|
1006
|
+
const languagesSystem = this.configState.getDeep('localization.languages');
|
|
979
1007
|
//获取系统默认语言 */
|
|
980
|
-
this.DefaultLanguage = this.
|
|
981
|
-
this.
|
|
1008
|
+
this.DefaultLanguage = this.defaultCultureName;
|
|
1009
|
+
// this.DefaultLanguage = this.configState.getSetting('Abp.Regionalization.DefaultCultureName');
|
|
1010
|
+
//选中languagesSystem中的cultureName在 languagesSystem中存在的数组项
|
|
1011
|
+
this.languagesList = languagesSystem.filter(el => this.SiteSettingsAdminLanguages.includes(el.cultureName));
|
|
1012
|
+
this.cdRef.detectChanges();
|
|
982
1013
|
if (this.sectionId) {
|
|
983
1014
|
await this.getSectionInfo();
|
|
984
1015
|
await this.getEntryList();
|
|
@@ -1011,6 +1042,9 @@ class CreateOrEditEntriesComponent {
|
|
|
1011
1042
|
});
|
|
1012
1043
|
}
|
|
1013
1044
|
this.cdRef.detectChanges();
|
|
1045
|
+
this.feedbackChildInfo.emit({
|
|
1046
|
+
showEntryType: this.showEntryType,
|
|
1047
|
+
});
|
|
1014
1048
|
this.isLoad = true;
|
|
1015
1049
|
if (this.isOther == 1) {
|
|
1016
1050
|
this.initialVersionIdInput.patchValue('');
|
|
@@ -1077,7 +1111,6 @@ class CreateOrEditEntriesComponent {
|
|
|
1077
1111
|
return new Promise((resolve, reject) => {
|
|
1078
1112
|
this._SectionAdminService.get(this.sectionId).subscribe(res => {
|
|
1079
1113
|
this.showEntryType = res.entryTypes.find(el => el.id == this.entryTypeId);
|
|
1080
|
-
console.log(this.showEntryType, 'showEntryType');
|
|
1081
1114
|
this.sectionInfo = res;
|
|
1082
1115
|
resolve(res);
|
|
1083
1116
|
});
|
|
@@ -1173,11 +1206,11 @@ class CreateOrEditEntriesComponent {
|
|
|
1173
1206
|
});
|
|
1174
1207
|
}
|
|
1175
1208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditEntriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: { isEdit: "isEdit", isCreateVersion: "isCreateVersion", sectionId: "sectionId", entryTypeId: "entryTypeId", select: "select", entity: "entity", isOther: "isOther" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div [formGroup]=\"formEntity\">\r\n <div class=\"row\">\r\n <div class=\"col-md-8\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Title' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"title\"\r\n (blur)=\"setTitleToSlugBlur($event)\">\r\n </div>\r\n <ng-container *ngIf=\"isLoad\">\r\n <ng-container *ngFor=\"let item of showEntryType?.fieldTabs;let i =index\">\r\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\r\n <ng-container *ngIf=\"el&&formEntity\">\r\n <df-dynamic [fields]=\"el\"\r\n [selected]=\"entryInfo ? entryInfo.extraProperties[el.field.name] : ''\"\r\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureInput.value\"\r\n [entity]=\"formEntity\"></df-dynamic>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Slug' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\r\n <div class=\"text-danger\" *ngIf=\"slugInput.dirty\">\r\n {{slugInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}</div>\r\n <select class=\"form-select form-select-multiple\" formControlName=\"culture\">\r\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\r\n <option [value]=\"item.cultureName\" >{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <div class=\"text-danger\" *ngIf=\"cultureInput.dirty\">\r\n {{cultureInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</div>\r\n <input type=\"text\" disabled [value]=\"showEntryType?.displayName||''\" class=\"form-select\" />\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"sectionInfo.type===1\">\r\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\r\n <select class=\"form-select \" formControlName=\"parentId\">\r\n <option value=\"\"></option>\r\n <ng-container *ngFor=\"let item of entryList;let i =index\">\r\n <option [value]=\"item.id\">{{item.title}}</option>\r\n <ng-container *ngFor=\"let el of item.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n <ng-template #childTemplate let-data>\r\n <option [value]=\"data.value.id\">\r\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\r\n {{data.value.title}}\r\n </option>\r\n <ng-container *ngFor=\"let el of data.value.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\r\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"isEdit\">\r\n <label class=\"form-label\" for=\"Version\">{{'Cms::Version' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of AllVersionsList\">\r\n <li\r\n class=\"list-group-item flex-between d-flex align-items-center justify-content-between\">\r\n <div>\r\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\r\n <span class=\"badge text-bg-success ms-1\"\r\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\r\n <span class=\"badge text-bg-primary ms-1\"\r\n *ngIf=\"item.id === entryVersionId\">{{'Cms::Editing' |\r\n abpLocalization}}</span>\r\n </div>\r\n <div>\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\r\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\r\n (click)=\"ActivatedVersion(item.id)\">\r\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n routerLink=\"/cms/admin/entries/create\"\r\n [queryParams]=\"{entryVersionId:item.id}\">\r\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\r\n *ngIf=\"item.id !== entryVersionId\">\r\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n (click.stop)=\"delectVersion(item.id)\"\r\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== entryVersionId\">\r\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\r\n abpLocalization}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"entryInfo\">\r\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\r\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i11$1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i15.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: { isEdit: "isEdit", isCreateVersion: "isCreateVersion", sectionId: "sectionId", entryTypeId: "entryTypeId", select: "select", entity: "entity", isOther: "isOther" }, outputs: { feedbackChildInfo: "feedbackChildInfo" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div [formGroup]=\"formEntity\">\r\n <div class=\"row create-or-edit-entries-page\">\r\n <div class=\"col-md-8\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Title' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"title\"\r\n (blur)=\"setTitleToSlugBlur($event)\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"isLoad\">\r\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"tabActive\" [destroyOnHide]=\"false\" class=\"nav-tabs mb-0\">\r\n <ng-container *ngFor=\"let item of showEntryType?.fieldTabs;let i =index\">\r\n <li [ngbNavItem]=\"i\" [destroyOnHide]=\"false\">\r\n <button ngbNavLink *ngIf=\"showEntryType?.fieldTabs.length>1\">{{item.name}}</button>\r\n <ng-template ngbNavContent>\r\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\r\n <ng-container *ngIf=\"el&&formEntity\">\r\n <df-dynamic [fields]=\"el\"\r\n [selected]=\"entryInfo ? entryInfo.extraProperties[el.field.name] : ''\"\r\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureInput.value\"\r\n [entity]=\"formEntity\"></df-dynamic>\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\" class=\"\"></div>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- <ng-container *ngIf=\"isLoad\">\r\n <ng-container *ngFor=\"let item of showEntryType?.fieldTabs;let i =index\">\r\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\r\n <ng-container *ngIf=\"el&&formEntity\">\r\n <df-dynamic [fields]=\"el\"\r\n [selected]=\"entryInfo ? entryInfo.extraProperties[el.field.name] : ''\"\r\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureInput.value\"\r\n [entity]=\"formEntity\"></df-dynamic>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Slug' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\r\n <div class=\"text-danger\" *ngIf=\"slugInput.dirty\">\r\n {{slugInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}</div>\r\n <select class=\"form-select form-select-multiple\" formControlName=\"culture\">\r\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <div class=\"text-danger\" *ngIf=\"cultureInput.dirty\">\r\n {{cultureInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</div>\r\n <input type=\"text\" disabled [value]=\"showEntryType?.displayName||''\" class=\"form-select\" />\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"sectionInfo.type===1\">\r\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\r\n <select class=\"form-select \" formControlName=\"parentId\">\r\n <option value=\"\"></option>\r\n <ng-container *ngFor=\"let item of entryList;let i =index\">\r\n <option [value]=\"item.id\">{{item.title}}</option>\r\n <ng-container *ngFor=\"let el of item.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n <ng-template #childTemplate let-data>\r\n <option [value]=\"data.value.id\">\r\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\r\n {{data.value.title}}\r\n </option>\r\n <ng-container *ngFor=\"let el of data.value.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\r\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"isEdit\">\r\n <label class=\"form-label\" for=\"Version\">{{'Cms::Version' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of AllVersionsList\">\r\n <li\r\n class=\"list-group-item flex-between d-flex align-items-center justify-content-between\">\r\n <div>\r\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd\r\n HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\r\n <span class=\"badge text-bg-success ms-1\"\r\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\r\n <span class=\"badge text-bg-primary ms-1\"\r\n *ngIf=\"item.id === entryVersionId\">{{'Cms::Editing' |\r\n abpLocalization}}</span>\r\n </div>\r\n <div>\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\r\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\r\n (click)=\"ActivatedVersion(item.id)\">\r\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n routerLink=\"/cms/admin/entries/create\"\r\n [queryParams]=\"{entryVersionId:item.id}\">\r\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\r\n *ngIf=\"item.id !== entryVersionId\">\r\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n (click.stop)=\"delectVersion(item.id)\"\r\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== entryVersionId\">\r\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\r\n abpLocalization}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"entryInfo\">\r\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\r\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</div>", styles: ["::ng-deep .create-or-edit-entries-page .nav-tabs .nav-link.active{border-color:var(--bs-nav-tabs-link-active-border-color)!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i11$1.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i11$1.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i11$1.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i11$1.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i11$1.NgbNavLinkButton, selector: "button[ngbNavLink]" }, { kind: "directive", type: i11$1.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i11$1.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i11$1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i15.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1177
1210
|
}
|
|
1178
1211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditEntriesComponent, decorators: [{
|
|
1179
1212
|
type: Component,
|
|
1180
|
-
args: [{ selector: 'cms-create-or-edit-entries', template: "<div [formGroup]=\"formEntity\">\r\n <div class=\"row\">\r\n <div class=\"col-md-8\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Title' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"title\"\r\n (blur)=\"setTitleToSlugBlur($event)\">\r\n </div>\r\n <ng-container *ngIf=\"isLoad\">\r\n <ng-container *ngFor=\"let item of showEntryType?.fieldTabs;let i =index\">\r\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\r\n <ng-container *ngIf=\"el&&formEntity\">\r\n <df-dynamic [fields]=\"el\"\r\n [selected]=\"entryInfo ? entryInfo.extraProperties[el.field.name] : ''\"\r\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureInput.value\"\r\n [entity]=\"formEntity\"></df-dynamic>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Slug' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\r\n <div class=\"text-danger\" *ngIf=\"slugInput.dirty\">\r\n {{slugInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}</div>\r\n <select class=\"form-select form-select-multiple\" formControlName=\"culture\">\r\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\r\n <option [value]=\"item.cultureName\" >{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <div class=\"text-danger\" *ngIf=\"cultureInput.dirty\">\r\n {{cultureInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</div>\r\n <input type=\"text\" disabled [value]=\"showEntryType?.displayName||''\" class=\"form-select\" />\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"sectionInfo.type===1\">\r\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\r\n <select class=\"form-select \" formControlName=\"parentId\">\r\n <option value=\"\"></option>\r\n <ng-container *ngFor=\"let item of entryList;let i =index\">\r\n <option [value]=\"item.id\">{{item.title}}</option>\r\n <ng-container *ngFor=\"let el of item.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n <ng-template #childTemplate let-data>\r\n <option [value]=\"data.value.id\">\r\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\r\n {{data.value.title}}\r\n </option>\r\n <ng-container *ngFor=\"let el of data.value.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\r\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"isEdit\">\r\n <label class=\"form-label\" for=\"Version\">{{'Cms::Version' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of AllVersionsList\">\r\n <li\r\n class=\"list-group-item flex-between d-flex align-items-center justify-content-between\">\r\n <div>\r\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\r\n <span class=\"badge text-bg-success ms-1\"\r\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\r\n <span class=\"badge text-bg-primary ms-1\"\r\n *ngIf=\"item.id === entryVersionId\">{{'Cms::Editing' |\r\n abpLocalization}}</span>\r\n </div>\r\n <div>\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\r\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\r\n (click)=\"ActivatedVersion(item.id)\">\r\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n routerLink=\"/cms/admin/entries/create\"\r\n [queryParams]=\"{entryVersionId:item.id}\">\r\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\r\n *ngIf=\"item.id !== entryVersionId\">\r\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n (click.stop)=\"delectVersion(item.id)\"\r\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== entryVersionId\">\r\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\r\n abpLocalization}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"entryInfo\">\r\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\r\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</div>" }]
|
|
1213
|
+
args: [{ selector: 'cms-create-or-edit-entries', template: "<div [formGroup]=\"formEntity\">\r\n <div class=\"row create-or-edit-entries-page\">\r\n <div class=\"col-md-8\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Title' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"title\"\r\n (blur)=\"setTitleToSlugBlur($event)\">\r\n </div>\r\n\r\n <ng-container *ngIf=\"isLoad\">\r\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"tabActive\" [destroyOnHide]=\"false\" class=\"nav-tabs mb-0\">\r\n <ng-container *ngFor=\"let item of showEntryType?.fieldTabs;let i =index\">\r\n <li [ngbNavItem]=\"i\" [destroyOnHide]=\"false\">\r\n <button ngbNavLink *ngIf=\"showEntryType?.fieldTabs.length>1\">{{item.name}}</button>\r\n <ng-template ngbNavContent>\r\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\r\n <ng-container *ngIf=\"el&&formEntity\">\r\n <df-dynamic [fields]=\"el\"\r\n [selected]=\"entryInfo ? entryInfo.extraProperties[el.field.name] : ''\"\r\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureInput.value\"\r\n [entity]=\"formEntity\"></df-dynamic>\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\" class=\"\"></div>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- <ng-container *ngIf=\"isLoad\">\r\n <ng-container *ngFor=\"let item of showEntryType?.fieldTabs;let i =index\">\r\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\r\n <ng-container *ngIf=\"el&&formEntity\">\r\n <df-dynamic [fields]=\"el\"\r\n [selected]=\"entryInfo ? entryInfo.extraProperties[el.field.name] : ''\"\r\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureInput.value\"\r\n [entity]=\"formEntity\"></df-dynamic>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::Slug' | abpLocalization}}</div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\r\n <div class=\"text-danger\" *ngIf=\"slugInput.dirty\">\r\n {{slugInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}</div>\r\n <select class=\"form-select form-select-multiple\" formControlName=\"culture\">\r\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <div class=\"text-danger\" *ngIf=\"cultureInput.dirty\">\r\n {{cultureInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</div>\r\n <input type=\"text\" disabled [value]=\"showEntryType?.displayName||''\" class=\"form-select\" />\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"sectionInfo.type===1\">\r\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\r\n <select class=\"form-select \" formControlName=\"parentId\">\r\n <option value=\"\"></option>\r\n <ng-container *ngFor=\"let item of entryList;let i =index\">\r\n <option [value]=\"item.id\">{{item.title}}</option>\r\n <ng-container *ngFor=\"let el of item.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n <ng-template #childTemplate let-data>\r\n <option [value]=\"data.value.id\">\r\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\r\n {{data.value.title}}\r\n </option>\r\n <ng-container *ngFor=\"let el of data.value.children\">\r\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\r\n $implicit: {\r\n value: el,\r\n }\r\n }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\r\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"isEdit\">\r\n <label class=\"form-label\" for=\"Version\">{{'Cms::Version' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of AllVersionsList\">\r\n <li\r\n class=\"list-group-item flex-between d-flex align-items-center justify-content-between\">\r\n <div>\r\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd\r\n HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\r\n <span class=\"badge text-bg-success ms-1\"\r\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\r\n <span class=\"badge text-bg-primary ms-1\"\r\n *ngIf=\"item.id === entryVersionId\">{{'Cms::Editing' |\r\n abpLocalization}}</span>\r\n </div>\r\n <div>\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\r\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\r\n (click)=\"ActivatedVersion(item.id)\">\r\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n routerLink=\"/cms/admin/entries/create\"\r\n [queryParams]=\"{entryVersionId:item.id}\">\r\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\r\n abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\r\n *ngIf=\"item.id !== entryVersionId\">\r\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\r\n </button>\r\n <button ngbDropdownItem type=\"button\"\r\n (click.stop)=\"delectVersion(item.id)\"\r\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== entryVersionId\">\r\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\r\n abpLocalization}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"mb-3\" *ngIf=\"entryInfo\">\r\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\r\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</div>", styles: ["::ng-deep .create-or-edit-entries-page .nav-tabs .nav-link.active{border-color:var(--bs-nav-tabs-link-active-border-color)!important}\n"] }]
|
|
1181
1214
|
}], propDecorators: { isEdit: [{
|
|
1182
1215
|
type: Input
|
|
1183
1216
|
}], isCreateVersion: [{
|
|
@@ -1188,6 +1221,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1188
1221
|
type: Input
|
|
1189
1222
|
}], select: [{
|
|
1190
1223
|
type: Input
|
|
1224
|
+
}], feedbackChildInfo: [{
|
|
1225
|
+
type: Output
|
|
1191
1226
|
}], entity: [{
|
|
1192
1227
|
type: Input
|
|
1193
1228
|
}], isOther: [{
|
|
@@ -1226,6 +1261,8 @@ class CreateComponent {
|
|
|
1226
1261
|
this.entryInfo = '';
|
|
1227
1262
|
/**是否创建其他语言版本 */
|
|
1228
1263
|
this.isOther = 0;
|
|
1264
|
+
/**显示条目类型信息 */
|
|
1265
|
+
this.showEntryTypeInfo = '';
|
|
1229
1266
|
this.isSubmit = false;
|
|
1230
1267
|
}
|
|
1231
1268
|
/**是否草稿控件*/
|
|
@@ -1244,9 +1281,9 @@ class CreateComponent {
|
|
|
1244
1281
|
this.entryVersionId = queryParams.entryVersionId;
|
|
1245
1282
|
this.isOther = queryParams.isOther;
|
|
1246
1283
|
this.formEntity = this.fb.group(new CreateOrUpdateEntryInputBase());
|
|
1284
|
+
this.cultureInput.patchValue(this.cultureName);
|
|
1247
1285
|
if (this.entryVersionId)
|
|
1248
1286
|
await this.getEntryInfo();
|
|
1249
|
-
this.cultureInput.patchValue(this.cultureName);
|
|
1250
1287
|
}
|
|
1251
1288
|
/**获取条目信息 */
|
|
1252
1289
|
getEntryInfo() {
|
|
@@ -1260,14 +1297,53 @@ class CreateComponent {
|
|
|
1260
1297
|
});
|
|
1261
1298
|
});
|
|
1262
1299
|
}
|
|
1300
|
+
/**反馈子级页面信息 */
|
|
1301
|
+
_feedbackChildInfo(event) {
|
|
1302
|
+
this.showEntryTypeInfo = event?.showEntryType || '';
|
|
1303
|
+
}
|
|
1304
|
+
/**当返回结果为true时表示未通过验证 */
|
|
1305
|
+
isCheckFormCms(input, module) {
|
|
1306
|
+
for (const key in input) {
|
|
1307
|
+
if (input[key] === false) {
|
|
1308
|
+
let info = `"${this._LocalizationService.instant(`${module}::${key}`)}" `;
|
|
1309
|
+
//检查key中是否含有ExtraProperties.
|
|
1310
|
+
if (key.includes('ExtraProperties.')) {
|
|
1311
|
+
const arr = key.split('.');
|
|
1312
|
+
const keyName = arr[1];
|
|
1313
|
+
//将keyName的首字母转为小写
|
|
1314
|
+
const keyNameLower = keyName.charAt(0).toLowerCase() + keyName.slice(1);
|
|
1315
|
+
if (this.showEntryTypeInfo && this.showEntryTypeInfo.fieldTabs.length > 0) {
|
|
1316
|
+
for (const item of this.showEntryTypeInfo.fieldTabs) {
|
|
1317
|
+
for (const el of item.fields) {
|
|
1318
|
+
if (el.field.name == keyNameLower) {
|
|
1319
|
+
// info = `"${this._LocalizationService.instant(`${module}::${item.name}下的${el.field.displayName}字段`)}"`;
|
|
1320
|
+
info = `${this._LocalizationService.instant(`${module}::The{1}FieldUnderThe{0}TAB`, item.name, el.field.displayName)}`;
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
info = info + this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid.`);
|
|
1327
|
+
//使用abp多语言提示
|
|
1328
|
+
this.toaster.warn(info);
|
|
1329
|
+
return true;
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
return false;
|
|
1333
|
+
}
|
|
1263
1334
|
/**提交 */
|
|
1264
1335
|
save() {
|
|
1336
|
+
const input = this.formEntity?.value;
|
|
1265
1337
|
this.formValidation = this._ValidatorsService.getFormValidationStatus(this.formEntity);
|
|
1266
|
-
if (this.
|
|
1338
|
+
if (this.isCheckFormCms(this.formValidation, 'Cms')) {
|
|
1267
1339
|
this.isSubmit = false;
|
|
1268
1340
|
return this.cultureInput.disable();
|
|
1269
1341
|
}
|
|
1270
|
-
|
|
1342
|
+
// if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms')) {
|
|
1343
|
+
// // this.isSubmit = false;
|
|
1344
|
+
// // return this.cultureInput.disable();
|
|
1345
|
+
// }
|
|
1346
|
+
// return;
|
|
1271
1347
|
// input.culture = this.cultureName;
|
|
1272
1348
|
input.publishTime = new Date(new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000).toISOString();
|
|
1273
1349
|
if (!this.formEntity.valid)
|
|
@@ -1285,9 +1361,8 @@ class CreateComponent {
|
|
|
1285
1361
|
}
|
|
1286
1362
|
/**点击提交 */
|
|
1287
1363
|
clickSubmit(type) {
|
|
1288
|
-
if (this.isSubmit)
|
|
1289
|
-
|
|
1290
|
-
this.isSubmit = true;
|
|
1364
|
+
// if (this.isSubmit) return;
|
|
1365
|
+
// this.isSubmit = true;
|
|
1291
1366
|
this.draftInput.patchValue(type);
|
|
1292
1367
|
this.cultureInput.enable();
|
|
1293
1368
|
this.submitclick?.nativeElement?.click();
|
|
@@ -1302,7 +1377,7 @@ class CreateComponent {
|
|
|
1302
1377
|
provide: EXTENSIONS_IDENTIFIER,
|
|
1303
1378
|
useValue: ECmsComponent.Entries_Create,
|
|
1304
1379
|
},
|
|
1305
|
-
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\r\n <form class=\"row g-3 needs-validation\" [formGroup]=\"formEntity\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"save()\">\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n <ng-container *ngIf=\"formEntity&§ionId\">\r\n <ng-container *ngIf=\"entryVersionId; else elseTemplate\">\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"false\"\r\n [select]=\"entryInfo\" [isCreateVersion]=\"true\" [isOther]=\"isOther\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\"\r\n [entity]=\"formEntity\"></cms-create-or-edit-entries>\r\n </ng-template>\r\n </ng-container>\r\n </form>\r\n</abp-page>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: ["isEdit", "isCreateVersion", "sectionId", "entryTypeId", "select", "entity", "isOther"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1380
|
+
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\r\n <form class=\"row g-3 needs-validation\" [formGroup]=\"formEntity\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"save()\">\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n <ng-container *ngIf=\"formEntity&§ionId\">\r\n <ng-container *ngIf=\"entryVersionId; else elseTemplate\">\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"false\"\r\n [select]=\"entryInfo\" [isCreateVersion]=\"true\" [isOther]=\"isOther\" (feedbackChildInfo)=\"_feedbackChildInfo($event)\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" (feedbackChildInfo)=\"_feedbackChildInfo($event)\"\r\n [isEdit]=\"false\" [select]=\"entryInfo\" [isOther]=\"isOther\"\r\n [entity]=\"formEntity\" ></cms-create-or-edit-entries>\r\n </ng-template>\r\n </ng-container>\r\n </form>\r\n</abp-page>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: ["isEdit", "isCreateVersion", "sectionId", "entryTypeId", "select", "entity", "isOther"], outputs: ["feedbackChildInfo"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1306
1381
|
}
|
|
1307
1382
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateComponent, decorators: [{
|
|
1308
1383
|
type: Component,
|
|
@@ -1311,7 +1386,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1311
1386
|
provide: EXTENSIONS_IDENTIFIER,
|
|
1312
1387
|
useValue: ECmsComponent.Entries_Create,
|
|
1313
1388
|
},
|
|
1314
|
-
], template: "<abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\r\n <form class=\"row g-3 needs-validation\" [formGroup]=\"formEntity\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"save()\">\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n <ng-container *ngIf=\"formEntity&§ionId\">\r\n <ng-container *ngIf=\"entryVersionId; else elseTemplate\">\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"false\"\r\n [select]=\"entryInfo\" [isCreateVersion]=\"true\" [isOther]=\"isOther\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\"\r\n [entity]=\"formEntity\"></cms-create-or-edit-entries>\r\n </ng-template>\r\n </ng-container>\r\n </form>\r\n</abp-page>" }]
|
|
1389
|
+
], template: "<abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\r\n <form class=\"row g-3 needs-validation\" [formGroup]=\"formEntity\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"save()\">\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n <ng-container *ngIf=\"formEntity&§ionId\">\r\n <ng-container *ngIf=\"entryVersionId; else elseTemplate\">\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"false\"\r\n [select]=\"entryInfo\" [isCreateVersion]=\"true\" [isOther]=\"isOther\" (feedbackChildInfo)=\"_feedbackChildInfo($event)\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" (feedbackChildInfo)=\"_feedbackChildInfo($event)\"\r\n [isEdit]=\"false\" [select]=\"entryInfo\" [isOther]=\"isOther\"\r\n [entity]=\"formEntity\" ></cms-create-or-edit-entries>\r\n </ng-template>\r\n </ng-container>\r\n </form>\r\n</abp-page>" }]
|
|
1315
1390
|
}], propDecorators: { submitclick: [{
|
|
1316
1391
|
type: ViewChild,
|
|
1317
1392
|
args: ['submitclick', { static: true }]
|
|
@@ -1348,6 +1423,8 @@ class EditComponent {
|
|
|
1348
1423
|
this.entrieId = '';
|
|
1349
1424
|
/**条目信息 */
|
|
1350
1425
|
this.entryInfo = '';
|
|
1426
|
+
/**显示条目类型信息 */
|
|
1427
|
+
this.showEntryTypeInfo = '';
|
|
1351
1428
|
this.isSubmit = false;
|
|
1352
1429
|
this.draftValue = '';
|
|
1353
1430
|
}
|
|
@@ -1378,6 +1455,99 @@ class EditComponent {
|
|
|
1378
1455
|
});
|
|
1379
1456
|
});
|
|
1380
1457
|
}
|
|
1458
|
+
/**反馈子级页面信息 */
|
|
1459
|
+
_feedbackChildInfo(event) {
|
|
1460
|
+
this.showEntryTypeInfo = event?.showEntryType || '';
|
|
1461
|
+
}
|
|
1462
|
+
// /**当返回结果为true时表示未通过验证 */
|
|
1463
|
+
isCheckFormCms(input, module) {
|
|
1464
|
+
for (const key in input) {
|
|
1465
|
+
if (input[key] === false) {
|
|
1466
|
+
let info = ``;
|
|
1467
|
+
//检查key中是否含有ExtraProperties.
|
|
1468
|
+
if (key.includes('extraProperties.')) {
|
|
1469
|
+
const arr = key.split('.');
|
|
1470
|
+
const keyName = arr[1];
|
|
1471
|
+
// if (keyName.includes('[')) {
|
|
1472
|
+
// //使用正则提取keyName中[]中的数字下标,并且转化为数字类型,并且去掉keyName中的[*]
|
|
1473
|
+
// const keyNameArr = keyName.match(/\d+/g);
|
|
1474
|
+
// const keyNameArrNum = keyNameArr.map(item => Number(item));
|
|
1475
|
+
// const keyNameArrNumStr = keyNameArrNum.join('.');
|
|
1476
|
+
// } else {
|
|
1477
|
+
//将keyName的首字母转为小写
|
|
1478
|
+
const keyNameLower = keyName;
|
|
1479
|
+
// const keyNameLower = keyName.charAt(0).toLowerCase() + keyName.slice(1);
|
|
1480
|
+
if (this.showEntryTypeInfo && this.showEntryTypeInfo.fieldTabs.length > 0) {
|
|
1481
|
+
for (const item of this.showEntryTypeInfo.fieldTabs) {
|
|
1482
|
+
for (const el of item.fields) {
|
|
1483
|
+
if (el.field.name == keyNameLower) {
|
|
1484
|
+
// info = `"${this._LocalizationService.instant(`${module}::${item.name}下的${el.field.displayName}字段`)}"`;
|
|
1485
|
+
info = `${this._LocalizationService.instant(`${module}::The{1}FieldUnderThe{0}TAB`, item.name, el.field.displayName)}`;
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
// }
|
|
1491
|
+
}
|
|
1492
|
+
else {
|
|
1493
|
+
const displayName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
1494
|
+
info = `"${this._LocalizationService.instant(`${module}::${displayName}`)}" `;
|
|
1495
|
+
}
|
|
1496
|
+
info = info + this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid.`);
|
|
1497
|
+
//使用abp多语言提示
|
|
1498
|
+
this.toaster.warn(info);
|
|
1499
|
+
return true;
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
return false;
|
|
1503
|
+
}
|
|
1504
|
+
// /**获取表单所有字段是否通过验证 */
|
|
1505
|
+
// getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {
|
|
1506
|
+
// const validationStatus: { [key: string]: any } = {};
|
|
1507
|
+
// // 递归遍历表单组和表单控件集合
|
|
1508
|
+
// const traverseForm = (form: FormGroup | FormArray, prefix = '') => {
|
|
1509
|
+
// if (form instanceof FormGroup) {
|
|
1510
|
+
// Object.keys(form.controls).forEach(key => {
|
|
1511
|
+
// const control = form.controls[key];
|
|
1512
|
+
// // const displayName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
1513
|
+
// const displayName = key;
|
|
1514
|
+
// const fullKey = prefix ? `${prefix}.${displayName}` : displayName;
|
|
1515
|
+
// if (control instanceof FormControl) {
|
|
1516
|
+
// validationStatus[fullKey] = control.valid;
|
|
1517
|
+
// } else if (control instanceof FormArray) {
|
|
1518
|
+
// traverseForm(control, fullKey);
|
|
1519
|
+
// } else if (control instanceof FormGroup) {
|
|
1520
|
+
// traverseForm(control, fullKey);
|
|
1521
|
+
// }
|
|
1522
|
+
// });
|
|
1523
|
+
// } else if (form instanceof FormArray) {
|
|
1524
|
+
// form.controls.forEach((control, index) => {
|
|
1525
|
+
// const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;
|
|
1526
|
+
// if (control instanceof FormControl) {
|
|
1527
|
+
// validationStatus[fullKey] = control.valid;
|
|
1528
|
+
// } else if (control instanceof FormArray) {
|
|
1529
|
+
// traverseForm(control, fullKey);
|
|
1530
|
+
// } else if (control instanceof FormGroup) {
|
|
1531
|
+
// traverseForm(control, fullKey);
|
|
1532
|
+
// }
|
|
1533
|
+
// });
|
|
1534
|
+
// }
|
|
1535
|
+
// };
|
|
1536
|
+
// traverseForm(formEntity);
|
|
1537
|
+
// return validationStatus;
|
|
1538
|
+
// }
|
|
1539
|
+
/**获取表单验证状态 */
|
|
1540
|
+
// getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {
|
|
1541
|
+
// const validationStatus: { [key: string]: any } = {};
|
|
1542
|
+
// const traverseForm = (form: FormGroup | FormArray, prefix = '') => {
|
|
1543
|
+
// //检查form是否为FormGroup还是formArray,如果是FormGroup则继续遍历,如果是FormArray则遍历FormArray
|
|
1544
|
+
// if (form instanceof FormGroup) {
|
|
1545
|
+
// } else if (form instanceof FormArray) {
|
|
1546
|
+
// }
|
|
1547
|
+
// }
|
|
1548
|
+
// traverseForm(formEntity);
|
|
1549
|
+
// return validationStatus
|
|
1550
|
+
// }
|
|
1381
1551
|
/**提交 */
|
|
1382
1552
|
save() {
|
|
1383
1553
|
this.cultureInput.enable();
|
|
@@ -1387,10 +1557,17 @@ class EditComponent {
|
|
|
1387
1557
|
input.publishTime = new Date(new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000).toISOString();
|
|
1388
1558
|
input.concurrencyStamp = this.entryInfo.concurrencyStamp;
|
|
1389
1559
|
this.formValidation = this._ValidatorsService.getFormValidationStatus(this.formEntity);
|
|
1390
|
-
if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
|
|
1560
|
+
// if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms')){
|
|
1561
|
+
// this.isSubmit = false;
|
|
1562
|
+
// return this.cultureInput.disable();
|
|
1563
|
+
// }
|
|
1564
|
+
// this.formValidation = this.getFormValidationStatus(this.formEntity);
|
|
1565
|
+
if (this.isCheckFormCms(this.formValidation, 'Cms')) {
|
|
1391
1566
|
this.isSubmit = false;
|
|
1392
1567
|
return this.cultureInput.disable();
|
|
1393
1568
|
}
|
|
1569
|
+
// this.formValidation = this.getFormValidationStatus(this.formEntity);
|
|
1570
|
+
// return this.isSubmit=false;
|
|
1394
1571
|
if (!this.formEntity.valid)
|
|
1395
1572
|
return;
|
|
1396
1573
|
this._EntryAdminService
|
|
@@ -1423,7 +1600,7 @@ class EditComponent {
|
|
|
1423
1600
|
provide: EXTENSIONS_IDENTIFIER,
|
|
1424
1601
|
useValue: ECmsComponent.Entries_Edit,
|
|
1425
1602
|
},
|
|
1426
|
-
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::Edit'| abpLocalization\" [toolbar]=\"true\">\n <form class=\"row g-3 needs-validation\"\n [class]=\"{'was-validated':formValidation}\" [formGroup]=\"formEntity\" (submit)=\"save()\" >\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"formEntity&&entryInfo\">\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"true\" [select]=\"entryInfo\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\n </ng-container>\n \n </form>\n</abp-page>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: ["isEdit", "isCreateVersion", "sectionId", "entryTypeId", "select", "entity", "isOther"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1603
|
+
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::Edit'| abpLocalization\" [toolbar]=\"true\">\n <form class=\"row g-3 needs-validation\"\n [class]=\"{'was-validated':formValidation}\" [formGroup]=\"formEntity\" (submit)=\"save()\" >\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"formEntity&&entryInfo\">\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"true\" [select]=\"entryInfo\" (feedbackChildInfo)=\"_feedbackChildInfo($event)\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\n </ng-container>\n \n </form>\n</abp-page>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: ["isEdit", "isCreateVersion", "sectionId", "entryTypeId", "select", "entity", "isOther"], outputs: ["feedbackChildInfo"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1427
1604
|
}
|
|
1428
1605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EditComponent, decorators: [{
|
|
1429
1606
|
type: Component,
|
|
@@ -1432,7 +1609,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1432
1609
|
provide: EXTENSIONS_IDENTIFIER,
|
|
1433
1610
|
useValue: ECmsComponent.Entries_Edit,
|
|
1434
1611
|
},
|
|
1435
|
-
], template: "<abp-page [title]=\"'Cms::Edit'| abpLocalization\" [toolbar]=\"true\">\n <form class=\"row g-3 needs-validation\"\n [class]=\"{'was-validated':formValidation}\" [formGroup]=\"formEntity\" (submit)=\"save()\" >\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"formEntity&&entryInfo\">\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"true\" [select]=\"entryInfo\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\n </ng-container>\n \n </form>\n</abp-page>\n" }]
|
|
1612
|
+
], template: "<abp-page [title]=\"'Cms::Edit'| abpLocalization\" [toolbar]=\"true\">\n <form class=\"row g-3 needs-validation\"\n [class]=\"{'was-validated':formValidation}\" [formGroup]=\"formEntity\" (submit)=\"save()\" >\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"formEntity&&entryInfo\">\n <cms-create-or-edit-entries [sectionId]=\"sectionId\" [entryTypeId]=\"entryTypeId\" [isEdit]=\"true\" [select]=\"entryInfo\" (feedbackChildInfo)=\"_feedbackChildInfo($event)\" [entity]=\"formEntity\"></cms-create-or-edit-entries>\n </ng-container>\n \n </form>\n</abp-page>\n" }]
|
|
1436
1613
|
}], propDecorators: { submitclick: [{
|
|
1437
1614
|
type: ViewChild,
|
|
1438
1615
|
args: ['submitclick', { static: true }]
|
|
@@ -1576,6 +1753,7 @@ class FieldsComponent {
|
|
|
1576
1753
|
this._LocalizationService = _LocalizationService;
|
|
1577
1754
|
this.router = router;
|
|
1578
1755
|
this._UpdateListService = inject(UpdateListService);
|
|
1756
|
+
this._FieldAbstractsService = inject(FieldAbstractsService);
|
|
1579
1757
|
/**表格单元格布局类型 */
|
|
1580
1758
|
this.ColumnMode = ColumnMode;
|
|
1581
1759
|
/**表格数据 */
|
|
@@ -1585,8 +1763,12 @@ class FieldsComponent {
|
|
|
1585
1763
|
};
|
|
1586
1764
|
/**过滤器 */
|
|
1587
1765
|
this.filters = {};
|
|
1766
|
+
/**是否初始化完成 */
|
|
1767
|
+
this.isInit = true;
|
|
1588
1768
|
}
|
|
1589
|
-
ngOnInit() {
|
|
1769
|
+
async ngOnInit() {
|
|
1770
|
+
await this._FieldAbstractsService.getFromControlList();
|
|
1771
|
+
this.isInit = true;
|
|
1590
1772
|
this.hookToQuery();
|
|
1591
1773
|
this._UpdateListService.updateListEvent.subscribe(() => {
|
|
1592
1774
|
this.list.get();
|
|
@@ -1620,15 +1802,21 @@ class FieldsComponent {
|
|
|
1620
1802
|
/**新建字段按钮 */
|
|
1621
1803
|
toFieldsCreateBtn() {
|
|
1622
1804
|
this.router.navigate(['/cms/admin/fields/create'], {
|
|
1623
|
-
queryParams: {
|
|
1805
|
+
queryParams: {
|
|
1806
|
+
groupId: this.filters.groupId,
|
|
1807
|
+
},
|
|
1624
1808
|
});
|
|
1625
1809
|
}
|
|
1626
1810
|
/**删除字段 */
|
|
1627
1811
|
deletefield(row) {
|
|
1628
|
-
this.confirmation
|
|
1812
|
+
this.confirmation
|
|
1813
|
+
.warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))
|
|
1814
|
+
.subscribe((status) => {
|
|
1629
1815
|
if (status == 'confirm') {
|
|
1630
|
-
this._FieldAdminService
|
|
1631
|
-
|
|
1816
|
+
this._FieldAdminService
|
|
1817
|
+
.delete(row.id)
|
|
1818
|
+
.pipe(finalize(() => { }))
|
|
1819
|
+
.subscribe(res => {
|
|
1632
1820
|
this.toaster.success(this._LocalizationService.instant(`AbpUi::DeletedSuccessfully`));
|
|
1633
1821
|
this.list.get();
|
|
1634
1822
|
});
|
|
@@ -1647,7 +1835,7 @@ class FieldsComponent {
|
|
|
1647
1835
|
provide: EXTENSIONS_IDENTIFIER,
|
|
1648
1836
|
useValue: ECmsComponent.Fields,
|
|
1649
1837
|
},
|
|
1650
|
-
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-md-3 mb-2\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-md-9 mb-2\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"], dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type:
|
|
1838
|
+
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-md-3 mb-2\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-md-9 mb-2\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <ng-container *ngIf=\"isInit\">\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i8.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], outputs: ["tableActivate"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: FieldGroupComponent, selector: "cms-field-group", outputs: ["OnGroupClickBack"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1651
1839
|
}
|
|
1652
1840
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FieldsComponent, decorators: [{
|
|
1653
1841
|
type: Component,
|
|
@@ -1662,11 +1850,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1662
1850
|
provide: EXTENSIONS_IDENTIFIER,
|
|
1663
1851
|
useValue: ECmsComponent.Fields,
|
|
1664
1852
|
},
|
|
1665
|
-
], template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-md-3 mb-2\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-md-9 mb-2\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"] }]
|
|
1853
|
+
], template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-md-3 mb-2\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-md-9 mb-2\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <ng-container *ngIf=\"isInit\">\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"] }]
|
|
1666
1854
|
}], ctorParameters: () => [{ type: i1.ListService }, { type: FieldAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i1.LocalizationService }, { type: i4.Router }] });
|
|
1667
1855
|
|
|
1668
1856
|
class CreateOrUpdateFieldInputBase {
|
|
1669
|
-
constructor(
|
|
1857
|
+
constructor() {
|
|
1670
1858
|
/**分组id */
|
|
1671
1859
|
this.groupId = ['', []];
|
|
1672
1860
|
/**字段名称 Display name of this field */
|
|
@@ -1679,13 +1867,6 @@ class CreateOrUpdateFieldInputBase {
|
|
|
1679
1867
|
this.formControlName = [undefined, [Validators.required]];
|
|
1680
1868
|
/**动态表单配置 */
|
|
1681
1869
|
this.formConfiguration = new FormGroup({});
|
|
1682
|
-
if (data) {
|
|
1683
|
-
for (const key in data) {
|
|
1684
|
-
if (data.hasOwnProperty(key)) {
|
|
1685
|
-
this[key] = data[key];
|
|
1686
|
-
}
|
|
1687
|
-
}
|
|
1688
|
-
}
|
|
1689
1870
|
}
|
|
1690
1871
|
}
|
|
1691
1872
|
|
|
@@ -1799,6 +1980,7 @@ class CreateFieldComponent {
|
|
|
1799
1980
|
this._location = _location;
|
|
1800
1981
|
this._LocalizationService = _LocalizationService;
|
|
1801
1982
|
this._CmsApiService = _CmsApiService;
|
|
1983
|
+
this.route = inject(ActivatedRoute);
|
|
1802
1984
|
this._UpdateListService = inject(UpdateListService);
|
|
1803
1985
|
this.isSubmit = false;
|
|
1804
1986
|
this._ValidatorsService = inject(ValidatorsService);
|
|
@@ -1809,10 +1991,17 @@ class CreateFieldComponent {
|
|
|
1809
1991
|
*/
|
|
1810
1992
|
this.formValidation = '';
|
|
1811
1993
|
}
|
|
1994
|
+
get groupIdInput() {
|
|
1995
|
+
return this.newEntity?.get('groupId');
|
|
1996
|
+
}
|
|
1812
1997
|
ngOnInit() {
|
|
1813
1998
|
//Called after the constructor, initializing input properties, and the first call to ngOnChanges.
|
|
1814
1999
|
//Add 'implements OnInit' to the class.
|
|
2000
|
+
const { groupId } = this.route.snapshot.queryParams;
|
|
1815
2001
|
this.newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());
|
|
2002
|
+
if (groupId) {
|
|
2003
|
+
this.groupIdInput.patchValue(groupId);
|
|
2004
|
+
}
|
|
1816
2005
|
}
|
|
1817
2006
|
/**触发提交按钮 */
|
|
1818
2007
|
submitclickBtn() {
|
|
@@ -2278,7 +2467,7 @@ class SectionsComponent {
|
|
|
2278
2467
|
provide: EXTENSIONS_IDENTIFIER,
|
|
2279
2468
|
useValue: ECmsComponent.Sections,
|
|
2280
2469
|
},
|
|
2281
|
-
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-md-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\" [sortable]=\"false\"> \n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i11.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i11.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i11.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i11$1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: CreateOrEditSectionsModalComponent, selector: "cms-create-or-edit-sections-modal", inputs: ["visible", "formEntity"], outputs: ["visibleChange"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
2470
|
+
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"''\" >--</option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-md-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\" [sortable]=\"false\"> \n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | shortDateTime }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i11.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i11.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i11.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i11$1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: CreateOrEditSectionsModalComponent, selector: "cms-create-or-edit-sections-modal", inputs: ["visible", "formEntity"], outputs: ["visibleChange"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i1.ShortDateTimePipe, name: "shortDateTime" }] }); }
|
|
2282
2471
|
}
|
|
2283
2472
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SectionsComponent, decorators: [{
|
|
2284
2473
|
type: Component,
|
|
@@ -2293,7 +2482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
2293
2482
|
provide: EXTENSIONS_IDENTIFIER,
|
|
2294
2483
|
useValue: ECmsComponent.Sections,
|
|
2295
2484
|
},
|
|
2296
|
-
], template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"
|
|
2485
|
+
], template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"''\" >--</option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-md-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-md-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\" [sortable]=\"false\"> \n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | shortDateTime }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
|
|
2297
2486
|
}], ctorParameters: () => [{ type: i1.ListService }, { type: SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i1$2.FormBuilder }, { type: EntryTypeAdminService }, { type: i1.LocalizationService }, { type: CmsApiService }] });
|
|
2298
2487
|
|
|
2299
2488
|
class CreateOrEditEntryTypeInputBase {
|
|
@@ -2343,8 +2532,6 @@ class CreateOrEditComponent {
|
|
|
2343
2532
|
this._FormControlsService = _FormControlsService;
|
|
2344
2533
|
this.fb = inject(FormBuilder);
|
|
2345
2534
|
this._UpdateListService = inject(UpdateListService);
|
|
2346
|
-
/**表单实体 */
|
|
2347
|
-
this.newEntity = this.fb.group(new CreateOrEditEntryTypeInputBase());
|
|
2348
2535
|
/**版块id */
|
|
2349
2536
|
this.sectionId = '';
|
|
2350
2537
|
/**条目类型id */
|
|
@@ -2392,19 +2579,63 @@ class CreateOrEditComponent {
|
|
|
2392
2579
|
}
|
|
2393
2580
|
async ngOnInit() {
|
|
2394
2581
|
const sectionId = this.route.snapshot.params.sectionsId;
|
|
2582
|
+
//条目类型id
|
|
2395
2583
|
this.entryTypesId = this.route.snapshot.params.entryTypesId || '';
|
|
2584
|
+
//板块id
|
|
2585
|
+
this.sectionId = sectionId;
|
|
2586
|
+
this.newEntity = this.fb.group(new CreateOrEditEntryTypeInputBase());
|
|
2587
|
+
//
|
|
2396
2588
|
// this.enableSearchTypeList=await this._FormControlsService.getEnableSearchTypeList();
|
|
2397
2589
|
// this.disableshowinTypeList= this._FormControlsService.getdisableshowinTypeList();
|
|
2398
|
-
if (sectionId) {
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2590
|
+
// if (sectionId) {
|
|
2591
|
+
// this.sectionId = sectionId;
|
|
2592
|
+
// this.addControlToFieldTabs();
|
|
2593
|
+
// this.getFieldGroup();
|
|
2594
|
+
// }
|
|
2595
|
+
//获取条目类型详情
|
|
2596
|
+
if (this.entryTypesId) {
|
|
2597
|
+
await this.getEntryTypes();
|
|
2402
2598
|
}
|
|
2599
|
+
//获取字段分组
|
|
2600
|
+
await this.getFieldGroup();
|
|
2601
|
+
//处理数据
|
|
2602
|
+
this.processData();
|
|
2603
|
+
}
|
|
2604
|
+
/**处理数据 */
|
|
2605
|
+
processData() {
|
|
2606
|
+
return new Promise((resolve, rejects) => {
|
|
2607
|
+
const fieldList = this.deepClone(this.fieldList);
|
|
2608
|
+
const res = this.entryTypesSelect;
|
|
2609
|
+
if (!res) {
|
|
2610
|
+
this.addControlToFieldTabs();
|
|
2611
|
+
}
|
|
2612
|
+
else {
|
|
2613
|
+
res.fieldTabs.forEach(el => {
|
|
2614
|
+
this.addControlToFieldTabs();
|
|
2615
|
+
el.fields.forEach((eld) => {
|
|
2616
|
+
eld.id = eld.fieldId;
|
|
2617
|
+
eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;
|
|
2618
|
+
this.formRightGroup.push(eld);
|
|
2619
|
+
const fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);
|
|
2620
|
+
fieldList.splice(fieldindex, 1);
|
|
2621
|
+
});
|
|
2622
|
+
});
|
|
2623
|
+
this.fieldGroupList.forEach((el, index) => {
|
|
2624
|
+
el.fields = fieldList.filter(els => els.groupId === el.id);
|
|
2625
|
+
});
|
|
2626
|
+
this.newEntity?.patchValue(res);
|
|
2627
|
+
this.navActive = 0;
|
|
2628
|
+
this.resultSource = res.fieldTabs;
|
|
2629
|
+
}
|
|
2630
|
+
resolve(true);
|
|
2631
|
+
});
|
|
2403
2632
|
}
|
|
2404
2633
|
/**给fieldTabs添加新控件 */
|
|
2405
2634
|
addControlToFieldTabs(nameValue = '') {
|
|
2406
2635
|
const newFormGroup = this.fb.group(new fieldTabsBase());
|
|
2407
|
-
newFormGroup
|
|
2636
|
+
newFormGroup
|
|
2637
|
+
.get('name')
|
|
2638
|
+
?.patchValue(this.fieldTabs.length === 0
|
|
2408
2639
|
? this._LocalizationService.instant(`Cms::FieldTab`)
|
|
2409
2640
|
: nameValue);
|
|
2410
2641
|
this.fieldTabs.push(newFormGroup);
|
|
@@ -2413,45 +2644,54 @@ class CreateOrEditComponent {
|
|
|
2413
2644
|
}
|
|
2414
2645
|
/**获取字段分组 */
|
|
2415
2646
|
getFieldGroup() {
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
el
|
|
2647
|
+
return new Promise((resolve, rejects) => {
|
|
2648
|
+
this._FieldGroupAdminService.getList({}).subscribe(async (res) => {
|
|
2649
|
+
const fieldList = await this.getFieldList();
|
|
2650
|
+
const fieldGroupList = res.items;
|
|
2651
|
+
fieldGroupList.unshift({
|
|
2652
|
+
id: null,
|
|
2653
|
+
name: 'UngroupedFields',
|
|
2654
|
+
});
|
|
2655
|
+
fieldGroupList.forEach((el, index) => {
|
|
2656
|
+
el.fields = fieldList.filter(els => els.groupId === el.id);
|
|
2657
|
+
});
|
|
2658
|
+
this.fieldGroupList = fieldGroupList;
|
|
2659
|
+
this.fieldList = this.deepClone(fieldList);
|
|
2660
|
+
// const entryTypesId = this.entryTypesId;
|
|
2661
|
+
// if (entryTypesId) {
|
|
2662
|
+
// this.entryTypesId = entryTypesId;
|
|
2663
|
+
// this.getEntryTypes();
|
|
2664
|
+
// }
|
|
2665
|
+
resolve(res);
|
|
2425
2666
|
});
|
|
2426
|
-
this.fieldGroupList = fieldGroupList;
|
|
2427
|
-
this.fieldList = this.deepClone(fieldList);
|
|
2428
|
-
const entryTypesId = this.entryTypesId;
|
|
2429
|
-
if (entryTypesId) {
|
|
2430
|
-
this.entryTypesId = entryTypesId;
|
|
2431
|
-
this.getEntryTypes();
|
|
2432
|
-
}
|
|
2433
2667
|
});
|
|
2434
2668
|
}
|
|
2435
2669
|
/**获取条目类型详情 */
|
|
2436
2670
|
getEntryTypes() {
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
eld.id = eld.fieldId;
|
|
2442
|
-
eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;
|
|
2443
|
-
this.formRightGroup.push(eld);
|
|
2444
|
-
const fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);
|
|
2445
|
-
fieldList.splice(fieldindex, 1);
|
|
2446
|
-
});
|
|
2447
|
-
});
|
|
2448
|
-
this.fieldGroupList.forEach((el, index) => {
|
|
2449
|
-
el.fields = fieldList.filter(els => els.groupId === el.id);
|
|
2671
|
+
return new Promise((resolve, rejects) => {
|
|
2672
|
+
this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {
|
|
2673
|
+
this.entryTypesSelect = res;
|
|
2674
|
+
resolve(res);
|
|
2450
2675
|
});
|
|
2451
|
-
this.newEntity?.patchValue(res);
|
|
2452
|
-
this.entryTypesSelect = res;
|
|
2453
|
-
this.resultSource = res.fieldTabs;
|
|
2454
2676
|
});
|
|
2677
|
+
// // const fieldList: any = this.deepClone(this.fieldList);
|
|
2678
|
+
// this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {
|
|
2679
|
+
// // res.fieldTabs.forEach(el => {
|
|
2680
|
+
// // el.fields.forEach((eld: any) => {
|
|
2681
|
+
// // eld.id = eld.fieldId;
|
|
2682
|
+
// // eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;
|
|
2683
|
+
// // this.formRightGroup.push(eld);
|
|
2684
|
+
// // const fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);
|
|
2685
|
+
// // fieldList.splice(fieldindex, 1);
|
|
2686
|
+
// // });
|
|
2687
|
+
// // });
|
|
2688
|
+
// // this.fieldGroupList.forEach((el: any, index) => {
|
|
2689
|
+
// // el.fields = fieldList.filter(els => els.groupId === el.id);
|
|
2690
|
+
// // });
|
|
2691
|
+
// // this.newEntity?.patchValue(res);
|
|
2692
|
+
// this.entryTypesSelect = res;
|
|
2693
|
+
// // this.resultSource = res.fieldTabs;
|
|
2694
|
+
// });
|
|
2455
2695
|
}
|
|
2456
2696
|
/**
|
|
2457
2697
|
* 深拷贝--方法
|
|
@@ -2517,7 +2757,9 @@ class CreateOrEditComponent {
|
|
|
2517
2757
|
/**拖拽到数据源时触发 */
|
|
2518
2758
|
dragToDataSourceDropped() {
|
|
2519
2759
|
//从数据源拖拽到数据源-排序
|
|
2520
|
-
if (this.fromDataSourceDragEl) {
|
|
2760
|
+
if (this.fromDataSourceDragEl) {
|
|
2761
|
+
/* empty */
|
|
2762
|
+
}
|
|
2521
2763
|
const _fromResultSourceDragEl = this.fromResultSourceDragEl;
|
|
2522
2764
|
const formRightGroup = this.deepClone(this.formRightGroup);
|
|
2523
2765
|
const fieldList = this.deepClone(this.fieldList);
|
|
@@ -2595,11 +2837,14 @@ class CreateOrEditComponent {
|
|
|
2595
2837
|
const input = this.newEntity?.value;
|
|
2596
2838
|
this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
|
|
2597
2839
|
if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
|
|
2598
|
-
return this.isSubmit = false;
|
|
2840
|
+
return (this.isSubmit = false);
|
|
2599
2841
|
if (this.entryTypesSelect) {
|
|
2600
|
-
this._EntryTypeAdminService
|
|
2842
|
+
this._EntryTypeAdminService
|
|
2843
|
+
.update(this.entryTypesSelect.id, input)
|
|
2844
|
+
.pipe(finalize(() => {
|
|
2601
2845
|
this.isSubmit = false;
|
|
2602
|
-
}))
|
|
2846
|
+
}))
|
|
2847
|
+
.subscribe(res => {
|
|
2603
2848
|
this.toaster.success(this._LocalizationService.instant(`Cms::SavedSuccessfully`));
|
|
2604
2849
|
this._location.back();
|
|
2605
2850
|
this._UpdateListService.updateList();
|
|
@@ -2607,9 +2852,12 @@ class CreateOrEditComponent {
|
|
|
2607
2852
|
return;
|
|
2608
2853
|
}
|
|
2609
2854
|
input.sectionId = this.sectionId;
|
|
2610
|
-
this._EntryTypeAdminService
|
|
2855
|
+
this._EntryTypeAdminService
|
|
2856
|
+
.create(input)
|
|
2857
|
+
.pipe(finalize(() => {
|
|
2611
2858
|
this.isSubmit = false;
|
|
2612
|
-
}))
|
|
2859
|
+
}))
|
|
2860
|
+
.subscribe(res => {
|
|
2613
2861
|
this.toaster.success(this._LocalizationService.instant(`Cms::SavedSuccessfully`));
|
|
2614
2862
|
this._location.back();
|
|
2615
2863
|
this._UpdateListService.updateList();
|
|
@@ -2625,6 +2873,7 @@ class CreateOrEditComponent {
|
|
|
2625
2873
|
}
|
|
2626
2874
|
/**新建增加FieldTabs */
|
|
2627
2875
|
addFieldTabs() {
|
|
2876
|
+
this.editFieldTabsSelect = '';
|
|
2628
2877
|
this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());
|
|
2629
2878
|
this.visibleTabsOpen = true;
|
|
2630
2879
|
}
|
|
@@ -2653,12 +2902,19 @@ class CreateOrEditComponent {
|
|
|
2653
2902
|
this.addControlToFieldTabs(this.editFieldTabsFrom.value.name);
|
|
2654
2903
|
}
|
|
2655
2904
|
this.visibleTabsOpen = false;
|
|
2905
|
+
this.VisibleTabsChange(false);
|
|
2656
2906
|
this.setfieldTabsFrom();
|
|
2657
2907
|
}
|
|
2658
2908
|
/**删除某个tabs表单 */
|
|
2659
2909
|
deleteFieldTabs(index) {
|
|
2660
2910
|
this.fieldTabs.removeAt(index);
|
|
2661
2911
|
this.resultSource.splice(index, 1);
|
|
2912
|
+
if (this.navActive === index) {
|
|
2913
|
+
this.navActive = 0;
|
|
2914
|
+
}
|
|
2915
|
+
if (this.navActive > index) {
|
|
2916
|
+
this.navActive = this.navActive - 1;
|
|
2917
|
+
}
|
|
2662
2918
|
}
|
|
2663
2919
|
/**编辑字段模态框状态状态改变回调 */
|
|
2664
2920
|
VisibleEditFieldChange(event) {
|
|
@@ -2707,7 +2963,7 @@ class CreateOrEditComponent {
|
|
|
2707
2963
|
provide: EXTENSIONS_IDENTIFIER,
|
|
2708
2964
|
useValue: ECmsComponent.SectionsCreateOrEdit,
|
|
2709
2965
|
},
|
|
2710
|
-
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "editFieldTabsModalSubmitBtn", first: true, predicate: ["editFieldTabsModalSubmitBtn"], descendants: true }, { propertyName: "editFieldModalSubmitBtn", first: true, predicate: ["editFieldModalSubmitBtn"], descendants: true }], ngImport: i0, template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" \n [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <span ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </span>\n <span ngbDropdownItem *ngIf=\"resultSource.length !== 1\"\n type=\"button\" (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </span>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\"\n style=\"height: 100%;\">\n <p class=\"form-text text-muted\"\n *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n\n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n <!-- </div> -->\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" \n [class]=\"{'was-validated':formValidation}\" (submit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save'\n | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" \n (submit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n @if(isShowInList){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showInList\"\n id=\"showInList\" />\n <label class=\"form-check-label\" for=\"showInList\"> {{'Cms::ShowInList' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n @if(isEnableSearch){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"enableSearch\"\n id=\"enableSearch\" />\n <label class=\"form-check-label\" for=\"enableSearch\"> {{'Cms::EnableSearch' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i11$1.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i11$1.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i11$1.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i11$1.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i11$1.NgbNavLinkButton, selector: "button[ngbNavLink]" }, { kind: "directive", type: i11$1.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i11$1.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i11$1.NgbAccordionButton, selector: "button[ngbAccordionButton]" }, { kind: "directive", type: i11$1.NgbAccordionDirective, selector: "[ngbAccordion]", inputs: ["animation", "closeOthers", "destroyOnHide"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i11$1.NgbAccordionItem, selector: "[ngbAccordionItem]", inputs: ["ngbAccordionItem", "destroyOnHide", "disabled", "collapsed"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordionItem"] }, { kind: "directive", type: i11$1.NgbAccordionHeader, selector: "[ngbAccordionHeader]" }, { kind: "directive", type: i11$1.NgbAccordionBody, selector: "[ngbAccordionBody]" }, { kind: "directive", type: i11$1.NgbAccordionCollapse, selector: "[ngbAccordionCollapse]", exportAs: ["ngbAccordionCollapse"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
2966
|
+
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "editFieldTabsModalSubmitBtn", first: true, predicate: ["editFieldTabsModalSubmitBtn"], descendants: true }, { propertyName: "editFieldModalSubmitBtn", first: true, predicate: ["editFieldModalSubmitBtn"], descendants: true }], ngImport: i0, template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-8 border rounded\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\" ngbDropdown class=\"nav-item\" role=\"presentation\"> \n <button type=\"button\" ngbNavLink class=\"nav-link\">\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n </button>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <span ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </span>\n <span ngbDropdownItem *ngIf=\"resultSource.length !== 1\"\n type=\"button\" (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </span>\n </div>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\"\n style=\"height: 100%;\">\n <p class=\"form-text text-muted\"\n *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n\n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n <!-- </div> -->\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save'\n | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (submit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n @if(isShowInList){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showInList\"\n id=\"showInList\" />\n <label class=\"form-check-label\" for=\"showInList\"> {{'Cms::ShowInList' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n @if(isEnableSearch){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"enableSearch\"\n id=\"enableSearch\" />\n <label class=\"form-check-label\" for=\"enableSearch\"> {{'Cms::EnableSearch' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}::ng-deep .create-or-edit-entry-type-page .nav-tabs .nav-link.active{border-color:var(--bs-nav-tabs-link-active-border-color)!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i11$1.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i11$1.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i11$1.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i11$1.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i11$1.NgbNavLinkButton, selector: "button[ngbNavLink]" }, { kind: "directive", type: i11$1.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i11$1.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i11$1.NgbAccordionButton, selector: "button[ngbAccordionButton]" }, { kind: "directive", type: i11$1.NgbAccordionDirective, selector: "[ngbAccordion]", inputs: ["animation", "closeOthers", "destroyOnHide"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i11$1.NgbAccordionItem, selector: "[ngbAccordionItem]", inputs: ["ngbAccordionItem", "destroyOnHide", "disabled", "collapsed"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordionItem"] }, { kind: "directive", type: i11$1.NgbAccordionHeader, selector: "[ngbAccordionHeader]" }, { kind: "directive", type: i11$1.NgbAccordionBody, selector: "[ngbAccordionBody]" }, { kind: "directive", type: i11$1.NgbAccordionCollapse, selector: "[ngbAccordionCollapse]", exportAs: ["ngbAccordionCollapse"] }, { kind: "directive", type: i11$1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11$1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11$1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11$1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "component", type: i14.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
2711
2967
|
}
|
|
2712
2968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditComponent, decorators: [{
|
|
2713
2969
|
type: Component,
|
|
@@ -2716,7 +2972,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
2716
2972
|
provide: EXTENSIONS_IDENTIFIER,
|
|
2717
2973
|
useValue: ECmsComponent.SectionsCreateOrEdit,
|
|
2718
2974
|
},
|
|
2719
|
-
], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" \n [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <span ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </span>\n <span ngbDropdownItem *ngIf=\"resultSource.length !== 1\"\n type=\"button\" (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </span>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\"\n style=\"height: 100%;\">\n <p class=\"form-text text-muted\"\n *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n\n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n <!-- </div> -->\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" \n [class]=\"{'was-validated':formValidation}\" (submit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save'\n | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" \n (submit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n @if(isShowInList){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showInList\"\n id=\"showInList\" />\n <label class=\"form-check-label\" for=\"showInList\"> {{'Cms::ShowInList' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n @if(isEnableSearch){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"enableSearch\"\n id=\"enableSearch\" />\n <label class=\"form-check-label\" for=\"enableSearch\"> {{'Cms::EnableSearch' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}\n"] }]
|
|
2975
|
+
], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-8 border rounded\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\" ngbDropdown class=\"nav-item\" role=\"presentation\"> \n <button type=\"button\" ngbNavLink class=\"nav-link\">\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n </button>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <span ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </span>\n <span ngbDropdownItem *ngIf=\"resultSource.length !== 1\"\n type=\"button\" (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </span>\n </div>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\"\n style=\"height: 100%;\">\n <p class=\"form-text text-muted\"\n *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n\n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n <!-- </div> -->\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save'\n | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (submit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n @if(isShowInList){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showInList\"\n id=\"showInList\" />\n <label class=\"form-check-label\" for=\"showInList\"> {{'Cms::ShowInList' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n @if(isEnableSearch){\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"enableSearch\"\n id=\"enableSearch\" />\n <label class=\"form-check-label\" for=\"enableSearch\"> {{'Cms::EnableSearch' | abpLocalization}}\n </label>\n </div>\n </div>\n }\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}::ng-deep .create-or-edit-entry-type-page .nav-tabs .nav-link.active{border-color:var(--bs-nav-tabs-link-active-border-color)!important}\n"] }]
|
|
2720
2976
|
}], ctorParameters: () => [{ type: i3.ToasterService }, { type: i1$1.Location }, { type: i4.ActivatedRoute }, { type: FieldGroupAdminService }, { type: FieldAdminService }, { type: EntryTypeAdminService }, { type: i1.LocalizationService }, { type: CmsApiService }, { type: FormControlsService }], propDecorators: { submitclick: [{
|
|
2721
2977
|
type: ViewChild,
|
|
2722
2978
|
args: ['submitclick', { static: true }]
|
|
@@ -3429,15 +3685,20 @@ class MatrixControlComponent {
|
|
|
3429
3685
|
await this.AfterInit();
|
|
3430
3686
|
this.cdr.detectChanges(); // 手动触发变更检测
|
|
3431
3687
|
this.submitclick?.nativeElement?.click();
|
|
3432
|
-
if (this._selected)
|
|
3688
|
+
if (this._selected) {
|
|
3433
3689
|
this.fieldNameControl.patchValue(this._selected);
|
|
3690
|
+
for (const index of Object.keys(this.fieldNameControl.controls)) {
|
|
3691
|
+
const item = this.fieldNameControl.at(Number(index));
|
|
3692
|
+
item.get('isOpen').patchValue(false);
|
|
3693
|
+
}
|
|
3694
|
+
}
|
|
3434
3695
|
this._selected = '';
|
|
3435
3696
|
}
|
|
3436
3697
|
}
|
|
3437
3698
|
AfterInit() {
|
|
3438
3699
|
return new Promise((resolve, rejects) => {
|
|
3439
|
-
|
|
3440
|
-
|
|
3700
|
+
const formConfiguration = this._fields.field.formConfiguration;
|
|
3701
|
+
const newArrayGroup = this.fb.array([]);
|
|
3441
3702
|
this.extraProperties.setControl(this._fields.field.name, newArrayGroup);
|
|
3442
3703
|
this.fieldNameControl = this.extraProperties.get(this._fields.field.name);
|
|
3443
3704
|
if (this._selected) {
|
|
@@ -3445,6 +3706,11 @@ class MatrixControlComponent {
|
|
|
3445
3706
|
this.addMatrixControl(formConfiguration.MatrixBlockTypes.find(item => item.name == el.matrixBlockTypeName));
|
|
3446
3707
|
});
|
|
3447
3708
|
}
|
|
3709
|
+
if (this._fields.required) {
|
|
3710
|
+
for (const element of formConfiguration.MatrixBlockTypes) {
|
|
3711
|
+
element.required = true;
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3448
3714
|
this.MatrixBlockTypesList = formConfiguration.MatrixBlockTypes;
|
|
3449
3715
|
resolve(true);
|
|
3450
3716
|
});
|
|
@@ -3455,8 +3721,14 @@ class MatrixControlComponent {
|
|
|
3455
3721
|
extraProperties: new FormGroup({}),
|
|
3456
3722
|
matrixBlockTypeName: new FormControl(item.name),
|
|
3457
3723
|
displayName: new FormControl(item.displayName),
|
|
3724
|
+
isOpen: new FormControl(true),
|
|
3458
3725
|
}));
|
|
3459
3726
|
}
|
|
3727
|
+
/**展开,收缩矩阵 */
|
|
3728
|
+
ExpandChange(index) {
|
|
3729
|
+
const fieldNameControlItem = this.fieldNameControl.controls[index];
|
|
3730
|
+
fieldNameControlItem.get('isOpen').patchValue(!fieldNameControlItem.get('isOpen').value);
|
|
3731
|
+
}
|
|
3460
3732
|
/**删除矩阵控件 */
|
|
3461
3733
|
deleteMatrixControl(index, item) {
|
|
3462
3734
|
this.fieldNameControl.removeAt(index);
|
|
@@ -3467,11 +3739,11 @@ class MatrixControlComponent {
|
|
|
3467
3739
|
this.fieldNameControl.updateValueAndValidity();
|
|
3468
3740
|
}
|
|
3469
3741
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixControlComponent, deps: [{ token: i1$2.FormBuilder }, { token: CmsApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3470
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixControlComponent, selector: "df-matrix-control", inputs: { fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture", entity: "entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\"> \n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [class]=\"fieldNameControl?.controls?.length>0?'border p-2 rounded-2':''\">\n <div [formArrayName]=\"_fields.field.name\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\" cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div class=\"d-flex\"> <div class=\"drag-handle me-2\" cdkDragHandle> \n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-dark soft btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i15.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
|
|
3742
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixControlComponent, selector: "df-matrix-control", inputs: { fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture", entity: "entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [class]=\"fieldNameControl?.controls?.length>0?'border p-2 rounded-2':''\">\n <div [formArrayName]=\"_fields.field.name\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\" cdkDrag cdkDragLockAxis=\"y\"\n [cdkDragData]=\"item\">\n <div type=\"button\"\n class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\" (click.stop)=\"ExpandChange(i)\">\n <div class=\"d-flex\">\n <div class=\"drag-handle me-2\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>{{item.value.displayName}}\n </div>\n <div class=\"d-flex align-items-center\">\n <button class=\"btn btn-sm btn-light p-0\"\n (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n <i class=\"bi bi-chevron-down ms-2 \" [style]=\"{display: 'inline-block', transform: item.value.isOpen?'rotate(180deg)':'rotate(0deg)'}\" ></i>\n </div>\n </div>\n <div class=\"card-body\" style=\"overflow:hidden;transition: all 0.2s;\" [style]=\"item.value.isOpen?'height:auto;':'height:0px;padding-top:0px;padding-bottom:0px;'\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic [fields]=\"{ field: elf,displayName:elf.displayName,required:el?.required||false }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <!-- <div class=\"card mb-3 border \" [formGroupName]=\"i\" cdkDrag cdkDragLockAxis=\"y\"\n [cdkDragData]=\"item\">\n <div ngbAccordion #accordion=\"ngbAccordion\">\n <div ngbAccordionItem=\"first\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>\n <div type=\"button\"\n class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div class=\"d-flex\">\n <div class=\"drag-handle me-2\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>{{item.value.displayName}}\n </div>\n <div>\n <button class=\"btn btn-sm btn-light p-0\"\n (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n <i class=\"bi bi-chevron-down ms-2\"></i>\n </div>\n </div>\n </button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic\n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\"\n [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div> -->\n\n\n <!-- -->\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-dark soft btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\"\n *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i15.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
|
|
3471
3743
|
}
|
|
3472
3744
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixControlComponent, decorators: [{
|
|
3473
3745
|
type: Component,
|
|
3474
|
-
args: [{ selector: 'df-matrix-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\"
|
|
3746
|
+
args: [{ selector: 'df-matrix-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [class]=\"fieldNameControl?.controls?.length>0?'border p-2 rounded-2':''\">\n <div [formArrayName]=\"_fields.field.name\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\" cdkDrag cdkDragLockAxis=\"y\"\n [cdkDragData]=\"item\">\n <div type=\"button\"\n class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\" (click.stop)=\"ExpandChange(i)\">\n <div class=\"d-flex\">\n <div class=\"drag-handle me-2\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>{{item.value.displayName}}\n </div>\n <div class=\"d-flex align-items-center\">\n <button class=\"btn btn-sm btn-light p-0\"\n (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n <i class=\"bi bi-chevron-down ms-2 \" [style]=\"{display: 'inline-block', transform: item.value.isOpen?'rotate(180deg)':'rotate(0deg)'}\" ></i>\n </div>\n </div>\n <div class=\"card-body\" style=\"overflow:hidden;transition: all 0.2s;\" [style]=\"item.value.isOpen?'height:auto;':'height:0px;padding-top:0px;padding-bottom:0px;'\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic [fields]=\"{ field: elf,displayName:elf.displayName,required:el?.required||false }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <!-- <div class=\"card mb-3 border \" [formGroupName]=\"i\" cdkDrag cdkDragLockAxis=\"y\"\n [cdkDragData]=\"item\">\n <div ngbAccordion #accordion=\"ngbAccordion\">\n <div ngbAccordionItem=\"first\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>\n <div type=\"button\"\n class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div class=\"d-flex\">\n <div class=\"drag-handle me-2\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>{{item.value.displayName}}\n </div>\n <div>\n <button class=\"btn btn-sm btn-light p-0\"\n (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n <i class=\"bi bi-chevron-down ms-2\"></i>\n </div>\n </div>\n </button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic\n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\"\n [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div> -->\n\n\n <!-- -->\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-dark soft btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\"\n *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>" }]
|
|
3475
3747
|
}], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: CmsApiService }], propDecorators: { fields: [{
|
|
3476
3748
|
type: Input
|
|
3477
3749
|
}], parentFiledName: [{
|
|
@@ -3751,13 +4023,18 @@ class TableControlComponent {
|
|
|
3751
4023
|
}
|
|
3752
4024
|
AfterInit() {
|
|
3753
4025
|
return new Promise((resolve, rejects) => {
|
|
3754
|
-
|
|
4026
|
+
const ValidatorsArray = [];
|
|
3755
4027
|
if (this._fields.required) {
|
|
3756
4028
|
ValidatorsArray.push(Validators.required);
|
|
3757
4029
|
}
|
|
3758
|
-
|
|
4030
|
+
const formConfiguration = this._fields.field.formConfiguration;
|
|
4031
|
+
if (this._fields.required) {
|
|
4032
|
+
for (const element of formConfiguration.TableColumns) {
|
|
4033
|
+
element.required = true;
|
|
4034
|
+
}
|
|
4035
|
+
}
|
|
3759
4036
|
this.formConfiguration = formConfiguration;
|
|
3760
|
-
|
|
4037
|
+
const newArrayGroup = this.fb.array([]);
|
|
3761
4038
|
this.extraProperties.setControl(this._fields.field.name, newArrayGroup);
|
|
3762
4039
|
this.fieldNameControl = this.extraProperties.get(this._fields.field.name);
|
|
3763
4040
|
if (this._selected) {
|
|
@@ -3784,9 +4061,9 @@ class TableControlComponent {
|
|
|
3784
4061
|
}
|
|
3785
4062
|
/**调整表格位置 */
|
|
3786
4063
|
TableArrowUpOrDown(type, index) {
|
|
3787
|
-
|
|
4064
|
+
const controlAt = this.fieldNameControl.at(index);
|
|
3788
4065
|
this.fieldNameControl.removeAt(index);
|
|
3789
|
-
|
|
4066
|
+
const lastindex = type == 'up' ? index - 1 : index + 1;
|
|
3790
4067
|
this.fieldNameControl.insert(lastindex, controlAt);
|
|
3791
4068
|
this._selected = this.fieldNameControl.value;
|
|
3792
4069
|
}
|
|
@@ -3796,11 +4073,11 @@ class TableControlComponent {
|
|
|
3796
4073
|
this.fieldNameControl.updateValueAndValidity();
|
|
3797
4074
|
}
|
|
3798
4075
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TableControlComponent, deps: [{ token: CmsApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3799
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TableControlComponent, selector: "df-table-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\" >\n <div class=\"mb-3 table-control\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"table-responsive table-fixed-header\">\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th ></th>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th [attr.field-type]=\"item.formControlName\" >{{ item.displayName }}</th>\n </ng-container>\n <th class=\"sticky-right-card-bg\" >\n <div class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </div>\n \n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [fields]=\"{ field: el }\"\n [selected]=\"_selected?_selected[i]?.extraProperties[''+el.name+'']:''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"sticky-right-card-bg\">\n <div class=\"flex-end mb-3\">\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <!-- <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\" *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button> -->\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <small class=\"form-text text-muted d-block\"\n *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}.table-control .sticky-right-card-bg{position:sticky;right:0;background:var(--bs-card-bg)}.table-control .table th{white-space:nowrap}.table-control .table th[field-type=TextEdit],.table-control .table th[field-type=Select],.table-control .table th[field-type=DateEdit],.table-control .table th[field-type=NumericEdit],.table-control .table th[field-type=Entry]{min-width:200px}.table-control .table th[field-type=FileExplorer],.table-control .table th[field-type=CkEditor]{min-width:300px}.table-control .table th[field-type=Matrix]{min-width:400px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i15.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
|
|
4076
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TableControlComponent, selector: "df-table-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\" >\n <div class=\"mb-3 table-control\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"table-responsive table-fixed-header\">\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th ></th>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th [attr.field-type]=\"item.formControlName\" >{{ item.displayName }}</th>\n </ng-container>\n <th class=\"sticky-right-card-bg\" >\n <div class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </div>\n \n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [fields]=\"{ field: el,required:el?.required||false }\"\n [selected]=\"_selected?_selected[i]?.extraProperties[''+el.name+'']:''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"sticky-right-card-bg\">\n <div class=\"flex-end mb-3\">\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <!-- <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\" *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button> -->\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <small class=\"form-text text-muted d-block\"\n *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}.table-control .sticky-right-card-bg{position:sticky;right:0;background:var(--bs-card-bg)}.table-control .table th{white-space:nowrap}.table-control .table th[field-type=TextEdit],.table-control .table th[field-type=Select],.table-control .table th[field-type=DateEdit],.table-control .table th[field-type=NumericEdit],.table-control .table th[field-type=Entry]{min-width:200px}.table-control .table th[field-type=FileExplorer],.table-control .table th[field-type=CkEditor]{min-width:300px}.table-control .table th[field-type=Matrix]{min-width:400px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i15.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
|
|
3800
4077
|
}
|
|
3801
4078
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TableControlComponent, decorators: [{
|
|
3802
4079
|
type: Component,
|
|
3803
|
-
args: [{ selector: 'df-table-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\" >\n <div class=\"mb-3 table-control\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"table-responsive table-fixed-header\">\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th ></th>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th [attr.field-type]=\"item.formControlName\" >{{ item.displayName }}</th>\n </ng-container>\n <th class=\"sticky-right-card-bg\" >\n <div class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </div>\n \n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [fields]=\"{ field: el }\"\n [selected]=\"_selected?_selected[i]?.extraProperties[''+el.name+'']:''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"sticky-right-card-bg\">\n <div class=\"flex-end mb-3\">\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <!-- <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\" *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button> -->\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <small class=\"form-text text-muted d-block\"\n *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}.table-control .sticky-right-card-bg{position:sticky;right:0;background:var(--bs-card-bg)}.table-control .table th{white-space:nowrap}.table-control .table th[field-type=TextEdit],.table-control .table th[field-type=Select],.table-control .table th[field-type=DateEdit],.table-control .table th[field-type=NumericEdit],.table-control .table th[field-type=Entry]{min-width:200px}.table-control .table th[field-type=FileExplorer],.table-control .table th[field-type=CkEditor]{min-width:300px}.table-control .table th[field-type=Matrix]{min-width:400px}\n"] }]
|
|
4080
|
+
args: [{ selector: 'df-table-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\" >\n <div class=\"mb-3 table-control\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"table-responsive table-fixed-header\">\n <table class=\"table overflow-nowrap mb-0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th ></th>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th [attr.field-type]=\"item.formControlName\" >{{ item.displayName }}</th>\n </ng-container>\n <th class=\"sticky-right-card-bg\" >\n <div class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </div>\n \n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [fields]=\"{ field: el,required:el?.required||false }\"\n [selected]=\"_selected?_selected[i]?.extraProperties[''+el.name+'']:''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"\n [entity]=\"item\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"sticky-right-card-bg\">\n <div class=\"flex-end mb-3\">\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <!-- <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\" *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button> -->\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <small class=\"form-text text-muted d-block\"\n *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}.table-control .sticky-right-card-bg{position:sticky;right:0;background:var(--bs-card-bg)}.table-control .table th{white-space:nowrap}.table-control .table th[field-type=TextEdit],.table-control .table th[field-type=Select],.table-control .table th[field-type=DateEdit],.table-control .table th[field-type=NumericEdit],.table-control .table th[field-type=Entry]{min-width:200px}.table-control .table th[field-type=FileExplorer],.table-control .table th[field-type=CkEditor]{min-width:300px}.table-control .table th[field-type=Matrix]{min-width:400px}\n"] }]
|
|
3804
4081
|
}], ctorParameters: () => [{ type: CmsApiService }], propDecorators: { entity: [{
|
|
3805
4082
|
type: Input
|
|
3806
4083
|
}], fields: [{
|
|
@@ -4091,12 +4368,21 @@ const Fields_Entity_Props = EntityProp.createMany([
|
|
|
4091
4368
|
name: 'formControlName',
|
|
4092
4369
|
displayName: 'Cms::FormControlName',
|
|
4093
4370
|
sortable: false,
|
|
4371
|
+
valueResolver: (data) => {
|
|
4372
|
+
const _FieldAbstractsService = data.getInjected(FieldAbstractsService);
|
|
4373
|
+
const fromControlList = _FieldAbstractsService.getExcludeAssignControl();
|
|
4374
|
+
const formControlDisplayName = fromControlList.find(el => el.name == data.record.formControlName)?.displayName;
|
|
4375
|
+
return of(formControlDisplayName || data.record.formControlName);
|
|
4376
|
+
},
|
|
4094
4377
|
},
|
|
4095
4378
|
{
|
|
4096
4379
|
type: "string" /* ePropType.String */,
|
|
4097
4380
|
name: 'groupName',
|
|
4098
4381
|
displayName: 'Cms::Group',
|
|
4099
4382
|
sortable: false,
|
|
4383
|
+
valueResolver: (data) => {
|
|
4384
|
+
return of(data.record.groupName || '--');
|
|
4385
|
+
},
|
|
4100
4386
|
},
|
|
4101
4387
|
{
|
|
4102
4388
|
type: "datetime" /* ePropType.DateTime */,
|