@vendure/admin-ui 1.3.3 → 1.4.1
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/bundles/vendure-admin-ui-catalog.umd.js +87 -162
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +2020 -402
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-customer.umd.js +79 -57
- package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js +11 -1
- package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.js +10 -2
- package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-settings.umd.js +156 -153
- package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
- package/catalog/components/collection-detail/collection-detail.component.d.ts +0 -1
- package/catalog/components/collection-list/collection-list.component.d.ts +3 -0
- package/catalog/components/facet-detail/facet-detail.component.d.ts +0 -1
- package/catalog/components/facet-list/facet-list.component.d.ts +3 -5
- package/catalog/components/product-detail/product-detail.component.d.ts +0 -1
- package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
- package/core/app.component.d.ts +1 -0
- package/core/common/base-detail.component.d.ts +42 -1
- package/core/common/base-entity-resolver.d.ts +28 -1
- package/core/common/base-list.component.d.ts +75 -1
- package/core/common/component-registry-types.d.ts +46 -0
- package/core/common/generated-types.d.ts +282 -23
- package/core/common/utilities/get-default-ui-language.d.ts +1 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -1
- package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +17 -4
- package/core/components/user-menu/user-menu.component.d.ts +1 -1
- package/core/data/client-state/client-defaults.d.ts +1 -1
- package/core/data/definitions/client-definitions.d.ts +3 -1
- package/core/data/definitions/customer-definitions.d.ts +1 -0
- package/core/data/definitions/settings-definitions.d.ts +1 -0
- package/core/data/providers/client-data.service.d.ts +3 -1
- package/core/data/providers/data.service.d.ts +54 -12
- package/core/data/providers/settings-data.service.d.ts +3 -0
- package/core/data/query-result.d.ts +11 -2
- package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +25 -0
- package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +15 -0
- package/core/providers/custom-field-component/custom-field-component.service.d.ts +3 -3
- package/core/providers/local-storage/local-storage.service.d.ts +1 -0
- package/core/providers/modal/modal.service.d.ts +41 -12
- package/core/providers/nav-builder/nav-builder-types.d.ts +19 -1
- package/core/providers/nav-builder/nav-builder.service.d.ts +14 -10
- package/core/providers/notification/notification.service.d.ts +37 -0
- package/core/public_api.d.ts +8 -0
- package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +2 -1
- package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +18 -0
- package/core/shared/components/asset-preview/asset-preview.component.d.ts +0 -1
- package/core/shared/components/chip/chip.component.d.ts +20 -0
- package/core/shared/components/currency-input/currency-input.component.d.ts +11 -0
- package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +17 -0
- package/core/shared/components/data-table/data-table.component.d.ts +59 -0
- package/core/shared/components/datetime-picker/datetime-picker.component.d.ts +17 -0
- package/core/shared/components/dropdown/dropdown.component.d.ts +25 -0
- package/core/shared/components/extension-host/extension-host.service.d.ts +3 -1
- package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +22 -0
- package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +1 -1
- package/core/shared/components/object-tree/object-tree.component.d.ts +8 -0
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +10 -0
- package/core/shared/components/product-selector/product-selector.component.d.ts +12 -0
- package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +12 -1
- package/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +21 -0
- package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +15 -0
- package/core/shared/directives/if-multichannel.directive.d.ts +14 -0
- package/core/shared/directives/if-permissions.directive.d.ts +3 -0
- package/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +7 -0
- package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +32 -0
- package/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +7 -0
- package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +8 -0
- package/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +10 -0
- package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +8 -0
- package/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +12 -0
- package/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +7 -0
- package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +8 -0
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +40 -3
- package/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +9 -0
- package/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +16 -0
- package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +9 -0
- package/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +12 -3
- package/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +7 -0
- package/core/shared/pipes/asset-preview.pipe.d.ts +14 -0
- package/core/shared/pipes/duration.pipe.d.ts +8 -0
- package/core/shared/pipes/file-size.pipe.d.ts +8 -0
- package/core/shared/pipes/has-permission.pipe.d.ts +3 -1
- package/core/shared/pipes/locale-currency-name.pipe.d.ts +8 -0
- package/core/shared/pipes/locale-currency.pipe.d.ts +12 -0
- package/core/shared/pipes/locale-date.pipe.d.ts +7 -0
- package/core/shared/pipes/locale-language-name.pipe.d.ts +9 -1
- package/core/shared/pipes/locale-region-name.pipe.d.ts +18 -0
- package/core/shared/pipes/time-ago.pipe.d.ts +8 -0
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/customer/components/customer-detail/customer-detail.component.d.ts +2 -3
- package/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +14 -3
- package/customer/vendure-admin-ui-customer.metadata.json +1 -1
- package/esm2015/catalog/catalog.module.js +29 -28
- package/esm2015/catalog/components/asset-detail/asset-detail.component.js +2 -10
- package/esm2015/catalog/components/collection-detail/collection-detail.component.js +3 -16
- package/esm2015/catalog/components/collection-list/collection-list.component.js +23 -5
- package/esm2015/catalog/components/facet-detail/facet-detail.component.js +3 -15
- package/esm2015/catalog/components/facet-list/facet-list.component.js +24 -9
- package/esm2015/catalog/components/product-assets/product-assets.component.js +2 -2
- package/esm2015/catalog/components/product-detail/product-detail.component.js +5 -27
- package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +3 -3
- package/esm2015/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +2 -2
- package/esm2015/catalog/components/variant-price-detail/variant-price-detail.component.js +2 -2
- package/esm2015/core/app.component.js +20 -2
- package/esm2015/core/common/base-detail.component.js +53 -1
- package/esm2015/core/common/base-entity-resolver.js +29 -2
- package/esm2015/core/common/base-list.component.js +76 -2
- package/esm2015/core/common/component-registry-types.js +1 -1
- package/esm2015/core/common/generated-types.js +1 -1
- package/esm2015/core/common/introspection-result.js +249 -183
- package/esm2015/core/common/utilities/get-default-ui-language.js +9 -1
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/components/app-shell/app-shell.component.js +12 -7
- package/esm2015/core/components/main-nav/main-nav.component.js +2 -2
- package/esm2015/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +281 -5
- package/esm2015/core/components/user-menu/user-menu.component.js +3 -3
- package/esm2015/core/data/client-state/client-defaults.js +5 -2
- package/esm2015/core/data/client-state/client-resolvers.js +32 -33
- package/esm2015/core/data/definitions/client-definitions.js +18 -3
- package/esm2015/core/data/definitions/customer-definitions.js +21 -25
- package/esm2015/core/data/definitions/settings-definitions.js +50 -5
- package/esm2015/core/data/providers/client-data.service.js +15 -4
- package/esm2015/core/data/providers/data.service.js +44 -2
- package/esm2015/core/data/providers/settings-data.service.js +12 -4
- package/esm2015/core/data/query-result.js +14 -4
- package/esm2015/core/providers/custom-detail-component/custom-detail-component-types.js +2 -0
- package/esm2015/core/providers/custom-detail-component/custom-detail-component.service.js +44 -0
- package/esm2015/core/providers/custom-field-component/custom-field-component.service.js +6 -6
- package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
- package/esm2015/core/providers/modal/modal.service.js +20 -12
- package/esm2015/core/providers/nav-builder/nav-builder-types.js +1 -1
- package/esm2015/core/providers/nav-builder/nav-builder.service.js +15 -11
- package/esm2015/core/providers/notification/notification.service.js +24 -1
- package/esm2015/core/public_api.js +9 -1
- package/esm2015/core/shared/components/action-bar/action-bar.component.js +1 -1
- package/esm2015/core/shared/components/action-bar-items/action-bar-items.component.js +3 -3
- package/esm2015/core/shared/components/address-form/address-form.component.js +2 -2
- package/esm2015/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +19 -1
- package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +2 -6
- package/esm2015/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +1 -1
- package/esm2015/core/shared/components/chip/chip.component.js +12 -1
- package/esm2015/core/shared/components/currency-input/currency-input.component.js +12 -1
- package/esm2015/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +44 -0
- package/esm2015/core/shared/components/data-table/data-table.component.js +60 -1
- package/esm2015/core/shared/components/datetime-picker/datetime-picker.component.js +17 -1
- package/esm2015/core/shared/components/dropdown/dropdown.component.js +26 -1
- package/esm2015/core/shared/components/extension-host/extension-host.component.js +3 -3
- package/esm2015/core/shared/components/extension-host/extension-host.service.js +16 -2
- package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +23 -1
- package/esm2015/core/shared/components/modal-dialog/modal-dialog.component.js +2 -2
- package/esm2015/core/shared/components/object-tree/object-tree.component.js +9 -1
- package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +11 -1
- package/esm2015/core/shared/components/product-selector/product-selector.component.js +13 -1
- package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +14 -3
- package/esm2015/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +48 -0
- package/esm2015/core/shared/components/title-input/title-input.component.js +1 -1
- package/esm2015/core/shared/components/ui-extension-point/ui-extension-point.component.js +31 -0
- package/esm2015/core/shared/directives/if-multichannel.directive.js +15 -1
- package/esm2015/core/shared/directives/if-permissions.directive.js +4 -1
- package/esm2015/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +8 -1
- package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +125 -0
- package/esm2015/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +8 -1
- package/esm2015/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +9 -1
- package/esm2015/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +21 -2
- package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +2 -1
- package/esm2015/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +9 -1
- package/esm2015/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +29 -2
- package/esm2015/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +8 -1
- package/esm2015/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +9 -1
- package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +42 -2
- package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +10 -1
- package/esm2015/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +20 -0
- package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +14 -2
- package/esm2015/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +17 -2
- package/esm2015/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +8 -1
- package/esm2015/core/shared/pipes/asset-preview.pipe.js +15 -1
- package/esm2015/core/shared/pipes/duration.pipe.js +9 -1
- package/esm2015/core/shared/pipes/file-size.pipe.js +9 -1
- package/esm2015/core/shared/pipes/has-permission.pipe.js +4 -2
- package/esm2015/core/shared/pipes/locale-base.pipe.js +7 -4
- package/esm2015/core/shared/pipes/locale-currency-name.pipe.js +9 -1
- package/esm2015/core/shared/pipes/locale-currency.pipe.js +13 -1
- package/esm2015/core/shared/pipes/locale-date.pipe.js +8 -1
- package/esm2015/core/shared/pipes/locale-language-name.pipe.js +10 -2
- package/esm2015/core/shared/pipes/locale-region-name.pipe.js +48 -0
- package/esm2015/core/shared/pipes/time-ago.pipe.js +9 -1
- package/esm2015/core/shared/shared.module.js +13 -1
- package/esm2015/customer/components/customer-detail/customer-detail.component.js +5 -16
- package/esm2015/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +32 -3
- package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +22 -18
- package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +9 -2
- package/esm2015/order/components/order-detail/order-detail.component.js +11 -3
- package/esm2015/settings/components/admin-detail/admin-detail.component.js +3 -14
- package/esm2015/settings/components/channel-detail/channel-detail.component.js +3 -14
- package/esm2015/settings/components/country-detail/country-detail.component.js +11 -3
- package/esm2015/settings/components/country-list/country-list.component.js +19 -7
- package/esm2015/settings/components/global-settings/global-settings.component.js +3 -14
- package/esm2015/settings/components/payment-method-detail/payment-method-detail.component.js +9 -2
- package/esm2015/settings/components/profile/profile.component.js +3 -14
- package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +3 -16
- package/esm2015/settings/components/tax-category-detail/tax-category-detail.component.js +13 -3
- package/esm2015/settings/components/tax-rate-detail/tax-rate-detail.component.js +9 -2
- package/esm2015/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +32 -3
- package/esm2015/settings/components/zone-list/zone-list.component.js +19 -8
- package/fesm2015/vendure-admin-ui-catalog.js +83 -102
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +1863 -339
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.js +54 -34
- package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js +8 -1
- package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
- package/fesm2015/vendure-admin-ui-order.js +10 -2
- package/fesm2015/vendure-admin-ui-order.js.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.js +110 -85
- package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
- package/marketing/components/promotion-detail/promotion-detail.component.d.ts +2 -1
- package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
- package/order/vendure-admin-ui-order.metadata.json +1 -1
- package/package.json +6 -5
- package/settings/components/admin-detail/admin-detail.component.d.ts +0 -1
- package/settings/components/channel-detail/channel-detail.component.d.ts +0 -1
- package/settings/components/country-detail/country-detail.component.d.ts +2 -1
- package/settings/components/country-list/country-list.component.d.ts +7 -2
- package/settings/components/global-settings/global-settings.component.d.ts +0 -1
- package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +2 -1
- package/settings/components/profile/profile.component.d.ts +0 -1
- package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -1
- package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +2 -1
- package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +2 -1
- package/settings/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +14 -3
- package/settings/components/zone-list/zone-list.component.d.ts +6 -2
- package/settings/vendure-admin-ui-settings.metadata.json +1 -1
- package/static/i18n-messages/cs.json +7 -0
- package/static/i18n-messages/de.json +7 -0
- package/static/i18n-messages/en.json +7 -0
- package/static/i18n-messages/es.json +8 -1
- package/static/i18n-messages/fr.json +7 -0
- package/static/i18n-messages/it.json +7 -0
- package/static/i18n-messages/pl.json +7 -0
- package/static/i18n-messages/pt_BR.json +7 -0
- package/static/i18n-messages/pt_PT.json +7 -0
- package/static/i18n-messages/ru.json +7 -0
- package/static/i18n-messages/uk.json +7 -0
- package/static/i18n-messages/zh_Hans.json +7 -0
- package/static/i18n-messages/zh_Hant.json +7 -0
- package/static/styles/theme/dark.scss +9 -0
- package/static/styles/theme/default.scss +8 -0
- package/static/theme.min.css +1 -1
|
@@ -428,9 +428,6 @@
|
|
|
428
428
|
AdminDetailComponent.prototype.ngOnDestroy = function () {
|
|
429
429
|
this.destroy();
|
|
430
430
|
};
|
|
431
|
-
AdminDetailComponent.prototype.customFieldIsSet = function (name) {
|
|
432
|
-
return !!this.detailForm.get(['customFields', name]);
|
|
433
|
-
};
|
|
434
431
|
AdminDetailComponent.prototype.rolesChanged = function (roles) {
|
|
435
432
|
this.buildPermissionsMap();
|
|
436
433
|
};
|
|
@@ -514,7 +511,6 @@
|
|
|
514
511
|
});
|
|
515
512
|
};
|
|
516
513
|
AdminDetailComponent.prototype.setFormValues = function (administrator, languageCode) {
|
|
517
|
-
var e_1, _a;
|
|
518
514
|
this.detailForm.patchValue({
|
|
519
515
|
emailAddress: administrator.emailAddress,
|
|
520
516
|
firstName: administrator.firstName,
|
|
@@ -522,25 +518,7 @@
|
|
|
522
518
|
roles: administrator.user.roles,
|
|
523
519
|
});
|
|
524
520
|
if (this.customFields.length) {
|
|
525
|
-
|
|
526
|
-
try {
|
|
527
|
-
for (var _b = __values(this.customFields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
528
|
-
var fieldDef = _c.value;
|
|
529
|
-
var key = fieldDef.name;
|
|
530
|
-
var value = administrator.customFields[key];
|
|
531
|
-
var control = customFieldsGroup.get(key);
|
|
532
|
-
if (control) {
|
|
533
|
-
control.patchValue(value);
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
538
|
-
finally {
|
|
539
|
-
try {
|
|
540
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
541
|
-
}
|
|
542
|
-
finally { if (e_1) throw e_1.error; }
|
|
543
|
-
}
|
|
521
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), administrator);
|
|
544
522
|
}
|
|
545
523
|
var passwordControl = this.detailForm.get('password');
|
|
546
524
|
if (passwordControl) {
|
|
@@ -554,7 +532,7 @@
|
|
|
554
532
|
this.buildPermissionsMap();
|
|
555
533
|
};
|
|
556
534
|
AdminDetailComponent.prototype.buildPermissionsMap = function () {
|
|
557
|
-
var
|
|
535
|
+
var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
|
|
558
536
|
var permissionsControl = this.detailForm.get('roles');
|
|
559
537
|
if (permissionsControl) {
|
|
560
538
|
var roles = permissionsControl.value;
|
|
@@ -571,26 +549,26 @@
|
|
|
571
549
|
channelIdCodeMap.set(channel.id, channel.code);
|
|
572
550
|
};
|
|
573
551
|
try {
|
|
574
|
-
for (var _e = (
|
|
552
|
+
for (var _e = (e_2 = void 0, __values(role.channels)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
575
553
|
var channel = _f.value;
|
|
576
554
|
_loop_1(channel);
|
|
577
555
|
}
|
|
578
556
|
}
|
|
579
|
-
catch (
|
|
557
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
580
558
|
finally {
|
|
581
559
|
try {
|
|
582
560
|
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
583
561
|
}
|
|
584
|
-
finally { if (
|
|
562
|
+
finally { if (e_2) throw e_2.error; }
|
|
585
563
|
}
|
|
586
564
|
}
|
|
587
565
|
}
|
|
588
|
-
catch (
|
|
566
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
589
567
|
finally {
|
|
590
568
|
try {
|
|
591
569
|
if (roles_1_1 && !roles_1_1.done && (_a = roles_1.return)) _a.call(roles_1);
|
|
592
570
|
}
|
|
593
|
-
finally { if (
|
|
571
|
+
finally { if (e_1) throw e_1.error; }
|
|
594
572
|
}
|
|
595
573
|
this.selectedRolePermissions = {};
|
|
596
574
|
try {
|
|
@@ -600,17 +578,17 @@
|
|
|
600
578
|
var permissionSet = channelIdPermissionsMap.get(channelId);
|
|
601
579
|
var permissionsHash = {};
|
|
602
580
|
try {
|
|
603
|
-
for (var _j = (
|
|
581
|
+
for (var _j = (e_4 = void 0, __values(this.serverConfigService.getPermissionDefinitions())), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
604
582
|
var def = _k.value;
|
|
605
583
|
permissionsHash[def.name] = permissionSet.has(def.name);
|
|
606
584
|
}
|
|
607
585
|
}
|
|
608
|
-
catch (
|
|
586
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
609
587
|
finally {
|
|
610
588
|
try {
|
|
611
589
|
if (_k && !_k.done && (_d = _j.return)) _d.call(_j);
|
|
612
590
|
}
|
|
613
|
-
finally { if (
|
|
591
|
+
finally { if (e_4) throw e_4.error; }
|
|
614
592
|
}
|
|
615
593
|
this.selectedRolePermissions[channelId] = {
|
|
616
594
|
// tslint:disable:no-non-null-assertion
|
|
@@ -621,12 +599,12 @@
|
|
|
621
599
|
};
|
|
622
600
|
}
|
|
623
601
|
}
|
|
624
|
-
catch (
|
|
602
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
625
603
|
finally {
|
|
626
604
|
try {
|
|
627
605
|
if (_h && !_h.done && (_c = _g.return)) _c.call(_g);
|
|
628
606
|
}
|
|
629
|
-
finally { if (
|
|
607
|
+
finally { if (e_3) throw e_3.error; }
|
|
630
608
|
}
|
|
631
609
|
}
|
|
632
610
|
};
|
|
@@ -635,7 +613,7 @@
|
|
|
635
613
|
AdminDetailComponent.decorators = [
|
|
636
614
|
{ type: i0.Component, args: [{
|
|
637
615
|
selector: 'vdr-admin-detail',
|
|
638
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input\r\n id=\"emailAddress\"\r\n type=\"text\"\r\n formControlName=\"emailAddress\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input\r\n id=\"firstName\"\r\n type=\"text\"\r\n formControlName=\"firstName\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input\r\n id=\"lastName\"\r\n type=\"text\"\r\n formControlName=\"lastName\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"!(isNew$ | async) && ('UpdateAdministrator' | hasPermission)\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <
|
|
616
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input\r\n id=\"emailAddress\"\r\n type=\"text\"\r\n formControlName=\"emailAddress\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input\r\n id=\"firstName\"\r\n type=\"text\"\r\n formControlName=\"firstName\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input\r\n id=\"lastName\"\r\n type=\"text\"\r\n formControlName=\"lastName\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"!(isNew$ | async) && ('UpdateAdministrator' | hasPermission)\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"administrator-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n <label class=\"clr-control-label\">{{ 'settings.roles' | translate }}</label>\r\n <ng-select\r\n [items]=\"allRoles$ | async\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n formControlName=\"roles\"\r\n (change)=\"rolesChanged($event)\"\r\n bindLabel=\"description\"\r\n ></ng-select>\r\n\r\n <ul class=\"nav\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\r\n <button\r\n [id]=\"channel.channelId\"\r\n (click)=\"selectedChannelId = channel.channelId\"\r\n class=\"btn btn-link nav-link\"\r\n [class.active]=\"selectedChannelId === channel.channelId\"\r\n [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\r\n type=\"button\"\r\n >\r\n {{ channel.channelCode | channelCodeToLabel | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n <vdr-permission-grid\r\n [activePermissions]=\"getPermissionsForSelectedChannel()\"\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [readonly]=\"true\"\r\n ></vdr-permission-grid>\r\n</form>\r\n",
|
|
639
617
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
640
618
|
styles: [""]
|
|
641
619
|
},] }
|
|
@@ -742,9 +720,6 @@
|
|
|
742
720
|
ChannelDetailComponent.prototype.ngOnDestroy = function () {
|
|
743
721
|
this.destroy();
|
|
744
722
|
};
|
|
745
|
-
ChannelDetailComponent.prototype.customFieldIsSet = function (name) {
|
|
746
|
-
return !!this.detailForm.get(['customFields', name]);
|
|
747
|
-
};
|
|
748
723
|
ChannelDetailComponent.prototype.saveButtonEnabled = function () {
|
|
749
724
|
return this.detailForm.dirty && this.detailForm.valid;
|
|
750
725
|
};
|
|
@@ -836,7 +811,6 @@
|
|
|
836
811
|
* Update the form values when the entity changes.
|
|
837
812
|
*/
|
|
838
813
|
ChannelDetailComponent.prototype.setFormValues = function (entity, languageCode) {
|
|
839
|
-
var e_1, _a;
|
|
840
814
|
this.detailForm.patchValue({
|
|
841
815
|
code: entity.code,
|
|
842
816
|
token: entity.token || this.generateToken(),
|
|
@@ -847,25 +821,7 @@
|
|
|
847
821
|
defaultTaxZoneId: entity.defaultTaxZone ? entity.defaultTaxZone.id : '',
|
|
848
822
|
});
|
|
849
823
|
if (this.customFields.length) {
|
|
850
|
-
|
|
851
|
-
try {
|
|
852
|
-
for (var _b = __values(this.customFields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
853
|
-
var fieldDef = _c.value;
|
|
854
|
-
var key = fieldDef.name;
|
|
855
|
-
var value = entity.customFields[key];
|
|
856
|
-
var control = customFieldsGroup.get(key);
|
|
857
|
-
if (control) {
|
|
858
|
-
control.patchValue(value);
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
863
|
-
finally {
|
|
864
|
-
try {
|
|
865
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
866
|
-
}
|
|
867
|
-
finally { if (e_1) throw e_1.error; }
|
|
868
|
-
}
|
|
824
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);
|
|
869
825
|
}
|
|
870
826
|
if (entity.code === sharedConstants.DEFAULT_CHANNEL_CODE) {
|
|
871
827
|
var codeControl = this.detailForm.get('code');
|
|
@@ -883,7 +839,7 @@
|
|
|
883
839
|
ChannelDetailComponent.decorators = [
|
|
884
840
|
{ type: i0.Component, args: [{
|
|
885
841
|
selector: 'vdr-channel-detail',
|
|
886
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input
|
|
842
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"code\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\r\n <input\r\n id=\"token\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"token\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.currency' | translate\" for=\"defaultTaxZoneId\">\r\n <select\r\n clrSelect\r\n name=\"currencyCode\"\r\n formControlName=\"currencyCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let code of currencyCodes\" [value]=\"code\">{{ code | localeCurrencyName }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\r\n <select\r\n clrSelect\r\n name=\"defaultLanguageCode\"\r\n formControlName=\"defaultLanguageCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let languageCode of availableLanguageCodes$ | async\" [value]=\"languageCode\">\r\n {{ languageCode | localeLanguageName }} ({{ languageCode | uppercase }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.prices-include-tax' | translate\" for=\"pricesIncludeTax\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"pricesIncludeTax\"\r\n formControlName=\"pricesIncludeTax\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.default-tax-zone' | translate\" for=\"defaultTaxZoneId\">\r\n <select\r\n clrSelect\r\n name=\"defaultTaxZoneId\"\r\n formControlName=\"defaultTaxZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option selected value style=\"display: none\"></option>\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\r\n clrAlertType=\"danger\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-tax-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n\r\n <vdr-form-field [label]=\"'settings.default-shipping-zone' | translate\" for=\"defaultShippingZoneId\">\r\n <select\r\n clrSelect\r\n name=\"defaultShippingZoneId\"\r\n formControlName=\"defaultShippingZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option selected value style=\"display: none\"></option>\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\r\n clrAlertType=\"warning\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-shipping-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Channel\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"channel-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
|
|
887
843
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
888
844
|
styles: ["clr-alert{max-width:30rem;margin-bottom:12px}\n"]
|
|
889
845
|
},] }
|
|
@@ -959,10 +915,15 @@
|
|
|
959
915
|
_this.formBuilder = formBuilder;
|
|
960
916
|
_this.notificationService = notificationService;
|
|
961
917
|
_this.updatePermission = [i2.Permission.UpdateSettings, i2.Permission.UpdateCountry];
|
|
918
|
+
_this.customFields = _this.getCustomFieldConfig('Country');
|
|
962
919
|
_this.detailForm = _this.formBuilder.group({
|
|
963
920
|
code: ['', forms.Validators.required],
|
|
964
921
|
name: ['', forms.Validators.required],
|
|
965
922
|
enabled: [true],
|
|
923
|
+
customFields: _this.formBuilder.group(_this.customFields.reduce(function (hash, field) {
|
|
924
|
+
var _a;
|
|
925
|
+
return (Object.assign(Object.assign({}, hash), (_a = {}, _a[field.name] = '', _a)));
|
|
926
|
+
}, {})),
|
|
966
927
|
});
|
|
967
928
|
return _this;
|
|
968
929
|
}
|
|
@@ -985,6 +946,7 @@
|
|
|
985
946
|
var input = i2.createUpdatedTranslatable({
|
|
986
947
|
translatable: country,
|
|
987
948
|
updatedFields: formValue,
|
|
949
|
+
customFieldConfig: _this.customFields,
|
|
988
950
|
languageCode: languageCode,
|
|
989
951
|
defaultTranslation: {
|
|
990
952
|
name: formValue.name,
|
|
@@ -1015,6 +977,7 @@
|
|
|
1015
977
|
var input = i2.createUpdatedTranslatable({
|
|
1016
978
|
translatable: country,
|
|
1017
979
|
updatedFields: formValue,
|
|
980
|
+
customFieldConfig: _this.customFields,
|
|
1018
981
|
languageCode: languageCode,
|
|
1019
982
|
defaultTranslation: {
|
|
1020
983
|
name: formValue.name,
|
|
@@ -1042,13 +1005,17 @@
|
|
|
1042
1005
|
name: currentTranslation ? currentTranslation.name : '',
|
|
1043
1006
|
enabled: country.enabled,
|
|
1044
1007
|
});
|
|
1008
|
+
if (this.customFields.length) {
|
|
1009
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), country, currentTranslation);
|
|
1010
|
+
}
|
|
1045
1011
|
};
|
|
1046
1012
|
return CountryDetailComponent;
|
|
1047
1013
|
}(i2.BaseDetailComponent));
|
|
1048
1014
|
CountryDetailComponent.decorators = [
|
|
1049
1015
|
{ type: i0.Component, args: [{
|
|
1050
1016
|
selector: 'vdr-country-detail',
|
|
1051
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n</form>\r\n",
|
|
1017
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Country\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"country-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
|
|
1018
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1052
1019
|
styles: [""]
|
|
1053
1020
|
},] }
|
|
1054
1021
|
];
|
|
@@ -1063,27 +1030,44 @@
|
|
|
1063
1030
|
]; };
|
|
1064
1031
|
|
|
1065
1032
|
var CountryListComponent = /** @class */ (function () {
|
|
1066
|
-
function CountryListComponent(dataService, notificationService, modalService) {
|
|
1033
|
+
function CountryListComponent(dataService, notificationService, modalService, serverConfigService) {
|
|
1067
1034
|
this.dataService = dataService;
|
|
1068
1035
|
this.notificationService = notificationService;
|
|
1069
1036
|
this.modalService = modalService;
|
|
1037
|
+
this.serverConfigService = serverConfigService;
|
|
1070
1038
|
this.searchTerm = new forms.FormControl('');
|
|
1071
1039
|
this.countries = [];
|
|
1072
1040
|
this.destroy$ = new rxjs.Subject();
|
|
1041
|
+
this.refresh$ = new rxjs.Subject();
|
|
1073
1042
|
}
|
|
1074
1043
|
CountryListComponent.prototype.ngOnInit = function () {
|
|
1075
1044
|
var _this = this;
|
|
1076
|
-
|
|
1045
|
+
this.contentLanguage$ = this.dataService.client
|
|
1046
|
+
.uiState()
|
|
1047
|
+
.mapStream(function (_a) {
|
|
1048
|
+
var uiState = _a.uiState;
|
|
1049
|
+
return uiState.contentLanguage;
|
|
1050
|
+
});
|
|
1051
|
+
var countries$ = rxjs.combineLatest(this.contentLanguage$, this.searchTerm.valueChanges.pipe(operators.startWith(null))).pipe(operators.map(function (_a) {
|
|
1052
|
+
var _b = __read(_a, 2), __ = _b[0], term = _b[1];
|
|
1053
|
+
return term;
|
|
1054
|
+
}), operators.switchMap(function (term) { return _this.dataService.settings.getCountries(999, 0, term).single$; }), operators.tap(function (data) {
|
|
1055
|
+
_this.countries = data.countries.items;
|
|
1056
|
+
}), operators.map(function (data) { return data.countries.items; }));
|
|
1077
1057
|
this.zones$ = this.dataService.settings.getZones().mapStream(function (data) { return data.zones; });
|
|
1078
1058
|
this.countriesWithZones$ = rxjs.combineLatest(countries$, this.zones$).pipe(operators.map(function (_a) {
|
|
1079
1059
|
var _b = __read(_a, 2), countries = _b[0], zones = _b[1];
|
|
1080
1060
|
return countries.map(function (country) { return (Object.assign(Object.assign({}, country), { zones: zones.filter(function (z) { return !!z.members.find(function (c) { return c.id === country.id; }); }) })); });
|
|
1081
1061
|
}));
|
|
1062
|
+
this.availableLanguages$ = this.serverConfigService.getAvailableLanguages();
|
|
1082
1063
|
};
|
|
1083
1064
|
CountryListComponent.prototype.ngOnDestroy = function () {
|
|
1084
|
-
this.destroy$.next();
|
|
1065
|
+
this.destroy$.next(undefined);
|
|
1085
1066
|
this.destroy$.complete();
|
|
1086
1067
|
};
|
|
1068
|
+
CountryListComponent.prototype.setLanguage = function (code) {
|
|
1069
|
+
this.dataService.client.setContentLanguage(code).subscribe();
|
|
1070
|
+
};
|
|
1087
1071
|
CountryListComponent.prototype.deleteCountry = function (countryId) {
|
|
1088
1072
|
var _this = this;
|
|
1089
1073
|
this.modalService
|
|
@@ -1119,7 +1103,7 @@
|
|
|
1119
1103
|
CountryListComponent.decorators = [
|
|
1120
1104
|
{ type: i0.Component, args: [{
|
|
1121
1105
|
selector: 'vdr-country-list',
|
|
1122
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"searchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'settings.search-country-by-name' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-country' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"countriesWithZones$ | async\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column [expand]=\"true\">{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.zone' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-country=\"item\">\r\n <td class=\"left align-middle\">{{ country.code }}</td>\r\n <td class=\"left align-middle\">{{ country.name }}</td>\r\n <td class=\"left align-middle\">\r\n <a [routerLink]=\"['/settings', 'zones', { contents: zone.id }]\" *ngFor=\"let zone of country.zones\">\r\n
|
|
1106
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"searchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'settings.search-country-by-name' | translate\"\r\n class=\"search-input\"\r\n />\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-country' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"countriesWithZones$ | async\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column [expand]=\"true\">{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.zone' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-country=\"item\">\r\n <td class=\"left align-middle\">{{ country.code }}</td>\r\n <td class=\"left align-middle\">{{ country.name }}</td>\r\n <td class=\"left align-middle\">\r\n <a [routerLink]=\"['/settings', 'zones', { contents: zone.id }]\" *ngFor=\"let zone of country.zones\">\r\n <vdr-chip [colorFrom]=\"zone.name\">{{ zone.name }}</vdr-chip>\r\n </a>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <clr-icon\r\n [class.is-success]=\"country.enabled\"\r\n [attr.shape]=\"country.enabled ? 'check' : 'times'\"\r\n ></clr-icon>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', country.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteCountry(country.id)\"\r\n vdrDropdownItem\r\n [disabled]=\"!(['DeleteSettings', 'DeleteCountry'] | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
|
|
1123
1107
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1124
1108
|
styles: [".search-input{margin-top:6px;min-width:300px}\n"]
|
|
1125
1109
|
},] }
|
|
@@ -1127,7 +1111,8 @@
|
|
|
1127
1111
|
CountryListComponent.ctorParameters = function () { return [
|
|
1128
1112
|
{ type: i2.DataService },
|
|
1129
1113
|
{ type: i2.NotificationService },
|
|
1130
|
-
{ type: i2.ModalService }
|
|
1114
|
+
{ type: i2.ModalService },
|
|
1115
|
+
{ type: i2.ServerConfigService }
|
|
1131
1116
|
]; };
|
|
1132
1117
|
|
|
1133
1118
|
var GlobalSettingsComponent = /** @class */ (function (_super) {
|
|
@@ -1165,9 +1150,6 @@
|
|
|
1165
1150
|
}
|
|
1166
1151
|
});
|
|
1167
1152
|
};
|
|
1168
|
-
GlobalSettingsComponent.prototype.customFieldIsSet = function (name) {
|
|
1169
|
-
return !!this.detailForm.get(['customFields', name]);
|
|
1170
|
-
};
|
|
1171
1153
|
GlobalSettingsComponent.prototype.save = function () {
|
|
1172
1154
|
var _this = this;
|
|
1173
1155
|
if (!this.detailForm.dirty) {
|
|
@@ -1198,32 +1180,13 @@
|
|
|
1198
1180
|
});
|
|
1199
1181
|
};
|
|
1200
1182
|
GlobalSettingsComponent.prototype.setFormValues = function (entity, languageCode) {
|
|
1201
|
-
var e_1, _a;
|
|
1202
1183
|
this.detailForm.patchValue({
|
|
1203
1184
|
availableLanguages: entity.availableLanguages,
|
|
1204
1185
|
trackInventory: entity.trackInventory,
|
|
1205
1186
|
outOfStockThreshold: entity.outOfStockThreshold,
|
|
1206
1187
|
});
|
|
1207
1188
|
if (this.customFields.length) {
|
|
1208
|
-
|
|
1209
|
-
try {
|
|
1210
|
-
for (var _b = __values(this.customFields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1211
|
-
var fieldDef = _c.value;
|
|
1212
|
-
var key = fieldDef.name;
|
|
1213
|
-
var value = entity.customFields[key];
|
|
1214
|
-
var control = customFieldsGroup.get(key);
|
|
1215
|
-
if (control) {
|
|
1216
|
-
control.patchValue(value);
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
1221
|
-
finally {
|
|
1222
|
-
try {
|
|
1223
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1224
|
-
}
|
|
1225
|
-
finally { if (e_1) throw e_1.error; }
|
|
1226
|
-
}
|
|
1189
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
|
|
1227
1190
|
}
|
|
1228
1191
|
};
|
|
1229
1192
|
return GlobalSettingsComponent;
|
|
@@ -1231,7 +1194,7 @@
|
|
|
1231
1194
|
GlobalSettingsComponent.decorators = [
|
|
1232
1195
|
{ type: i0.Component, args: [{
|
|
1233
1196
|
selector: 'vdr-global-settings',
|
|
1234
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"global-settings-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.available-languages' | translate\" for=\"availableLanguages\">\r\n <ng-select\r\n [items]=\"languageCodes\"\r\n [addTag]=\"false\"\r\n [hideSelected]=\"true\"\r\n multiple=\"true\"\r\n appendTo=\"body\"\r\n formControlName=\"availableLanguages\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-icon left\" (click)=\"clear.call(null, item)\" aria-hidden=\"true\">\r\n \u00D7\r\n </span>\r\n <span class=\"ng-value-label\">{{ item | localeLanguageName }} ({{ item }})</span>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item | localeLanguageName }} ({{ item }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\r\n for=\"outOfStockThreshold\"\r\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\r\n >\r\n <input\r\n id=\"outOfStockThreshold\"\r\n type=\"number\"\r\n formControlName=\"outOfStockThreshold\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.track-inventory-default' | translate\"\r\n for=\"enabled\"\r\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"enabled\"\r\n formControlName=\"trackInventory\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <
|
|
1197
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"global-settings-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.available-languages' | translate\" for=\"availableLanguages\">\r\n <ng-select\r\n [items]=\"languageCodes\"\r\n [addTag]=\"false\"\r\n [hideSelected]=\"true\"\r\n multiple=\"true\"\r\n appendTo=\"body\"\r\n formControlName=\"availableLanguages\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-icon left\" (click)=\"clear.call(null, item)\" aria-hidden=\"true\">\r\n \u00D7\r\n </span>\r\n <span class=\"ng-value-label\">{{ item | localeLanguageName }} ({{ item }})</span>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item | localeLanguageName }} ({{ item }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\r\n for=\"outOfStockThreshold\"\r\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\r\n >\r\n <input\r\n id=\"outOfStockThreshold\"\r\n type=\"number\"\r\n formControlName=\"outOfStockThreshold\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.track-inventory-default' | translate\"\r\n for=\"enabled\"\r\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"enabled\"\r\n formControlName=\"trackInventory\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"GlobalSettings\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"global-settings-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
|
|
1235
1198
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1236
1199
|
styles: ["::ng-deep ng-select .ng-value>span{margin:0!important}::ng-deep ng-select .ng-arrow-wrapper .ng-arrow{margin:0!important}::ng-deep ng-select .ng-select-container>span{margin:0!important}\n"]
|
|
1237
1200
|
},] }
|
|
@@ -1257,6 +1220,7 @@
|
|
|
1257
1220
|
_this.checkers = [];
|
|
1258
1221
|
_this.handlers = [];
|
|
1259
1222
|
_this.updatePermission = [i2.Permission.UpdateSettings, i2.Permission.UpdatePaymentMethod];
|
|
1223
|
+
_this.customFields = _this.getCustomFieldConfig('PaymentMethod');
|
|
1260
1224
|
_this.detailForm = _this.formBuilder.group({
|
|
1261
1225
|
code: ['', forms.Validators.required],
|
|
1262
1226
|
name: ['', forms.Validators.required],
|
|
@@ -1264,6 +1228,10 @@
|
|
|
1264
1228
|
enabled: [true, forms.Validators.required],
|
|
1265
1229
|
checker: {},
|
|
1266
1230
|
handler: {},
|
|
1231
|
+
customFields: _this.formBuilder.group(_this.customFields.reduce(function (hash, field) {
|
|
1232
|
+
var _a;
|
|
1233
|
+
return (Object.assign(Object.assign({}, hash), (_a = {}, _a[field.name] = '', _a)));
|
|
1234
|
+
}, {})),
|
|
1267
1235
|
});
|
|
1268
1236
|
return _this;
|
|
1269
1237
|
}
|
|
@@ -1350,6 +1318,7 @@
|
|
|
1350
1318
|
? i2.toConfigurableOperationInput(selectedChecker, formValue.checker)
|
|
1351
1319
|
: null,
|
|
1352
1320
|
handler: i2.toConfigurableOperationInput(selectedHandler, formValue.handler),
|
|
1321
|
+
customFields: formValue.customFields,
|
|
1353
1322
|
};
|
|
1354
1323
|
return _this.dataService.settings.createPaymentMethod(input);
|
|
1355
1324
|
}))
|
|
@@ -1387,6 +1356,7 @@
|
|
|
1387
1356
|
? i2.toConfigurableOperationInput(selectedChecker, formValue.checker)
|
|
1388
1357
|
: null,
|
|
1389
1358
|
handler: i2.toConfigurableOperationInput(selectedHandler, formValue.handler),
|
|
1359
|
+
customFields: formValue.customFields,
|
|
1390
1360
|
};
|
|
1391
1361
|
return _this.dataService.settings.updatePaymentMethod(input);
|
|
1392
1362
|
}))
|
|
@@ -1423,13 +1393,16 @@
|
|
|
1423
1393
|
args: paymentMethod.handler.args.map(function (a) { return (Object.assign(Object.assign({}, a), { value: i2.getConfigArgValue(a.value) })); }),
|
|
1424
1394
|
};
|
|
1425
1395
|
}
|
|
1396
|
+
if (this.customFields.length) {
|
|
1397
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), paymentMethod);
|
|
1398
|
+
}
|
|
1426
1399
|
};
|
|
1427
1400
|
return PaymentMethodDetailComponent;
|
|
1428
1401
|
}(i2.BaseDetailComponent));
|
|
1429
1402
|
PaymentMethodDetailComponent.decorators = [
|
|
1430
1403
|
{ type: i0.Component, args: [{
|
|
1431
1404
|
selector: 'vdr-payment-method-detail',
|
|
1432
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid\"\r\n (click)=\"create()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as paymentMethod\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(paymentMethod.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"enabled\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n\r\n <div class=\"clr-row mt4\">\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.payment-eligibility-checker' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeChecker()\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.payment-handler' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\r\n [operation]=\"selectedHandler\"\r\n [operationDefinition]=\"selectedHandlerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeHandler()\"\r\n formControlName=\"handler\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let handler of handlers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectHandler(handler)\"\r\n >\r\n {{ handler.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n",
|
|
1405
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid\"\r\n (click)=\"create()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as paymentMethod\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(paymentMethod.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"enabled\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"PaymentMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"payment-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <div class=\"clr-row mt4\">\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.payment-eligibility-checker' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeChecker()\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.payment-handler' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\r\n [operation]=\"selectedHandler\"\r\n [operationDefinition]=\"selectedHandlerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeHandler()\"\r\n formControlName=\"handler\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let handler of handlers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectHandler(handler)\"\r\n >\r\n {{ handler.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n",
|
|
1433
1406
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1434
1407
|
styles: [""]
|
|
1435
1408
|
},] }
|
|
@@ -1645,9 +1618,6 @@
|
|
|
1645
1618
|
ProfileComponent.prototype.ngOnDestroy = function () {
|
|
1646
1619
|
this.destroy();
|
|
1647
1620
|
};
|
|
1648
|
-
ProfileComponent.prototype.customFieldIsSet = function (name) {
|
|
1649
|
-
return !!this.detailForm.get(['customFields', name]);
|
|
1650
|
-
};
|
|
1651
1621
|
ProfileComponent.prototype.save = function () {
|
|
1652
1622
|
var _this = this;
|
|
1653
1623
|
this.entity$
|
|
@@ -1676,32 +1646,13 @@
|
|
|
1676
1646
|
});
|
|
1677
1647
|
};
|
|
1678
1648
|
ProfileComponent.prototype.setFormValues = function (administrator, languageCode) {
|
|
1679
|
-
var e_1, _a;
|
|
1680
1649
|
this.detailForm.patchValue({
|
|
1681
1650
|
emailAddress: administrator.emailAddress,
|
|
1682
1651
|
firstName: administrator.firstName,
|
|
1683
1652
|
lastName: administrator.lastName,
|
|
1684
1653
|
});
|
|
1685
1654
|
if (this.customFields.length) {
|
|
1686
|
-
|
|
1687
|
-
try {
|
|
1688
|
-
for (var _b = __values(this.customFields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1689
|
-
var fieldDef = _c.value;
|
|
1690
|
-
var key = fieldDef.name;
|
|
1691
|
-
var value = administrator.customFields[key];
|
|
1692
|
-
var control = customFieldsGroup.get(key);
|
|
1693
|
-
if (control) {
|
|
1694
|
-
control.patchValue(value);
|
|
1695
|
-
}
|
|
1696
|
-
}
|
|
1697
|
-
}
|
|
1698
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
1699
|
-
finally {
|
|
1700
|
-
try {
|
|
1701
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1702
|
-
}
|
|
1703
|
-
finally { if (e_1) throw e_1.error; }
|
|
1704
|
-
}
|
|
1655
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), administrator);
|
|
1705
1656
|
}
|
|
1706
1657
|
};
|
|
1707
1658
|
return ProfileComponent;
|
|
@@ -1709,7 +1660,7 @@
|
|
|
1709
1660
|
ProfileComponent.decorators = [
|
|
1710
1661
|
{ type: i0.Component, args: [{
|
|
1711
1662
|
selector: 'vdr-profile',
|
|
1712
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.password' | translate\" for=\"password\" [readOnlyToggle]=\"true\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <
|
|
1663
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.password' | translate\" for=\"password\" [readOnlyToggle]=\"true\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\r\n",
|
|
1713
1664
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1714
1665
|
styles: [""]
|
|
1715
1666
|
},] }
|
|
@@ -2001,9 +1952,6 @@
|
|
|
2001
1952
|
ShippingMethodDetailComponent.prototype.ngOnDestroy = function () {
|
|
2002
1953
|
this.destroy();
|
|
2003
1954
|
};
|
|
2004
|
-
ShippingMethodDetailComponent.prototype.customFieldIsSet = function (name) {
|
|
2005
|
-
return !!this.detailForm.get(['customFields', name]);
|
|
2006
|
-
};
|
|
2007
1955
|
ShippingMethodDetailComponent.prototype.updateCode = function (currentCode, nameValue) {
|
|
2008
1956
|
if (!currentCode) {
|
|
2009
1957
|
var codeControl = this.detailForm.get(['code']);
|
|
@@ -2126,7 +2074,6 @@
|
|
|
2126
2074
|
return Object.assign(Object.assign({}, input), { fulfillmentHandler: formValue.fulfillmentHandler });
|
|
2127
2075
|
};
|
|
2128
2076
|
ShippingMethodDetailComponent.prototype.setFormValues = function (shippingMethod, languageCode) {
|
|
2129
|
-
var e_1, _e;
|
|
2130
2077
|
var _a, _b, _c, _d;
|
|
2131
2078
|
var currentTranslation = i2.findTranslation(shippingMethod, languageCode);
|
|
2132
2079
|
this.detailForm.patchValue({
|
|
@@ -2150,27 +2097,7 @@
|
|
|
2150
2097
|
};
|
|
2151
2098
|
}
|
|
2152
2099
|
if (this.customFields.length) {
|
|
2153
|
-
|
|
2154
|
-
try {
|
|
2155
|
-
for (var _f = __values(this.customFields), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
2156
|
-
var fieldDef = _g.value;
|
|
2157
|
-
var key = fieldDef.name;
|
|
2158
|
-
var value = fieldDef.type === 'localeString'
|
|
2159
|
-
? currentTranslation.customFields[key]
|
|
2160
|
-
: shippingMethod.customFields[key];
|
|
2161
|
-
var control = customFieldsGroup.get(key);
|
|
2162
|
-
if (control) {
|
|
2163
|
-
control.patchValue(value);
|
|
2164
|
-
}
|
|
2165
|
-
}
|
|
2166
|
-
}
|
|
2167
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2168
|
-
finally {
|
|
2169
|
-
try {
|
|
2170
|
-
if (_g && !_g.done && (_e = _f.return)) _e.call(_f);
|
|
2171
|
-
}
|
|
2172
|
-
finally { if (e_1) throw e_1.error; }
|
|
2173
|
-
}
|
|
2100
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), shippingMethod, currentTranslation);
|
|
2174
2101
|
}
|
|
2175
2102
|
};
|
|
2176
2103
|
return ShippingMethodDetailComponent;
|
|
@@ -2178,7 +2105,7 @@
|
|
|
2178
2105
|
ShippingMethodDetailComponent.decorators = [
|
|
2179
2106
|
{ type: i0.Component, args: [{
|
|
2180
2107
|
selector: 'vdr-shipping-method-detail',
|
|
2181
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as shippingMethod\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(shippingMethod.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'settings.fulfillment-handler' | translate\" for=\"fulfillmentHandler\" class=\"mb2\">\r\n <select\r\n name=\"fulfillmentHandler\"\r\n formControlName=\"fulfillmentHandler\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\r\n {{ handler.code }}: {{ handler.description }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <
|
|
2108
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as shippingMethod\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(shippingMethod.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'settings.fulfillment-handler' | translate\" for=\"fulfillmentHandler\" class=\"mb2\">\r\n <select\r\n name=\"fulfillmentHandler\"\r\n formControlName=\"fulfillmentHandler\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\r\n {{ handler.code }}: {{ handler.description }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"ShippingMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"shipping-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <div class=\"clr-row mt4\">\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.shipping-eligibility-checker' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedChecker = null\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.shipping-calculator' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\r\n [operation]=\"selectedCalculator\"\r\n [operationDefinition]=\"selectedCalculatorDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedCalculator = null\"\r\n formControlName=\"calculator\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let calculator of calculators\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectCalculator(calculator)\"\r\n >\r\n {{ calculator.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<div class=\"testing-tool\">\r\n <clr-accordion>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'settings.test-shipping-method' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col\">\r\n <vdr-test-order-builder\r\n (orderLinesChange)=\"setTestOrderLines($event)\"\r\n ></vdr-test-order-builder>\r\n </div>\r\n <div class=\"clr-col\">\r\n <vdr-test-address-form\r\n (addressChange)=\"setTestAddress($event)\"\r\n ></vdr-test-address-form>\r\n <vdr-shipping-method-test-result\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-method-test-result>\r\n </div>\r\n </div>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n </clr-accordion>\r\n</div>\r\n",
|
|
2182
2109
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
2183
2110
|
styles: [".testing-tool{margin-top:48px;margin-bottom:128px}.testing-tool h4{margin-bottom:12px}\n"]
|
|
2184
2111
|
},] }
|
|
@@ -2330,9 +2257,14 @@
|
|
|
2330
2257
|
_this.formBuilder = formBuilder;
|
|
2331
2258
|
_this.notificationService = notificationService;
|
|
2332
2259
|
_this.updatePermission = [i2.Permission.UpdateSettings, i2.Permission.UpdateTaxCategory];
|
|
2260
|
+
_this.customFields = _this.getCustomFieldConfig('TaxCategory');
|
|
2333
2261
|
_this.detailForm = _this.formBuilder.group({
|
|
2334
2262
|
name: ['', forms.Validators.required],
|
|
2335
2263
|
isDefault: false,
|
|
2264
|
+
customFields: _this.formBuilder.group(_this.customFields.reduce(function (hash, field) {
|
|
2265
|
+
var _a;
|
|
2266
|
+
return (Object.assign(Object.assign({}, hash), (_a = {}, _a[field.name] = '', _a)));
|
|
2267
|
+
}, {})),
|
|
2336
2268
|
});
|
|
2337
2269
|
return _this;
|
|
2338
2270
|
}
|
|
@@ -2352,7 +2284,11 @@
|
|
|
2352
2284
|
return;
|
|
2353
2285
|
}
|
|
2354
2286
|
var formValue = this.detailForm.value;
|
|
2355
|
-
var input = {
|
|
2287
|
+
var input = {
|
|
2288
|
+
name: formValue.name,
|
|
2289
|
+
isDefault: formValue.isDefault,
|
|
2290
|
+
customFields: formValue.customFields,
|
|
2291
|
+
};
|
|
2356
2292
|
this.dataService.settings.createTaxCategory(input).subscribe(function (data) {
|
|
2357
2293
|
_this.notificationService.success(ngxTranslateExtractMarker.marker('common.notify-create-success'), {
|
|
2358
2294
|
entity: 'TaxCategory',
|
|
@@ -2378,6 +2314,7 @@
|
|
|
2378
2314
|
id: taxCategory.id,
|
|
2379
2315
|
name: formValue.name,
|
|
2380
2316
|
isDefault: formValue.isDefault,
|
|
2317
|
+
customFields: formValue.customFields,
|
|
2381
2318
|
};
|
|
2382
2319
|
return _this.dataService.settings.updateTaxCategory(input);
|
|
2383
2320
|
}))
|
|
@@ -2401,13 +2338,16 @@
|
|
|
2401
2338
|
name: entity.name,
|
|
2402
2339
|
isDefault: entity.isDefault,
|
|
2403
2340
|
});
|
|
2341
|
+
if (this.customFields.length) {
|
|
2342
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
|
|
2343
|
+
}
|
|
2404
2344
|
};
|
|
2405
2345
|
return TaxCategoryDetailComponent;
|
|
2406
2346
|
}(i2.BaseDetailComponent));
|
|
2407
2347
|
TaxCategoryDetailComponent.decorators = [
|
|
2408
2348
|
{ type: i0.Component, args: [{
|
|
2409
2349
|
selector: 'vdr-tax-detail',
|
|
2410
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"isDefault\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"isDefault\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n</form>\r\n",
|
|
2350
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"isDefault\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"isDefault\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxCategory\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-category-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
|
|
2411
2351
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
2412
2352
|
styles: [""]
|
|
2413
2353
|
},] }
|
|
@@ -2485,6 +2425,7 @@
|
|
|
2485
2425
|
_this.formBuilder = formBuilder;
|
|
2486
2426
|
_this.notificationService = notificationService;
|
|
2487
2427
|
_this.updatePermission = [i2.Permission.UpdateSettings, i2.Permission.UpdateTaxRate];
|
|
2428
|
+
_this.customFields = _this.getCustomFieldConfig('TaxRate');
|
|
2488
2429
|
_this.detailForm = _this.formBuilder.group({
|
|
2489
2430
|
name: ['', forms.Validators.required],
|
|
2490
2431
|
enabled: [true],
|
|
@@ -2492,6 +2433,10 @@
|
|
|
2492
2433
|
taxCategoryId: [''],
|
|
2493
2434
|
zoneId: [''],
|
|
2494
2435
|
customerGroupId: [''],
|
|
2436
|
+
customFields: _this.formBuilder.group(_this.customFields.reduce(function (hash, field) {
|
|
2437
|
+
var _a;
|
|
2438
|
+
return (Object.assign(Object.assign({}, hash), (_a = {}, _a[field.name] = '', _a)));
|
|
2439
|
+
}, {})),
|
|
2495
2440
|
});
|
|
2496
2441
|
return _this;
|
|
2497
2442
|
}
|
|
@@ -2521,6 +2466,7 @@
|
|
|
2521
2466
|
categoryId: formValue.taxCategoryId,
|
|
2522
2467
|
zoneId: formValue.zoneId,
|
|
2523
2468
|
customerGroupId: formValue.customerGroupId,
|
|
2469
|
+
customFields: formValue.customFields,
|
|
2524
2470
|
};
|
|
2525
2471
|
this.dataService.settings.createTaxRate(input).subscribe(function (data) {
|
|
2526
2472
|
_this.notificationService.success(ngxTranslateExtractMarker.marker('common.notify-create-success'), {
|
|
@@ -2551,6 +2497,7 @@
|
|
|
2551
2497
|
categoryId: formValue.taxCategoryId,
|
|
2552
2498
|
zoneId: formValue.zoneId,
|
|
2553
2499
|
customerGroupId: formValue.customerGroupId,
|
|
2500
|
+
customFields: formValue.customFields,
|
|
2554
2501
|
};
|
|
2555
2502
|
return _this.dataService.settings.updateTaxRate(input);
|
|
2556
2503
|
}))
|
|
@@ -2578,13 +2525,16 @@
|
|
|
2578
2525
|
zoneId: entity.zone ? entity.zone.id : '',
|
|
2579
2526
|
customerGroupId: entity.customerGroup ? entity.customerGroup.id : '',
|
|
2580
2527
|
});
|
|
2528
|
+
if (this.customFields.length) {
|
|
2529
|
+
this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
|
|
2530
|
+
}
|
|
2581
2531
|
};
|
|
2582
2532
|
return TaxRateDetailComponent;
|
|
2583
2533
|
}(i2.BaseDetailComponent));
|
|
2584
2534
|
TaxRateDetailComponent.decorators = [
|
|
2585
2535
|
{ type: i0.Component, args: [{
|
|
2586
2536
|
selector: 'vdr-tax-rate-detail',
|
|
2587
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\r\n <vdr-affixed-input suffix=\"%\">\r\n <input\r\n id=\"value\"\r\n type=\"number\"\r\n step=\"0.1\"\r\n formControlName=\"value\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\r\n <select\r\n clrSelect\r\n name=\"taxCategoryId\"\r\n formControlName=\"taxCategoryId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let taxCategory of taxCategories$ | async\" [value]=\"taxCategory.id\">\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\r\n <select\r\n clrSelect\r\n name=\"zoneId\"\r\n formControlName=\"zoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n</form>\r\n",
|
|
2537
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\r\n <vdr-affixed-input suffix=\"%\">\r\n <input\r\n id=\"value\"\r\n type=\"number\"\r\n step=\"0.1\"\r\n formControlName=\"value\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\r\n <select\r\n clrSelect\r\n name=\"taxCategoryId\"\r\n formControlName=\"taxCategoryId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let taxCategory of taxCategories$ | async\" [value]=\"taxCategory.id\">\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\r\n <select\r\n clrSelect\r\n name=\"zoneId\"\r\n formControlName=\"zoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxRate\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-rate-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
|
|
2588
2538
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
2589
2539
|
styles: [""]
|
|
2590
2540
|
},] }
|
|
@@ -2794,37 +2744,78 @@
|
|
|
2794
2744
|
};
|
|
2795
2745
|
|
|
2796
2746
|
var ZoneDetailDialogComponent = /** @class */ (function () {
|
|
2797
|
-
function ZoneDetailDialogComponent() {
|
|
2747
|
+
function ZoneDetailDialogComponent(serverConfigService, formBuilder) {
|
|
2748
|
+
this.serverConfigService = serverConfigService;
|
|
2749
|
+
this.formBuilder = formBuilder;
|
|
2750
|
+
this.customFields = this.serverConfigService.getCustomFieldsFor('CustomerGroup');
|
|
2798
2751
|
}
|
|
2752
|
+
ZoneDetailDialogComponent.prototype.ngOnInit = function () {
|
|
2753
|
+
var e_1, _b;
|
|
2754
|
+
var _a;
|
|
2755
|
+
this.form = this.formBuilder.group({
|
|
2756
|
+
name: [this.zone.name, forms.Validators.required],
|
|
2757
|
+
customFields: this.formBuilder.group(this.customFields.reduce(function (hash, field) {
|
|
2758
|
+
var _b;
|
|
2759
|
+
return (Object.assign(Object.assign({}, hash), (_b = {}, _b[field.name] = '', _b)));
|
|
2760
|
+
}, {})),
|
|
2761
|
+
});
|
|
2762
|
+
if (this.customFields.length) {
|
|
2763
|
+
var customFieldsGroup = this.form.get('customFields');
|
|
2764
|
+
try {
|
|
2765
|
+
for (var _c = __values(this.customFields), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
2766
|
+
var fieldDef = _d.value;
|
|
2767
|
+
var key = fieldDef.name;
|
|
2768
|
+
var value = (_a = this.zone.customFields) === null || _a === void 0 ? void 0 : _a[key];
|
|
2769
|
+
var control = customFieldsGroup.get(key);
|
|
2770
|
+
if (control) {
|
|
2771
|
+
control.patchValue(value);
|
|
2772
|
+
}
|
|
2773
|
+
}
|
|
2774
|
+
}
|
|
2775
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2776
|
+
finally {
|
|
2777
|
+
try {
|
|
2778
|
+
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
2779
|
+
}
|
|
2780
|
+
finally { if (e_1) throw e_1.error; }
|
|
2781
|
+
}
|
|
2782
|
+
}
|
|
2783
|
+
};
|
|
2799
2784
|
ZoneDetailDialogComponent.prototype.cancel = function () {
|
|
2800
2785
|
this.resolveWith();
|
|
2801
2786
|
};
|
|
2802
2787
|
ZoneDetailDialogComponent.prototype.save = function () {
|
|
2803
|
-
this.resolveWith(this.
|
|
2788
|
+
this.resolveWith(this.form.value);
|
|
2804
2789
|
};
|
|
2805
2790
|
return ZoneDetailDialogComponent;
|
|
2806
2791
|
}());
|
|
2807
2792
|
ZoneDetailDialogComponent.decorators = [
|
|
2808
2793
|
{ type: i0.Component, args: [{
|
|
2809
2794
|
selector: 'vdr-zone-detail-dialog',
|
|
2810
|
-
template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n</ng-template>\r\n\r\n<vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n
|
|
2795
|
+
template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Zone\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"form.get('customFields')\"\r\n [readonly]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n</form>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"save()\" [disabled]=\"!zone.name\" class=\"btn btn-primary\">\r\n <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n",
|
|
2811
2796
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
2812
2797
|
styles: [""]
|
|
2813
2798
|
},] }
|
|
2814
|
-
];
|
|
2799
|
+
];
|
|
2800
|
+
ZoneDetailDialogComponent.ctorParameters = function () { return [
|
|
2801
|
+
{ type: i2.ServerConfigService },
|
|
2802
|
+
{ type: forms.FormBuilder }
|
|
2803
|
+
]; };
|
|
2815
2804
|
|
|
2816
2805
|
var ZoneListComponent = /** @class */ (function () {
|
|
2817
|
-
function ZoneListComponent(dataService, notificationService, modalService, route, router) {
|
|
2806
|
+
function ZoneListComponent(dataService, notificationService, modalService, route, router, serverConfigService) {
|
|
2818
2807
|
this.dataService = dataService;
|
|
2819
2808
|
this.notificationService = notificationService;
|
|
2820
2809
|
this.modalService = modalService;
|
|
2821
2810
|
this.route = route;
|
|
2822
2811
|
this.router = router;
|
|
2812
|
+
this.serverConfigService = serverConfigService;
|
|
2823
2813
|
this.selectedMemberIds = [];
|
|
2824
2814
|
}
|
|
2825
2815
|
ZoneListComponent.prototype.ngOnInit = function () {
|
|
2826
2816
|
var _this = this;
|
|
2827
|
-
|
|
2817
|
+
var zonesQueryRef = this.dataService.settings.getZones().ref;
|
|
2818
|
+
this.zones$ = zonesQueryRef.valueChanges.pipe(operators.map(function (data) { return data.data.zones; }));
|
|
2828
2819
|
var activeZoneId$ = this.route.paramMap.pipe(operators.map(function (pm) { return pm.get('contents'); }), operators.distinctUntilChanged(), operators.tap(function () { return (_this.selectedMemberIds = []); }));
|
|
2829
2820
|
this.activeZone$ = rxjs.combineLatest(this.zones$, activeZoneId$).pipe(operators.map(function (_a) {
|
|
2830
2821
|
var _b = __read(_a, 2), zones = _b[0], activeZoneId = _b[1];
|
|
@@ -2832,12 +2823,23 @@
|
|
|
2832
2823
|
return zones.find(function (z) { return z.id === activeZoneId; });
|
|
2833
2824
|
}
|
|
2834
2825
|
}));
|
|
2826
|
+
this.availableLanguages$ = this.serverConfigService.getAvailableLanguages();
|
|
2827
|
+
this.contentLanguage$ = this.dataService.client
|
|
2828
|
+
.uiState()
|
|
2829
|
+
.mapStream(function (_a) {
|
|
2830
|
+
var uiState = _a.uiState;
|
|
2831
|
+
return uiState.contentLanguage;
|
|
2832
|
+
})
|
|
2833
|
+
.pipe(operators.tap(function () { return zonesQueryRef.refetch(); }));
|
|
2834
|
+
};
|
|
2835
|
+
ZoneListComponent.prototype.setLanguage = function (code) {
|
|
2836
|
+
this.dataService.client.setContentLanguage(code).subscribe();
|
|
2835
2837
|
};
|
|
2836
2838
|
ZoneListComponent.prototype.create = function () {
|
|
2837
2839
|
var _this = this;
|
|
2838
2840
|
this.modalService
|
|
2839
2841
|
.fromComponent(ZoneDetailDialogComponent, { locals: { zone: { name: '' } } })
|
|
2840
|
-
.pipe(operators.switchMap(function (
|
|
2842
|
+
.pipe(operators.switchMap(function (result) { return result ? _this.dataService.settings.createZone(Object.assign(Object.assign({}, result), { memberIds: [] })) : rxjs.EMPTY; }),
|
|
2841
2843
|
// refresh list
|
|
2842
2844
|
operators.switchMap(function () { return _this.dataService.settings.getZones().single$; }))
|
|
2843
2845
|
.subscribe(function () {
|
|
@@ -2890,7 +2892,7 @@
|
|
|
2890
2892
|
var _this = this;
|
|
2891
2893
|
this.modalService
|
|
2892
2894
|
.fromComponent(ZoneDetailDialogComponent, { locals: { zone: zone } })
|
|
2893
|
-
.pipe(operators.switchMap(function (
|
|
2895
|
+
.pipe(operators.switchMap(function (result) { return result ? _this.dataService.settings.updateZone(Object.assign({ id: zone.id }, result)) : rxjs.EMPTY; }))
|
|
2894
2896
|
.subscribe(function () {
|
|
2895
2897
|
_this.notificationService.success(ngxTranslateExtractMarker.marker('common.notify-update-success'), {
|
|
2896
2898
|
entity: 'Zone',
|
|
@@ -2949,7 +2951,7 @@
|
|
|
2949
2951
|
ZoneListComponent.decorators = [
|
|
2950
2952
|
{ type: i0.Component, args: [{
|
|
2951
2953
|
selector: 'vdr-zone-list',
|
|
2952
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left
|
|
2954
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"zone-list\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\"\r\n (click)=\"create()\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-zone' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"zone-wrapper\">\r\n <div class=\"zone-list\">\r\n <table class=\"table mt0\">\r\n <tbody>\r\n <tr\r\n *ngFor=\"let zone of zones$ | async\"\r\n [class.active]=\"zone.id === (activeZone$ | async)?.id\"\r\n >\r\n <td class=\"left align-middle\"><vdr-entity-info [entity]=\"zone\"></vdr-entity-info></td>\r\n <td class=\"left align-middle\">\r\n <vdr-chip [colorFrom]=\"zone.name\">{{ zone.name }}</vdr-chip>\r\n </td>\r\n <td class=\"text-right align-middle\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: zone.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'settings.view-zone-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"align-middle\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(zone)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td class=\"align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"delete(zone.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteZone'] | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"zone-members\" [class.expanded]=\"activeZone$ | async\">\r\n <ng-container *ngIf=\"activeZone$ | async as activeZone\">\r\n <vdr-zone-member-list\r\n [members]=\"activeZone.members\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n >\r\n <div *vdrZoneMemberListHeader>\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">\r\n {{ activeZone.name }} ({{ activeZone.members.length }})\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button type=\"button\" class=\"close-button\" (click)=\"closeMembers()\">\r\n <clr-icon shape=\"close\"></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"controls\">\r\n <vdr-dropdown>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary btn-sm\"\r\n vdrDropdownTrigger\r\n [disabled]=\"selectedMemberIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"removeFromZone(activeZone, selectedMemberIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'settings.remove-from-zone' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToZone(activeZone)\">\r\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: activeZone.name } }}\r\n </button>\r\n </div>\r\n </div>\r\n <div *vdrZoneMemberControls=\"let member = member\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <a\r\n type=\"button\"\r\n [routerLink]=\"['/settings', 'countries', member.id]\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </a>\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"removeFromZone(activeZone, [member.id])\"\r\n vdrDropdownItem\r\n [disabled]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'settings.remove-from-zone' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-zone-member-list>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
|
|
2953
2955
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
2954
2956
|
styles: [".zone-wrapper{display:flex;height:calc(100% - 50px)}.zone-wrapper .zone-list{flex:1;overflow:auto;margin-top:0}.zone-wrapper .zone-list tr.active{background-color:var(--color-component-bg-200)}.zone-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.zone-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.zone-members .close-button{margin:0;background:none;border:none;cursor:pointer}.zone-members ::ng-deep table.table{margin-top:0}.zone-members ::ng-deep table.table th{top:0}.zone-members .controls{display:flex;justify-content:space-between}\n"]
|
|
2955
2957
|
},] }
|
|
@@ -2959,7 +2961,8 @@
|
|
|
2959
2961
|
{ type: i2.NotificationService },
|
|
2960
2962
|
{ type: i2.ModalService },
|
|
2961
2963
|
{ type: i1.ActivatedRoute },
|
|
2962
|
-
{ type: i1.Router }
|
|
2964
|
+
{ type: i1.Router },
|
|
2965
|
+
{ type: i2.ServerConfigService }
|
|
2963
2966
|
]; };
|
|
2964
2967
|
|
|
2965
2968
|
var ZoneMemberControlsDirective = /** @class */ (function () {
|