@dignite-ng/expand.cms 2.0.0-rc.1 → 2.0.0-rc.11
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/config/enums/route-names.d.ts +1 -2
- package/esm2022/config/cms-config.module.mjs +3 -2
- package/esm2022/config/enums/route-names.mjs +1 -2
- package/esm2022/config/providers/route.provider.mjs +1 -15
- package/esm2022/lib/cms-routing.module.mjs +1 -1
- package/esm2022/lib/cms.module.mjs +18 -20
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +7 -7
- package/esm2022/lib/components/admin/entries/create.component.mjs +8 -8
- package/esm2022/lib/components/admin/entries/edit.component.mjs +7 -7
- package/esm2022/lib/components/admin/entries/entries.component.mjs +222 -58
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +2 -2
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +11 -15
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +2 -2
- package/esm2022/lib/components/admin/fields/field-group.component.mjs +2 -2
- package/esm2022/lib/components/admin/fields/fields.component.mjs +2 -3
- package/esm2022/lib/components/admin/sections/create-or-edit-sections-modal.component.mjs +3 -3
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +5 -29
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +14 -10
- package/esm2022/lib/components/admin/sections/sections.component.mjs +5 -5
- package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +11 -8
- package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +1 -1
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +13 -9
- package/esm2022/lib/components/dynamic-form/form-control-group.mjs +2 -2
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +10 -3
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +28 -14
- package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +10 -3
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +30 -17
- package/esm2022/lib/proxy/dignite/abp/regionalization-management/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/abp/regionalization-management/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/abp/regionalization-management/regionalization.service.mjs +27 -0
- package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/form-admin.service.mjs +22 -0
- package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/entries/entry-admin.service.mjs +70 -0
- package/esm2022/lib/proxy/dignite/cms/admin/entries/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/cms/admin/entries/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/field-admin.service.mjs +45 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/field-group-admin.service.mjs +41 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/index.mjs +4 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/entry-type-admin.service.mjs +41 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/index.mjs +4 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/section-admin.service.mjs +51 -0
- package/esm2022/lib/proxy/dignite/cms/entries/entry-status.enum.mjs +8 -0
- package/esm2022/lib/proxy/dignite/cms/entries/index.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/fields/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/sections/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/cms/sections/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/sections/section-type.enum.mjs +9 -0
- package/esm2022/lib/resolvers/table-default-entity-actions.mjs +3 -24
- package/esm2022/lib/resolvers/table-default-entity-props.mjs +3 -3
- package/esm2022/lib/services/cms-api.service.mjs +29 -6
- package/esm2022/lib/services/field-abstracts.service.mjs +5 -5
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/dignite-ng-expand.cms-config.mjs +4 -283
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +510 -333
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/cms.module.d.ts +9 -9
- package/lib/components/admin/entries/entries.component.d.ts +49 -16
- package/lib/components/admin/fields/create-field.component.d.ts +1 -1
- package/lib/components/admin/fields/create-or-edit-field.component.d.ts +2 -3
- package/lib/components/admin/fields/edit-field.component.d.ts +1 -1
- package/lib/components/admin/fields/field-group.component.d.ts +1 -1
- package/lib/components/admin/fields/fields.component.d.ts +1 -1
- package/lib/components/admin/sections/create-or-edit-sections-modal.component.d.ts +1 -1
- package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +4 -14
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +2 -2
- package/lib/components/admin/sections/sections.component.d.ts +2 -2
- package/lib/components/dynamic-form/entry/entry-config.component.d.ts +3 -2
- package/lib/components/dynamic-form/entry/entry-control.component.d.ts +1 -0
- package/lib/components/dynamic-form/form-control-group.d.ts +1 -1
- package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +1 -0
- package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +4 -1
- package/lib/components/dynamic-form/table/table-config.component.d.ts +1 -0
- package/lib/components/dynamic-form/table/table-control.component.d.ts +4 -1
- package/lib/proxy/dignite/abp/regionalization-management/index.d.ts +2 -0
- package/lib/proxy/dignite/abp/regionalization-management/models.d.ts +8 -0
- package/lib/proxy/dignite/abp/regionalization-management/regionalization.service.d.ts +12 -0
- package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/models.d.ts +1 -0
- package/lib/proxy/{admin → dignite/cms/admin}/entries/models.d.ts +3 -2
- package/lib/proxy/{admin → dignite/cms/admin}/fields/models.d.ts +2 -2
- package/lib/proxy/{admin → dignite/cms/admin}/sections/models.d.ts +2 -1
- package/lib/proxy/{fields → dignite/cms/fields}/models.d.ts +1 -1
- package/lib/proxy/{sections → dignite/cms/sections}/models.d.ts +4 -3
- package/lib/services/cms-api.service.d.ts +8 -1
- package/lib/services/field-abstracts.service.d.ts +2 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/config/components/domains/domains.component.d.ts +0 -31
- package/config/components/site-language/site-language.component.d.ts +0 -30
- package/config/proxy/admin/domains/domain-admin.service.d.ts +0 -13
- package/config/proxy/admin/domains/index.d.ts +0 -2
- package/config/proxy/admin/domains/models.d.ts +0 -7
- package/config/proxy/dignite/cms/admin/sites/index.d.ts +0 -2
- package/config/proxy/dignite/cms/admin/sites/models.d.ts +0 -4
- package/config/proxy/dignite/cms/admin/sites/site-admin.service.d.ts +0 -13
- package/config/proxy/dignite/cms/sites/models.d.ts +0 -4
- package/esm2022/config/components/domains/domains.component.mjs +0 -118
- package/esm2022/config/components/site-language/site-language.component.mjs +0 -113
- package/esm2022/config/proxy/admin/domains/domain-admin.service.mjs +0 -32
- package/esm2022/config/proxy/admin/domains/index.mjs +0 -3
- package/esm2022/config/proxy/admin/domains/models.mjs +0 -2
- package/esm2022/config/proxy/dignite/cms/admin/sites/index.mjs +0 -3
- package/esm2022/config/proxy/dignite/cms/admin/sites/models.mjs +0 -2
- package/esm2022/config/proxy/dignite/cms/admin/sites/site-admin.service.mjs +0 -27
- package/esm2022/config/proxy/dignite/cms/sites/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +0 -22
- package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +0 -70
- package/esm2022/lib/proxy/admin/entries/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/entries/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +0 -45
- package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +0 -41
- package/esm2022/lib/proxy/admin/fields/index.mjs +0 -4
- package/esm2022/lib/proxy/admin/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +0 -41
- package/esm2022/lib/proxy/admin/sections/index.mjs +0 -4
- package/esm2022/lib/proxy/admin/sections/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +0 -51
- package/esm2022/lib/proxy/admin/settings/index.mjs +0 -2
- package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +0 -31
- package/esm2022/lib/proxy/entries/entry-status.enum.mjs +0 -8
- package/esm2022/lib/proxy/entries/index.mjs +0 -2
- package/esm2022/lib/proxy/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/sections/index.mjs +0 -3
- package/esm2022/lib/proxy/sections/models.mjs +0 -2
- package/esm2022/lib/proxy/sections/section-type.enum.mjs +0 -9
- package/esm2022/lib/proxy/settings/models.mjs +0 -2
- package/lib/proxy/admin/settings/index.d.ts +0 -1
- package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +0 -13
- package/lib/proxy/settings/models.d.ts +0 -5
- /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/form-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/entries/entry-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/entries/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/fields/field-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/fields/field-group-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/fields/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/entry-type-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/section-admin.service.d.ts +0 -0
- /package/lib/proxy/{entries → dignite/cms/entries}/entry-status.enum.d.ts +0 -0
- /package/lib/proxy/{entries → dignite/cms/entries}/index.d.ts +0 -0
- /package/lib/proxy/{sections → dignite/cms/sections}/index.d.ts +0 -0
- /package/lib/proxy/{sections → dignite/cms/sections}/section-type.enum.d.ts +0 -0
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { LocalizationService, CoreModule, ConfigStateService, RoutesService } from '@abp/ng.core';
|
|
2
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
|
+
import { RoutesService } from '@abp/ng.core';
|
|
5
4
|
import { SettingTabsService } from '@abp/ng.setting-management/config';
|
|
6
|
-
import
|
|
7
|
-
import { FormGroup, FormControl, FormsModule, FormBuilder, Validators } from '@angular/forms';
|
|
8
|
-
import { finalize } from 'rxjs';
|
|
9
|
-
import * as i5 from '@abp/ng.theme.shared';
|
|
10
|
-
import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
11
|
-
import { ValidatorsService } from '@dignite-ng/expand.core';
|
|
12
|
-
import * as i1$1 from '@angular/common';
|
|
13
|
-
import * as i4 from '@ngx-validate/core';
|
|
5
|
+
import { Regionalization_Management_Setting_ROUTE_PROVIDERS } from '@dignite-ng/expand.regionalization-management/config';
|
|
14
6
|
|
|
15
7
|
var eCmsRouteNames;
|
|
16
8
|
(function (eCmsRouteNames) {
|
|
@@ -19,267 +11,8 @@ var eCmsRouteNames;
|
|
|
19
11
|
eCmsRouteNames["Settings"] = "Cms::Menu:Settings";
|
|
20
12
|
eCmsRouteNames["Fields"] = "Cms::Fields";
|
|
21
13
|
eCmsRouteNames["Sections"] = "Cms::Sections";
|
|
22
|
-
eCmsRouteNames["SiteLanguage"] = "Cms::DisplayName:Cms.Site.Languages";
|
|
23
14
|
})(eCmsRouteNames || (eCmsRouteNames = {}));
|
|
24
15
|
|
|
25
|
-
class DomainAdminService {
|
|
26
|
-
constructor(restService) {
|
|
27
|
-
this.restService = restService;
|
|
28
|
-
this.apiName = 'CmsAdmin';
|
|
29
|
-
this.getBound = (config) => this.restService.request({
|
|
30
|
-
method: 'GET',
|
|
31
|
-
url: '/api/cms-admin/domains/bound',
|
|
32
|
-
}, { apiName: this.apiName, ...config });
|
|
33
|
-
this.nameExists = (domainName, config) => this.restService.request({
|
|
34
|
-
method: 'GET',
|
|
35
|
-
url: '/api/cms-admin/domains/name-exists',
|
|
36
|
-
params: { domainName },
|
|
37
|
-
}, { apiName: this.apiName, ...config });
|
|
38
|
-
this.update = (input, config) => this.restService.request({
|
|
39
|
-
method: 'POST',
|
|
40
|
-
url: '/api/cms-admin/domains',
|
|
41
|
-
body: input,
|
|
42
|
-
}, { apiName: this.apiName, ...config });
|
|
43
|
-
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, providedIn: 'root' }); }
|
|
46
|
-
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, decorators: [{
|
|
48
|
-
type: Injectable,
|
|
49
|
-
args: [{
|
|
50
|
-
providedIn: 'root',
|
|
51
|
-
}]
|
|
52
|
-
}], ctorParameters: () => [{ type: i1.RestService }] });
|
|
53
|
-
|
|
54
|
-
// import { ValidatorsService } from '@dignite-ng/expand.core';
|
|
55
|
-
class DomainsComponent {
|
|
56
|
-
constructor() {
|
|
57
|
-
this.toaster = inject(ToasterService);
|
|
58
|
-
this._DomainAdminService = inject(DomainAdminService);
|
|
59
|
-
this._LocalizationService = inject(LocalizationService);
|
|
60
|
-
this._ValidatorsService = inject(ValidatorsService);
|
|
61
|
-
/**表单验证状态
|
|
62
|
-
* {
|
|
63
|
-
* title:true,
|
|
64
|
-
* }
|
|
65
|
-
*/
|
|
66
|
-
this.formValidation = '';
|
|
67
|
-
/**domain详情 */
|
|
68
|
-
this.domainInfo = '';
|
|
69
|
-
this.isSubmit = false;
|
|
70
|
-
}
|
|
71
|
-
get domainNameInput() {
|
|
72
|
-
return this.newEntity.get('domainName');
|
|
73
|
-
}
|
|
74
|
-
async ngOnInit() {
|
|
75
|
-
//Called after the constructor, initializing input properties, and the first call to ngOnChanges.
|
|
76
|
-
//Add 'implements OnInit' to the class.
|
|
77
|
-
this.newEntity = new FormGroup({
|
|
78
|
-
domainName: new FormControl('', {
|
|
79
|
-
asyncValidators: this.repetitionAsyncValidator(),
|
|
80
|
-
updateOn: 'change',
|
|
81
|
-
}),
|
|
82
|
-
});
|
|
83
|
-
await this.getDomainsBound();
|
|
84
|
-
}
|
|
85
|
-
/**用于获取已绑定的域名 */
|
|
86
|
-
getDomainsBound() {
|
|
87
|
-
return new Promise((resolve, rejects) => {
|
|
88
|
-
this._DomainAdminService.getBound().subscribe(res => {
|
|
89
|
-
this.domainNameInput.patchValue(res?.domainName || '');
|
|
90
|
-
this.domainInfo = res;
|
|
91
|
-
resolve(res);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
//检验域名是否已经绑定
|
|
96
|
-
repetitionAsyncValidator() {
|
|
97
|
-
return (ctrl) => {
|
|
98
|
-
return new Promise(resolve => {
|
|
99
|
-
let domainNameInput = this.domainNameInput.value;
|
|
100
|
-
if (!domainNameInput) {
|
|
101
|
-
resolve(null);
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (this.domainInfo?.domainName === domainNameInput) {
|
|
105
|
-
resolve(null);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\.[A-Za-z]{2,6}$/;
|
|
109
|
-
if (!patt.test(domainNameInput)) {
|
|
110
|
-
resolve({
|
|
111
|
-
repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()),
|
|
112
|
-
});
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {
|
|
116
|
-
if (res) {
|
|
117
|
-
resolve({
|
|
118
|
-
repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value),
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
resolve(null);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**保存 */
|
|
129
|
-
SaveSubmit() {
|
|
130
|
-
this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
|
|
131
|
-
if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
|
|
132
|
-
return;
|
|
133
|
-
if (this.isSubmit)
|
|
134
|
-
return;
|
|
135
|
-
this.isSubmit = true;
|
|
136
|
-
let input = this.newEntity.value;
|
|
137
|
-
this._DomainAdminService
|
|
138
|
-
.update(input)
|
|
139
|
-
.pipe(finalize(() => {
|
|
140
|
-
this.reset();
|
|
141
|
-
}))
|
|
142
|
-
.subscribe(async (res) => {
|
|
143
|
-
this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
|
|
144
|
-
await this.getDomainsBound();
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
reset() {
|
|
148
|
-
this.isSubmit = false;
|
|
149
|
-
this.formValidation = '';
|
|
150
|
-
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: DomainsComponent, isStandalone: true, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"SaveSubmit()\">\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-3\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <!-- <small class=\"form-text text-muted d-block\">\u6B64\u5904\u586B\u5199\u60A8\u7F51\u7AD9\u7684\u57DF\u540D\uFF0C\u7528\u4E8E\u8DF3\u8F6C\u524D\u53F0\u9875\u9762\u7B49\u64CD\u4F5C</small> -->\n </div>\n <hr class=\"my-3\" />\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i5.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
153
|
-
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, decorators: [{
|
|
155
|
-
type: Component,
|
|
156
|
-
args: [{ selector: 'cms-domains', standalone: true, imports: [CoreModule, ThemeSharedModule, FormsModule], template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"SaveSubmit()\">\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-3\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <!-- <small class=\"form-text text-muted d-block\">\u6B64\u5904\u586B\u5199\u60A8\u7F51\u7AD9\u7684\u57DF\u540D\uFF0C\u7528\u4E8E\u8DF3\u8F6C\u524D\u53F0\u9875\u9762\u7B49\u64CD\u4F5C</small> -->\n </div>\n <hr class=\"my-3\" />\n</form>" }]
|
|
157
|
-
}] });
|
|
158
|
-
|
|
159
|
-
class SiteAdminService {
|
|
160
|
-
constructor(restService) {
|
|
161
|
-
this.restService = restService;
|
|
162
|
-
this.apiName = 'CmsAdmin';
|
|
163
|
-
this.get = (config) => this.restService.request({
|
|
164
|
-
method: 'GET',
|
|
165
|
-
url: '/api/cms-admin/sites',
|
|
166
|
-
}, { apiName: this.apiName, ...config });
|
|
167
|
-
this.update = (input, config) => this.restService.request({
|
|
168
|
-
method: 'PUT',
|
|
169
|
-
url: '/api/cms-admin/sites',
|
|
170
|
-
body: input,
|
|
171
|
-
}, { apiName: this.apiName, ...config });
|
|
172
|
-
}
|
|
173
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteAdminService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
174
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteAdminService, providedIn: 'root' }); }
|
|
175
|
-
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteAdminService, decorators: [{
|
|
177
|
-
type: Injectable,
|
|
178
|
-
args: [{
|
|
179
|
-
providedIn: 'root',
|
|
180
|
-
}]
|
|
181
|
-
}], ctorParameters: () => [{ type: i1.RestService }] });
|
|
182
|
-
|
|
183
|
-
class SiteLanguageComponent {
|
|
184
|
-
constructor() {
|
|
185
|
-
this.fb = inject(FormBuilder);
|
|
186
|
-
this.toaster = inject(ToasterService);
|
|
187
|
-
this._LocalizationService = inject(LocalizationService);
|
|
188
|
-
this.configState = inject(ConfigStateService);
|
|
189
|
-
this._SiteAdminService = inject(SiteAdminService);
|
|
190
|
-
this.eCmsRouteNames = eCmsRouteNames;
|
|
191
|
-
/**系统语言 */
|
|
192
|
-
this.languagesSystem = [];
|
|
193
|
-
this.isSubmit = false;
|
|
194
|
-
}
|
|
195
|
-
async ngOnInit() {
|
|
196
|
-
//Called after the constructor, initializing input properties, and the first call to ngOnChanges.
|
|
197
|
-
//Add 'implements OnInit' to the class.
|
|
198
|
-
//获取所有语言 */
|
|
199
|
-
let languagesSystem = this.configState.getDeep('localization.languages');
|
|
200
|
-
languagesSystem.map(el => {
|
|
201
|
-
el.ischecked = false;
|
|
202
|
-
el.isDefault = false;
|
|
203
|
-
});
|
|
204
|
-
this.languagesSystem = languagesSystem;
|
|
205
|
-
this.newEntity = this.fb.group({
|
|
206
|
-
defaultLanguage: ['', [Validators.required]],
|
|
207
|
-
allLanguages: [[], [Validators.required]],
|
|
208
|
-
});
|
|
209
|
-
await this.getSiteLanguageSettings();
|
|
210
|
-
}
|
|
211
|
-
/**获取配置的默认语言与选中语言 */
|
|
212
|
-
getSiteLanguageSettings() {
|
|
213
|
-
return new Promise((resolve, rejects) => {
|
|
214
|
-
this._SiteAdminService.get().subscribe((res) => {
|
|
215
|
-
this.newEntity.patchValue({
|
|
216
|
-
defaultLanguage: res.defaultLanguage,
|
|
217
|
-
allLanguages: res.allLanguages
|
|
218
|
-
});
|
|
219
|
-
this.languagesSystem.forEach((el) => {
|
|
220
|
-
el.ischecked = res.allLanguages.includes(el.cultureName);
|
|
221
|
-
el.isDefault = el.cultureName === res.defaultLanguage;
|
|
222
|
-
});
|
|
223
|
-
resolve(true);
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
/**语言改变 */
|
|
228
|
-
setLanguagesChange(event, item) {
|
|
229
|
-
let checked = event.target.checked;
|
|
230
|
-
item.ischecked = checked;
|
|
231
|
-
this.setFromLangguages();
|
|
232
|
-
}
|
|
233
|
-
/**设置默认语言 */
|
|
234
|
-
setDefault(items) {
|
|
235
|
-
this.languagesSystem.forEach(el => {
|
|
236
|
-
el.isDefault = false;
|
|
237
|
-
});
|
|
238
|
-
items.isDefault = true;
|
|
239
|
-
this.newEntity.patchValue({
|
|
240
|
-
defaultLanguage: items.cultureName
|
|
241
|
-
});
|
|
242
|
-
this.setFromLangguages();
|
|
243
|
-
}
|
|
244
|
-
/**设置表单中的语言 */
|
|
245
|
-
setFromLangguages() {
|
|
246
|
-
let languagesSelect = this.languagesSystem.filter(el => el.ischecked == true).map(el => el.cultureName);
|
|
247
|
-
this.newEntity.patchValue({
|
|
248
|
-
allLanguages: languagesSelect
|
|
249
|
-
});
|
|
250
|
-
if (languagesSelect.length == 0) {
|
|
251
|
-
this.languagesSystem.forEach(el => {
|
|
252
|
-
el.isDefault = false;
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
/**保存 */
|
|
257
|
-
SaveSubmit() {
|
|
258
|
-
if (this.isSubmit)
|
|
259
|
-
return;
|
|
260
|
-
this.isSubmit = true;
|
|
261
|
-
let input = this.newEntity.value;
|
|
262
|
-
this._SiteAdminService.update({
|
|
263
|
-
...input
|
|
264
|
-
}).pipe(finalize(() => {
|
|
265
|
-
this.isSubmit = false;
|
|
266
|
-
})).subscribe((res => {
|
|
267
|
-
this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
|
|
268
|
-
this.getSiteLanguageSettings();
|
|
269
|
-
}));
|
|
270
|
-
}
|
|
271
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteLanguageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: SiteLanguageComponent, isStandalone: true, selector: "app-site-language", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"SaveSubmit()\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <h2>{{eCmsRouteNames.SiteLanguage|abpLocalization}}</h2>\r\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"title\">{{'Cms::Language' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of languagesSystem;let i=index\">\r\n <li class=\"list-group-item d-flex align-items-center justify-content-between\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"Languages{{i}}\"\r\n [checked]=\"item.ischecked\" (change)=\"setLanguagesChange($event,item)\" />\r\n <label class=\"form-check-label\" for=\"Languages{{i}}\">\r\n {{item.displayName}}\r\n </label>\r\n </div>\r\n <ng-container *ngIf=\"item.ischecked\">\r\n <div class=\"text-primary fs-5\" type=\"button\" *ngIf=\"item.isDefault\">\r\n {{'Cms::IsDefault'|abpLocalization}}</div>\r\n <div class=\"text-muted fs-5\" type=\"button\" (click.stop)=\"setDefault(item)\"\r\n *ngIf=\"!item.isDefault\">{{'Cms::SetDefault'|abpLocalization}}</div>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <hr class=\"my-3\" />\r\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { 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: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i5.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
273
|
-
}
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteLanguageComponent, decorators: [{
|
|
275
|
-
type: Component,
|
|
276
|
-
args: [{ selector: 'app-site-language', standalone: true, imports: [
|
|
277
|
-
CoreModule,
|
|
278
|
-
ThemeSharedModule,
|
|
279
|
-
FormsModule,
|
|
280
|
-
], template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"SaveSubmit()\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <h2>{{eCmsRouteNames.SiteLanguage|abpLocalization}}</h2>\r\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"title\">{{'Cms::Language' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of languagesSystem;let i=index\">\r\n <li class=\"list-group-item d-flex align-items-center justify-content-between\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"Languages{{i}}\"\r\n [checked]=\"item.ischecked\" (change)=\"setLanguagesChange($event,item)\" />\r\n <label class=\"form-check-label\" for=\"Languages{{i}}\">\r\n {{item.displayName}}\r\n </label>\r\n </div>\r\n <ng-container *ngIf=\"item.ischecked\">\r\n <div class=\"text-primary fs-5\" type=\"button\" *ngIf=\"item.isDefault\">\r\n {{'Cms::IsDefault'|abpLocalization}}</div>\r\n <div class=\"text-muted fs-5\" type=\"button\" (click.stop)=\"setDefault(item)\"\r\n *ngIf=\"!item.isDefault\">{{'Cms::SetDefault'|abpLocalization}}</div>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <hr class=\"my-3\" />\r\n</form>" }]
|
|
281
|
-
}] });
|
|
282
|
-
|
|
283
16
|
const CMS_ROUTE_PROVIDERS = [
|
|
284
17
|
{
|
|
285
18
|
provide: APP_INITIALIZER,
|
|
@@ -290,18 +23,6 @@ const CMS_ROUTE_PROVIDERS = [
|
|
|
290
23
|
];
|
|
291
24
|
function configureRoutes(routesService, settingTabs) {
|
|
292
25
|
return () => {
|
|
293
|
-
settingTabs.add([
|
|
294
|
-
{
|
|
295
|
-
name: 'Cms::Domain',
|
|
296
|
-
requiredPolicy: 'CmsAdmin.Domain',
|
|
297
|
-
component: DomainsComponent,
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
name: eCmsRouteNames.SiteLanguage,
|
|
301
|
-
requiredPolicy: 'TravelyAdmin.SiteSetting',
|
|
302
|
-
component: SiteLanguageComponent,
|
|
303
|
-
},
|
|
304
|
-
]);
|
|
305
26
|
routesService.add([
|
|
306
27
|
{
|
|
307
28
|
path: '/cms',
|
|
@@ -352,7 +73,7 @@ class CmsConfigModule {
|
|
|
352
73
|
static forRoot() {
|
|
353
74
|
return {
|
|
354
75
|
ngModule: CmsConfigModule,
|
|
355
|
-
providers: [CMS_ROUTE_PROVIDERS],
|
|
76
|
+
providers: [CMS_ROUTE_PROVIDERS, Regionalization_Management_Setting_ROUTE_PROVIDERS],
|
|
356
77
|
};
|
|
357
78
|
}
|
|
358
79
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/enums/route-names.ts","../../../projects/cms/config/src/proxy/admin/domains/domain-admin.service.ts","../../../projects/cms/config/src/components/domains/domains.component.ts","../../../projects/cms/config/src/components/domains/domains.component.html","../../../projects/cms/config/src/proxy/dignite/cms/admin/sites/site-admin.service.ts","../../../projects/cms/config/src/components/site-language/site-language.component.ts","../../../projects/cms/config/src/components/site-language/site-language.component.html","../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["export enum eCmsRouteNames {\r\n Cms = 'Cms::Menu:Cms',\r\n Entries = 'Cms::FormControl:Entry',\r\n Settings = \"Cms::Menu:Settings\",\r\n Fields = \"Cms::Fields\",\r\n Sections = \"Cms::Sections\",\r\n SiteLanguage=\"Cms::DisplayName:Cms.Site.Languages\",\r\n}","import type { DomainDto, UpdateDomainInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DomainAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getBound = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/bound',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (domainName: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/name-exists',\r\n params: { domainName },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateDomainInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/domains',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, inject, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n FormsModule,\n ValidationErrors,\n} from '@angular/forms';\nimport { finalize, Observable } from 'rxjs';\nimport { CoreModule, LocalizationService } from '@abp/ng.core';\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\nimport { DomainAdminService } from '../../proxy/admin/domains';\nimport { ValidatorsService } from '@dignite-ng/expand.core';\n// import { ValidatorsService } from '@dignite-ng/expand.core';\n\n@Component({\n selector: 'cms-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n standalone: true,\n imports: [CoreModule, ThemeSharedModule, FormsModule],\n})\nexport class DomainsComponent implements OnInit {\n private toaster = inject(ToasterService);\n private _DomainAdminService = inject(DomainAdminService);\n private _LocalizationService = inject(LocalizationService);\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**domain详情 */\n domainInfo: any = '';\n get domainNameInput() {\n return this.newEntity.get('domainName');\n }\n\n async ngOnInit(): Promise<void> {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n this.newEntity = new FormGroup({\n domainName: new FormControl('', {\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'change',\n }),\n });\n await this.getDomainsBound();\n }\n\n /**用于获取已绑定的域名 */\n getDomainsBound() {\n return new Promise((resolve, rejects) => {\n this._DomainAdminService.getBound().subscribe(res => {\n this.domainNameInput.patchValue(res?.domainName || '');\n this.domainInfo = res;\n resolve(res);\n });\n });\n }\n\n //检验域名是否已经绑定\n repetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let domainNameInput = this.domainNameInput.value;\n if (!domainNameInput) {\n resolve(null);\n return;\n }\n if (this.domainInfo?.domainName === domainNameInput) {\n resolve(null);\n return;\n }\n var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.[A-Za-z]{2,6}$/;\n if (!patt.test(domainNameInput)) {\n resolve({\n repetition: this._LocalizationService.instant(\n `AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`,\n patt.toString()\n ),\n });\n return;\n }\n this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::DomainName{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n\n isSubmit: boolean = false;\n\n /**保存 */\n SaveSubmit() {\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms')) return;\n if (this.isSubmit) return;\n this.isSubmit = true;\n let input = this.newEntity.value;\n\n this._DomainAdminService\n .update(input)\n .pipe(\n finalize(() => {\n this.reset();\n })\n )\n .subscribe(async res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));\n await this.getDomainsBound();\n });\n }\n reset() {\n this.isSubmit = false;\n this.formValidation = '';\n }\n}\n","<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"SaveSubmit()\">\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-3\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <!-- <small class=\"form-text text-muted d-block\">此处填写您网站的域名,用于跳转前台页面等操作</small> -->\n </div>\n <hr class=\"my-3\" />\n</form>","import type { UpdateSiteInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { SiteDto } from '../../sites/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n get = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SiteDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sites',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateSiteInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'PUT',\r\n url: '/api/cms-admin/sites',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { LocalizationService,CoreModule, ConfigStateService } from '@abp/ng.core';\r\nimport { Component, inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators,FormsModule } from '@angular/forms';\r\nimport { SiteAdminService } from '../../proxy/dignite/cms/admin/sites';\r\nimport { eCmsRouteNames } from '../../enums';\r\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\r\nimport { finalize } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-site-language',\r\n templateUrl: './site-language.component.html',\r\n styleUrls: ['./site-language.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n FormsModule,\r\n ]\r\n})\r\nexport class SiteLanguageComponent implements OnInit{\r\n\r\n private fb = inject(FormBuilder)\r\n private toaster = inject(ToasterService)\r\n private _LocalizationService = inject(LocalizationService);\r\n private configState = inject(ConfigStateService)\r\n private _SiteAdminService = inject(SiteAdminService);\r\n eCmsRouteNames=eCmsRouteNames;\r\n /**表单实体 */\r\n newEntity: FormGroup | undefined;\r\n /**系统语言 */\r\n languagesSystem: any[] = []\r\n\r\n\r\n\r\n\r\n async ngOnInit(): Promise<void> {\r\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\r\n //Add 'implements OnInit' to the class.\r\n //获取所有语言 */\r\n let languagesSystem = this.configState.getDeep('localization.languages')\r\n languagesSystem.map(el => {\r\n el.ischecked = false;\r\n el.isDefault = false;\r\n })\r\n this.languagesSystem = languagesSystem\r\n this.newEntity = this.fb.group({\r\n defaultLanguage: ['', [Validators.required]],\r\n allLanguages: [[], [Validators.required]],\r\n })\r\n await this.getSiteLanguageSettings()\r\n\r\n }\r\n\r\n /**获取配置的默认语言与选中语言 */\r\n getSiteLanguageSettings() {\r\n return new Promise((resolve, rejects) => {\r\n this._SiteAdminService.get().subscribe((res) => {\r\n this.newEntity.patchValue({\r\n defaultLanguage: res.defaultLanguage,\r\n allLanguages: res.allLanguages\r\n })\r\n this.languagesSystem.forEach((el) => {\r\n el.ischecked = res.allLanguages.includes(el.cultureName)\r\n el.isDefault = el.cultureName === res.defaultLanguage\r\n })\r\n resolve(true)\r\n })\r\n })\r\n }\r\n\r\n /**语言改变 */\r\n setLanguagesChange(event, item) {\r\n let checked = event.target.checked\r\n item.ischecked = checked\r\n this.setFromLangguages()\r\n }\r\n\r\n /**设置默认语言 */\r\n setDefault(items) {\r\n this.languagesSystem.forEach(el => {\r\n el.isDefault = false\r\n })\r\n items.isDefault = true\r\n this.newEntity.patchValue({\r\n defaultLanguage: items.cultureName\r\n })\r\n this.setFromLangguages()\r\n }\r\n /**设置表单中的语言 */\r\n setFromLangguages() {\r\n let languagesSelect = this.languagesSystem.filter(el => el.ischecked == true).map(el => el.cultureName)\r\n this.newEntity.patchValue({\r\n allLanguages: languagesSelect\r\n })\r\n if (languagesSelect.length == 0) {\r\n this.languagesSystem.forEach(el => {\r\n el.isDefault = false\r\n })\r\n }\r\n }\r\n isSubmit: boolean = false;\r\n /**保存 */\r\n SaveSubmit() {\r\n if(this.isSubmit) return;\r\n this.isSubmit=true;\r\n let input = this.newEntity.value\r\n this._SiteAdminService.update({\r\n ...input\r\n }).pipe(finalize(()=>{\r\n this.isSubmit=false;\r\n })).subscribe((res => {\r\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));\r\n this.getSiteLanguageSettings()\r\n }))\r\n }\r\n}\r\n","<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"SaveSubmit()\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <h2>{{eCmsRouteNames.SiteLanguage|abpLocalization}}</h2>\r\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"title\">{{'Cms::Language' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of languagesSystem;let i=index\">\r\n <li class=\"list-group-item d-flex align-items-center justify-content-between\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"Languages{{i}}\"\r\n [checked]=\"item.ischecked\" (change)=\"setLanguagesChange($event,item)\" />\r\n <label class=\"form-check-label\" for=\"Languages{{i}}\">\r\n {{item.displayName}}\r\n </label>\r\n </div>\r\n <ng-container *ngIf=\"item.ischecked\">\r\n <div class=\"text-primary fs-5\" type=\"button\" *ngIf=\"item.isDefault\">\r\n {{'Cms::IsDefault'|abpLocalization}}</div>\r\n <div class=\"text-muted fs-5\" type=\"button\" (click.stop)=\"setDefault(item)\"\r\n *ngIf=\"!item.isDefault\">{{'Cms::SetDefault'|abpLocalization}}</div>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <hr class=\"my-3\" />\r\n</form>","import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { DomainsComponent } from '../components/domains/domains.component';\r\nimport { SiteLanguageComponent } from '../components/site-language/site-language.component';\r\n\r\n\r\n\r\n\r\n\r\nexport const CMS_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureRoutes,\r\n deps: [RoutesService, SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n\r\n\r\nexport function configureRoutes(routesService: RoutesService, settingTabs: SettingTabsService) {\r\n return () => {\r\n settingTabs.add([\r\n {\r\n name: 'Cms::Domain',\r\n requiredPolicy: 'CmsAdmin.Domain',\r\n component: DomainsComponent,\r\n },\r\n {\r\n name: eCmsRouteNames.SiteLanguage,\r\n requiredPolicy: 'TravelyAdmin.SiteSetting',\r\n component: SiteLanguageComponent, \r\n },\r\n ]);\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Field',\r\n },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy: 'CmsAdmin.Section',\r\n },\r\n \r\n\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_ROUTE_PROVIDERS],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/enums/route-names.ts","../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["export enum eCmsRouteNames {\r\n Cms = 'Cms::Menu:Cms',\r\n Entries = 'Cms::FormControl:Entry',\r\n Settings = \"Cms::Menu:Settings\",\r\n Fields = \"Cms::Fields\",\r\n Sections = \"Cms::Sections\",\r\n}","import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\n\r\n\r\n\r\n\r\n\r\nexport const CMS_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureRoutes,\r\n deps: [RoutesService, SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n\r\n\r\nexport function configureRoutes(routesService: RoutesService, settingTabs: SettingTabsService) {\r\n return () => {\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Field',\r\n },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy: 'CmsAdmin.Section',\r\n },\r\n \r\n\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\nimport { Regionalization_Management_Setting_ROUTE_PROVIDERS } from '@dignite-ng/expand.regionalization-management/config';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_ROUTE_PROVIDERS,Regionalization_Management_Setting_ROUTE_PROVIDERS],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;IAAa;AAAb,CAAA,UAAa,cAAc,EAAA;AACzB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,eAAqB;AACrB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,wBAAkC;AAClC,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,oBAA+B;AAC/B,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,aAAsB;AACtB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,eAA0B;AAC5B,CAAC,EANY,cAAc,KAAd,cAAc,GAM1B,EAAA,CAAA,CAAA;;ACGY,MAAA,mBAAmB,GAAG;AACjC,IAAA;AACE,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,IAAI,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;AACzC,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA;;AAIa,SAAA,eAAe,CAAC,aAA4B,EAAE,WAA+B,EAAA;AAC3F,IAAA,OAAO,MAAK;QACV,aAAa,CAAC,GAAG,CAAC;AAChB,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,cAAc,CAAC,GAAG;AACxB,gBAAA,SAAS,EAAE,iBAAiB;AAC5B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,uEAAuE;AACxF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,cAAc,CAAC,OAAO;gBAC5B,UAAU,EAAE,cAAc,CAAC,GAAG;AAC9B,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,gBAAgB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,cAAc,CAAC,QAAQ;gBAC7B,UAAU,EAAE,cAAc,CAAC,GAAG;AAC9B,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,qCAAqC;AACtD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,cAAc,CAAC,MAAM;gBAC3B,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,gBAAgB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,cAAc,CAAC,QAAQ;gBAC7B,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,kBAAkB;AACnC,aAAA;AAGF,SAAA,CAAC;AACJ,KAAC;AACH;;MC9Da,eAAe,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE,CAAC,mBAAmB,EAAC,kDAAkD,CAAC;SACpF;;8GALQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACJD;;AAEG;;;;"}
|