tnx-shared 5.1.78 → 5.1.82
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/tnx-shared.umd.js +994 -321
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/data-form-base.d.ts +1 -0
- package/classes/base/data-form-base.d.ts.map +1 -1
- package/classes/base/data-list-base.d.ts +2 -1
- package/classes/base/data-list-base.d.ts.map +1 -1
- package/classes/form-schema.d.ts +3 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
- package/components/crud/crud-list/crud-list.component.d.ts +1 -0
- package/components/crud/crud-list/crud-list.component.d.ts.map +1 -1
- package/components/entity-permission/services.cs/entity-permission.service.d.ts +1 -0
- package/components/entity-permission/services.cs/entity-permission.service.d.ts.map +1 -1
- package/components/file-explorer/file-manager/file-manager.component.d.ts +1 -0
- package/components/file-explorer/file-manager/file-manager.component.d.ts.map +1 -1
- package/components/file-explorer/services/file-data.service.d.ts +1 -0
- package/components/file-explorer/services/file-data.service.d.ts.map +1 -1
- package/components/query-builders/query-builder/query-builder.component.d.ts.map +1 -1
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts +1 -0
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts.map +1 -1
- package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts +3 -0
- package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts.map +1 -1
- package/components/statemachines/models/constants.d.ts +5 -1
- package/components/statemachines/models/constants.d.ts.map +1 -1
- package/components/statemachines/models/enums.d.ts +4 -0
- package/components/statemachines/models/enums.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts +3 -0
- package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts +28 -0
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts.map +1 -0
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.ngfactory.d.ts.map +1 -0
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts +3 -1
- package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts +3 -1
- package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts +6 -4
- package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts +3 -3
- package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts.map +1 -1
- package/components/user-picker/user-picker.component.d.ts +8 -2
- package/components/user-picker/user-picker.component.d.ts.map +1 -1
- package/components/workflow/models/models.d.ts +8 -8
- package/components/workflow/models/models.d.ts.map +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts.map +1 -1
- package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +3 -6
- package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts.map +1 -1
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts +3 -3
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts.map +1 -1
- package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts +1 -0
- package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts.map +1 -1
- package/configs/component-context.constant.d.ts +1 -0
- package/configs/component-context.constant.d.ts.map +1 -1
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts +8 -3
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts.map +1 -1
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts +2 -0
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts.map +1 -1
- package/congviec/congviec/congviec.component.d.ts.map +1 -1
- package/congviec/congviec/services/congviec-dinhkem.service.d.ts +8 -0
- package/congviec/congviec/services/congviec-dinhkem.service.d.ts.map +1 -1
- package/congviec/congviec/services/congviec.service.d.ts.map +1 -1
- package/esm2015/classes/base/data-form-base.js +6 -3
- package/esm2015/classes/base/data-list-base.js +13 -3
- package/esm2015/classes/form-schema.js +1 -1
- package/esm2015/components/crud/crud-form/crud-form.component.js +2 -1
- package/esm2015/components/crud/crud-list/crud-list.component.js +6 -2
- package/esm2015/components/entity-permission/services.cs/entity-permission.service.js +8 -5
- package/esm2015/components/file-explorer/file-manager/file-manager.component.js +17 -10
- package/esm2015/components/file-explorer/services/file-data.service.js +15 -15
- package/esm2015/components/query-builders/query-builder/query-builder.component.js +24 -7
- package/esm2015/components/query-builders/query-builder-group/query-builder-group.component.js +6 -2
- package/esm2015/components/query-builders/query-builder-rule/query-builder-rule.component.js +39 -3
- package/esm2015/components/share-link-by-permission/share-link-by-permission.component.js +2 -2
- package/esm2015/components/statemachines/models/constants.js +9 -4
- package/esm2015/components/statemachines/models/enums.js +6 -1
- package/esm2015/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.js +9 -5
- package/esm2015/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.js +19 -6
- package/esm2015/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.js +179 -0
- package/esm2015/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.js +32 -1
- package/esm2015/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.js +32 -1
- package/esm2015/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.js +39 -8
- package/esm2015/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.js +19 -7
- package/esm2015/components/statemachines/statemachines-designer/statemachines-designer.component.js +1 -1
- package/esm2015/components/statemachines/utils/utils.js +6 -6
- package/esm2015/components/tn-app-help/tn-app-help.component.js +1 -1
- package/esm2015/components/tn-app-notification/tn-app-notification.component.js +2 -2
- package/esm2015/components/user-picker/user-picker.component.js +47 -6
- package/esm2015/components/workflow/models/models.js +1 -7
- package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js +39 -42
- package/esm2015/components/workflow/process-workflow-target/process-workflow-target.component.js +7 -40
- package/esm2015/components/workflow/workflow-history-new/workflow-history-new.component.js +10 -12
- package/esm2015/components/workflow/workflow-setting-new/workflow-setting-new.component.js +67 -10
- package/esm2015/configs/component-context.constant.js +3 -2
- package/esm2015/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.js +50 -14
- package/esm2015/congviec/congviec/congviec-form/congviec-form.component.js +24 -12
- package/esm2015/congviec/congviec/congviec.component.js +7 -6
- package/esm2015/congviec/congviec/services/congviec-dinhkem.service.js +57 -1
- package/esm2015/congviec/congviec/services/congviec.service.js +3 -3
- package/esm2015/services/base.service.js +4 -1
- package/esm2015/services/dm-chucvu.service.js +28 -0
- package/esm2015/services/role.service.js +1 -1
- package/esm2015/tnx-shared.js +69 -67
- package/esm2015/tnx-shared.module.js +3 -1
- package/fesm2015/tnx-shared.js +776 -220
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/services/base.service.d.ts +1 -0
- package/services/base.service.d.ts.map +1 -1
- package/services/dm-chucvu.service.d.ts +12 -0
- package/services/dm-chucvu.service.d.ts.map +1 -0
- package/services/dm-chucvu.service.ngfactory.d.ts.map +1 -0
- package/tnx-shared.d.ts +68 -66
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -1
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
|
@@ -395,7 +395,8 @@
|
|
|
395
395
|
MENU_CHANGED: 'MENU_CHANGED',
|
|
396
396
|
ADVANCE_SEARCH_INIT_WITHOUT_UPDATE_ROUTER: 'ADVANCE_SEARCH_INIT_WITHOUT_UPDATE_ROUTER',
|
|
397
397
|
SHOW_WAIT_BOX: 'SHOW_WAIT_BOX',
|
|
398
|
-
SHOW_REJECT_CONFIRM: 'SHOW_REJECT_CONFIRM'
|
|
398
|
+
SHOW_REJECT_CONFIRM: 'SHOW_REJECT_CONFIRM',
|
|
399
|
+
GAN_ENTITY_SANG_CONG_VIEC: 'GAN_ENTITY_SANG_CONG_VIEC'
|
|
399
400
|
};
|
|
400
401
|
ComCtxConstants.ROOT_USMART = {
|
|
401
402
|
SHOW_CONFIG_DATA_DEFAULT: 'SHOW_CONFIG_DATA_DEFAULT',
|
|
@@ -6952,6 +6953,9 @@
|
|
|
6952
6953
|
BaseService.prototype.processWorkflow = function (id, actionCode, data) {
|
|
6953
6954
|
return this.defaultPost(this.serviceUri + "/ProcessWorkflow/" + id + "/" + actionCode, data);
|
|
6954
6955
|
};
|
|
6956
|
+
BaseService.prototype.getUserInProcessForm = function (workflowCode, stateCode, actionCode, itemId) {
|
|
6957
|
+
return this.defaultPost(this.serviceUri + "/GetUserInProcessFormBase/" + workflowCode + "/" + stateCode + "/" + actionCode + "/" + itemId, {});
|
|
6958
|
+
};
|
|
6955
6959
|
BaseService.prototype.handleError = function (error, injector) {
|
|
6956
6960
|
var commonService = injector.get(CommonService);
|
|
6957
6961
|
return commonService.handleError(error, injector);
|
|
@@ -10304,10 +10308,10 @@
|
|
|
10304
10308
|
var CongViecService = /** @class */ (function (_super) {
|
|
10305
10309
|
__extends(CongViecService, _super);
|
|
10306
10310
|
function CongViecService(http, injector, _moduleConfigService) {
|
|
10307
|
-
var _this = _super.call(this, http, injector, _moduleConfigService.getConfig().environment.apiDomain.congviecEndpoint + "/" + _moduleConfigService.getConfig().environment.apiVersion + "/
|
|
10311
|
+
var _this = _super.call(this, http, injector, _moduleConfigService.getConfig().environment.apiDomain.congviecEndpoint + "/" + _moduleConfigService.getConfig().environment.apiVersion + "/CongViec_Chinh") || this;
|
|
10308
10312
|
_this._moduleConfigService = _moduleConfigService;
|
|
10309
10313
|
_this.serviceCode = 'congviec';
|
|
10310
|
-
_this.entityName = '
|
|
10314
|
+
_this.entityName = 'CongViec_Chinh';
|
|
10311
10315
|
_this.objectName = 'công việc';
|
|
10312
10316
|
_this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.congviecEndpoint;
|
|
10313
10317
|
return _this;
|
|
@@ -14107,6 +14111,7 @@
|
|
|
14107
14111
|
}
|
|
14108
14112
|
if (schema instanceof TitleSchema
|
|
14109
14113
|
|| schema instanceof LabelSchema) {
|
|
14114
|
+
schema.showLabel = false;
|
|
14110
14115
|
if (!schema.field) {
|
|
14111
14116
|
schema.field = this._commonService.guid();
|
|
14112
14117
|
}
|
|
@@ -16770,7 +16775,8 @@
|
|
|
16770
16775
|
defaultValue: defaultValue,
|
|
16771
16776
|
valueField: 'code',
|
|
16772
16777
|
displayField: 'title',
|
|
16773
|
-
mdWidth: 12,
|
|
16778
|
+
mdWidth: this.mdWidthWorkflow || 12,
|
|
16779
|
+
enableCaching: false,
|
|
16774
16780
|
hiddenCheck: function (rootModel) { return !rootModel || rootModel.createTaskInstead; }
|
|
16775
16781
|
}));
|
|
16776
16782
|
if (this.parentSetting.workflowSettingNew
|
|
@@ -17260,10 +17266,13 @@
|
|
|
17260
17266
|
if (resultValidateFormTask) {
|
|
17261
17267
|
this.model.data.itemCongViec = taskForm.model.data;
|
|
17262
17268
|
}
|
|
17263
|
-
// reset field _WorkflowCode để backend biết được chạy quy trình theo kiểu nào
|
|
17264
|
-
this.model.data._WorkflowCode = null;
|
|
17265
17269
|
_a.label = 2;
|
|
17266
|
-
case 2:
|
|
17270
|
+
case 2:
|
|
17271
|
+
if (this.model.data.createTaskInstead) {
|
|
17272
|
+
// reset field _WorkflowCode để backend không chạy quy trình bản ghi
|
|
17273
|
+
this.model.data._WorkflowCode = null;
|
|
17274
|
+
}
|
|
17275
|
+
return [4 /*yield*/, this.createConfirmIfRequire()];
|
|
17267
17276
|
case 3:
|
|
17268
17277
|
confirmed = _a.sent();
|
|
17269
17278
|
if (!confirmed)
|
|
@@ -18725,6 +18734,7 @@
|
|
|
18725
18734
|
_this.onProcessedWorkflow = new i0.EventEmitter();
|
|
18726
18735
|
_this.onRollbackedWorkflow = new i0.EventEmitter();
|
|
18727
18736
|
_this.onChangedStatusWorkflow = new i0.EventEmitter();
|
|
18737
|
+
_this.onShowFormStartWorkflow = new i0.EventEmitter();
|
|
18728
18738
|
_this.tableReady = new rxjs.Subject();
|
|
18729
18739
|
_this.tableReadySource$ = _this.tableReady.asObservable();
|
|
18730
18740
|
_this.checkedAll = null;
|
|
@@ -19686,6 +19696,7 @@
|
|
|
19686
19696
|
formState: exports.FormState.ADD,
|
|
19687
19697
|
data: {
|
|
19688
19698
|
checkUniqueTaskForEntity: true,
|
|
19699
|
+
autoNextStep: workflowSetting.autoNextStep,
|
|
19689
19700
|
idLoaiCongViec: workflowSetting.idLoaiCongViecDefault,
|
|
19690
19701
|
serviceCode: this.setting.baseService.serviceCode,
|
|
19691
19702
|
entity: this.setting.baseService.entityName,
|
|
@@ -19694,6 +19705,7 @@
|
|
|
19694
19705
|
}
|
|
19695
19706
|
};
|
|
19696
19707
|
this.congViecModel.showEditForm = true;
|
|
19708
|
+
this.onShowFormStartWorkflow.emit(rowData);
|
|
19697
19709
|
return [3 /*break*/, 4];
|
|
19698
19710
|
case 3:
|
|
19699
19711
|
if (workflowSetting.workflows.length == 1) {
|
|
@@ -21743,18 +21755,22 @@
|
|
|
21743
21755
|
onStartedWorkflow: [{ type: i0.Output }],
|
|
21744
21756
|
onProcessedWorkflow: [{ type: i0.Output }],
|
|
21745
21757
|
onRollbackedWorkflow: [{ type: i0.Output }],
|
|
21746
|
-
onChangedStatusWorkflow: [{ type: i0.Output }]
|
|
21758
|
+
onChangedStatusWorkflow: [{ type: i0.Output }],
|
|
21759
|
+
onShowFormStartWorkflow: [{ type: i0.Output }]
|
|
21747
21760
|
};
|
|
21748
21761
|
|
|
21749
21762
|
var EntityPermissionService = /** @class */ (function (_super) {
|
|
21750
21763
|
__extends(EntityPermissionService, _super);
|
|
21751
21764
|
function EntityPermissionService(http, injector, _moduleConfigService) {
|
|
21752
|
-
var _this = _super.call(this, http, injector, _moduleConfigService.getConfig().environment.apiDomain.userOrgEndpoint + "/EntityPermission") || this;
|
|
21765
|
+
var _this = _super.call(this, http, injector, _moduleConfigService.getConfig().environment.apiDomain.userOrgEndpoint + "/" + _moduleConfigService.getConfig().environment.apiVersion + "/EntityPermission") || this;
|
|
21753
21766
|
_this.serviceManagers = {};
|
|
21754
21767
|
_this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.userOrgEndpoint;
|
|
21755
21768
|
_this._moduleConfig = _moduleConfigService.getConfig();
|
|
21756
21769
|
return _this;
|
|
21757
21770
|
}
|
|
21771
|
+
EntityPermissionService.prototype.getEndpointByService = function (service) {
|
|
21772
|
+
return service.endPoint + "/" + this._moduleConfig.environment.apiVersion;
|
|
21773
|
+
};
|
|
21758
21774
|
EntityPermissionService.prototype.registerService = function (entityName, service) {
|
|
21759
21775
|
this.serviceManagers[entityName] = service;
|
|
21760
21776
|
};
|
|
@@ -21763,15 +21779,15 @@
|
|
|
21763
21779
|
if (service == undefined) {
|
|
21764
21780
|
(this._injector.get(NotifierService)).showWarning('Bạn chưa đăng ký base service cho entity permission service');
|
|
21765
21781
|
}
|
|
21766
|
-
return this.defaultPost(service
|
|
21782
|
+
return this.defaultPost(this.getEndpointByService(service) + "/EntityPermission/GetPermission/" + service.entityName, {});
|
|
21767
21783
|
};
|
|
21768
21784
|
EntityPermissionService.prototype.savePermission = function (tableName, data) {
|
|
21769
21785
|
var service = this.serviceManagers[tableName];
|
|
21770
|
-
return this.defaultPost(service
|
|
21786
|
+
return this.defaultPost(this.getEndpointByService(service) + "/EntityPermission/SavePermission/" + service.entityName, data);
|
|
21771
21787
|
};
|
|
21772
21788
|
EntityPermissionService.prototype.removePermission = function (tableName) {
|
|
21773
21789
|
var service = this.serviceManagers[tableName];
|
|
21774
|
-
return this.defaultPost(service
|
|
21790
|
+
return this.defaultPost(this.getEndpointByService(service) + "/EntityPermission/RemovePermission/" + service.entityName, {});
|
|
21775
21791
|
};
|
|
21776
21792
|
return EntityPermissionService;
|
|
21777
21793
|
}(BaseService));
|
|
@@ -22446,7 +22462,8 @@
|
|
|
22446
22462
|
});
|
|
22447
22463
|
});
|
|
22448
22464
|
};
|
|
22449
|
-
DataListBase.prototype._copyLink = function (rowData) {
|
|
22465
|
+
DataListBase.prototype._copyLink = function (rowData, showNoti) {
|
|
22466
|
+
if (showNoti === void 0) { showNoti = true; }
|
|
22450
22467
|
return __awaiter(this, void 0, void 0, function () {
|
|
22451
22468
|
var path;
|
|
22452
22469
|
return __generator(this, function (_a) {
|
|
@@ -22455,12 +22472,26 @@
|
|
|
22455
22472
|
case 1:
|
|
22456
22473
|
path = _a.sent();
|
|
22457
22474
|
this._commonService.copyByStorage(path);
|
|
22458
|
-
|
|
22475
|
+
if (showNoti) {
|
|
22476
|
+
this._notifierService.showSuccess('Đã sao chép liên kết');
|
|
22477
|
+
}
|
|
22459
22478
|
return [2 /*return*/];
|
|
22460
22479
|
}
|
|
22461
22480
|
});
|
|
22462
22481
|
});
|
|
22463
22482
|
};
|
|
22483
|
+
DataListBase.prototype._onShowFormStartWorkflow = function (rowData) {
|
|
22484
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
22485
|
+
var _this = this;
|
|
22486
|
+
return __generator(this, function (_a) {
|
|
22487
|
+
// Fire event gắn link công việc
|
|
22488
|
+
this._copyLink(rowData, false).then(function (x) {
|
|
22489
|
+
_this.rootContext.fireReplayEvent(ComCtxConstants.ROOT.GAN_ENTITY_SANG_CONG_VIEC);
|
|
22490
|
+
});
|
|
22491
|
+
return [2 /*return*/];
|
|
22492
|
+
});
|
|
22493
|
+
});
|
|
22494
|
+
};
|
|
22464
22495
|
DataListBase.prototype.getCopyPath = function (rowData) {
|
|
22465
22496
|
return __awaiter(this, void 0, void 0, function () {
|
|
22466
22497
|
var locationStrategy, state, baseHref, path, displayField, linkColumn;
|
|
@@ -33107,10 +33138,14 @@
|
|
|
33107
33138
|
&& (this.value == null || this.value == '')) {
|
|
33108
33139
|
return null;
|
|
33109
33140
|
}
|
|
33141
|
+
var value = this.value;
|
|
33142
|
+
if (this.funcGetValue) {
|
|
33143
|
+
value = this.funcGetValue(this);
|
|
33144
|
+
}
|
|
33110
33145
|
return new Filter({
|
|
33111
33146
|
field: this.field,
|
|
33112
33147
|
operator: this.compareType,
|
|
33113
|
-
value: JSON.stringify(
|
|
33148
|
+
value: JSON.stringify(value)
|
|
33114
33149
|
});
|
|
33115
33150
|
};
|
|
33116
33151
|
QueryRule.prototype.isGroup = function () {
|
|
@@ -33365,14 +33400,26 @@
|
|
|
33365
33400
|
itemSourceField.controlType = 'datetime';
|
|
33366
33401
|
}
|
|
33367
33402
|
else if (schema instanceof NumberRangeControlSchema) {
|
|
33368
|
-
|
|
33403
|
+
var operators = itemSourceField.control['operators'];
|
|
33404
|
+
if (!operators || !operators.length) {
|
|
33405
|
+
itemSourceField.operators = operatorDateAndNumber;
|
|
33406
|
+
}
|
|
33407
|
+
else {
|
|
33408
|
+
itemSourceField.operators = operators;
|
|
33409
|
+
}
|
|
33369
33410
|
itemSourceField.controlType = 'number';
|
|
33370
33411
|
}
|
|
33371
33412
|
else if (schema instanceof DropdownControlSchema || schema instanceof CheckBoxListControlSchema) {
|
|
33372
|
-
|
|
33373
|
-
|
|
33374
|
-
|
|
33375
|
-
|
|
33413
|
+
var operators = itemSourceField.control['operators'];
|
|
33414
|
+
if (!operators || !operators.length) {
|
|
33415
|
+
itemSourceField.operators = [
|
|
33416
|
+
{ id: exports.Operator.in, ten: 'Nằm trong' },
|
|
33417
|
+
{ id: exports.Operator.notIn, ten: 'Không nằm trong' }
|
|
33418
|
+
];
|
|
33419
|
+
}
|
|
33420
|
+
else {
|
|
33421
|
+
itemSourceField.operators = __spread(operators);
|
|
33422
|
+
}
|
|
33376
33423
|
if (schema.hasOperatorCanBo) {
|
|
33377
33424
|
itemSourceField.operators.push({
|
|
33378
33425
|
id: exports.Operator.isCurrentCanBo, ten: 'Là cán bộ hiện tại', _disabled: true
|
|
@@ -33402,6 +33449,11 @@
|
|
|
33402
33449
|
];
|
|
33403
33450
|
itemSourceField.controlType = 'autocomplete-picker';
|
|
33404
33451
|
}
|
|
33452
|
+
else if (schema instanceof CustomControlSchema) {
|
|
33453
|
+
var operators = itemSourceField.control['operators'];
|
|
33454
|
+
itemSourceField.operators = operators ? operators : [];
|
|
33455
|
+
itemSourceField.controlType = 'custom';
|
|
33456
|
+
}
|
|
33405
33457
|
else { // Là textbox
|
|
33406
33458
|
itemSourceField.operators = [
|
|
33407
33459
|
{ id: exports.Operator.equal, ten: 'Bằng' },
|
|
@@ -34895,6 +34947,10 @@
|
|
|
34895
34947
|
this.data.breadcrumbs = [];
|
|
34896
34948
|
this._dataSource = [];
|
|
34897
34949
|
};
|
|
34950
|
+
FileManagerComponent.prototype.setRootFolderId = function (rootFolderId) {
|
|
34951
|
+
this.rootFolderId = rootFolderId;
|
|
34952
|
+
this.data.currentFolderId = this.rootFolderId;
|
|
34953
|
+
};
|
|
34898
34954
|
FileManagerComponent.prototype.setDatasource = function (dataSource) {
|
|
34899
34955
|
if (dataSource === void 0) { dataSource = []; }
|
|
34900
34956
|
this._dataSource = dataSource;
|
|
@@ -35071,7 +35127,7 @@
|
|
|
35071
35127
|
command: function (event) {
|
|
35072
35128
|
_this.openObject(item);
|
|
35073
35129
|
},
|
|
35074
|
-
visible: this._deviceDetectorService.isDesktop()
|
|
35130
|
+
visible: (this._deviceDetectorService.isDesktop() && !(this.layout === exports.EnumFileLayout.SIMPLE && this.readonly))
|
|
35075
35131
|
},
|
|
35076
35132
|
{
|
|
35077
35133
|
label: 'Ký số cá nhân (SIM)',
|
|
@@ -35079,33 +35135,35 @@
|
|
|
35079
35135
|
command: function () {
|
|
35080
35136
|
_this.signKySimFile(item);
|
|
35081
35137
|
},
|
|
35082
|
-
visible:
|
|
35138
|
+
visible: this._fileObjectService.isTypeFileKySo(item.name)
|
|
35083
35139
|
},
|
|
35084
35140
|
{
|
|
35085
35141
|
label: 'Ký số cá nhân (USB)', icon: 'fas fa-signature',
|
|
35086
35142
|
command: function () {
|
|
35087
35143
|
_this.signFile(item);
|
|
35088
35144
|
},
|
|
35089
|
-
visible:
|
|
35145
|
+
visible: this._fileObjectService.isTypeFileKySo(item.name)
|
|
35090
35146
|
},
|
|
35091
35147
|
{
|
|
35092
35148
|
label: 'Ký số đơn vị (USB)', icon: 'fas fa-signature',
|
|
35093
35149
|
command: function () {
|
|
35094
35150
|
_this.signFileDonVi(item);
|
|
35095
35151
|
},
|
|
35096
|
-
visible:
|
|
35152
|
+
visible: this._fileObjectService.isTypeFileKySo(item.name)
|
|
35097
35153
|
},
|
|
35098
35154
|
{
|
|
35099
35155
|
label: 'Tải về', icon: 'fas fa-download',
|
|
35100
35156
|
command: function () {
|
|
35101
35157
|
_this.download(item);
|
|
35102
|
-
}
|
|
35158
|
+
},
|
|
35159
|
+
visible: !(this.layout === exports.EnumFileLayout.SIMPLE && this.readonly)
|
|
35103
35160
|
},
|
|
35104
35161
|
{
|
|
35105
35162
|
label: 'Sao chép đường dẫn', icon: 'fas fa-link',
|
|
35106
35163
|
command: function () {
|
|
35107
35164
|
_this.copyDownloadLink(item);
|
|
35108
|
-
}
|
|
35165
|
+
},
|
|
35166
|
+
visible: !(this.layout === exports.EnumFileLayout.SIMPLE && this.readonly)
|
|
35109
35167
|
},
|
|
35110
35168
|
{
|
|
35111
35169
|
label: 'Đổi tên', icon: 'fas fa-eraser',
|
|
@@ -35118,7 +35176,8 @@
|
|
|
35118
35176
|
label: 'Xem các phiên bản khác', icon: 'fas fa-history',
|
|
35119
35177
|
command: function () {
|
|
35120
35178
|
_this.openFileVersions(item);
|
|
35121
|
-
}
|
|
35179
|
+
},
|
|
35180
|
+
visible: !(this.layout === exports.EnumFileLayout.SIMPLE && this.readonly)
|
|
35122
35181
|
},
|
|
35123
35182
|
{
|
|
35124
35183
|
label: 'Xóa tệp tin', icon: 'far fa-trash-alt',
|
|
@@ -35855,7 +35914,7 @@
|
|
|
35855
35914
|
{ type: i0.Component, args: [{
|
|
35856
35915
|
// tslint:disable-next-line: component-selector
|
|
35857
35916
|
selector: 'file-manager',
|
|
35858
|
-
template: "<div *ngIf=\"layout == _layout.LIST\" class=\"full-layout\">\r\n <div class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" pButton pRipple type=\"button\" pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\"\r\n tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\" label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\"\r\n (click)=\"createFolder()\">\r\n </button>\r\n\r\n <button pButton icon=\"pi pi-cloud-upload\" pTooltip=\"T\u1EA3i t\u1EC7p tin t\u1EEB m\u00E1y t\u00EDnh c\u1EE7a b\u1EA1n\"\r\n tooltipPosition=\"top\" type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i l\u00EAn\"\r\n (click)=\"selectFile()\"></button>\r\n\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n\r\n <button *ngIf=\"canSelect()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" icon=\"fas fa-arrows-alt\"\r\n iconPos=\"left\" label=\"Di chuy\u1EC3n\" (click)=\"moveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn t\u1EDBi \u0111\u00E2y\" tooltipPosition=\"top\" icon=\"far fa-hand-paper\"\r\n iconPos=\"left\" label=\"\u0110\u1EB7t t\u1EA1i \u0111\u00E2y\" (click)=\"setMoveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" icon=\"pi pi-undo\" pButton class=\"p-button-text p-button-secondary\"\r\n type=\"button\" pTooltip=\"B\u1ECF di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" label=\"B\u1ECF qua\"\r\n (click)=\"cancelMove()\">\r\n </button>\r\n\r\n <button *ngIf=\"hasSelect()\" pButton type=\"button\"\r\n pTooltip=\"{{ 'X\u00F3a th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn' | translate }}\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n iconPos=\"left\" class=\"p-button-text p-button-danger\" label=\"X\u00F3a\"\r\n (click)=\"deleteMutiple(model.selectedItems)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly && hasSelect()\" class=\"p-button-text p-button-secondary\" pButton type=\"button\"\r\n pTooltip=\"N\u00E9n & t\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"fas fa-file-archive\" iconPos=\"left\" label=\"T\u1EA3i v\u1EC1\"\r\n (click)=\"downloadMultiple()\">\r\n </button>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"fm-grid\">\r\n <crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"_dataSource\"\r\n [disableKeypressControl]=\"true\" [showScrollBar]=\"false\" class=\"--auto-height-content --no-wrapper-padding\"\r\n [widthFunctionColumn]=\"'8.2rem'\" (onReload)=\"_triggerProcessData($event)\"\r\n (onRowSelect)=\"onRowSelect($event)\">\r\n\r\n <ng-template #explorerItem let-rowData='rowData' let-col='col'>\r\n <span (click)=\"openObject(rowData)\" class=\"pull-left file-ex-icon\"\r\n [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n\r\n <span (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n {{rowData.name}}\r\n </span>\r\n <span *ngIf=\"rowData.signatures\" class=\"pull-right signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #fileSize let-rowData='rowData'>\r\n <div *ngIf=\"rowData.isFile\">{{rowData.fileSize | fileSize}}</div>\r\n </ng-template>\r\n\r\n <ng-template #function let-rowData=\"rowData\" let-crudList=\"crudList\">\r\n <div class=\"function-list\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" pButton type=\"button\"\r\n tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\" (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\" pButton\r\n type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n (click)=\"deleteFile(rowData)\"></button>\r\n\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"pi pi-cloud-download\"\r\n (click)=\"download(rowData)\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"layout == _layout.SIMPLE\" class=\"not-full-layout\" [class.readonly]=\"readonly\">\r\n <div *ngIf=\"!readonly || data.breadcrumbs.length > 0\" class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" (click)=\"createFolder()\" pButton pRipple type=\"button\"\r\n pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\" tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\"\r\n label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\">\r\n </button>\r\n <button type=\"button\" pButton class=\"p-button-text p-button-info link-or-action\"\r\n icon=\"pi pi-cloud-upload\" (click)=\"selectFile()\" label=\"T\u1EA3i l\u00EAn\"></button>\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"nfl-grid\">\r\n <div *ngFor=\"let rowData of _dataSource; index as i\" class=\"nfl-item\">\r\n <div class=\"nfl-no\">\r\n {{i + 1}}.\r\n </div>\r\n\r\n <div class=\"nfl-name\">\r\n <span class=\"pull-left file-ex-icon\" [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n <!-- <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </a>\r\n <a (click)=\"openObject(rowData)\" class=\"file-ex-extension\">{{rowData.extension}}</a> -->\r\n\r\n <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </span>\r\n <span class=\"file-ex-extension\">{{rowData.extension}}</span>\r\n </a>\r\n </div>\r\n\r\n <div *ngIf=\"rowData.isFile\" class=\"nfl-version\">\r\n v{{rowData.currentFileVersion}}\r\n </div>\r\n\r\n <div class=\"nfl-function\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" (click)=\"onButtonClick(rowData)\"\r\n pButton type=\"button\" tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\"\r\n (click)=\"deleteFile(rowData)\" pButton type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\"\r\n icon=\"pi pi-trash\"></button>\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n (click)=\"download(rowData)\" pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\"\r\n icon=\"pi pi-cloud-download\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!_dataSource || !_dataSource.length\" class=\"nfl-no-item\">\r\n Ch\u01B0a c\u00F3 t\u00E0i li\u1EC7u \u0111\u01B0\u1EE3c t\u1EA3i l\u00EAn\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #breadCrumb>\r\n <div *ngIf=\"data.breadcrumbs.length > 0\" class=\"fm-toolbar-path\">\r\n <p-breadcrumb class=\"customBreadCrumb\" [model]=\"data.breadcrumbs\"></p-breadcrumb>\r\n </div>\r\n</ng-template>\r\n\r\n<p-fileUpload #fileControl [ngStyle]=\"{'display': 'none'}\" mode=\"basic\" [chooseLabel]=\"chooseLabel\" name=\"file\"\r\n [url]=\"apiUploadUrl\" [maxFileSize]=\"maxFileSize\" auto=\"true\"\r\n [invalidFileSizeMessageSummary]=\"invalidFileSizeMessageSummary\"\r\n [invalidFileSizeMessageDetail]=\"invalidFileSizeMessageDetail\"\r\n [invalidFileTypeMessageSummary]=\"invalidFileTypeMessageSummary\"\r\n [invalidFileTypeMessageDetail]=\"invalidFileTypeMessageDetail\"\r\n [invalidFileLimitMessageSummary]=\"invalidFileLimitMessageSummary\"\r\n [invalidFileLimitMessageDetail]=\"invalidFileLimitMessageDetail\" (onProgress)=\"onUploadProgress($event)\"\r\n (onBeforeUpload)=\"onBeforeUpload($event)\" (onSelect)=\"handleSelectFile($event)\" (onUpload)=\"onUploaded($event)\">\r\n</p-fileUpload>\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"data.itemsMenuFile\" styleClass=\"fm-contextMenu-panel\">\r\n</p-contextMenu>\r\n\r\n<!-- T\u1EA1o m\u1EDBi/ \u0111\u1ED5i t\u00EAn th\u01B0 m\u1EE5c -->\r\n<tn-dialog *ngIf=\"forms.createFolder.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.createFolder.header | translate\" [popupSize]=\"forms[formIds.createFolder].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.createFolder)\">\r\n <folder-form #formBase [parentModel]=\"model\" [parentContext]=\"context\"\r\n [model]=\"forms[formIds.createFolder].formData\" (onSaved)=\"onSavedForm(formIds.createFolder)\"\r\n (onCancel)=\"onCancelForm(formIds.createFolder)\">\r\n </folder-form>\r\n</tn-dialog>\r\n\r\n<!-- \u0110\u1ED5i t\u00EAn file -->\r\n<tn-dialog *ngIf=\"forms.renameFile.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.renameFile.header | translate\" [popupSize]=\"forms[formIds.renameFile].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.renameFile)\">\r\n <file-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"forms[formIds.renameFile].formData\"\r\n (onSaved)=\"onSavedForm(formIds.renameFile)\" (onCancel)=\"onCancelForm(formIds.renameFile)\">\r\n </file-form>\r\n</tn-dialog>\r\n\r\n<!-- Xem file tr\u1EF1c tuy\u1EBFn -->\r\n<file-viewer *ngIf=\"forms.fileViewer.show\" [parentModel]=\"model\" [parentContext]=\"context\" [readonly]=\"readonly\"\r\n [model]=\"forms.fileViewer.formData\" (onClose)=\"closeFileViewer()\">\r\n</file-viewer>\r\n\r\n<!-- Xem phi\u00EAn b\u1EA3n -->\r\n<tn-dialog *ngIf=\"forms.fileVersionList.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.fileVersionList.header | translate\" [popupSize]=\"forms[formIds.fileVersionList].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.fileVersionList)\">\r\n <file-version-list *ngIf=\"forms.fileVersionList.show\" [parentModel]=\"model\" [parentContext]=\"context\"\r\n [fileId]=\"forms[formIds.fileVersionList].fileId\" [readonly]=\"readonly\">\r\n </file-version-list>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showAttachLinkBox\" #dialog2 [maximizable]=\"false\" [header]=\"'Nh\u1EADp li\u00EAn k\u1EBFt' | translate\"\r\n [popupSize]=\"{ width: 600, height: 50}\" (onHide)=\"showAttachLinkBox = false; typedLink=''\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10\">\r\n <input #input type=\"text\" placeholder=\"Nh\u1EADp li\u00EAn k\u1EBFt sao ch\u00E9p t\u1EEB t\u1EC7p tin kh\u00E1c...\"\r\n (keyup.enter)=\"addAttachLink()\" pInputText [(ngModel)]=\"typedLink\" class=\"p-col-12\" />\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" (click)=\"addAttachLink()\" [disabled]=\"typedLink != ''? null : true\" pButton\r\n class=\"p-button-primary p-col-12\" label=\"Ok\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <after-view-checked (loaded)=\"focusInput(input)\"></after-view-checked>\r\n</tn-dialog>\r\n<!--\r\n\r\n<share-file *ngIf=\"forms.shareFile.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFile.formData\">\r\n</share-file>\r\n\r\n<share-folder *ngIf=\"forms.shareFolder.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFolder.formData\">\r\n</share-folder>\r\n -->\r\n\r\n<!-- Xem ch\u1EEF k\u00FD s\u1ED1 -->\r\n<tn-dialog *ngIf=\"forms.signatureDetail.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.signatureDetail.header | translate\" [popupSize]=\"forms[formIds.signatureDetail].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.signatureDetail)\">\r\n <signature-detail [parentModel]=\"model\" [parentContext]=\"context\">\r\n </signature-detail>\r\n</tn-dialog>\r\n<!--K\u00FD s\u1ED1 sim-->\r\n<tn-dialog *ngIf=\"forms.kySoSim.show\" #dialog [styleClass]=\"'address-form'\" [header]=\"forms.kySoSim.header | translate\"\r\n [popupSize]=\"forms.kySoSim.popupSize\" [showFooter]=\"true\" (onHide)=\"onCancelForm(formIds.kySoSim)\">\r\n <app-file-ky-so-sim #fileKySoSim [parentModel]=\"model\" [parentContext]=\"context\">\r\n </app-file-ky-so-sim>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"fas fa-images\" [disabled]=\"model.submitting\" class=\"p-button-text\"\r\n [label]=\"'Ch\u1ECDn ch\u1EEF k\u00FD' | translate\" (click)=\"chonChuKy()\"></button>\r\n <button type=\"button\" pButton icon=\"fas fa-signature\" class=\"p-button-text ui-button-success\"\r\n [disabled]=\"model.submitting\" [label]=\"'Th\u1EF1c hi\u1EC7n k\u00FD' | translate\" (click)=\"kySo()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"forms.kySoSim.show=false\"></button>\r\n </ng-template>\r\n</tn-dialog>",
|
|
35917
|
+
template: "<div *ngIf=\"layout == _layout.LIST\" class=\"full-layout\">\r\n <div class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" pButton pRipple type=\"button\" pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\"\r\n tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\" label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\"\r\n (click)=\"createFolder()\">\r\n </button>\r\n\r\n <button pButton icon=\"pi pi-cloud-upload\" pTooltip=\"T\u1EA3i t\u1EC7p tin t\u1EEB m\u00E1y t\u00EDnh c\u1EE7a b\u1EA1n\"\r\n tooltipPosition=\"top\" type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i l\u00EAn\"\r\n (click)=\"selectFile()\"></button>\r\n\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n\r\n <button *ngIf=\"canSelect()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" icon=\"fas fa-arrows-alt\"\r\n iconPos=\"left\" label=\"Di chuy\u1EC3n\" (click)=\"moveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" class=\"p-button-text p-button-success\" pButton type=\"button\"\r\n pTooltip=\"Di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn t\u1EDBi \u0111\u00E2y\" tooltipPosition=\"top\" icon=\"far fa-hand-paper\"\r\n iconPos=\"left\" label=\"\u0110\u1EB7t t\u1EA1i \u0111\u00E2y\" (click)=\"setMoveExplorerItems()\">\r\n </button>\r\n\r\n <button *ngIf=\"canSetMove()\" icon=\"pi pi-undo\" pButton class=\"p-button-text p-button-secondary\"\r\n type=\"button\" pTooltip=\"B\u1ECF di chuy\u1EC3n th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\" label=\"B\u1ECF qua\"\r\n (click)=\"cancelMove()\">\r\n </button>\r\n\r\n <button *ngIf=\"hasSelect()\" pButton type=\"button\"\r\n pTooltip=\"{{ 'X\u00F3a th\u01B0 m\u1EE5c/t\u1EC7p tin \u0111\u00E3 ch\u1ECDn' | translate }}\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n iconPos=\"left\" class=\"p-button-text p-button-danger\" label=\"X\u00F3a\"\r\n (click)=\"deleteMutiple(model.selectedItems)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly && hasSelect()\" class=\"p-button-text p-button-secondary\" pButton type=\"button\"\r\n pTooltip=\"N\u00E9n & t\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"fas fa-file-archive\" iconPos=\"left\" label=\"T\u1EA3i v\u1EC1\"\r\n (click)=\"downloadMultiple()\">\r\n </button>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"fm-grid\">\r\n <crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"_dataSource\"\r\n [disableKeypressControl]=\"true\" [showScrollBar]=\"false\" class=\"--auto-height-content --no-wrapper-padding\"\r\n [widthFunctionColumn]=\"'8.2rem'\" (onReload)=\"_triggerProcessData($event)\"\r\n (onRowSelect)=\"onRowSelect($event)\">\r\n\r\n <ng-template #explorerItem let-rowData='rowData' let-col='col'>\r\n <span (click)=\"openObject(rowData)\" class=\"pull-left file-ex-icon\"\r\n [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n\r\n <span (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n {{rowData.name}}\r\n </span>\r\n <span *ngIf=\"rowData.signatures\" class=\"pull-right signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #fileSize let-rowData='rowData'>\r\n <div *ngIf=\"rowData.isFile\">{{rowData.fileSize | fileSize}}</div>\r\n </ng-template>\r\n\r\n <ng-template #function let-rowData=\"rowData\" let-crudList=\"crudList\">\r\n <div class=\"function-list\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" pButton type=\"button\"\r\n tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\" (click)=\"onButtonClick(rowData)\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\" pButton\r\n type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" icon=\"pi pi-trash\"\r\n (click)=\"deleteFile(rowData)\"></button>\r\n\r\n\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </ng-container>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\" icon=\"pi pi-cloud-download\"\r\n (click)=\"download(rowData)\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n </div>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"layout == _layout.SIMPLE\" class=\"not-full-layout\" [class.readonly]=\"readonly\">\r\n <div *ngIf=\"!readonly || data.breadcrumbs.length > 0\" class=\"fm-toolbar\">\r\n <div class=\"fm-toolbar-buttons\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button *ngIf=\"!hiddenCreateFolder\" (click)=\"createFolder()\" pButton pRipple type=\"button\"\r\n pTooltip=\"T\u1EA1o th\u01B0 m\u1EE5c m\u1EDBi\" tooltipPosition=\"top\" icon=\"pi pi-folder\" class=\"p-button-text\"\r\n label=\"T\u1EA1o th\u01B0 m\u1EE5c\" iconPos=\"left\">\r\n </button>\r\n <button type=\"button\" pButton class=\"p-button-text p-button-info link-or-action\"\r\n icon=\"pi pi-cloud-upload\" (click)=\"selectFile()\" label=\"T\u1EA3i l\u00EAn\"></button>\r\n <button pButton icon=\"pi pi-link\" pTooltip=\"T\u1EA3i t\u1EEB li\u00EAn k\u1EBFt trong h\u1EC7 th\u1ED1ng\" tooltipPosition=\"top\"\r\n type=\"button\" class=\"p-button-text p-button-primary\" label=\"T\u1EA3i li\u00EAn k\u1EBFt\"\r\n (click)=\"showAttachLinkBox = true\"></button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"breadCrumb\"></ng-container>\r\n </div>\r\n\r\n <div class=\"nfl-grid\">\r\n <div *ngFor=\"let rowData of _dataSource; index as i\" class=\"nfl-item\">\r\n <div class=\"nfl-no\">\r\n {{i + 1}}.\r\n </div>\r\n\r\n <div class=\"nfl-name\">\r\n <span class=\"pull-left file-ex-icon\" [innerHTML]=\"rowData.name | fileIcon : !rowData.isFile\">\r\n </span>\r\n <!-- <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>{{rowData.nameWithoutExtension}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </a>\r\n <a (click)=\"openObject(rowData)\" class=\"file-ex-extension\">{{rowData.extension}}</a> -->\r\n\r\n <a (click)=\"openObject(rowData)\" class=\"{{rowData.class}} file-ex-name\">\r\n <span>\r\n <span>{{rowData.name}}</span>\r\n <div *ngIf=\"rowData.signatures\" class=\"signature\" pTooltip=\"Xem chi ti\u1EBFt k\u00FD s\u1ED1\"\r\n tooltipPosition=\"top\" (click)=\"viewListSign($event, rowData.signatures)\">\r\n <i class=\"fas fa-signature\"></i>\r\n </div>\r\n </span>\r\n <!-- <span class=\"file-ex-extension\">{{rowData.extension}}</span> -->\r\n </a>\r\n </div>\r\n\r\n <div *ngIf=\"rowData.isFile\" class=\"nfl-version\">\r\n v{{rowData.currentFileVersion}}\r\n </div>\r\n\r\n <div class=\"nfl-function\">\r\n <ng-container *ngIf=\"!readonly\">\r\n <button class=\"p-button-rounded p-button-text link-or-action\" (click)=\"onButtonClick(rowData)\"\r\n pButton type=\"button\" tooltipPosition=\"top\" pTooltip=\"{{getButtonTooltip(rowData)}}\"\r\n icon=\"{{getButtonIcon(rowData)}}\"></button>\r\n\r\n <button class=\"p-button-danger p-button-rounded p-button-text link-or-action\"\r\n (click)=\"deleteFile(rowData)\" pButton type=\"button\" pTooltip=\"X\u00F3a\" tooltipPosition=\"top\"\r\n icon=\"pi pi-trash\"></button>\r\n </ng-container>\r\n\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n (click)=\"download(rowData)\" pButton type=\"button\" pTooltip=\"T\u1EA3i v\u1EC1\" tooltipPosition=\"top\"\r\n icon=\"pi pi-cloud-download\"></button>\r\n <button *ngIf=\"readonly\" class=\"p-button-secondary p-button-rounded p-button-text link-or-action\"\r\n pButton type=\"button\" pTooltip=\"Sao ch\u00E9p \u0111\u01B0\u1EDDng d\u1EABn\" tooltipPosition=\"top\" icon=\"pi pi-link\"\r\n (click)=\"copyDownloadLink(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-ellipsis-v\"\r\n class=\"link-or-action p-button-text p-button-rounded\" pTooltip=\"Th\u00EAm\" tooltipPosition=\"top\"\r\n (click)=\"showContextMenu($event, rowData)\"></button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!_dataSource || !_dataSource.length\" class=\"nfl-no-item\">\r\n Ch\u01B0a c\u00F3 t\u00E0i li\u1EC7u \u0111\u01B0\u1EE3c t\u1EA3i l\u00EAn\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #breadCrumb>\r\n <div *ngIf=\"data.breadcrumbs.length > 0\" class=\"fm-toolbar-path\">\r\n <p-breadcrumb class=\"customBreadCrumb\" [model]=\"data.breadcrumbs\"></p-breadcrumb>\r\n </div>\r\n</ng-template>\r\n\r\n<p-fileUpload #fileControl [ngStyle]=\"{'display': 'none'}\" mode=\"basic\" [chooseLabel]=\"chooseLabel\" name=\"file\"\r\n [url]=\"apiUploadUrl\" [maxFileSize]=\"maxFileSize\" auto=\"true\"\r\n [invalidFileSizeMessageSummary]=\"invalidFileSizeMessageSummary\"\r\n [invalidFileSizeMessageDetail]=\"invalidFileSizeMessageDetail\"\r\n [invalidFileTypeMessageSummary]=\"invalidFileTypeMessageSummary\"\r\n [invalidFileTypeMessageDetail]=\"invalidFileTypeMessageDetail\"\r\n [invalidFileLimitMessageSummary]=\"invalidFileLimitMessageSummary\"\r\n [invalidFileLimitMessageDetail]=\"invalidFileLimitMessageDetail\" (onProgress)=\"onUploadProgress($event)\"\r\n (onBeforeUpload)=\"onBeforeUpload($event)\" (onSelect)=\"handleSelectFile($event)\" (onUpload)=\"onUploaded($event)\">\r\n</p-fileUpload>\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"data.itemsMenuFile\" styleClass=\"fm-contextMenu-panel\">\r\n</p-contextMenu>\r\n\r\n<!-- T\u1EA1o m\u1EDBi/ \u0111\u1ED5i t\u00EAn th\u01B0 m\u1EE5c -->\r\n<tn-dialog *ngIf=\"forms.createFolder.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.createFolder.header | translate\" [popupSize]=\"forms[formIds.createFolder].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.createFolder)\">\r\n <folder-form #formBase [parentModel]=\"model\" [parentContext]=\"context\"\r\n [model]=\"forms[formIds.createFolder].formData\" (onSaved)=\"onSavedForm(formIds.createFolder)\"\r\n (onCancel)=\"onCancelForm(formIds.createFolder)\">\r\n </folder-form>\r\n</tn-dialog>\r\n\r\n<!-- \u0110\u1ED5i t\u00EAn file -->\r\n<tn-dialog *ngIf=\"forms.renameFile.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.renameFile.header | translate\" [popupSize]=\"forms[formIds.renameFile].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.renameFile)\">\r\n <file-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"forms[formIds.renameFile].formData\"\r\n (onSaved)=\"onSavedForm(formIds.renameFile)\" (onCancel)=\"onCancelForm(formIds.renameFile)\">\r\n </file-form>\r\n</tn-dialog>\r\n\r\n<!-- Xem file tr\u1EF1c tuy\u1EBFn -->\r\n<file-viewer *ngIf=\"forms.fileViewer.show\" [parentModel]=\"model\" [parentContext]=\"context\" [readonly]=\"readonly\"\r\n [model]=\"forms.fileViewer.formData\" (onClose)=\"closeFileViewer()\">\r\n</file-viewer>\r\n\r\n<!-- Xem phi\u00EAn b\u1EA3n -->\r\n<tn-dialog *ngIf=\"forms.fileVersionList.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.fileVersionList.header | translate\" [popupSize]=\"forms[formIds.fileVersionList].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.fileVersionList)\">\r\n <file-version-list *ngIf=\"forms.fileVersionList.show\" [parentModel]=\"model\" [parentContext]=\"context\"\r\n [fileId]=\"forms[formIds.fileVersionList].fileId\" [readonly]=\"readonly\">\r\n </file-version-list>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showAttachLinkBox\" #dialog2 [maximizable]=\"false\" [header]=\"'Nh\u1EADp li\u00EAn k\u1EBFt' | translate\"\r\n [popupSize]=\"{ width: 600, height: 50}\" (onHide)=\"showAttachLinkBox = false; typedLink=''\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10\">\r\n <input #input type=\"text\" placeholder=\"Nh\u1EADp li\u00EAn k\u1EBFt sao ch\u00E9p t\u1EEB t\u1EC7p tin kh\u00E1c...\"\r\n (keyup.enter)=\"addAttachLink()\" pInputText [(ngModel)]=\"typedLink\" class=\"p-col-12\" />\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" (click)=\"addAttachLink()\" [disabled]=\"typedLink != ''? null : true\" pButton\r\n class=\"p-button-primary p-col-12\" label=\"Ok\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <after-view-checked (loaded)=\"focusInput(input)\"></after-view-checked>\r\n</tn-dialog>\r\n<!--\r\n\r\n<share-file *ngIf=\"forms.shareFile.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFile.formData\">\r\n</share-file>\r\n\r\n<share-folder *ngIf=\"forms.shareFolder.show\" [parentDataModel]=\"model\" [parentDataContext]=\"context\"\r\n [model]=\"forms.shareFolder.formData\">\r\n</share-folder>\r\n -->\r\n\r\n<!-- Xem ch\u1EEF k\u00FD s\u1ED1 -->\r\n<tn-dialog *ngIf=\"forms.signatureDetail.show\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"forms.signatureDetail.header | translate\" [popupSize]=\"forms[formIds.signatureDetail].popupSize\"\r\n (onHide)=\"onCancelForm(formIds.signatureDetail)\">\r\n <signature-detail [parentModel]=\"model\" [parentContext]=\"context\">\r\n </signature-detail>\r\n</tn-dialog>\r\n<!--K\u00FD s\u1ED1 sim-->\r\n<tn-dialog *ngIf=\"forms.kySoSim.show\" #dialog [styleClass]=\"'address-form'\" [header]=\"forms.kySoSim.header | translate\"\r\n [popupSize]=\"forms.kySoSim.popupSize\" [showFooter]=\"true\" (onHide)=\"onCancelForm(formIds.kySoSim)\">\r\n <app-file-ky-so-sim #fileKySoSim [parentModel]=\"model\" [parentContext]=\"context\">\r\n </app-file-ky-so-sim>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"fas fa-images\" [disabled]=\"model.submitting\" class=\"p-button-text\"\r\n [label]=\"'Ch\u1ECDn ch\u1EEF k\u00FD' | translate\" (click)=\"chonChuKy()\"></button>\r\n <button type=\"button\" pButton icon=\"fas fa-signature\" class=\"p-button-text ui-button-success\"\r\n [disabled]=\"model.submitting\" [label]=\"'Th\u1EF1c hi\u1EC7n k\u00FD' | translate\" (click)=\"kySo()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"forms.kySoSim.show=false\"></button>\r\n </ng-template>\r\n</tn-dialog>",
|
|
35859
35918
|
providers: [
|
|
35860
35919
|
{
|
|
35861
35920
|
provide: forms.NG_VALUE_ACCESSOR,
|
|
@@ -35864,7 +35923,7 @@
|
|
|
35864
35923
|
},
|
|
35865
35924
|
ComponentContextService
|
|
35866
35925
|
],
|
|
35867
|
-
styles: [".file-header-tab a{color:#000!important}.file-ex-name:hover{cursor:pointer}.file-ex-name .signature{margin-left:3px}.file-ex-row:hover{background:#e8e8e8}.function-list{text-align:center}.function-list a{margin:5px}.function-list a:hover{color:#6aa3d4}.file-btn{color:#337ab7;cursor:pointer;display:inline-block;font-size:1.1em;line-height:45px;margin-left:10px;padding:5px;vertical-align:middle}.file-btn:hover{color:#3ea8ff}.file-btn i{font-size:1.2em;margin-right:10px}.file-action{text-align:right}.file-row-action i{margin-right:5px}.file-row-action{line-height:34px}.function-list .topbar-items{margin-top:0}.function-list .topbar-items>li .topbar-icon{color:#909090}.function-list .topbar-items>li .topbar-icon:hover{color:#444}.function-list .topbar-items>li>ul{border-top:0;right:15px;top:30px}.function-list .topbar-items>li>ul:before{display:none}.function-list .topbar-items>li.active-top-menu>ul{z-index:1}.function-list .layout-menu li a{border:none;margin:0;text-align:left}.function-list .layout-menu li a i:first-child{color:#666f77;font-size:1.2em}.group-link-share{height:34px}.txt-link-share{max-width:335px!important}.btn-copy-link-share{font-size:small!important}.tbl-checkbox-header{width:3em}.tbl-checkbox{text-align:center;width:3em}.my-drive-checkbox{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);height:20px;text-align:center;transition:border-color .3s,background-color .3s,box-shadow .3s;width:20px}.get-link-share{cursor:pointer;float:right}.file-toolbar{text-align:right}.function-topbar button:last-child{margin-right:0!important}::ng-deep body>.fm-contextMenu-panel{min-width:210px}.folderUnClickable{pointer-events:none}::ng-deep file-manager .file-menu.ui-menu ul li a{text-align:left!important}::ng-deep file-manager .item-inline-name .ui-tooltip-text{white-space:normal;word-break:break-word}::ng-deep file-manager .full-layout .fm-grid a{display:flex;padding-top:5px}::ng-deep file-manager .full-layout .fm-grid a .file-ex-icon{margin-right:5px}::ng-deep file-manager .full-layout .fm-grid a .file-ex-icon:hover{cursor:pointer}::ng-deep file-manager .fm-toolbar{align-items:center;display:flex;padding-bottom:.5em;padding-left:0;padding-top:.5em}::ng-deep file-manager .fm-toolbar .fm-toolbar-buttons{align-items:center;display:flex;padding-left:3px}::ng-deep file-manager .fm-toolbar .fm-toolbar-path{flex:1 1;margin-left:2em;position:relative}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb .p-breadcrumb{background:transparent}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb>div{border:none;padding:0}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb ul li:not(:last-child)>a{cursor:pointer}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb ul li:not(:last-child)>a .p-menuitem-text{color:#2196f3}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb ul li:last-child .p-menuitem-text{color:rgba(255,102,0,.685)}::ng-deep file-manager .fm-toolbar .fm-toolbar-path:after{background:#b8b8b8;content:\"\";height:100%;left:-1.4em;position:absolute;top:0;width:2px}::ng-deep file-manager .not-full-layout{border-radius:5px}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item{display:flex}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-function,::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name,::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-no,::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-version{align-items:center;display:flex;justify-content:center}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-no{flex:0 0 30px}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name{flex:1 1;justify-content:left;margin-right:1em}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name
|
|
35926
|
+
styles: [".file-header-tab a{color:#000!important}.file-ex-name:hover{cursor:pointer}.file-ex-name .signature{margin-left:3px}.file-ex-row:hover{background:#e8e8e8}.function-list{text-align:center}.function-list a{margin:5px}.function-list a:hover{color:#6aa3d4}.file-btn{color:#337ab7;cursor:pointer;display:inline-block;font-size:1.1em;line-height:45px;margin-left:10px;padding:5px;vertical-align:middle}.file-btn:hover{color:#3ea8ff}.file-btn i{font-size:1.2em;margin-right:10px}.file-action{text-align:right}.file-row-action i{margin-right:5px}.file-row-action{line-height:34px}.function-list .topbar-items{margin-top:0}.function-list .topbar-items>li .topbar-icon{color:#909090}.function-list .topbar-items>li .topbar-icon:hover{color:#444}.function-list .topbar-items>li>ul{border-top:0;right:15px;top:30px}.function-list .topbar-items>li>ul:before{display:none}.function-list .topbar-items>li.active-top-menu>ul{z-index:1}.function-list .layout-menu li a{border:none;margin:0;text-align:left}.function-list .layout-menu li a i:first-child{color:#666f77;font-size:1.2em}.group-link-share{height:34px}.txt-link-share{max-width:335px!important}.btn-copy-link-share{font-size:small!important}.tbl-checkbox-header{width:3em}.tbl-checkbox{text-align:center;width:3em}.my-drive-checkbox{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);height:20px;text-align:center;transition:border-color .3s,background-color .3s,box-shadow .3s;width:20px}.get-link-share{cursor:pointer;float:right}.file-toolbar{text-align:right}.function-topbar button:last-child{margin-right:0!important}::ng-deep body>.fm-contextMenu-panel{min-width:210px}.folderUnClickable{pointer-events:none}::ng-deep file-manager .file-menu.ui-menu ul li a{text-align:left!important}::ng-deep file-manager .item-inline-name .ui-tooltip-text{white-space:normal;word-break:break-word}::ng-deep file-manager .full-layout .fm-grid a{display:flex;padding-top:5px}::ng-deep file-manager .full-layout .fm-grid a .file-ex-icon{margin-right:5px}::ng-deep file-manager .full-layout .fm-grid a .file-ex-icon:hover{cursor:pointer}::ng-deep file-manager .fm-toolbar{align-items:center;display:flex;padding-bottom:.5em;padding-left:0;padding-top:.5em}::ng-deep file-manager .fm-toolbar .fm-toolbar-buttons{align-items:center;display:flex;padding-left:3px}::ng-deep file-manager .fm-toolbar .fm-toolbar-path{flex:1 1;margin-left:2em;position:relative}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb .p-breadcrumb{background:transparent}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb>div{border:none;padding:0}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb ul li:not(:last-child)>a{cursor:pointer}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb ul li:not(:last-child)>a .p-menuitem-text{color:#2196f3}::ng-deep file-manager .fm-toolbar .fm-toolbar-path>p-breadcrumb ul li:last-child .p-menuitem-text{color:rgba(255,102,0,.685)}::ng-deep file-manager .fm-toolbar .fm-toolbar-path:after{background:#b8b8b8;content:\"\";height:100%;left:-1.4em;position:absolute;top:0;width:2px}::ng-deep file-manager .not-full-layout{border-radius:5px}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item{display:flex}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-function,::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name,::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-no,::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-version{align-items:center;display:flex;justify-content:center}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-no{flex:0 0 30px}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name{display:flex;flex:1 1;justify-content:left;margin-right:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name .file-ex-name{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-name .file-ex-name>span:not(.file-ex-extension){display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-item .nfl-version{flex:0 0 auto;font-size:.85rem;font-weight:700;margin-right:5px}::ng-deep file-manager .not-full-layout .nfl-grid .nfl-no-item{align-items:center;display:flex;justify-content:left;padding:1em}::ng-deep td file-manager .not-full-layout .nfl-grid .nfl-no-item{align-items:center;display:flex;justify-content:center;padding:8px}"]
|
|
35868
35927
|
},] }
|
|
35869
35928
|
];
|
|
35870
35929
|
FileManagerComponent.ctorParameters = function () { return [
|
|
@@ -37690,6 +37749,8 @@
|
|
|
37690
37749
|
this.onRemove = new i0.EventEmitter();
|
|
37691
37750
|
this.disabled = null;
|
|
37692
37751
|
this.custom = false;
|
|
37752
|
+
this.customTypeFieldName = 'fieldValue';
|
|
37753
|
+
this.customTypeSeparator = '____';
|
|
37693
37754
|
}
|
|
37694
37755
|
Object.defineProperty(QueryBuilderRuleComponent.prototype, "controlValue", {
|
|
37695
37756
|
// control value cố định, dùng trong trường hợp custom form
|
|
@@ -37714,6 +37775,22 @@
|
|
|
37714
37775
|
}
|
|
37715
37776
|
this.handleChangeOperator();
|
|
37716
37777
|
}
|
|
37778
|
+
if (this.controlType == 'custom') {
|
|
37779
|
+
this.setFuncGetValue();
|
|
37780
|
+
if (this.query.value) {
|
|
37781
|
+
try {
|
|
37782
|
+
this.query[this.customTypeFieldName] = this.query.value['field'];
|
|
37783
|
+
this.query.value = this.query.value['value'];
|
|
37784
|
+
}
|
|
37785
|
+
catch (ex) {
|
|
37786
|
+
}
|
|
37787
|
+
// const arrInfo = this.query.value.split(this.customTypeSeparator);
|
|
37788
|
+
// if (arrInfo.length > 1) {
|
|
37789
|
+
// this.query[this.customTypeFieldName] = arrInfo[0];
|
|
37790
|
+
// this.query.value = arrInfo[1];
|
|
37791
|
+
// }
|
|
37792
|
+
}
|
|
37793
|
+
}
|
|
37717
37794
|
if (this.itemField != null && this.itemField.controlType == 'datetime' && this.query.value) {
|
|
37718
37795
|
if (!isValidDate(new Date(this.query.value))) {
|
|
37719
37796
|
this.custom = true;
|
|
@@ -37723,6 +37800,18 @@
|
|
|
37723
37800
|
}
|
|
37724
37801
|
}
|
|
37725
37802
|
};
|
|
37803
|
+
QueryBuilderRuleComponent.prototype.setFuncGetValue = function () {
|
|
37804
|
+
var _this = this;
|
|
37805
|
+
if (this.controlType == 'custom') {
|
|
37806
|
+
this.query.funcGetValue = function (item) { return ({
|
|
37807
|
+
field: item[_this.customTypeFieldName],
|
|
37808
|
+
value: item.value
|
|
37809
|
+
}); };
|
|
37810
|
+
}
|
|
37811
|
+
else {
|
|
37812
|
+
this.query.funcGetValue = null;
|
|
37813
|
+
}
|
|
37814
|
+
};
|
|
37726
37815
|
QueryBuilderRuleComponent.prototype.removeGroup = function () {
|
|
37727
37816
|
this.onRemove.emit(this.query);
|
|
37728
37817
|
};
|
|
@@ -37738,7 +37827,13 @@
|
|
|
37738
37827
|
this.resetControl(this.itemField);
|
|
37739
37828
|
var itemOperator = this.operators.find(function (q) { return q.id == _this.query.compareType; });
|
|
37740
37829
|
if (!itemOperator) {
|
|
37741
|
-
this.
|
|
37830
|
+
if (this.operators.length == 1) {
|
|
37831
|
+
this.query.compareType = this.operators[0].id;
|
|
37832
|
+
this.handleChangeOperator();
|
|
37833
|
+
}
|
|
37834
|
+
else {
|
|
37835
|
+
this.query.compareType = null;
|
|
37836
|
+
}
|
|
37742
37837
|
}
|
|
37743
37838
|
else if (itemOperator.controlType) {
|
|
37744
37839
|
this.resetControl(itemOperator);
|
|
@@ -37760,6 +37855,7 @@
|
|
|
37760
37855
|
if (this.control) {
|
|
37761
37856
|
this.control.disabled = this.disabled;
|
|
37762
37857
|
}
|
|
37858
|
+
this.setFuncGetValue();
|
|
37763
37859
|
}
|
|
37764
37860
|
};
|
|
37765
37861
|
QueryBuilderRuleComponent.prototype.handleChangeOperator = function () {
|
|
@@ -37799,7 +37895,7 @@
|
|
|
37799
37895
|
QueryBuilderRuleComponent.decorators = [
|
|
37800
37896
|
{ type: i0.Component, args: [{
|
|
37801
37897
|
selector: 'query-builder-rule',
|
|
37802
|
-
template: "<div class=\"tn__group-or-rule-container rule-container\">\r\n <div class=\"tn__group-or-rule rule\">\r\n <div class=\"tn__rule-body\">\r\n <ng-container *ngIf=\"templateFieldPicker\">\r\n <div class=\"tn__rule-field\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templateFieldPicker; context: {$implicit: query, handleChangedField: setDatasourceOperators}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!templateFieldPicker\">\r\n <ng-container *ngTemplateOutlet=\"fieldPicker; context: {$implicit: query}\"></ng-container>\r\n </ng-container>\r\n <div class=\"tn__rule-operator\">\r\n <p-dropdown appendTo=\"body\" [options]=\"operators\" optionLabel=\"ten\" optionValue=\"id\"\r\n placeholder=\"Ch\u1ECDn to\u00E1n t\u1EED\" [(ngModel)]=\"query.compareType\" (onChange)=\"handleChangeOperator()\">\r\n </p-dropdown>\r\n </div>\r\n <div class=\"tn__rule-value\">\r\n <ng-container *ngIf=\"control\">\r\n <ng-container [ngSwitch]=\"controlType\">\r\n <
|
|
37898
|
+
template: "<div class=\"tn__group-or-rule-container rule-container\">\r\n <div class=\"tn__group-or-rule rule\">\r\n <div class=\"tn__rule-body\">\r\n <ng-container *ngIf=\"templateFieldPicker\">\r\n <div class=\"tn__rule-field\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templateFieldPicker; context: {$implicit: query, handleChangedField: setDatasourceOperators}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!templateFieldPicker\">\r\n <ng-container *ngTemplateOutlet=\"fieldPicker; context: {$implicit: query}\"></ng-container>\r\n </ng-container>\r\n <div class=\"tn__rule-operator\">\r\n <p-dropdown appendTo=\"body\" [options]=\"operators\" optionLabel=\"ten\" optionValue=\"id\"\r\n placeholder=\"Ch\u1ECDn to\u00E1n t\u1EED\" [(ngModel)]=\"query.compareType\" (onChange)=\"handleChangeOperator()\">\r\n </p-dropdown>\r\n </div>\r\n <div class=\"tn__rule-value\">\r\n <ng-container *ngIf=\"control\">\r\n <ng-container [ngSwitch]=\"controlType\">\r\n <ng-container *ngSwitchCase=\"'textbox'\">\r\n <ng-template *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query}\"></ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'custom'\">\r\n <ng-template *ngTemplateOutlet=\"textBoxValue; context: {$implicit: query}\"></ng-template>\r\n </ng-container>\r\n <!-- <p-multiSelect *ngSwitchCase=\"'dropdown'\" [placeholder]=\"control.placeholder\"\r\n [appendTo]=\"'body'\" [options]=\"control.dataSource\" [disabled]=\"disabled\" optionLabel=\"ten\"\r\n optionValue=\"id\" [(ngModel)]=\"query.value\">\r\n </p-multiSelect> -->\r\n <dropdown *ngSwitchCase=\"'dropdown'\" [control]=\"control\" [dataSource]=\"control.dataSource\"\r\n [itemSelectedStyleClass]=\"'min'\" [(value)]=\"query.value\">\r\n </dropdown>\r\n <div *ngSwitchCase=\"'datetime'\" class=\"datetime-value-container\">\r\n <p-checkbox [binary]=\"true\" [label]=\"'T\u00F9y bi\u1EBFn'\" [(ngModel)]=\"custom\"></p-checkbox>\r\n <datetime-picker *ngIf=\"!custom\" [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </datetime-picker>\r\n <input *ngIf=\"custom\" pInputText placeholder=\"VD: [now] + 1d - 2h + 3m - 4s\"\r\n [(ngModel)]=\"query.value\" />\r\n </div>\r\n\r\n <tn-mask *ngSwitchCase=\"'number'\" [disabled]=\"disabled\" [maskType]=\"control.maskType\"\r\n [placeholder]=\"control.placeholder\" [(ngModel)]=\"query.value\">\r\n </tn-mask>\r\n <user-picker *ngSwitchCase=\"'user'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\" [multiple]=\"control.multiple\">\r\n </user-picker>\r\n <cocautochuc-picker-list *ngSwitchCase=\"'cocautochuc'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </cocautochuc-picker-list>\r\n <autocomplete-picker *ngSwitchCase=\"'role'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'groupuser'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'chucVu'\" [control]=\"control\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <autocomplete-picker *ngSwitchCase=\"'autocomplete-picker'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\">\r\n </autocomplete-picker>\r\n <app-autocomplete-datasource *ngSwitchCase=\"'autocomplete'\" [control]=\"control\"\r\n [disabled]=\"disabled\" [(ngModel)]=\"query.value\" [suggestions]=\"control.dataSource\">\r\n </app-autocomplete-datasource>\r\n <ng-container *ngSwitchDefault>\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!control\">\r\n <input type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [disabled]=\"true\" />\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"tn__rule-action\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n pTooltip=\"X\u00F3a\" tooltipPosition=\"top\" (click)=\"removeGroup()\"></button>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #fieldPicker let-query>\r\n <ng-container *ngIf=\"controlType == 'custom'\">\r\n <input [disabled]=\"disabled\" type=\"text\" [class]=\"'tn__rule-field'\" pInputText placeholder=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\"\r\n [(ngModel)]=\"query.fieldValue\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"controlType != 'custom'\">\r\n <p-dropdown [appendTo]=\"'body'\" [options]=\"dataSourceFields\" [class]=\"'tn__rule-field'\" optionLabel=\"ten\"\r\n optionValue=\"id\" placeholder=\"Ch\u1ECDn tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(ngModel)]=\"query.field\"\r\n (onChange)=\"handleChangeField($event)\">\r\n </p-dropdown>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #textBoxValue let-query>\r\n <input [disabled]=\"disabled\" type=\"text\" pInputText placeholder=\"Gi\u00E1 tr\u1ECB\" [(ngModel)]=\"query.value\" />\r\n</ng-template>",
|
|
37803
37899
|
styles: ["::ng-deep query-builder-rule .tn__rule-body{display:flex;width:calc(100% - 34px)}::ng-deep query-builder-rule .tn__rule-body>*{margin-right:5px}::ng-deep query-builder-rule .tn__rule-body>:last-child{margin-right:0}::ng-deep query-builder-rule .tn__rule-field{height:26px}::ng-deep query-builder-rule .tn__rule-value{min-height:26px}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-value{flex:0 0 calc(50% - 80px);width:calc(50% - 80px)}::ng-deep query-builder-rule .tn__rule-field .p-autocomplete,::ng-deep query-builder-rule .tn__rule-field .p-calendar,::ng-deep query-builder-rule .tn__rule-field.p-dropdown,::ng-deep query-builder-rule .tn__rule-field .p-dropdown,::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-field .p-multiselect,::ng-deep query-builder-rule .tn__rule-field tn-mask .p-inputgroup,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete,::ng-deep query-builder-rule .tn__rule-value .p-calendar,::ng-deep query-builder-rule .tn__rule-value.p-dropdown,::ng-deep query-builder-rule .tn__rule-value .p-dropdown,::ng-deep query-builder-rule .tn__rule-value .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .p-multiselect,::ng-deep query-builder-rule .tn__rule-value tn-mask .p-inputgroup{height:100%;width:100%}::ng-deep query-builder-rule .tn__rule-field .custom-autocomplete-button,::ng-deep query-builder-rule .tn__rule-field .p-inputtext,::ng-deep query-builder-rule .tn__rule-value .custom-autocomplete-button,::ng-deep query-builder-rule .tn__rule-value .p-inputtext{min-height:26px;padding:2px 12px}::ng-deep query-builder-rule .tn__rule-field .tn-dropdown,::ng-deep query-builder-rule .tn__rule-field .tn-dropdown.p-multiselect.p-component,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-dropdown.p-multiselect.p-component{min-height:26px}::ng-deep query-builder-rule .tn__rule-field .tn-autocomplete .p-autocomplete-dropdown,::ng-deep query-builder-rule .tn__rule-value .tn-autocomplete .p-autocomplete-dropdown{height:26px;width:26px}::ng-deep query-builder-rule .tn__rule-field .p-calendar .p-button.p-button-icon-only,::ng-deep query-builder-rule .tn__rule-value .p-calendar .p-button.p-button-icon-only{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-field .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-input-token,::ng-deep query-builder-rule .tn__rule-value .p-autocomplete.p-autocomplete-multiple .p-autocomplete-multiple-container .p-autocomplete-token{font-size:.9rem;margin:1px 2px;padding:0 .5rem}::ng-deep query-builder-rule .tn__rule-operator{flex:0 0 145px;height:26px;width:145px}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown{height:100%;width:100%}::ng-deep query-builder-rule .tn__rule-operator .p-dropdown .p-inputtext{padding:2px 12px}::ng-deep query-builder-rule .tn__rule-action{flex:0 0 auto;white-space:nowrap}::ng-deep query-builder-rule .tn__rule-action button{height:26px!important;margin-left:2px!important;margin-right:6px!important;width:26px!important}::ng-deep query-builder-rule .datetime-value-container{align-items:center;display:flex}::ng-deep query-builder-rule .datetime-value-container p-checkbox{flex:0 0 auto;margin-right:5px}@media (max-width:640px){::ng-deep query-builder-rule .tn__rule-body{flex-direction:column;padding-right:5px}::ng-deep query-builder-rule .tn__rule-body>*{margin-bottom:5px;margin-right:0}::ng-deep query-builder-rule .tn__rule-field,::ng-deep query-builder-rule .tn__rule-operator,::ng-deep query-builder-rule .tn__rule-value{flex:1 1 auto;width:100%}}"]
|
|
37804
37900
|
},] }
|
|
37805
37901
|
];
|
|
@@ -39354,7 +39450,11 @@
|
|
|
39354
39450
|
(function (EnumPermissionType) {
|
|
39355
39451
|
EnumPermissionType[EnumPermissionType["MAIN"] = 0] = "MAIN";
|
|
39356
39452
|
EnumPermissionType[EnumPermissionType["SHARE"] = 1] = "SHARE"; // Bản ghi tạo ra để chia sẻ
|
|
39357
|
-
})(exports.EnumPermissionType || (exports.EnumPermissionType = {}));
|
|
39453
|
+
})(exports.EnumPermissionType || (exports.EnumPermissionType = {}));
|
|
39454
|
+
(function (EnumWorkflowCheckboxOption) {
|
|
39455
|
+
EnumWorkflowCheckboxOption[EnumWorkflowCheckboxOption["TAO_CONG_VIEC"] = 1] = "TAO_CONG_VIEC";
|
|
39456
|
+
EnumWorkflowCheckboxOption[EnumWorkflowCheckboxOption["AUTO_NEXT_STEP"] = 2] = "AUTO_NEXT_STEP";
|
|
39457
|
+
})(exports.EnumWorkflowCheckboxOption || (exports.EnumWorkflowCheckboxOption = {}));
|
|
39358
39458
|
|
|
39359
39459
|
var StateMachineTopic = {
|
|
39360
39460
|
CONNECTION_CHANGE: 'CONNECTION_CHANGE'
|
|
@@ -39370,7 +39470,7 @@
|
|
|
39370
39470
|
{ id: ɵ3, ten: 'Người dùng' },
|
|
39371
39471
|
{ id: ɵ4, ten: 'Đơn vị' },
|
|
39372
39472
|
{ id: ɵ5, ten: 'Nhóm người dùng' },
|
|
39373
|
-
{ id: ɵ6, ten: '
|
|
39473
|
+
{ id: ɵ6, ten: 'Chức vụ' }
|
|
39374
39474
|
];
|
|
39375
39475
|
var ɵ7 = exports.EnumUserRule.CAP_TREN, ɵ8 = exports.EnumUserRule.NGUOI_THAM_GIA_QUY_TRINH, ɵ9 = exports.EnumUserRule.NGUOI_NHAN, ɵ10 = exports.EnumUserRule.NGUOI_THEO_DOI;
|
|
39376
39476
|
var DataSourceUserRule = [
|
|
@@ -39391,6 +39491,11 @@
|
|
|
39391
39491
|
// { id: EnumUserRule.CAP_TREN_DA_GUI, ten: 'Cấp trên đã trình' },
|
|
39392
39492
|
// { id: EnumUserRule.NGUOI_CUOI_CUNG, ten: 'Người cuối cùng' },
|
|
39393
39493
|
{ id: ɵ12, ten: 'Người tham gia quy trình' }
|
|
39494
|
+
];
|
|
39495
|
+
var ɵ13 = exports.EnumWorkflowCheckboxOption.TAO_CONG_VIEC, ɵ14 = exports.EnumWorkflowCheckboxOption.AUTO_NEXT_STEP;
|
|
39496
|
+
var DataSourceWorkflowCheckboxOption = [
|
|
39497
|
+
{ id: ɵ13, ten: 'Tạo công việc' },
|
|
39498
|
+
{ id: ɵ14, ten: 'Tự động chuyển bước đầu tiên' }
|
|
39394
39499
|
];
|
|
39395
39500
|
|
|
39396
39501
|
var StateMetadataComponent = /** @class */ (function (_super) {
|
|
@@ -39720,11 +39825,11 @@
|
|
|
39720
39825
|
return new AutoCompletePickerControlSchema({
|
|
39721
39826
|
field: field,
|
|
39722
39827
|
label: label,
|
|
39723
|
-
title: 'Chọn
|
|
39724
|
-
placeholder: 'Chọn
|
|
39828
|
+
title: 'Chọn chức vụ',
|
|
39829
|
+
placeholder: 'Chọn chức vụ',
|
|
39725
39830
|
mdWidth: 12,
|
|
39726
39831
|
baseService: _roleService,
|
|
39727
|
-
displayField: '
|
|
39832
|
+
displayField: 'ten',
|
|
39728
39833
|
fieldPlus: 'code',
|
|
39729
39834
|
fieldSearchText: ['code'],
|
|
39730
39835
|
multiple: true,
|
|
@@ -39737,8 +39842,8 @@
|
|
|
39737
39842
|
fullTextSearch: true
|
|
39738
39843
|
}),
|
|
39739
39844
|
new EntityPickerColumn({
|
|
39740
|
-
label: 'Tên
|
|
39741
|
-
code: '
|
|
39845
|
+
label: 'Tên chức vụ',
|
|
39846
|
+
code: 'ten',
|
|
39742
39847
|
dataType: 'string',
|
|
39743
39848
|
operator: exports.Operator.contain,
|
|
39744
39849
|
notInFields: true
|
|
@@ -39831,17 +39936,21 @@
|
|
|
39831
39936
|
required: true,
|
|
39832
39937
|
})
|
|
39833
39938
|
];
|
|
39939
|
+
if (this.data && this.data.editing) {
|
|
39940
|
+
this.isFormAdd = false;
|
|
39941
|
+
}
|
|
39942
|
+
else {
|
|
39943
|
+
this.isFormAdd = true;
|
|
39944
|
+
}
|
|
39834
39945
|
};
|
|
39835
39946
|
StateMachinesConnectionMetadataComponent.prototype.onFormInitialized = function (evt) {
|
|
39836
39947
|
return __awaiter(this, void 0, void 0, function () {
|
|
39837
39948
|
return __generator(this, function (_a) {
|
|
39838
|
-
if (this.
|
|
39839
|
-
this.isFormAdd = false;
|
|
39949
|
+
if (!this.isFormAdd) {
|
|
39840
39950
|
setMetadataConnection(evt.model, this.data);
|
|
39841
39951
|
this.source = this.data.source;
|
|
39842
39952
|
}
|
|
39843
39953
|
else {
|
|
39844
|
-
this.isFormAdd = true;
|
|
39845
39954
|
evt.model.id = this._commonService.guid();
|
|
39846
39955
|
evt.model.data = {};
|
|
39847
39956
|
}
|
|
@@ -39922,7 +40031,7 @@
|
|
|
39922
40031
|
StateMachinesConnectionMetadataComponent.decorators = [
|
|
39923
40032
|
{ type: i0.Component, args: [{
|
|
39924
40033
|
selector: 'statemachines-connection-metadata',
|
|
39925
|
-
template: "<div class=\"flex flex-column\" style=\"height: 100%\">\r\n <crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n </crud-form>\r\n <div class=\"fit\" style=\"overflow: hidden;\">\r\n <tn-tabview [data]=\"mainTabData\" [allowViewAll]=\"true\">\r\n <ng-template #sender>\r\n <statemachines-connection-sender #senderForm [data]=\"data\" [machines]=\"machinesData.machines\"\r\n [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-sender>\r\n </ng-template>\r\n <ng-template #receiver>\r\n <statemachines-connection-receiver #receiverForm [designerContext]=\"designerContext\" [data]=\"data\"\r\n [workflowData]=\"machinesData\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver>\r\n </ng-template>\r\n </tn-tabview>\r\n </div>\r\n</div>\r\n<ng-template #buttonTemplate>\r\n <ng-container *ngIf=\"!viewOnly\">\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\"\r\n class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\"\r\n [label]=\"'X\u00F3a' | translate\" (click)=\"remove($event)\"></button>\r\n </ng-container>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n\r\n<ng-template #templateDropdownIconSelected let-item let-selectedValue=\"selectedValue\">\r\n <span [class]=\"item.label\"></span>\r\n</ng-template>\r\n<ng-template #templateDropdownIcon let-item>\r\n <div class=\"__workflow-setting-icon-item\">\r\n <span [class]=\"item.label\"></span>\r\n </div>\r\n</ng-template>",
|
|
40034
|
+
template: "<div class=\"flex flex-column\" style=\"height: 100%\">\r\n <crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n </crud-form>\r\n <div class=\"fit\" style=\"overflow: hidden;\">\r\n <tn-tabview [data]=\"mainTabData\" [allowViewAll]=\"true\">\r\n <ng-template #sender>\r\n <statemachines-connection-sender #senderForm [data]=\"data\" [machines]=\"machinesData.machines\"\r\n [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-sender>\r\n </ng-template>\r\n <ng-template #receiver>\r\n <statemachines-connection-receiver #receiverForm [designerContext]=\"designerContext\" [data]=\"data\"\r\n [isFormAdd]=\"isFormAdd\" [workflowData]=\"machinesData\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver>\r\n </ng-template>\r\n </tn-tabview>\r\n </div>\r\n</div>\r\n<ng-template #buttonTemplate>\r\n <ng-container *ngIf=\"!viewOnly\">\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\"\r\n class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\"\r\n [label]=\"'X\u00F3a' | translate\" (click)=\"remove($event)\"></button>\r\n </ng-container>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n\r\n<ng-template #templateDropdownIconSelected let-item let-selectedValue=\"selectedValue\">\r\n <span [class]=\"item.label\"></span>\r\n</ng-template>\r\n<ng-template #templateDropdownIcon let-item>\r\n <div class=\"__workflow-setting-icon-item\">\r\n <span [class]=\"item.label\"></span>\r\n </div>\r\n</ng-template>",
|
|
39926
40035
|
providers: [ComponentContextService],
|
|
39927
40036
|
styles: [""]
|
|
39928
40037
|
},] }
|
|
@@ -39956,9 +40065,35 @@
|
|
|
39956
40065
|
_super.prototype.ngOnInit.call(this);
|
|
39957
40066
|
this.doNotCheckBaseService = true;
|
|
39958
40067
|
this.setting.schema = [
|
|
40068
|
+
this.createCheckboxRule('departmentRules'),
|
|
39959
40069
|
this.createOrgPickerControlReceiver('departmentIds', 'Đơn vị nhận'),
|
|
40070
|
+
this.createCheckboxRule('departmentViewRules'),
|
|
39960
40071
|
this.createOrgPickerControlReceiver('departmentViewIds', 'Đơn vị theo dõi'),
|
|
39961
40072
|
];
|
|
40073
|
+
if (this.isFormAdd) {
|
|
40074
|
+
if (!this.data.data) {
|
|
40075
|
+
this.data.data = {};
|
|
40076
|
+
}
|
|
40077
|
+
if (this.data.data.departmentRules == null) {
|
|
40078
|
+
this.data.data.departmentRules = [exports.EnumUserRule.NGUOI_NHAN];
|
|
40079
|
+
}
|
|
40080
|
+
if (this.data.data.departmentViewRules == null) {
|
|
40081
|
+
this.data.data.departmentViewRules = [exports.EnumUserRule.NGUOI_THEO_DOI];
|
|
40082
|
+
}
|
|
40083
|
+
}
|
|
40084
|
+
};
|
|
40085
|
+
StateMachinesConnectionReceiverDepartmentComponent.prototype.createCheckboxRule = function (field) {
|
|
40086
|
+
return new CheckBoxListControlSchema({
|
|
40087
|
+
field: field,
|
|
40088
|
+
label: 'Cán bộ đặc biệt',
|
|
40089
|
+
class: 'rules',
|
|
40090
|
+
dataSource: [
|
|
40091
|
+
{ id: exports.EnumUserRule.NGUOI_NHAN, ten: 'Đơn vị nhận bước trước' },
|
|
40092
|
+
{ id: exports.EnumUserRule.NGUOI_THEO_DOI, ten: 'Đơn vị theo dõi bước trước' }
|
|
40093
|
+
],
|
|
40094
|
+
showLabel: false,
|
|
40095
|
+
mdWidth: 12
|
|
40096
|
+
});
|
|
39962
40097
|
};
|
|
39963
40098
|
StateMachinesConnectionReceiverDepartmentComponent.prototype.createOrgPickerControlReceiver = function (field, label) {
|
|
39964
40099
|
var control = createOrgPickerControl(field, label);
|
|
@@ -39994,7 +40129,9 @@
|
|
|
39994
40129
|
});
|
|
39995
40130
|
};
|
|
39996
40131
|
StateMachinesConnectionReceiverDepartmentComponent.prototype.assignFieldPlus = function (dest, source) {
|
|
40132
|
+
dest.departmentRules = source.departmentRules;
|
|
39997
40133
|
dest.departmentIds = source.departmentIds;
|
|
40134
|
+
dest.departmentViewRules = source.departmentViewRules;
|
|
39998
40135
|
dest.departmentViewIds = source.departmentViewIds;
|
|
39999
40136
|
};
|
|
40000
40137
|
return StateMachinesConnectionReceiverDepartmentComponent;
|
|
@@ -40012,6 +40149,7 @@
|
|
|
40012
40149
|
]; };
|
|
40013
40150
|
StateMachinesConnectionReceiverDepartmentComponent.propDecorators = {
|
|
40014
40151
|
data: [{ type: i0.Input }],
|
|
40152
|
+
isFormAdd: [{ type: i0.Input }],
|
|
40015
40153
|
viewOnly: [{ type: i0.Input }]
|
|
40016
40154
|
};
|
|
40017
40155
|
|
|
@@ -40029,9 +40167,35 @@
|
|
|
40029
40167
|
_super.prototype.ngOnInit.call(this);
|
|
40030
40168
|
this.doNotCheckBaseService = true;
|
|
40031
40169
|
this.setting.schema = [
|
|
40170
|
+
this.createCheckboxRule('groupRules'),
|
|
40032
40171
|
this.createUserGroupPickerControlReceiver('groupIds', 'Nhóm người dùng nhận'),
|
|
40172
|
+
this.createCheckboxRule('groupViewRules'),
|
|
40033
40173
|
this.createUserGroupPickerControlReceiver('groupViewIds', 'Nhóm người dùng theo dõi'),
|
|
40034
40174
|
];
|
|
40175
|
+
if (this.isFormAdd) {
|
|
40176
|
+
if (!this.data.data) {
|
|
40177
|
+
this.data.data = {};
|
|
40178
|
+
}
|
|
40179
|
+
if (this.data.data.groupRules == null) {
|
|
40180
|
+
this.data.data.groupRules = [exports.EnumUserRule.NGUOI_NHAN];
|
|
40181
|
+
}
|
|
40182
|
+
if (this.data.data.groupViewRules == null) {
|
|
40183
|
+
this.data.data.groupViewRules = [exports.EnumUserRule.NGUOI_THEO_DOI];
|
|
40184
|
+
}
|
|
40185
|
+
}
|
|
40186
|
+
};
|
|
40187
|
+
StateMachinesConnectionReceiverGroupComponent.prototype.createCheckboxRule = function (field) {
|
|
40188
|
+
return new CheckBoxListControlSchema({
|
|
40189
|
+
field: field,
|
|
40190
|
+
label: 'Cán bộ đặc biệt',
|
|
40191
|
+
class: 'rules',
|
|
40192
|
+
dataSource: [
|
|
40193
|
+
{ id: exports.EnumUserRule.NGUOI_NHAN, ten: 'Nhóm người dùng nhận bước trước' },
|
|
40194
|
+
{ id: exports.EnumUserRule.NGUOI_THEO_DOI, ten: 'Nhóm người dùng theo dõi bước trước' }
|
|
40195
|
+
],
|
|
40196
|
+
showLabel: false,
|
|
40197
|
+
mdWidth: 12
|
|
40198
|
+
});
|
|
40035
40199
|
};
|
|
40036
40200
|
StateMachinesConnectionReceiverGroupComponent.prototype.createUserGroupPickerControlReceiver = function (field, label) {
|
|
40037
40201
|
var control = createUserGroupPickerControl(this._userGroupService, field, label);
|
|
@@ -40067,7 +40231,9 @@
|
|
|
40067
40231
|
});
|
|
40068
40232
|
};
|
|
40069
40233
|
StateMachinesConnectionReceiverGroupComponent.prototype.assignFieldPlus = function (dest, source) {
|
|
40234
|
+
dest.groupRules = source.groupRules;
|
|
40070
40235
|
dest.groupIds = source.groupIds;
|
|
40236
|
+
dest.groupViewRules = source.groupViewRules;
|
|
40071
40237
|
dest.groupViewIds = source.groupViewIds;
|
|
40072
40238
|
};
|
|
40073
40239
|
return StateMachinesConnectionReceiverGroupComponent;
|
|
@@ -40086,14 +40252,39 @@
|
|
|
40086
40252
|
]; };
|
|
40087
40253
|
StateMachinesConnectionReceiverGroupComponent.propDecorators = {
|
|
40088
40254
|
data: [{ type: i0.Input }],
|
|
40255
|
+
isFormAdd: [{ type: i0.Input }],
|
|
40089
40256
|
viewOnly: [{ type: i0.Input }]
|
|
40090
40257
|
};
|
|
40091
40258
|
|
|
40259
|
+
var DmChucVuService = /** @class */ (function (_super) {
|
|
40260
|
+
__extends(DmChucVuService, _super);
|
|
40261
|
+
function DmChucVuService(http, injector, _moduleConfigService) {
|
|
40262
|
+
var _this = _super.call(this, http, injector, _moduleConfigService.getConfig().environment.apiDomain.canboEndpoint + "/" + _moduleConfigService.getConfig().environment.apiVersion + "/DM_ChucVu") || this;
|
|
40263
|
+
_this.serviceCode = 'canbo';
|
|
40264
|
+
_this.entityName = 'DM_ChucVu';
|
|
40265
|
+
_this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.canboEndpoint;
|
|
40266
|
+
_this._moduleConfig = _moduleConfigService.getConfig();
|
|
40267
|
+
return _this;
|
|
40268
|
+
}
|
|
40269
|
+
return DmChucVuService;
|
|
40270
|
+
}(BaseService));
|
|
40271
|
+
DmChucVuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DmChucVuService_Factory() { return new DmChucVuService(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(ModuleConfigService)); }, token: DmChucVuService, providedIn: "root" });
|
|
40272
|
+
DmChucVuService.decorators = [
|
|
40273
|
+
{ type: i0.Injectable, args: [{
|
|
40274
|
+
providedIn: 'root'
|
|
40275
|
+
},] }
|
|
40276
|
+
];
|
|
40277
|
+
DmChucVuService.ctorParameters = function () { return [
|
|
40278
|
+
{ type: i1$1.HttpClient },
|
|
40279
|
+
{ type: i0.Injector },
|
|
40280
|
+
{ type: ModuleConfigService }
|
|
40281
|
+
]; };
|
|
40282
|
+
|
|
40092
40283
|
var StateMachinesConnectionReceiverRoleComponent = /** @class */ (function (_super) {
|
|
40093
40284
|
__extends(StateMachinesConnectionReceiverRoleComponent, _super);
|
|
40094
|
-
function StateMachinesConnectionReceiverRoleComponent(injector,
|
|
40285
|
+
function StateMachinesConnectionReceiverRoleComponent(injector, _dmChucVuService) {
|
|
40095
40286
|
var _this = _super.call(this, injector) || this;
|
|
40096
|
-
_this.
|
|
40287
|
+
_this._dmChucVuService = _dmChucVuService;
|
|
40097
40288
|
_this.dataSourceAction = [];
|
|
40098
40289
|
_this.autoGetDetail = false;
|
|
40099
40290
|
_this.autoSave = false;
|
|
@@ -40103,12 +40294,38 @@
|
|
|
40103
40294
|
_super.prototype.ngOnInit.call(this);
|
|
40104
40295
|
this.doNotCheckBaseService = true;
|
|
40105
40296
|
this.setting.schema = [
|
|
40106
|
-
this.
|
|
40107
|
-
this.createRolePickerControlReceiver('
|
|
40297
|
+
this.createCheckboxRule('roleRules'),
|
|
40298
|
+
this.createRolePickerControlReceiver('roleIds', 'Chức vụ nhận'),
|
|
40299
|
+
this.createCheckboxRule('roleViewRules'),
|
|
40300
|
+
this.createRolePickerControlReceiver('roleViewIds', 'Chức vụ theo dõi'),
|
|
40108
40301
|
];
|
|
40302
|
+
if (this.isFormAdd) {
|
|
40303
|
+
if (!this.data.data) {
|
|
40304
|
+
this.data.data = {};
|
|
40305
|
+
}
|
|
40306
|
+
if (this.data.data.roleRules == null) {
|
|
40307
|
+
this.data.data.roleRules = [exports.EnumUserRule.NGUOI_NHAN];
|
|
40308
|
+
}
|
|
40309
|
+
if (this.data.data.roleViewRules == null) {
|
|
40310
|
+
this.data.data.roleViewRules = [exports.EnumUserRule.NGUOI_THEO_DOI];
|
|
40311
|
+
}
|
|
40312
|
+
}
|
|
40313
|
+
};
|
|
40314
|
+
StateMachinesConnectionReceiverRoleComponent.prototype.createCheckboxRule = function (field) {
|
|
40315
|
+
return new CheckBoxListControlSchema({
|
|
40316
|
+
field: field,
|
|
40317
|
+
label: 'Cán bộ đặc biệt',
|
|
40318
|
+
class: 'rules',
|
|
40319
|
+
dataSource: [
|
|
40320
|
+
{ id: exports.EnumUserRule.NGUOI_NHAN, ten: 'Chức vụ nhận bước trước' },
|
|
40321
|
+
{ id: exports.EnumUserRule.NGUOI_THEO_DOI, ten: 'Chức vụ theo dõi bước trước' }
|
|
40322
|
+
],
|
|
40323
|
+
showLabel: false,
|
|
40324
|
+
mdWidth: 12
|
|
40325
|
+
});
|
|
40109
40326
|
};
|
|
40110
40327
|
StateMachinesConnectionReceiverRoleComponent.prototype.createRolePickerControlReceiver = function (field, label) {
|
|
40111
|
-
var control = createRolePickerControl(this.
|
|
40328
|
+
var control = createRolePickerControl(this._dmChucVuService, field, label);
|
|
40112
40329
|
return control;
|
|
40113
40330
|
};
|
|
40114
40331
|
StateMachinesConnectionReceiverRoleComponent.prototype.onFormInitialized = function (evt) {
|
|
@@ -40141,7 +40358,9 @@
|
|
|
40141
40358
|
});
|
|
40142
40359
|
};
|
|
40143
40360
|
StateMachinesConnectionReceiverRoleComponent.prototype.assignFieldPlus = function (dest, source) {
|
|
40361
|
+
dest.roleRules = source.roleRules;
|
|
40144
40362
|
dest.roleIds = source.roleIds;
|
|
40363
|
+
dest.roleViewRules = source.roleViewRules;
|
|
40145
40364
|
dest.roleViewIds = source.roleViewIds;
|
|
40146
40365
|
};
|
|
40147
40366
|
return StateMachinesConnectionReceiverRoleComponent;
|
|
@@ -40156,10 +40375,11 @@
|
|
|
40156
40375
|
];
|
|
40157
40376
|
StateMachinesConnectionReceiverRoleComponent.ctorParameters = function () { return [
|
|
40158
40377
|
{ type: i0.Injector },
|
|
40159
|
-
{ type:
|
|
40378
|
+
{ type: DmChucVuService }
|
|
40160
40379
|
]; };
|
|
40161
40380
|
StateMachinesConnectionReceiverRoleComponent.propDecorators = {
|
|
40162
40381
|
data: [{ type: i0.Input }],
|
|
40382
|
+
isFormAdd: [{ type: i0.Input }],
|
|
40163
40383
|
viewOnly: [{ type: i0.Input }]
|
|
40164
40384
|
};
|
|
40165
40385
|
|
|
@@ -40345,13 +40565,194 @@
|
|
|
40345
40565
|
viewOnly: [{ type: i0.Input }]
|
|
40346
40566
|
};
|
|
40347
40567
|
|
|
40568
|
+
var StateMachinesConnectionReceiverConditionComponent = /** @class */ (function (_super) {
|
|
40569
|
+
__extends(StateMachinesConnectionReceiverConditionComponent, _super);
|
|
40570
|
+
function StateMachinesConnectionReceiverConditionComponent(injector, _dmChucVuService, _userGroupService) {
|
|
40571
|
+
var _this = _super.call(this, injector) || this;
|
|
40572
|
+
_this._dmChucVuService = _dmChucVuService;
|
|
40573
|
+
_this._userGroupService = _userGroupService;
|
|
40574
|
+
_this.receiverDynamicRules = [];
|
|
40575
|
+
_this.receiverDynamicViewRules = [];
|
|
40576
|
+
_this.dataSourceAction = [];
|
|
40577
|
+
_this.autoGetDetail = false;
|
|
40578
|
+
_this.autoSave = false;
|
|
40579
|
+
return _this;
|
|
40580
|
+
}
|
|
40581
|
+
StateMachinesConnectionReceiverConditionComponent.prototype.ngOnInit = function () {
|
|
40582
|
+
_super.prototype.ngOnInit.call(this);
|
|
40583
|
+
this.doNotCheckBaseService = true;
|
|
40584
|
+
this.renderDataSourceAction();
|
|
40585
|
+
this.setting.schema = [
|
|
40586
|
+
new CustomControlSchema({
|
|
40587
|
+
field: 'receiverRules',
|
|
40588
|
+
label: 'Người nhận xử lý',
|
|
40589
|
+
mdWidth: 12
|
|
40590
|
+
}),
|
|
40591
|
+
new CustomControlSchema({
|
|
40592
|
+
field: 'receiverViewRules',
|
|
40593
|
+
label: 'Người nhận chỉ xem',
|
|
40594
|
+
mdWidth: 12
|
|
40595
|
+
})
|
|
40596
|
+
];
|
|
40597
|
+
this.dynamicSchema = [
|
|
40598
|
+
new DropdownControlSchema({
|
|
40599
|
+
field: 'ruleType',
|
|
40600
|
+
label: 'Người dùng',
|
|
40601
|
+
dataSource: DataSourceUserRule,
|
|
40602
|
+
operators: [
|
|
40603
|
+
{ id: exports.Operator.in, ten: 'Là' }
|
|
40604
|
+
]
|
|
40605
|
+
}),
|
|
40606
|
+
new DropdownControlSchema({
|
|
40607
|
+
field: 'userMade',
|
|
40608
|
+
label: 'Người dùng thao tác',
|
|
40609
|
+
valueField: 'code',
|
|
40610
|
+
dataSource: this.dataSourceAction,
|
|
40611
|
+
operators: [
|
|
40612
|
+
{ id: exports.Operator.in, ten: 'Thao tác' }
|
|
40613
|
+
]
|
|
40614
|
+
}),
|
|
40615
|
+
new UserPickerControlSchema({
|
|
40616
|
+
field: 'userIds',
|
|
40617
|
+
label: 'Người dùng đích danh',
|
|
40618
|
+
placeholder: 'Chọn người dùng',
|
|
40619
|
+
mdWidth: 12
|
|
40620
|
+
}),
|
|
40621
|
+
createOrgPickerControl('donViId', 'Đơn vị'),
|
|
40622
|
+
new DropdownControlSchema({
|
|
40623
|
+
field: 'donViCap',
|
|
40624
|
+
label: 'Đơn vị cấp',
|
|
40625
|
+
multiple: true,
|
|
40626
|
+
dataSource: [
|
|
40627
|
+
{ id: 1, ten: '1' },
|
|
40628
|
+
{ id: 2, ten: '2' },
|
|
40629
|
+
{ id: 3, ten: '3' }
|
|
40630
|
+
]
|
|
40631
|
+
}),
|
|
40632
|
+
createRolePickerControl(this._dmChucVuService, 'roleId', 'Chức vụ'),
|
|
40633
|
+
createUserGroupPickerControl(this._userGroupService, 'groupId', 'Nhóm người dùng'),
|
|
40634
|
+
new NumberRangeControlSchema({
|
|
40635
|
+
field: 'lanThu',
|
|
40636
|
+
label: 'Lần thứ'
|
|
40637
|
+
}),
|
|
40638
|
+
new CustomControlSchema({
|
|
40639
|
+
field: 'customField',
|
|
40640
|
+
label: 'Trường dữ liệu',
|
|
40641
|
+
operators: [
|
|
40642
|
+
{ id: exports.Operator.equal, ten: 'Bằng' },
|
|
40643
|
+
{ id: exports.Operator.notEqual, ten: 'Không bằng' },
|
|
40644
|
+
{ id: exports.Operator.greater, ten: 'Lớn hơn' },
|
|
40645
|
+
{ id: exports.Operator.greaterThanEqual, ten: 'Lớn hơn hoặc bằng' },
|
|
40646
|
+
{ id: exports.Operator.lower, ten: 'Nhỏ hơn' },
|
|
40647
|
+
{ id: exports.Operator.lowerThanEqual, ten: 'Nhỏ hơn hoặc bằng' }
|
|
40648
|
+
]
|
|
40649
|
+
})
|
|
40650
|
+
];
|
|
40651
|
+
if (this.data && this.data.data) {
|
|
40652
|
+
this.receiverDynamicRules = this.data.data.receiverRules;
|
|
40653
|
+
this.receiverDynamicViewRules = this.data.data.receiverViewRules;
|
|
40654
|
+
}
|
|
40655
|
+
if (this.isFormAdd) {
|
|
40656
|
+
this.receiverDynamicViewRules = [
|
|
40657
|
+
this.newFilter('ruleType', exports.Operator.in, [
|
|
40658
|
+
exports.EnumUserRule.NGUOI_THAM_GIA_QUY_TRINH,
|
|
40659
|
+
exports.EnumUserRule.NGUOI_NHAN,
|
|
40660
|
+
exports.EnumUserRule.NGUOI_THEO_DOI
|
|
40661
|
+
])
|
|
40662
|
+
];
|
|
40663
|
+
}
|
|
40664
|
+
};
|
|
40665
|
+
StateMachinesConnectionReceiverConditionComponent.prototype.renderDataSourceAction = function () {
|
|
40666
|
+
var _this = this;
|
|
40667
|
+
var dataSourceAction = [];
|
|
40668
|
+
if (this.workflowData) {
|
|
40669
|
+
this.workflowData.connections.sort(multipleSort('soThuTu')).forEach(function (action) {
|
|
40670
|
+
var source = _this.workflowData.machines.find(function (q) { return q.id == action.source; });
|
|
40671
|
+
if (source) {
|
|
40672
|
+
var itemAdd_1 = {
|
|
40673
|
+
code: source.code + "___" + action.code,
|
|
40674
|
+
name: action.name,
|
|
40675
|
+
nameLower: action.name.toLowerCase(),
|
|
40676
|
+
ten: action.name,
|
|
40677
|
+
sourceName: source.name
|
|
40678
|
+
};
|
|
40679
|
+
var itemExist = dataSourceAction.find(function (q) { return q.nameLower == itemAdd_1.nameLower; });
|
|
40680
|
+
if (itemExist) {
|
|
40681
|
+
itemExist.ten = itemExist.name + " (" + itemExist.sourceName + ")";
|
|
40682
|
+
itemAdd_1.ten = itemAdd_1.name + " (" + itemAdd_1.sourceName + ")";
|
|
40683
|
+
}
|
|
40684
|
+
dataSourceAction.push(itemAdd_1);
|
|
40685
|
+
}
|
|
40686
|
+
});
|
|
40687
|
+
}
|
|
40688
|
+
this.dataSourceAction = dataSourceAction;
|
|
40689
|
+
};
|
|
40690
|
+
StateMachinesConnectionReceiverConditionComponent.prototype.onFormInitialized = function (evt) {
|
|
40691
|
+
var _a;
|
|
40692
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
40693
|
+
return __generator(this, function (_b) {
|
|
40694
|
+
if (this.data) {
|
|
40695
|
+
this.assignFieldPlus(evt.model, (_a = this.data.data) !== null && _a !== void 0 ? _a : {});
|
|
40696
|
+
}
|
|
40697
|
+
else {
|
|
40698
|
+
evt.model.data = {};
|
|
40699
|
+
}
|
|
40700
|
+
return [2 /*return*/];
|
|
40701
|
+
});
|
|
40702
|
+
});
|
|
40703
|
+
};
|
|
40704
|
+
StateMachinesConnectionReceiverConditionComponent.prototype.assignFieldPlus = function (dest, source) {
|
|
40705
|
+
dest.receiverRules = source.receiverRules;
|
|
40706
|
+
dest.receiverViewRules = source.receiverViewRules;
|
|
40707
|
+
};
|
|
40708
|
+
StateMachinesConnectionReceiverConditionComponent.prototype.getModelData = function () {
|
|
40709
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
40710
|
+
var dataPlus;
|
|
40711
|
+
return __generator(this, function (_b) {
|
|
40712
|
+
dataPlus = {};
|
|
40713
|
+
this.model.data.receiverRules = this.queryBuilder.getQuery();
|
|
40714
|
+
this.model.data.receiverViewRules = this.queryBuilderView.getQuery();
|
|
40715
|
+
this.assignFieldPlus(dataPlus, this.model.data);
|
|
40716
|
+
return [2 /*return*/, dataPlus];
|
|
40717
|
+
});
|
|
40718
|
+
});
|
|
40719
|
+
};
|
|
40720
|
+
return StateMachinesConnectionReceiverConditionComponent;
|
|
40721
|
+
}(DataFormBase));
|
|
40722
|
+
StateMachinesConnectionReceiverConditionComponent.decorators = [
|
|
40723
|
+
{ type: i0.Component, args: [{
|
|
40724
|
+
selector: 'statemachines-connection-receiver-condition',
|
|
40725
|
+
template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #receiverRules>\r\n <query-builder #queryBuilder [searchSchema]=\"dynamicSchema\" [filters]=\"receiverDynamicRules\"\r\n [hiddenButtons]=\"true\" [useScrollBar]=\"false\"></query-builder>\r\n </ng-template>\r\n <ng-template #receiverViewRules>\r\n <query-builder #queryBuilderView [searchSchema]=\"dynamicSchema\" [filters]=\"receiverDynamicViewRules\"\r\n [hiddenButtons]=\"true\" [useScrollBar]=\"false\"></query-builder>\r\n </ng-template>\r\n</crud-form>",
|
|
40726
|
+
providers: [ComponentContextService],
|
|
40727
|
+
styles: ["::ng-deep statemachines-connection-receiver-condition query-builder-rule .tn__rule-field{flex:0 0 180px;width:180px}::ng-deep statemachines-connection-receiver-condition query-builder-rule .tn__rule-value{flex:0 0 calc(100% - 340px);width:calc(100% - 340px)}"]
|
|
40728
|
+
},] }
|
|
40729
|
+
];
|
|
40730
|
+
StateMachinesConnectionReceiverConditionComponent.ctorParameters = function () { return [
|
|
40731
|
+
{ type: i0.Injector },
|
|
40732
|
+
{ type: DmChucVuService },
|
|
40733
|
+
{ type: UserGroupRealService }
|
|
40734
|
+
]; };
|
|
40735
|
+
StateMachinesConnectionReceiverConditionComponent.propDecorators = {
|
|
40736
|
+
queryBuilder: [{ type: i0.ViewChild, args: ['queryBuilder', { static: false },] }],
|
|
40737
|
+
queryBuilderView: [{ type: i0.ViewChild, args: ['queryBuilderView', { static: false },] }],
|
|
40738
|
+
workflowData: [{ type: i0.Input }],
|
|
40739
|
+
data: [{ type: i0.Input }],
|
|
40740
|
+
isFormAdd: [{ type: i0.Input }],
|
|
40741
|
+
viewOnly: [{ type: i0.Input }]
|
|
40742
|
+
};
|
|
40743
|
+
|
|
40348
40744
|
var StateMachinesConnectionReceiverComponent = /** @class */ (function (_super) {
|
|
40349
40745
|
__extends(StateMachinesConnectionReceiverComponent, _super);
|
|
40350
40746
|
function StateMachinesConnectionReceiverComponent(injector) {
|
|
40351
40747
|
var _this = _super.call(this, injector) || this;
|
|
40352
40748
|
_this.tabDataReceiver = [
|
|
40749
|
+
// {
|
|
40750
|
+
// code: 'user',
|
|
40751
|
+
// icon: 'fa fa-user',
|
|
40752
|
+
// label: ''
|
|
40753
|
+
// },
|
|
40353
40754
|
{
|
|
40354
|
-
code: '
|
|
40755
|
+
code: 'condition',
|
|
40355
40756
|
icon: 'fa fa-user',
|
|
40356
40757
|
label: ''
|
|
40357
40758
|
},
|
|
@@ -40377,18 +40778,18 @@
|
|
|
40377
40778
|
};
|
|
40378
40779
|
StateMachinesConnectionReceiverComponent.prototype.getModelData = function () {
|
|
40379
40780
|
return __awaiter(this, void 0, void 0, function () {
|
|
40380
|
-
var dataPlus,
|
|
40781
|
+
var dataPlus, modelCondition, modelDepartment, modelGroup, roleGroup;
|
|
40381
40782
|
return __generator(this, function (_a) {
|
|
40382
40783
|
switch (_a.label) {
|
|
40383
40784
|
case 0:
|
|
40384
40785
|
dataPlus = {};
|
|
40385
|
-
return [4 /*yield*/, this.
|
|
40786
|
+
return [4 /*yield*/, this.conditionForm.getModelData()];
|
|
40386
40787
|
case 1:
|
|
40387
|
-
|
|
40388
|
-
if (
|
|
40788
|
+
modelCondition = _a.sent();
|
|
40789
|
+
if (modelCondition == null) {
|
|
40389
40790
|
return [2 /*return*/, null];
|
|
40390
40791
|
}
|
|
40391
|
-
this.
|
|
40792
|
+
this.conditionForm.assignFieldPlus(dataPlus, modelCondition);
|
|
40392
40793
|
return [4 /*yield*/, this.departmentForm.getModelData()];
|
|
40393
40794
|
case 2:
|
|
40394
40795
|
modelDepartment = _a.sent();
|
|
@@ -40420,7 +40821,7 @@
|
|
|
40420
40821
|
StateMachinesConnectionReceiverComponent.decorators = [
|
|
40421
40822
|
{ type: i0.Component, args: [{
|
|
40422
40823
|
selector: 'statemachines-connection-receiver',
|
|
40423
|
-
template: "<div style=\"height: 100%\">\r\n <tn-tabview [data]=\"tabDataReceiver\" [allowViewAll]=\"true\" [vertical]=\"true\">\r\n <ng-template #user>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-user #user [designerContext]=\"designerContext\" [data]=\"data\"\r\n [workflowData]=\"workflowData\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-user>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n <ng-template #department>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-department #user [data]=\"data\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-department>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n <ng-template #group>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-group #user [data]=\"data\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-group>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n <ng-template #role>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-role #user [data]=\"data\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-role>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n </tn-tabview>\r\n</div>",
|
|
40824
|
+
template: "<div style=\"height: 100%\">\r\n <tn-tabview [data]=\"tabDataReceiver\" [allowViewAll]=\"true\" [vertical]=\"true\">\r\n <!-- <ng-template #user>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-user #user [designerContext]=\"designerContext\" [data]=\"data\"\r\n [workflowData]=\"workflowData\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-user>\r\n </tn-custom-scrollbar>\r\n </ng-template> -->\r\n <ng-template #condition>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-condition #condition [workflowData]=\"workflowData\" [data]=\"data\"\r\n [isFormAdd]=\"isFormAdd\" [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-condition>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n <ng-template #department>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-department #user [data]=\"data\" [isFormAdd]=\"isFormAdd\"\r\n [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-department>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n <ng-template #group>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-group #user [data]=\"data\" [isFormAdd]=\"isFormAdd\"\r\n [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-group>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n <ng-template #role>\r\n <tn-custom-scrollbar>\r\n <statemachines-connection-receiver-role #user [data]=\"data\" [isFormAdd]=\"isFormAdd\"\r\n [viewOnly]=\"viewOnly\">\r\n </statemachines-connection-receiver-role>\r\n </tn-custom-scrollbar>\r\n </ng-template>\r\n </tn-tabview>\r\n</div>",
|
|
40424
40825
|
providers: [ComponentContextService],
|
|
40425
40826
|
styles: ["::ng-deep statemachines-connection-metadata .userRules .tn-check-box-list,::ng-deep statemachines-connection-metadata .userViewRules .tn-check-box-list{margin-bottom:.5em!important;margin-top:-.5em}::ng-deep statemachines-connection-metadata .userIds .label,::ng-deep statemachines-connection-metadata .userViewIds .label{font-weight:700}"]
|
|
40426
40827
|
},] }
|
|
@@ -40430,22 +40831,24 @@
|
|
|
40430
40831
|
]; };
|
|
40431
40832
|
StateMachinesConnectionReceiverComponent.propDecorators = {
|
|
40432
40833
|
userForm: [{ type: i0.ViewChild, args: [StateMachinesConnectionReceiverUserComponent, { static: false },] }],
|
|
40834
|
+
conditionForm: [{ type: i0.ViewChild, args: [StateMachinesConnectionReceiverConditionComponent, { static: false },] }],
|
|
40433
40835
|
departmentForm: [{ type: i0.ViewChild, args: [StateMachinesConnectionReceiverDepartmentComponent, { static: false },] }],
|
|
40434
40836
|
groupForm: [{ type: i0.ViewChild, args: [StateMachinesConnectionReceiverGroupComponent, { static: false },] }],
|
|
40435
40837
|
roleForm: [{ type: i0.ViewChild, args: [StateMachinesConnectionReceiverRoleComponent, { static: false },] }],
|
|
40436
40838
|
designerContext: [{ type: i0.Input }],
|
|
40437
40839
|
data: [{ type: i0.Input }],
|
|
40840
|
+
isFormAdd: [{ type: i0.Input }],
|
|
40438
40841
|
workflowData: [{ type: i0.Input }],
|
|
40439
40842
|
viewOnly: [{ type: i0.Input }]
|
|
40440
40843
|
};
|
|
40441
40844
|
|
|
40442
40845
|
var StateMachinesConnectionSenderComponent = /** @class */ (function (_super) {
|
|
40443
40846
|
__extends(StateMachinesConnectionSenderComponent, _super);
|
|
40444
|
-
function StateMachinesConnectionSenderComponent(injector, notifierService, _userGroupService,
|
|
40847
|
+
function StateMachinesConnectionSenderComponent(injector, notifierService, _userGroupService, _dmChucVuService) {
|
|
40445
40848
|
var _this = _super.call(this, injector) || this;
|
|
40446
40849
|
_this.notifierService = notifierService;
|
|
40447
40850
|
_this._userGroupService = _userGroupService;
|
|
40448
|
-
_this.
|
|
40851
|
+
_this._dmChucVuService = _dmChucVuService;
|
|
40449
40852
|
_this.dynamicRules = [];
|
|
40450
40853
|
_this.autoGetDetail = false;
|
|
40451
40854
|
_this.autoSave = false;
|
|
@@ -40475,7 +40878,7 @@
|
|
|
40475
40878
|
{ id: 3, ten: '3' }
|
|
40476
40879
|
]
|
|
40477
40880
|
}),
|
|
40478
|
-
createRolePickerControl(this.
|
|
40881
|
+
createRolePickerControl(this._dmChucVuService, 'roleId', 'Chức vụ'),
|
|
40479
40882
|
userGroupPickerControl,
|
|
40480
40883
|
new DropdownControlSchema({
|
|
40481
40884
|
field: 'lastStateCode',
|
|
@@ -40485,6 +40888,18 @@
|
|
|
40485
40888
|
displayField: 'name',
|
|
40486
40889
|
showLabel: false,
|
|
40487
40890
|
mdWidth: 12
|
|
40891
|
+
}),
|
|
40892
|
+
new CustomControlSchema({
|
|
40893
|
+
field: 'customField',
|
|
40894
|
+
label: 'Trường dữ liệu',
|
|
40895
|
+
operators: [
|
|
40896
|
+
{ id: exports.Operator.equal, ten: 'Bằng' },
|
|
40897
|
+
{ id: exports.Operator.notEqual, ten: 'Không bằng' },
|
|
40898
|
+
{ id: exports.Operator.greater, ten: 'Lớn hơn' },
|
|
40899
|
+
{ id: exports.Operator.greaterThanEqual, ten: 'Lớn hơn hoặc bằng' },
|
|
40900
|
+
{ id: exports.Operator.lower, ten: 'Nhỏ hơn' },
|
|
40901
|
+
{ id: exports.Operator.lowerThanEqual, ten: 'Nhỏ hơn hoặc bằng' }
|
|
40902
|
+
]
|
|
40488
40903
|
})
|
|
40489
40904
|
];
|
|
40490
40905
|
if (this.data && this.data.data) {
|
|
@@ -40539,7 +40954,7 @@
|
|
|
40539
40954
|
{ type: i0.Injector },
|
|
40540
40955
|
{ type: NotifierService },
|
|
40541
40956
|
{ type: UserGroupRealService },
|
|
40542
|
-
{ type:
|
|
40957
|
+
{ type: DmChucVuService }
|
|
40543
40958
|
]; };
|
|
40544
40959
|
StateMachinesConnectionSenderComponent.propDecorators = {
|
|
40545
40960
|
queryBuilder: [{ type: i0.ViewChild, args: ['queryBuilder', { static: false },] }],
|
|
@@ -40974,7 +41389,7 @@
|
|
|
40974
41389
|
selector: 'statemachines-designer',
|
|
40975
41390
|
template: "<div class=\"state-control\" [ngStyle]=\"holderStyle\" [class.highlight]=\"highlighting\">\r\n <tn-custom-scrollbar *ngIf=\"useScrollBar\" #scrollbar [ngStyle]=\"{ height: '100%', display: 'block'}\"\r\n [config]=\"{suppressScrollX : true}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </tn-custom-scrollbar>\r\n <ng-container *ngIf=\"!useScrollBar\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </ng-container>\r\n <div class=\"container-note\">\r\n <span *ngIf=\"!viewOnly\"><i class=\"fas fa-info-circle\"></i> Click \u0111\u00FAp v\u00E0o v\u00F9ng tr\u1ED1ng \u0111\u1EC3 th\u00EAm m\u1EDBi tr\u1EA1ng th\u00E1i\r\n </span>\r\n\r\n <button (click)=\"copyWfToClipboard()\" pButton type=\"button\" pTooltip=\"Sao ch\u00E9p\" tooltipPosition=\"top\"\r\n class=\"p-button-rounded p-button-info p-button-outlined p-ripple p-button p-component p-button-icon-only\">\r\n <i class=\"fas fa-copy\"></i>\r\n </button>\r\n\r\n <button *ngIf=\"!viewOnly\" (click)=\"pasteWfToClipboard()\" pButton type=\"button\" label=\"Success\" pTooltip=\"D\u00E1n\"\r\n tooltipPosition=\"top\"\r\n class=\"p-button-rounded p-button-success p-button-outlined p-ripple p-button p-component p-button-icon-only\">\r\n <i class=\"fas fa-paste\"></i>\r\n </button>\r\n\r\n <button (click)=\"fullScreen(!fullScreenMode)\" pButton type=\"button\" label=\"Success\" pTooltip=\"M\u1EDF r\u1ED9ng\"\r\n tooltipPosition=\"top\"\r\n class=\"p-button-rounded p-button-secondary p-button-outlined p-ripple p-button p-component p-button-icon-only\">\r\n <i *ngIf=\"!fullScreenMode\" class=\"fas fa-expand-arrows-alt\"></i>\r\n <i *ngIf=\"fullScreenMode\" class=\"fas fa-compress-arrows-alt\"></i>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #content>\r\n <div *ngIf=\"jsPlumbReady\" #container [id]=\"containerId\" class=\"container\" [ngClass]=\"viewOnly?'':'editable'\"\r\n [ngStyle]=\"{ height: viewHeight + 'px' }\" (dblclick)=\"createNewNode($event, container)\">\r\n <ng-container *ngIf=\"data.machines.length > 0\">\r\n <state *ngFor=\"let machine of data.machines\" [id]=\"containerId + '_' + machine.id\" [machine]=\"machine\"\r\n [viewOnly]=\"viewOnly\" class=\"state-node\"\r\n [ngStyle]=\"{'left': machine.location[0] + 'px', 'top': machine.location[1] + 'px'}\"\r\n [jsPlumbInstance]=\"jsPlumbInstance\" [containerId]=\"containerId\" (onEdit)=\"editNode($event)\"\r\n (onDelete)=\"deleteNode($event)\" (onReady)=\"checkStatesReadyThenRenderConnections($event)\">\r\n </state>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<p-contextMenu #contextMenu [appendTo]=\"'body'\" [model]=\"buttonContexts\"></p-contextMenu>\r\n\r\n<tn-dialog *ngIf=\"stateMetadataModel.showEditForm\" #dialog [styleClass]=\"'address-form'\"\r\n [header]=\"'Th\u00F4ng tin tr\u1EA1ng th\u00E1i' | translate\" [popupSize]=\"stateMetadataModel.popupSize\"\r\n (onHide)=\"hideStateMetadataForm()\">\r\n <state-metadata #formBase [data]=\"currentState\" [location]=\"locationWhenAdd\" [machinesData]=\"data\"\r\n (onSaved)=\"handleSavedStateMetadata($event)\" (onCancel)=\"hideStateMetadataForm()\"\r\n (onRemove)=\"handleRemoveFromDialog()\">\r\n </state-metadata>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"stateMachineConnectionModel.showEditForm\" #dialog [styleClass]=\"'address-form'\"\r\n [useDefaultScrollBar]=\"true\" [header]=\"'Th\u00F4ng tin \u0111\u01B0\u1EDDng n\u1ED1i' | translate\"\r\n [popupSize]=\"stateMachineConnectionModel.popupSize\" (onHide)=\"hideConnectionForm()\">\r\n <statemachines-connection-metadata #formBase [data]=\"currentConnectionObject.connectionMetadata\"\r\n [designerContext]=\"context\" [machinesData]=\"data\" [viewOnly]=\"viewOnly\"\r\n (onSaved)=\"handleSavedConnection($event)\" (onCancel)=\"hideConnectionForm()\"\r\n (onRemove)=\"handleRemoveConnectionFromDialog()\">\r\n </statemachines-connection-metadata>\r\n</tn-dialog>",
|
|
40976
41391
|
providers: [ComponentContextService],
|
|
40977
|
-
styles: [".state-control{border:1px solid #ced4da;border-radius:3px;overflow:hidden;position:relative}.state-control .container{height:1500px;position:relative}.state-control .container .state-node{display:block;height:100px;max-height:100px;position:absolute;width:150px}.state-control .container-note{display:inline-block;font-weight:100;margin:0;padding:10px 14px;position:absolute;text-align:right;top:0;width:100%}.state-control .container-note span{background:#ffeb3b;line-height:30px;margin-right:10px;padding:5px}.state-control .container-note button{margin-right:5px}:host ::ng-deep .jtk-hover{z-index:1}:host ::ng-deep .conn-label{background:rgba(97,183,207,.30196078431372547);border:1px dashed #c5c5c5;padding:5px;z-index:2}:host ::ng-deep .conn-label:hover{background:#fff}:host ::ng-deep .conn-label.jtk-hover{background:#44a7c3;border:none;color:#fff;z-index:3}:host ::ng-deep .editable .conn-label,:host ::ng-deep .editable .jtk-connector,:host ::ng-deep .editable .jtk-endpoint,:host ::ng-deep .editable path{cursor:pointer}::ng-deep .state-control.highlight .conn-label,::ng-deep .state-control.highlight .jtk-connector,::ng-deep .state-control.highlight state{opacity:.3}::ng-deep .state-control.highlight .conn-label.--current,::ng-deep .state-control.highlight .jtk-connector.--current,::ng-deep .state-control.highlight state.--current{opacity:unset}"]
|
|
41392
|
+
styles: [".state-control{border:1px solid #ced4da;border-radius:3px;overflow:hidden;position:relative}.state-control .container{height:1500px;position:relative}.state-control .container .state-node{display:block;height:100px;max-height:100px;position:absolute;width:150px}.state-control .container-note{display:inline-block;font-weight:100;margin:0;padding:10px 14px;position:absolute;text-align:right;top:0;width:100%}.state-control .container-note span{background:#ffeb3b;line-height:30px;margin-right:10px;padding:5px}.state-control .container-note button{margin-right:5px}:host ::ng-deep .jtk-hover{z-index:1}:host ::ng-deep .conn-label{background:rgba(97,183,207,.30196078431372547);border:1px dashed #c5c5c5;padding:5px;z-index:2}:host ::ng-deep .conn-label:hover{background:#fff}:host ::ng-deep .conn-label.jtk-hover{background:#44a7c3;border:none;color:#fff;z-index:3}:host ::ng-deep .editable .conn-label,:host ::ng-deep .editable .jtk-connector,:host ::ng-deep .editable .jtk-endpoint,:host ::ng-deep .editable path{cursor:pointer}::ng-deep .state-control.highlight .conn-label,::ng-deep .state-control.highlight .jtk-connector,::ng-deep .state-control.highlight state{opacity:.3}::ng-deep .state-control.highlight .conn-label.--current,::ng-deep .state-control.highlight .jtk-connector.--current,::ng-deep .state-control.highlight state.--current{opacity:unset}::ng-deep .state-control.highlight .conn-label.--current{background:#44a7c3;border:none;color:#fff}"]
|
|
40978
41393
|
},] }
|
|
40979
41394
|
];
|
|
40980
41395
|
StateMachinesDesignerComponent.ctorParameters = function () { return [
|
|
@@ -41401,7 +41816,7 @@
|
|
|
41401
41816
|
TnAppHelpComponent.decorators = [
|
|
41402
41817
|
{ type: i0.Component, args: [{
|
|
41403
41818
|
selector: 'li[tn-app-help]',
|
|
41404
|
-
template: "<a href=\"javascript:;\" tabindex=\"9\" (click)=\"showHelper()\" style=\"height: 30px;\" pTooltip=\"Tr\u1EE3 gi\u00FAp\"\r\n tooltipPosition=\"bottom\">\r\n <span class=\"topbar-icon-left\">\r\n <!-- <svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\r\n class=\"topbar-icon animated swing svgmodule\">\r\n <path fill=\"currentColor\"\r\n d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"\r\n class=\"\"></path>\r\n </svg> -->\r\n <i class=\"topbar-icon animated swing pi pi-question-circle\"></i>\r\n </span>\r\n <span class=\"topbar-item-name\">{{ \"Tr\u1EE3 gi\u00FAp\" | translate }}</span>\r\n</a>\r\n\r\n<p-sidebar [styleClass]=\"'HelperSlideBar tn-l-sidebar-wrapper'\" [(visible)]=\"display\" position=\"right\"\r\n [appendTo]=\"'body'\" [style]=\"{ width: '30em', border: 0, 'max-width': '100vw' }\">\r\n <div style=\"background-color: #fff; box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.35);\">\r\n <h1 style=\"font-size: 16px; color: #212529;\">Trung t\u00E2m tr\u1EE3 gi\u00FAp</h1>\r\n </div>\r\n\r\n <div class=\"tn-l-help-wrapper\">\r\n <tn-custom-scrollbar #scrollbar [style]=\"{'max-height':'calc(100vh - 50px)'}\">\r\n <div class=\"HelpCenter\">\r\n <div class=\"p-grid\" style=\"margin-top:10px; margin-bottom:
|
|
41819
|
+
template: "<a href=\"javascript:;\" tabindex=\"9\" (click)=\"showHelper()\" style=\"height: 30px;\" pTooltip=\"Tr\u1EE3 gi\u00FAp\"\r\n tooltipPosition=\"bottom\">\r\n <span class=\"topbar-icon-left\">\r\n <!-- <svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\r\n class=\"topbar-icon animated swing svgmodule\">\r\n <path fill=\"currentColor\"\r\n d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"\r\n class=\"\"></path>\r\n </svg> -->\r\n <i class=\"topbar-icon animated swing pi pi-question-circle\"></i>\r\n </span>\r\n <span class=\"topbar-item-name\">{{ \"Tr\u1EE3 gi\u00FAp\" | translate }}</span>\r\n</a>\r\n\r\n<p-sidebar [styleClass]=\"'HelperSlideBar tn-l-sidebar-wrapper'\" [(visible)]=\"display\" position=\"right\"\r\n [appendTo]=\"'body'\" [style]=\"{ width: '30em', border: 0, 'max-width': '100vw' }\">\r\n <div style=\"background-color: #fff; box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.35);\">\r\n <h1 style=\"font-size: 16px; color: #212529;\">Trung t\u00E2m tr\u1EE3 gi\u00FAp</h1>\r\n </div>\r\n\r\n <div class=\"tn-l-help-wrapper\">\r\n <tn-custom-scrollbar #scrollbar [style]=\"{'max-height':'calc(100vh - 50px)'}\">\r\n <div class=\"HelpCenter\">\r\n <div class=\"p-grid\" style=\"margin-top:10px; margin-bottom: 25px;\">\r\n <div class=\"p-col-8\">\r\n <p style=\"font-weight:bold;font-size: 16px;margin-bottom: 8px; margin-top:20px\">\r\n {{environment.helpConfig?.expertName}}\r\n </p>\r\n <p style=\"margin: 0px;\">\r\n <a [href]=\"hrefTelephone\"><i class=\"fas fa-phone\"\r\n style=\"margin-right: 8px; width: 15px\"></i>{{phoneNumber}}</a>\r\n </p>\r\n <p style=\"margin-top: 8px;\">\r\n <a [href]=\"hrefMail\"><i class=\"fas fa-envelope\"\r\n style=\"margin-right: 8px; width: 15px\"></i>{{mail}}</a>\r\n </p>\r\n </div>\r\n <div class=\"p-col-4\">\r\n <img src=\"/assets/images/tri-nam-group-logo.png\"\r\n style=\"width: 100%; float: right; margin-top: 15px; opacity: 0.7;\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-grid p-m-0 HelpCenter-video\" style=\"margin-top: 0px\">\r\n <div class=\"p-col-12 help-title\">\r\n <span class=\"tit-name\">Xem h\u01B0\u1EDBng d\u1EABn</span>\r\n </div>\r\n <div class=\"p-col-12 help-content\">\r\n <h2 *ngIf=\"showHelperCurrentPageState\" style=\"margin-top: 0px\">\r\n <a href=\"javascript:;\" (click)=\"showHelperCurrentPage(null)\"\r\n style=\"display:inline-block; position: relative; border-top: 1px solid #52abf5;\">\r\n <img src=\"/assets/images/bgvideo.png\" alt=\"screen shot\"\r\n style=\"width:100%; filter: brightness(0.88);\" />\r\n <i class=\"fab fa-youtube fa-2x\"></i>\r\n </a>\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-grid p-m-0 HelpCenter-download\" style=\"margin-top: 0px; margin-bottom: 40px;\">\r\n <div class=\"p-col-12 help-title\">\r\n <span class=\"tit-name\">Ph\u1EA7n m\u1EC1m ti\u1EC7n \u00EDch</span>\r\n </div>\r\n <div class=\"tn-l-pmti\" style=\"border: 1px solid #ccc; width: 100%\">\r\n <div class=\"p-col-4 help-content\">\r\n <p style=\"margin-top: 18px; text-align: center;\">\r\n <a target=\"_blank\" href=\"{{environment.signalr.linkDownloadClientApp}}\"\r\n style=\"display: inline-block; text-align: center;\">\r\n <img src=\"/assets/images/icon-appTN64x64.png\" />\r\n <br />TN Client\r\n </a>\r\n </p>\r\n </div>\r\n <div class=\"p-col-4 help-content\">\r\n <p style=\"margin-top: 18px; text-align: center;\">\r\n <a target=\"_blank\" href=\"https://ultraviewer.net/vi/UltraViewer_setup_6.2_vi.exe\"\r\n style=\"display: inline-block; text-align: center;\">\r\n <img src=\"/assets/images/ultraviewer.ico\" />\r\n <br />Ultraviewer\r\n </a>\r\n </p>\r\n </div>\r\n <div class=\"p-col-4 help-content\">\r\n <p style=\"margin-top: 18px; text-align: center;\">\r\n <a target=\"_blank\" href=\"https://www.teamviewer.com/vi/tai-xuong-tu-dong-teamviewer/\"\r\n style=\"display: inline-block; text-align: center;\">\r\n <img src=\"/assets/images/icon-teamviewer.png\" />\r\n <br />Teamviewer\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tn-custom-scrollbar>\r\n </div>\r\n</p-sidebar>",
|
|
41405
41820
|
providers: [ComponentContextService],
|
|
41406
41821
|
styles: [".HelpCenter{color:#555;padding:0 20px}::ng-deep .tn-l-sidebar-wrapper{padding:0}.tn-l-pmti{display:flex}.HelpCenter p:first-child img{margin-bottom:10px}::ng-deep .HelperSlideBar .p-sidebar-content>button{color:#212529;cursor:pointer;font-size:20px;margin-right:14px;margin-top:10px}::ng-deep .ui-sidebar{padding:0}::ng-deep .HelperSlideBar h1{height:50px;line-height:50px;margin:0;padding-left:20px;text-transform:uppercase}.HelpCenter-video{position:relative}.HelpCenter-video i{color:#454545;cursor:pointer;left:50%;opacity:.5;position:absolute;top:calc(50% - 10px);transform:translateX(-50%) translateY(-50%);transition:.5s}.HelpCenter-video video{opacity:1}.HelpCenter-video:hover video{cursor:pointer;opacity:.5}.HelpCenter-video:hover i{opacity:1}.HelpCenter-download img{height:45px;width:45px}.HelpCenter .help-title{background-color:rgba(49,146,225,.8784313725490196);color:#fff}.HelpCenter .help-title .tit-name{font-size:14px;font-weight:700}.HelpCenter .help-content{padding:0}.HelpCenter .HelpCenter-comment .help-content{padding:0;text-align:center}.HelpCenter-comment,.HelpCenter-download,.HelpCenter-video{margin-bottom:15px}.tn-l-help-wrapper{display:flex;max-height:calc(100vh - 60px);overflow:auto}"]
|
|
41407
41822
|
},] }
|
|
@@ -42216,7 +42631,7 @@
|
|
|
42216
42631
|
};
|
|
42217
42632
|
TnAppNotificationComponent.prototype.handleClicked = function () {
|
|
42218
42633
|
var domain = this.environment.clientDomain.thongbaoDomain;
|
|
42219
|
-
|
|
42634
|
+
window.open(domain + "/thongbao-chuadoc");
|
|
42220
42635
|
};
|
|
42221
42636
|
return TnAppNotificationComponent;
|
|
42222
42637
|
}(ComponentBase));
|
|
@@ -43502,10 +43917,11 @@
|
|
|
43502
43917
|
|
|
43503
43918
|
var UserPickerComponent = /** @class */ (function (_super) {
|
|
43504
43919
|
__extends(UserPickerComponent, _super);
|
|
43505
|
-
function UserPickerComponent(_injector, _userV5Service, _translateService) {
|
|
43920
|
+
function UserPickerComponent(_injector, _userV5Service, _translateService, _dm_ChucVuService) {
|
|
43506
43921
|
var _this = _super.call(this, _injector) || this;
|
|
43507
43922
|
_this._userV5Service = _userV5Service;
|
|
43508
43923
|
_this._translateService = _translateService;
|
|
43924
|
+
_this._dm_ChucVuService = _dm_ChucVuService;
|
|
43509
43925
|
_this.popupSize = new PopupSize({
|
|
43510
43926
|
width: 1100,
|
|
43511
43927
|
height: 900,
|
|
@@ -43529,6 +43945,8 @@
|
|
|
43529
43945
|
_this.dirty = false;
|
|
43530
43946
|
_this.tooltip = '';
|
|
43531
43947
|
_this.hasValue = false;
|
|
43948
|
+
_this.searchSchema = {};
|
|
43949
|
+
_this.searchData = {};
|
|
43532
43950
|
return _this;
|
|
43533
43951
|
}
|
|
43534
43952
|
UserPickerComponent.prototype.ngOnInit = function () {
|
|
@@ -43560,6 +43978,21 @@
|
|
|
43560
43978
|
code: 'email',
|
|
43561
43979
|
dataType: 'string',
|
|
43562
43980
|
fullTextSearch: true
|
|
43981
|
+
}),
|
|
43982
|
+
new EntityPickerColumn({
|
|
43983
|
+
label: 'Chức vụ',
|
|
43984
|
+
code: 'lstTenChucVu',
|
|
43985
|
+
templateFilter: this.filterChucVuRef,
|
|
43986
|
+
}),
|
|
43987
|
+
new EntityPickerColumn({
|
|
43988
|
+
label: 'Giảng viên',
|
|
43989
|
+
code: 'isGiangVien',
|
|
43990
|
+
dataType: 'boolean'
|
|
43991
|
+
}),
|
|
43992
|
+
new EntityPickerColumn({
|
|
43993
|
+
label: 'Chuyên viên',
|
|
43994
|
+
code: 'isChuyenVien',
|
|
43995
|
+
dataType: 'boolean'
|
|
43563
43996
|
})
|
|
43564
43997
|
], mdWidth: 12 }));
|
|
43565
43998
|
this.fieldSearchText = __spread(this.controlPicker.fieldSearchText);
|
|
@@ -43580,8 +44013,24 @@
|
|
|
43580
44013
|
this.funcReturnValue = function (value) { return value; };
|
|
43581
44014
|
this.buildFilterKeyword();
|
|
43582
44015
|
this.buildSettingEntityPicker();
|
|
44016
|
+
this.createSchemaSearch();
|
|
43583
44017
|
this.onReady.emit();
|
|
43584
44018
|
};
|
|
44019
|
+
UserPickerComponent.prototype.createSchemaSearch = function () {
|
|
44020
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
44021
|
+
return __generator(this, function (_a) {
|
|
44022
|
+
this.searchSchema.idChucVus = new DropdownControlSchema({
|
|
44023
|
+
field: 'idChucVus',
|
|
44024
|
+
multiple: true,
|
|
44025
|
+
placeholder: 'Chọn chức vụ',
|
|
44026
|
+
baseService: this._dm_ChucVuService,
|
|
44027
|
+
sortField: 'soThuTu',
|
|
44028
|
+
loadOnInit: true
|
|
44029
|
+
});
|
|
44030
|
+
return [2 /*return*/];
|
|
44031
|
+
});
|
|
44032
|
+
});
|
|
44033
|
+
};
|
|
43585
44034
|
UserPickerComponent.prototype.buildFilterKeyword = function () {
|
|
43586
44035
|
var _this = this;
|
|
43587
44036
|
if (this.fieldSearchText.length == 1) {
|
|
@@ -43682,7 +44131,8 @@
|
|
|
43682
44131
|
};
|
|
43683
44132
|
UserPickerComponent.prototype.getData = function (keyWord) {
|
|
43684
44133
|
return __awaiter(this, void 0, void 0, function () {
|
|
43685
|
-
var filters, dataSource;
|
|
44134
|
+
var filters, filterOrs_1, dataSource;
|
|
44135
|
+
var _this = this;
|
|
43686
44136
|
return __generator(this, function (_a) {
|
|
43687
44137
|
switch (_a.label) {
|
|
43688
44138
|
case 0:
|
|
@@ -43697,6 +44147,13 @@
|
|
|
43697
44147
|
filters.push(this.newFilter(this.controlPicker.valueField, exports.Operator.notEqual, this.value));
|
|
43698
44148
|
}
|
|
43699
44149
|
}
|
|
44150
|
+
if (this.searchData.idChucVus && this.searchData.idChucVus.length > 0) {
|
|
44151
|
+
filterOrs_1 = [];
|
|
44152
|
+
this.searchData.idChucVus.forEach(function (idChucVu) {
|
|
44153
|
+
filterOrs_1.push(_this.newFilter('IdsChucVu', exports.Operator.contain, idChucVu));
|
|
44154
|
+
});
|
|
44155
|
+
filters.push(this.newFilterContainer.apply(this, __spread(['or'], filterOrs_1)));
|
|
44156
|
+
}
|
|
43700
44157
|
return [4 /*yield*/, appendDefaultFilter(filters, this.control.defaultFilters)];
|
|
43701
44158
|
case 1:
|
|
43702
44159
|
_a.sent();
|
|
@@ -44007,7 +44464,7 @@
|
|
|
44007
44464
|
UserPickerComponent.decorators = [
|
|
44008
44465
|
{ type: i0.Component, args: [{
|
|
44009
44466
|
selector: 'user-picker',
|
|
44010
|
-
template: "<div class=\"p-inputgroup user-picker\" [class.multiple]=\"multiple\" [class.hasValue]=\"hasValue\">\r\n <div style=\"width: calc(100% - 28px)\" [pTooltip]=\"tooltip\" tooltipPosition=\"top\">\r\n <p-autoComplete emptyMessage=\"Kh\u00F4ng c\u00F3 k\u1EBFt qu\u1EA3 n\u00E0o\" [ngClass]=\"'custom-autocomplete'\" [disabled]=\"disabled\"\r\n [placeholder]=\"control.placeholder\" [appendTo]=\"control.appendTo\" [suggestions]=\"results\" field=\"label\"\r\n [styleClass]=\"control.validators && control.required ? 'rq' : ''\" [multiple]=\"control.multiple\"\r\n [minLength]=\"2\" [(ngModel)]=\"selectedValueObject\" (onFocus)=\"handleFocus($event)\"\r\n (onBlur)=\"handleBlur($event)\" (completeMethod)=\"search($event)\" (onKeyUp)=\"handleKeyUp($event)\"\r\n (onSelect)=\"handleSelect($event)\" (onUnselect)=\"handleUnSelect($event)\">\r\n </p-autoComplete>\r\n </div>\r\n <span *ngIf=\"!control.multiple && !disabled && hasValue\" class=\"icon-clear\" (click)=\"clearValue()\"><i\r\n class=\"fas fa-times\"></i></span>\r\n <button class=\"custom-autocomplete-button\" [disabled]=\"disabled\" tabindex=\"-1\" (click)=\"showPickForm()\" pButton\r\n [pTooltip]=\"control.title\" icon=\"fas fa-external-link-alt\" type=\"button\"></button>\r\n</div>\r\n<tn-dialog #dialog *ngIf=\"showFormPicker\" styleClass=\"user-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\r\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\r\n <user-picker-box #userPickerBox [controlSetting]=\"control\" [control]=\"controlPicker\" [parentSetting]=\"settingPicker\"\r\n [advanceData]=\"advanceDataPicker\" [selectedValue]=\"selectedValue\" (onChanged)=\"handleChangeEntity($event)\"\r\n (onSelect)=\"handleSelectEntity($event)\" (onUnSelect)=\"handleUnSelectEntity($event)\"\r\n (onDone)=\"handleHide($event)\" (onRowSelect)=\"handleRowSelect($event)\">\r\n </user-picker-box>\r\n <ng-template #footer>\r\n <button type=\" button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, userPickerBox)\"\r\n [label]=\"'Ho\u00E0n th\u00E0nh'\" icon=\"pi pi-check\"></button>\r\n </ng-template>\r\n</tn-dialog>",
|
|
44467
|
+
template: "<div class=\"p-inputgroup user-picker\" [class.multiple]=\"multiple\" [class.hasValue]=\"hasValue\">\r\n <div style=\"width: calc(100% - 28px)\" [pTooltip]=\"tooltip\" tooltipPosition=\"top\">\r\n <p-autoComplete emptyMessage=\"Kh\u00F4ng c\u00F3 k\u1EBFt qu\u1EA3 n\u00E0o\" [ngClass]=\"'custom-autocomplete'\" [disabled]=\"disabled\"\r\n [placeholder]=\"control.placeholder\" [appendTo]=\"control.appendTo\" [suggestions]=\"results\" field=\"label\"\r\n [styleClass]=\"control.validators && control.required ? 'rq' : ''\" [multiple]=\"control.multiple\"\r\n [minLength]=\"2\" [(ngModel)]=\"selectedValueObject\" (onFocus)=\"handleFocus($event)\"\r\n (onBlur)=\"handleBlur($event)\" (completeMethod)=\"search($event)\" (onKeyUp)=\"handleKeyUp($event)\"\r\n (onSelect)=\"handleSelect($event)\" (onUnselect)=\"handleUnSelect($event)\">\r\n </p-autoComplete>\r\n </div>\r\n <span *ngIf=\"!control.multiple && !disabled && hasValue\" class=\"icon-clear\" (click)=\"clearValue()\"><i\r\n class=\"fas fa-times\"></i></span>\r\n <button class=\"custom-autocomplete-button\" [disabled]=\"disabled\" tabindex=\"-1\" (click)=\"showPickForm()\" pButton\r\n [pTooltip]=\"control.title\" icon=\"fas fa-external-link-alt\" type=\"button\"></button>\r\n</div>\r\n<tn-dialog #dialog *ngIf=\"showFormPicker\" styleClass=\"user-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\r\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\r\n <user-picker-box #userPickerBox [controlSetting]=\"control\" [control]=\"controlPicker\" [parentSetting]=\"settingPicker\"\r\n [advanceData]=\"advanceDataPicker\" [selectedValue]=\"selectedValue\" (onChanged)=\"handleChangeEntity($event)\"\r\n (onSelect)=\"handleSelectEntity($event)\" (onUnSelect)=\"handleUnSelectEntity($event)\"\r\n (onDone)=\"handleHide($event)\" (onRowSelect)=\"handleRowSelect($event)\">\r\n </user-picker-box>\r\n <ng-template #footer>\r\n <button type=\" button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, userPickerBox)\"\r\n [label]=\"'Ho\u00E0n th\u00E0nh'\" icon=\"pi pi-check\"></button>\r\n </ng-template>\r\n</tn-dialog>\r\n\r\n<ng-template #filterChucVuRef let-col=\"col\" let-filterData=\"filterData\" let-onSearch=\"onSearch\"\r\n let-onShowFilterDropdownPanel=\"onShowFilterDropdownPanel\" let-onHideFilterDropdownPanel=\"onHideFilterDropdownPanel\">\r\n <dropdown [control]=\"searchSchema.idChucVus\" [(value)]=\"searchData.idChucVus\" (onHideSmartEvent)=\"onSearch()\"\r\n (onShow)=\"onShowFilterDropdownPanel($event)\" (onHideSmartEvent)=\"onHideFilterDropdownPanel($event)\">\r\n </dropdown>\r\n</ng-template>",
|
|
44011
44468
|
providers: [
|
|
44012
44469
|
{
|
|
44013
44470
|
provide: forms.NG_VALUE_ACCESSOR,
|
|
@@ -44022,9 +44479,11 @@
|
|
|
44022
44479
|
UserPickerComponent.ctorParameters = function () { return [
|
|
44023
44480
|
{ type: i0.Injector },
|
|
44024
44481
|
{ type: UserV5Service },
|
|
44025
|
-
{ type: i2.TranslateService }
|
|
44482
|
+
{ type: i2.TranslateService },
|
|
44483
|
+
{ type: DmChucVuService }
|
|
44026
44484
|
]; };
|
|
44027
44485
|
UserPickerComponent.propDecorators = {
|
|
44486
|
+
filterChucVuRef: [{ type: i0.ViewChild, args: ['filterChucVuRef', { static: true },] }],
|
|
44028
44487
|
control: [{ type: i0.Input }],
|
|
44029
44488
|
popupSize: [{ type: i0.Input }],
|
|
44030
44489
|
multiple: [{ type: i0.Input }],
|
|
@@ -45045,10 +45504,6 @@
|
|
|
45045
45504
|
}());
|
|
45046
45505
|
var WorkflowTargetDefaultValue = /** @class */ (function () {
|
|
45047
45506
|
function WorkflowTargetDefaultValue() {
|
|
45048
|
-
this.dicDefaultValue = {};
|
|
45049
|
-
this.dicDefaultValueByWorkflow = {};
|
|
45050
|
-
this.dicByTargetCanEdit = {};
|
|
45051
|
-
this.dicByTargetOnlyView = {};
|
|
45052
45507
|
}
|
|
45053
45508
|
return WorkflowTargetDefaultValue;
|
|
45054
45509
|
}());
|
|
@@ -45110,22 +45565,21 @@
|
|
|
45110
45565
|
return __awaiter(this, void 0, void 0, function () {
|
|
45111
45566
|
var nextMachine;
|
|
45112
45567
|
var _this = this;
|
|
45113
|
-
return __generator(this, function (
|
|
45114
|
-
switch (
|
|
45568
|
+
return __generator(this, function (_g) {
|
|
45569
|
+
switch (_g.label) {
|
|
45115
45570
|
case 0:
|
|
45116
45571
|
nextMachine = this.workflow.data.machines.find(function (q) { return q.id == _this.action.target; });
|
|
45117
45572
|
this.isActionKetThuc = nextMachine.type == exports.EnumStateType.STOP;
|
|
45118
45573
|
if (this.isActionKetThuc) {
|
|
45119
45574
|
this.mainTabData[1].active = true;
|
|
45120
45575
|
}
|
|
45121
|
-
if (!this.checkNeedGetUser()) return [3 /*break*/, 2];
|
|
45122
45576
|
return [4 /*yield*/, this.getUserForProcessWorkflow()];
|
|
45123
45577
|
case 1:
|
|
45124
|
-
if (
|
|
45578
|
+
// if (this.checkNeedGetUser()) {
|
|
45579
|
+
if (!(_g.sent())) {
|
|
45125
45580
|
return [2 /*return*/];
|
|
45126
45581
|
}
|
|
45127
|
-
|
|
45128
|
-
case 2:
|
|
45582
|
+
// }
|
|
45129
45583
|
this.setDataAndTriggerReady();
|
|
45130
45584
|
return [2 /*return*/];
|
|
45131
45585
|
}
|
|
@@ -45133,7 +45587,7 @@
|
|
|
45133
45587
|
});
|
|
45134
45588
|
};
|
|
45135
45589
|
ProcessWorkflowFormComponent.prototype.checkNeedGetUser = function () {
|
|
45136
|
-
var e_1,
|
|
45590
|
+
var e_1, _g;
|
|
45137
45591
|
this.ruleUsers = [];
|
|
45138
45592
|
if (!this.action.data.infoReceiver || !this.action.data.infoReceiver.length)
|
|
45139
45593
|
return false;
|
|
@@ -45141,8 +45595,8 @@
|
|
|
45141
45595
|
this.action.data.infoReceiver[0].lanThu = 1;
|
|
45142
45596
|
}
|
|
45143
45597
|
try {
|
|
45144
|
-
for (var
|
|
45145
|
-
var infoReceiver =
|
|
45598
|
+
for (var _h = __values(this.action.data.infoReceiver), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
45599
|
+
var infoReceiver = _j.value;
|
|
45146
45600
|
if (this.checkNeedGetUserByUserData(infoReceiver.user)) {
|
|
45147
45601
|
return true;
|
|
45148
45602
|
}
|
|
@@ -45154,7 +45608,7 @@
|
|
|
45154
45608
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
45155
45609
|
finally {
|
|
45156
45610
|
try {
|
|
45157
|
-
if (
|
|
45611
|
+
if (_j && !_j.done && (_g = _h.return)) _g.call(_h);
|
|
45158
45612
|
}
|
|
45159
45613
|
finally { if (e_1) throw e_1.error; }
|
|
45160
45614
|
}
|
|
@@ -45164,35 +45618,26 @@
|
|
|
45164
45618
|
return __awaiter(this, void 0, void 0, function () {
|
|
45165
45619
|
var sourceMachine, resultGetUserInProcessForm, dataUserInProcessForm;
|
|
45166
45620
|
var _this = this;
|
|
45167
|
-
return __generator(this, function (
|
|
45168
|
-
switch (
|
|
45621
|
+
return __generator(this, function (_g) {
|
|
45622
|
+
switch (_g.label) {
|
|
45169
45623
|
case 0:
|
|
45170
45624
|
sourceMachine = this.workflow.data.machines.find(function (q) { return q.id == _this.action.source; });
|
|
45171
|
-
return [4 /*yield*/, this.
|
|
45625
|
+
return [4 /*yield*/, this.businessSetting.baseService.getUserInProcessForm(this.workflow.code, sourceMachine.code, this.action.code, this.item.id)];
|
|
45172
45626
|
case 1:
|
|
45173
|
-
resultGetUserInProcessForm =
|
|
45627
|
+
resultGetUserInProcessForm = _g.sent();
|
|
45174
45628
|
if (!resultGetUserInProcessForm.success) {
|
|
45175
45629
|
this.handleResponse(resultGetUserInProcessForm);
|
|
45176
45630
|
return [2 /*return*/, false];
|
|
45177
45631
|
}
|
|
45178
45632
|
dataUserInProcessForm = resultGetUserInProcessForm.data;
|
|
45179
|
-
|
|
45180
|
-
|
|
45181
|
-
|
|
45182
|
-
|
|
45183
|
-
|
|
45184
|
-
|
|
45185
|
-
|
|
45186
|
-
|
|
45187
|
-
});
|
|
45188
|
-
}
|
|
45189
|
-
if (dataUserInProcessForm.dicByTargetCanEdit) {
|
|
45190
|
-
this.initValueForTargetForm.dicByTargetCanEdit = dataUserInProcessForm.dicByTargetCanEdit;
|
|
45191
|
-
}
|
|
45192
|
-
if (dataUserInProcessForm.dicByTargetOnlyView) {
|
|
45193
|
-
this.initValueForTargetForm.dicByTargetOnlyView = dataUserInProcessForm.dicByTargetOnlyView;
|
|
45194
|
-
}
|
|
45195
|
-
this.infoReceiver = dataUserInProcessForm.infoReceiver;
|
|
45633
|
+
this.initValueForTargetForm.lstUserId = dataUserInProcessForm.lstUserId;
|
|
45634
|
+
this.initValueForTargetForm.lstUserViewId = dataUserInProcessForm.lstUserViewId;
|
|
45635
|
+
this.initValueForTargetForm.lstDonViId = dataUserInProcessForm.lstDonViId;
|
|
45636
|
+
this.initValueForTargetForm.lstDonViViewId = dataUserInProcessForm.lstDonViViewId;
|
|
45637
|
+
this.initValueForTargetForm.lstGroupId = dataUserInProcessForm.lstGroupId;
|
|
45638
|
+
this.initValueForTargetForm.lstGroupViewId = dataUserInProcessForm.lstGroupViewId;
|
|
45639
|
+
this.initValueForTargetForm.lstRoleId = dataUserInProcessForm.lstRoleId;
|
|
45640
|
+
this.initValueForTargetForm.lstRoleViewId = dataUserInProcessForm.lstRoleViewId;
|
|
45196
45641
|
return [2 /*return*/, true];
|
|
45197
45642
|
}
|
|
45198
45643
|
});
|
|
@@ -45207,39 +45652,45 @@
|
|
|
45207
45652
|
return false;
|
|
45208
45653
|
};
|
|
45209
45654
|
ProcessWorkflowFormComponent.prototype.setDataAndTriggerReady = function () {
|
|
45655
|
+
var _a, _b, _c, _d, _e, _f;
|
|
45210
45656
|
this.dataAllowEdit = {
|
|
45211
45657
|
rules: [],
|
|
45212
45658
|
userIds: [],
|
|
45213
45659
|
ruleInWorkflows: [],
|
|
45214
|
-
departmentIds: this.action.data.departmentIds,
|
|
45215
|
-
groupIds: this.action.data.groupIds,
|
|
45216
|
-
roleIds: this.action.data.roleIds
|
|
45660
|
+
departmentIds: (_a = this.action.data.departmentIds) !== null && _a !== void 0 ? _a : [],
|
|
45661
|
+
groupIds: (_b = this.action.data.groupIds) !== null && _b !== void 0 ? _b : [],
|
|
45662
|
+
roleIds: (_c = this.action.data.roleIds) !== null && _c !== void 0 ? _c : []
|
|
45217
45663
|
};
|
|
45218
45664
|
this.dataOnlyView = {
|
|
45219
45665
|
rules: [],
|
|
45220
45666
|
userIds: [],
|
|
45221
45667
|
ruleInWorkflows: [],
|
|
45222
|
-
departmentIds: this.action.data.departmentViewIds,
|
|
45223
|
-
groupIds: this.action.data.groupViewIds,
|
|
45224
|
-
roleIds: this.action.data.roleViewIds
|
|
45668
|
+
departmentIds: (_d = this.action.data.departmentViewIds) !== null && _d !== void 0 ? _d : [],
|
|
45669
|
+
groupIds: (_e = this.action.data.groupViewIds) !== null && _e !== void 0 ? _e : [],
|
|
45670
|
+
roleIds: (_f = this.action.data.roleViewIds) !== null && _f !== void 0 ? _f : []
|
|
45225
45671
|
};
|
|
45226
|
-
|
|
45227
|
-
|
|
45228
|
-
|
|
45229
|
-
|
|
45230
|
-
|
|
45231
|
-
|
|
45232
|
-
|
|
45233
|
-
|
|
45234
|
-
this.dataOnlyView.rules = this.infoReceiver.userView.rules;
|
|
45235
|
-
this.dataOnlyView.ruleInWorkflows = this.infoReceiver.userView.ruleInWorkflows;
|
|
45236
|
-
}
|
|
45237
|
-
}
|
|
45672
|
+
this.addDistinct(this.dataAllowEdit.userIds, this.initValueForTargetForm.lstUserId);
|
|
45673
|
+
this.addDistinct(this.dataAllowEdit.departmentIds, this.initValueForTargetForm.lstDonViId);
|
|
45674
|
+
this.addDistinct(this.dataAllowEdit.groupIds, this.initValueForTargetForm.lstGroupId);
|
|
45675
|
+
this.addDistinct(this.dataAllowEdit.roleIds, this.initValueForTargetForm.lstRoleId);
|
|
45676
|
+
this.addDistinct(this.dataOnlyView.userIds, this.initValueForTargetForm.lstUserViewId);
|
|
45677
|
+
this.addDistinct(this.dataOnlyView.departmentIds, this.initValueForTargetForm.lstDonViViewId);
|
|
45678
|
+
this.addDistinct(this.dataOnlyView.groupIds, this.initValueForTargetForm.lstGroupViewId);
|
|
45679
|
+
this.addDistinct(this.dataOnlyView.roleIds, this.initValueForTargetForm.lstRoleViewId);
|
|
45238
45680
|
this.formReady = true;
|
|
45239
45681
|
};
|
|
45682
|
+
ProcessWorkflowFormComponent.prototype.addDistinct = function (dest, source) {
|
|
45683
|
+
if (!source || !source.length)
|
|
45684
|
+
return;
|
|
45685
|
+
source.forEach(function (item) {
|
|
45686
|
+
if (dest.indexOf(item) == -1) {
|
|
45687
|
+
dest.push(item);
|
|
45688
|
+
}
|
|
45689
|
+
});
|
|
45690
|
+
};
|
|
45240
45691
|
ProcessWorkflowFormComponent.prototype.onFormInitialized = function (evt) {
|
|
45241
45692
|
return __awaiter(this, void 0, void 0, function () {
|
|
45242
|
-
return __generator(this, function (
|
|
45693
|
+
return __generator(this, function (_g) {
|
|
45243
45694
|
evt.model.id = this._commonService.guid();
|
|
45244
45695
|
return [2 /*return*/];
|
|
45245
45696
|
});
|
|
@@ -45247,7 +45698,7 @@
|
|
|
45247
45698
|
};
|
|
45248
45699
|
ProcessWorkflowFormComponent.prototype.validateForm = function () {
|
|
45249
45700
|
return __awaiter(this, void 0, void 0, function () {
|
|
45250
|
-
return __generator(this, function (
|
|
45701
|
+
return __generator(this, function (_g) {
|
|
45251
45702
|
this.model.data.userIds = this.formTargetAllowEdit.model.data.userIds;
|
|
45252
45703
|
this.model.data.departmentIds = this.formTargetAllowEdit.model.data.departmentIds;
|
|
45253
45704
|
this.model.data.groupIds = this.formTargetAllowEdit.model.data.groupIds;
|
|
@@ -45261,7 +45712,7 @@
|
|
|
45261
45712
|
&& this.isEmptyArray(this.model.data.departmentIds)
|
|
45262
45713
|
&& this.isEmptyArray(this.model.data.groupIds)
|
|
45263
45714
|
&& this.isEmptyArray(this.model.data.roleIds)) {
|
|
45264
|
-
this._notifierService.showWarning('Phải chọn ít nhất 1 nhóm đối tượng nhận (Cán bộ | Đơn vị | Nhóm người dùng |
|
|
45715
|
+
this._notifierService.showWarning('Phải chọn ít nhất 1 nhóm đối tượng nhận (Cán bộ | Đơn vị | Nhóm người dùng | Chức vụ)');
|
|
45265
45716
|
return [2 /*return*/, false];
|
|
45266
45717
|
}
|
|
45267
45718
|
}
|
|
@@ -45341,13 +45792,13 @@
|
|
|
45341
45792
|
|
|
45342
45793
|
var ProcessWorkflowTargetComponent = /** @class */ (function (_super) {
|
|
45343
45794
|
__extends(ProcessWorkflowTargetComponent, _super);
|
|
45344
|
-
function ProcessWorkflowTargetComponent(_injector, _stateMachinesService, _coCauToChucService, _userGroupService,
|
|
45795
|
+
function ProcessWorkflowTargetComponent(_injector, _stateMachinesService, _coCauToChucService, _userGroupService, _dmChucVuService) {
|
|
45345
45796
|
var _this = _super.call(this, _injector) || this;
|
|
45346
45797
|
_this._injector = _injector;
|
|
45347
45798
|
_this._stateMachinesService = _stateMachinesService;
|
|
45348
45799
|
_this._coCauToChucService = _coCauToChucService;
|
|
45349
45800
|
_this._userGroupService = _userGroupService;
|
|
45350
|
-
_this.
|
|
45801
|
+
_this._dmChucVuService = _dmChucVuService;
|
|
45351
45802
|
return _this;
|
|
45352
45803
|
}
|
|
45353
45804
|
ProcessWorkflowTargetComponent.prototype.ngOnInit = function () {
|
|
@@ -45373,41 +45824,8 @@
|
|
|
45373
45824
|
// this.createUserPickerControl('idCapTrenGanNhats', 'Cán bộ cấp trên gần nhất'),
|
|
45374
45825
|
this._createCoCauToChucControl('departmentIds', 'Đơn vị'),
|
|
45375
45826
|
this._createUserGroupPickerControl('groupIds', 'Nhóm người dùng'),
|
|
45376
|
-
this._createRolePickerControl('roleIds', '
|
|
45827
|
+
this._createRolePickerControl('roleIds', 'Chức vụ')
|
|
45377
45828
|
];
|
|
45378
|
-
// Ghép thêm các user theo rule vào userIds
|
|
45379
|
-
this.addUserIdFromDicByRule(this.initValue.dicDefaultValue, this.data.rules);
|
|
45380
|
-
// Ghép thêm các user theo rule in workflow vào userIds
|
|
45381
|
-
this.addUserIdFromDicByRule(this.initValue.dicDefaultValueByWorkflow, this.data.ruleInWorkflows);
|
|
45382
|
-
// Ghép thêm các value từ dicByTargetType vào các control
|
|
45383
|
-
if (this.data.rules.some(function (q) { return q == exports.EnumUserRule.NGUOI_NHAN; })) {
|
|
45384
|
-
this.addValueFromDicByTarget(this.initValue.dicByTargetCanEdit);
|
|
45385
|
-
}
|
|
45386
|
-
// Ghép thêm các value từ dicByTargetType vào các control
|
|
45387
|
-
if (this.data.rules.some(function (q) { return q == exports.EnumUserRule.NGUOI_THEO_DOI; })) {
|
|
45388
|
-
this.addValueFromDicByTarget(this.initValue.dicByTargetOnlyView);
|
|
45389
|
-
}
|
|
45390
|
-
};
|
|
45391
|
-
ProcessWorkflowTargetComponent.prototype.addUserIdFromDicByRule = function (dicSource, rules) {
|
|
45392
|
-
var _this = this;
|
|
45393
|
-
Object.keys(dicSource)
|
|
45394
|
-
.filter(function (x) { return rules.some(function (q) { return q == x; }); })
|
|
45395
|
-
.forEach(function (rule) {
|
|
45396
|
-
_this.addDistinctToList(_this.data.userIds, dicSource[rule]);
|
|
45397
|
-
});
|
|
45398
|
-
};
|
|
45399
|
-
ProcessWorkflowTargetComponent.prototype.addValueFromDicByTarget = function (dicByTargetType) {
|
|
45400
|
-
this.addDistinctToList(this.data.userIds, dicByTargetType[exports.EnumTargetType.USER]);
|
|
45401
|
-
this.addDistinctToList(this.data.departmentIds, dicByTargetType[exports.EnumTargetType.DEPARTMENT]);
|
|
45402
|
-
this.addDistinctToList(this.data.groupIds, dicByTargetType[exports.EnumTargetType.GROUP]);
|
|
45403
|
-
this.addDistinctToList(this.data.roleIds, dicByTargetType[exports.EnumTargetType.ROLE]);
|
|
45404
|
-
};
|
|
45405
|
-
ProcessWorkflowTargetComponent.prototype.addDistinctToList = function (lstDest, lstSource) {
|
|
45406
|
-
lstSource.forEach(function (item) {
|
|
45407
|
-
if (!lstDest.some(function (q) { return q == item; })) {
|
|
45408
|
-
lstDest.push(item);
|
|
45409
|
-
}
|
|
45410
|
-
});
|
|
45411
45829
|
};
|
|
45412
45830
|
ProcessWorkflowTargetComponent.prototype._createUserPickerControl = function (field, label, multiple) {
|
|
45413
45831
|
if (multiple === void 0) { multiple = true; }
|
|
@@ -45423,7 +45841,7 @@
|
|
|
45423
45841
|
return createUserGroupPickerControl(this._userGroupService, field, label);
|
|
45424
45842
|
};
|
|
45425
45843
|
ProcessWorkflowTargetComponent.prototype._createRolePickerControl = function (field, label) {
|
|
45426
|
-
return createRolePickerControl(this.
|
|
45844
|
+
return createRolePickerControl(this._dmChucVuService, field, label);
|
|
45427
45845
|
};
|
|
45428
45846
|
ProcessWorkflowTargetComponent.prototype.onFormInitialized = function (evt) {
|
|
45429
45847
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -45450,7 +45868,7 @@
|
|
|
45450
45868
|
{ type: StateMachinesService },
|
|
45451
45869
|
{ type: CoCauToChucService },
|
|
45452
45870
|
{ type: UserGroupRealService },
|
|
45453
|
-
{ type:
|
|
45871
|
+
{ type: DmChucVuService }
|
|
45454
45872
|
]; };
|
|
45455
45873
|
ProcessWorkflowTargetComponent.propDecorators = {
|
|
45456
45874
|
data: [{ type: i0.Input }],
|
|
@@ -45814,29 +46232,30 @@
|
|
|
45814
46232
|
_this._fileControls.forEach(function (control) {
|
|
45815
46233
|
key = control.serviceCode + "/" + control.entity + "/" + control._entityKey;
|
|
45816
46234
|
if (dataFile[key]) {
|
|
45817
|
-
control.
|
|
46235
|
+
control.setRootFolderId(dataFile[key].folderId);
|
|
46236
|
+
control.setDatasource(dataFile[key].lstFile);
|
|
45818
46237
|
}
|
|
45819
46238
|
});
|
|
45820
46239
|
}); });
|
|
45821
46240
|
};
|
|
45822
46241
|
FileDataService.prototype.processDatasourceFile = function (fileData) {
|
|
46242
|
+
var _this = this;
|
|
45823
46243
|
if (fileData === void 0) { fileData = []; }
|
|
45824
|
-
var
|
|
45825
|
-
|
|
45826
|
-
|
|
45827
|
-
key = file.serviceCode + "/" + file.entity + "/" + file.entityKey;
|
|
45828
|
-
// Nếu hết file của 1 control
|
|
45829
|
-
if (!dic[key]) {
|
|
45830
|
-
dic[key] = [];
|
|
45831
|
-
}
|
|
45832
|
-
dic[key].push(file);
|
|
45833
|
-
});
|
|
45834
|
-
Object.keys(dic).forEach(function (key) {
|
|
45835
|
-
dic[key].sort(multipleSort({ name: 'fileExplorerItemType', reverse: true }, // Sắp xếp folder lên trên file
|
|
46244
|
+
var result = {};
|
|
46245
|
+
Object.keys(fileData).forEach(function (key) {
|
|
46246
|
+
fileData[key].lstFile.sort(multipleSort({ name: 'fileExplorerItemType', reverse: true }, // Sắp xếp folder lên trên file
|
|
45836
46247
|
{ name: 'name', primer: function (a) { return a.toLowerCase(); } } // Order theo tên (nhưng phải toLower vì T < b < t)
|
|
45837
46248
|
));
|
|
46249
|
+
var data = fileData[key];
|
|
46250
|
+
result[_this.generateKey(data.serviceCode, data.entity, data.entityKey)] = {
|
|
46251
|
+
folderId: key,
|
|
46252
|
+
lstFile: fileData[key].lstFile
|
|
46253
|
+
};
|
|
45838
46254
|
});
|
|
45839
|
-
return
|
|
46255
|
+
return result;
|
|
46256
|
+
};
|
|
46257
|
+
FileDataService.prototype.generateKey = function (serviceCode, entity, entityKey) {
|
|
46258
|
+
return serviceCode + "/" + entity + "/" + entityKey;
|
|
45840
46259
|
};
|
|
45841
46260
|
return FileDataService;
|
|
45842
46261
|
}());
|
|
@@ -45852,13 +46271,13 @@
|
|
|
45852
46271
|
|
|
45853
46272
|
var WorkflowHistoryNewComponent = /** @class */ (function (_super) {
|
|
45854
46273
|
__extends(WorkflowHistoryNewComponent, _super);
|
|
45855
|
-
function WorkflowHistoryNewComponent(_injector, _workflowHistoryService, _coCauToChucService, _userGroupService,
|
|
46274
|
+
function WorkflowHistoryNewComponent(_injector, _workflowHistoryService, _coCauToChucService, _userGroupService, _dmChucVuService, _fileDataService) {
|
|
45856
46275
|
var _this = _super.call(this, _injector) || this;
|
|
45857
46276
|
_this._injector = _injector;
|
|
45858
46277
|
_this._workflowHistoryService = _workflowHistoryService;
|
|
45859
46278
|
_this._coCauToChucService = _coCauToChucService;
|
|
45860
46279
|
_this._userGroupService = _userGroupService;
|
|
45861
|
-
_this.
|
|
46280
|
+
_this._dmChucVuService = _dmChucVuService;
|
|
45862
46281
|
// Là form lịch sử của task nhưng mở từ giao diện của đối tượng mà task gắn vào
|
|
45863
46282
|
// Ở form này thì chỉ xem lịch sử chứ k dc làm gì hết
|
|
45864
46283
|
_this.isRelativeForm = false;
|
|
@@ -45921,8 +46340,8 @@
|
|
|
45921
46340
|
new ModelSchema({ field: 'donViViewIds', name: 'Đơn vị theo dõi', fullName: 'Đơn vị theo dõi', description: '' }),
|
|
45922
46341
|
new ModelSchema({ field: 'groupIds', name: 'Nhóm người dùng nhận', fullName: 'Nhóm người dùng nhận', description: '' }),
|
|
45923
46342
|
new ModelSchema({ field: 'groupViewIds', name: 'Nhóm người dùng theo dõi', fullName: 'Nhóm người dùng theo dõi', description: '' }),
|
|
45924
|
-
new ModelSchema({ field: 'roleIds', name: '
|
|
45925
|
-
new ModelSchema({ field: 'roleViewIds', name: '
|
|
46343
|
+
new ModelSchema({ field: 'roleIds', name: 'Chức vụ nhận', fullName: 'Chức vụ nhận', description: '' }),
|
|
46344
|
+
new ModelSchema({ field: 'roleViewIds', name: 'Chức vụ theo dõi', fullName: 'Chức vụ theo dõi', description: '' }),
|
|
45926
46345
|
new ModelSchema({ field: 'note', name: 'Ý kiến', fullName: 'Ý kiến', description: '' })
|
|
45927
46346
|
];
|
|
45928
46347
|
this.setting.cols = [
|
|
@@ -45994,8 +46413,7 @@
|
|
|
45994
46413
|
new ColumnSchemaBase({
|
|
45995
46414
|
field: 'roleIds',
|
|
45996
46415
|
width: '15%',
|
|
45997
|
-
baseService: this.
|
|
45998
|
-
displayField: 'name',
|
|
46416
|
+
baseService: this._dmChucVuService,
|
|
45999
46417
|
multiple: true,
|
|
46000
46418
|
visible: false,
|
|
46001
46419
|
forceGetData: true
|
|
@@ -46003,8 +46421,7 @@
|
|
|
46003
46421
|
new ColumnSchemaBase({
|
|
46004
46422
|
field: 'roleViewIds',
|
|
46005
46423
|
width: '15%',
|
|
46006
|
-
baseService: this.
|
|
46007
|
-
displayField: 'name',
|
|
46424
|
+
baseService: this._dmChucVuService,
|
|
46008
46425
|
multiple: true,
|
|
46009
46426
|
visible: false,
|
|
46010
46427
|
forceGetData: true
|
|
@@ -46221,7 +46638,7 @@
|
|
|
46221
46638
|
WorkflowHistoryNewComponent.decorators = [
|
|
46222
46639
|
{ type: i0.Component, args: [{
|
|
46223
46640
|
selector: 'workflow-history-new',
|
|
46224
|
-
template: "<div style=\"height: 100%\">\r\n <as-split direction=\"vertical\">\r\n <as-split-area [size]=\"40\">\r\n <div class=\"state-designer-container\">\r\n <div>\r\n S\u01A1 \u0111\u1ED3 quy tr\u00ECnh\r\n </div>\r\n <div>\r\n <tn-custom-scrollbar>\r\n <statemachines-designer [data]=\"machinesData\" [currentConnection]=\"currentConnection\"\r\n [viewOnly]=\"true\" [useScrollBar]=\"false\">\r\n </statemachines-designer>\r\n <after-view-checked (loaded)=\"setMachinesAndConnection()\"></after-view-checked>\r\n </tn-custom-scrollbar>\r\n </div>\r\n </div>\r\n </as-split-area>\r\n <as-split-area [size]=\"60\">\r\n <div style=\"height: 100%\">\r\n <crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\"\r\n [dataSource]=\"model.dataSource\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n <ng-template #note let-rowData=\"rowData\">\r\n <div *ngIf=\"rowData.note==null?'':rowData.note\" [innerHTML]=\"rowData.note | safeHtml\"></div>\r\n </ng-template>\r\n <ng-template #receiver let-rowData=\"rowData\">\r\n <div *ngIf=\"!rowData.notInMainThread\" class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserIds}}</div>\r\n <div *ngIf=\"rowData.strdonViIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViIds}}</div>\r\n <div *ngIf=\"rowData.strgroupIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupIds}}</div>\r\n <div *ngIf=\"rowData.strroleIds\"><b>
|
|
46641
|
+
template: "<div style=\"height: 100%\">\r\n <as-split direction=\"vertical\">\r\n <as-split-area [size]=\"40\">\r\n <div class=\"state-designer-container\">\r\n <div>\r\n S\u01A1 \u0111\u1ED3 quy tr\u00ECnh\r\n </div>\r\n <div>\r\n <tn-custom-scrollbar>\r\n <statemachines-designer [data]=\"machinesData\" [currentConnection]=\"currentConnection\"\r\n [viewOnly]=\"true\" [useScrollBar]=\"false\">\r\n </statemachines-designer>\r\n <after-view-checked (loaded)=\"setMachinesAndConnection()\"></after-view-checked>\r\n </tn-custom-scrollbar>\r\n </div>\r\n </div>\r\n </as-split-area>\r\n <as-split-area [size]=\"60\">\r\n <div style=\"height: 100%\">\r\n <crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\"\r\n [dataSource]=\"model.dataSource\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n <ng-template #note let-rowData=\"rowData\">\r\n <div *ngIf=\"rowData.note==null?'':rowData.note\" [innerHTML]=\"rowData.note | safeHtml\"></div>\r\n </ng-template>\r\n <ng-template #receiver let-rowData=\"rowData\">\r\n <div *ngIf=\"!rowData.notInMainThread\" class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserIds}}</div>\r\n <div *ngIf=\"rowData.strdonViIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViIds}}</div>\r\n <div *ngIf=\"rowData.strgroupIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupIds}}</div>\r\n <div *ngIf=\"rowData.strroleIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleIds}}</div>\r\n </div>\r\n <div *ngIf=\"rowData.notInMainThread\">\r\n <div *ngFor=\"let changedField of rowData.jsonModelChange\">\r\n {{changedField.field}},\r\n {{changedField.valueOld}} => {{changedField.valueNew}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #receiverView let-rowData=\"rowData\">\r\n <div class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserViewIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserViewIds}}</div>\r\n <div *ngIf=\"rowData.strdonViViewIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViViewIds}}</div>\r\n <div *ngIf=\"rowData.strgroupViewIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupViewIds}}</div>\r\n <div *ngIf=\"rowData.strroleViewIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleViewIds}}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template #fileDinhKem let-rowData=\"rowData\">\r\n <file-manager [serviceCode]=\"_workflowHistoryService.serviceCode\"\r\n [entity]=\"_workflowHistoryService.entityName\" [entityKey]=\"rowData.id\"\r\n [fileDataService]=\"fileDataService\" [layout]=\"layoutFile.SIMPLE\" [readonly]=\"true\">\r\n </file-manager>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button *ngIf=\"rowData.status == enumWorkflowHistoryStatus.IN_MAIN_THREAD\" pButton\r\n icon=\"pi pi-replay\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Thu h\u1ED3i v\u1EC1 b\u01B0\u1EDBc n\u00E0y\" tooltipPosition=\"top\"\r\n (click)=\"rollbackByHistory(rowData)\"></button>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n </as-split-area>\r\n </as-split>\r\n</div>",
|
|
46225
46642
|
providers: [ComponentContextService],
|
|
46226
46643
|
styles: [".state-designer-container{display:flex;flex-direction:column;height:100%}.state-designer-container>div:first-child{font-size:.9em;font-weight:700;padding:.5em 0}.state-designer-container>div:last-child{flex:1 1;overflow:auto}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}"]
|
|
46227
46644
|
},] }
|
|
@@ -46231,7 +46648,7 @@
|
|
|
46231
46648
|
{ type: WorkflowHistoryService },
|
|
46232
46649
|
{ type: CoCauToChucService },
|
|
46233
46650
|
{ type: UserGroupRealService },
|
|
46234
|
-
{ type:
|
|
46651
|
+
{ type: DmChucVuService },
|
|
46235
46652
|
{ type: FileDataService }
|
|
46236
46653
|
]; };
|
|
46237
46654
|
WorkflowHistoryNewComponent.propDecorators = {
|
|
@@ -46643,14 +47060,40 @@
|
|
|
46643
47060
|
var _this = this;
|
|
46644
47061
|
this.setting.baseService = this._workflowSettingsService;
|
|
46645
47062
|
this.setting.schema = [
|
|
46646
|
-
new
|
|
46647
|
-
field: '
|
|
46648
|
-
label: 'Tạo công việc',
|
|
47063
|
+
new CheckBoxListControlSchema({
|
|
47064
|
+
field: 'options',
|
|
46649
47065
|
showLabel: false,
|
|
46650
|
-
|
|
47066
|
+
dataSource: DataSourceWorkflowCheckboxOption,
|
|
47067
|
+
mdWidth: 4,
|
|
47068
|
+
onChanged: function (evt) {
|
|
47069
|
+
if (evt.rootModel.options.indexOf(exports.EnumWorkflowCheckboxOption.TAO_CONG_VIEC) > -1) {
|
|
47070
|
+
evt.rootModel.createTaskInstead = true;
|
|
47071
|
+
}
|
|
47072
|
+
else {
|
|
47073
|
+
evt.rootModel.createTaskInstead = false;
|
|
47074
|
+
}
|
|
47075
|
+
if (evt.rootModel.options.indexOf(exports.EnumWorkflowCheckboxOption.AUTO_NEXT_STEP) > -1) {
|
|
47076
|
+
evt.rootModel.autoNextStep = true;
|
|
47077
|
+
}
|
|
47078
|
+
else {
|
|
47079
|
+
evt.rootModel.autoNextStep = false;
|
|
47080
|
+
}
|
|
47081
|
+
}
|
|
46651
47082
|
}),
|
|
47083
|
+
// new CheckboxControlSchema({
|
|
47084
|
+
// field: 'createTaskInstead',
|
|
47085
|
+
// label: 'Tạo công việc',
|
|
47086
|
+
// showLabel: false,
|
|
47087
|
+
// mdWidth: 2
|
|
47088
|
+
// }),
|
|
47089
|
+
// new CheckboxControlSchema({
|
|
47090
|
+
// field: 'autoNextStep',
|
|
47091
|
+
// label: 'Tự động chuyển bước đầu tiên',
|
|
47092
|
+
// showLabel: false,
|
|
47093
|
+
// mdWidth: 2
|
|
47094
|
+
// }),
|
|
46652
47095
|
new LabelSchema({
|
|
46653
|
-
mdWidth:
|
|
47096
|
+
mdWidth: 8,
|
|
46654
47097
|
hiddenCheck: function (rootModel) { return _this.checkIfCreateTaskInstead(rootModel, true); }
|
|
46655
47098
|
}),
|
|
46656
47099
|
new CustomControlSchema({
|
|
@@ -46662,8 +47105,9 @@
|
|
|
46662
47105
|
new CheckboxControlSchema({
|
|
46663
47106
|
field: 'taskInsideBusinessForm',
|
|
46664
47107
|
label: 'Hiển thị giao diện tạo công việc trên giao diện thêm mới',
|
|
47108
|
+
class: 'taskInsideBusinessForm',
|
|
46665
47109
|
showLabel: false,
|
|
46666
|
-
mdWidth:
|
|
47110
|
+
mdWidth: 8,
|
|
46667
47111
|
hiddenCheck: function (rootModel) { return _this.checkIfCreateTaskInstead(rootModel, false); }
|
|
46668
47112
|
}),
|
|
46669
47113
|
new TextControlSchema({
|
|
@@ -46692,16 +47136,25 @@
|
|
|
46692
47136
|
};
|
|
46693
47137
|
WorkflowSettingNewComponent.prototype.getSetting = function () {
|
|
46694
47138
|
return __awaiter(this, void 0, void 0, function () {
|
|
46695
|
-
var
|
|
46696
|
-
return __generator(this, function (
|
|
46697
|
-
switch (
|
|
46698
|
-
case 0:
|
|
46699
|
-
|
|
46700
|
-
|
|
46701
|
-
this.newFilter('tableName', exports.Operator.equal, this.parentSetting.baseService.entityName)
|
|
46702
|
-
])];
|
|
47139
|
+
var data;
|
|
47140
|
+
return __generator(this, function (_a) {
|
|
47141
|
+
switch (_a.label) {
|
|
47142
|
+
case 0: return [4 /*yield*/, this._workflowSettingsService.getDetailByFilter([
|
|
47143
|
+
this.newFilter('tableName', exports.Operator.equal, this.parentSetting.baseService.entityName)
|
|
47144
|
+
])];
|
|
46703
47145
|
case 1:
|
|
46704
|
-
|
|
47146
|
+
data = (_a.sent()).data;
|
|
47147
|
+
if (data) {
|
|
47148
|
+
if (!data.options)
|
|
47149
|
+
data.options = [];
|
|
47150
|
+
if (data.createTaskInstead) {
|
|
47151
|
+
data.options.push(exports.EnumWorkflowCheckboxOption.TAO_CONG_VIEC);
|
|
47152
|
+
}
|
|
47153
|
+
if (data.autoNextStep) {
|
|
47154
|
+
data.options.push(exports.EnumWorkflowCheckboxOption.AUTO_NEXT_STEP);
|
|
47155
|
+
}
|
|
47156
|
+
}
|
|
47157
|
+
this.model.data = data;
|
|
46705
47158
|
this.afterGetSetting();
|
|
46706
47159
|
return [2 /*return*/];
|
|
46707
47160
|
}
|
|
@@ -46764,6 +47217,20 @@
|
|
|
46764
47217
|
});
|
|
46765
47218
|
});
|
|
46766
47219
|
};
|
|
47220
|
+
WorkflowSettingNewComponent.prototype.setValueOption = function (data) {
|
|
47221
|
+
if (data.options.indexOf(exports.EnumWorkflowCheckboxOption.TAO_CONG_VIEC) > -1) {
|
|
47222
|
+
data.createTaskInstead = true;
|
|
47223
|
+
}
|
|
47224
|
+
else {
|
|
47225
|
+
data.createTaskInstead = false;
|
|
47226
|
+
}
|
|
47227
|
+
if (data.options.indexOf(exports.EnumWorkflowCheckboxOption.AUTO_NEXT_STEP) > -1) {
|
|
47228
|
+
data.autoNextStep = true;
|
|
47229
|
+
}
|
|
47230
|
+
else {
|
|
47231
|
+
data.autoNextStep = false;
|
|
47232
|
+
}
|
|
47233
|
+
};
|
|
46767
47234
|
WorkflowSettingNewComponent.prototype.onBeforeSave = function () {
|
|
46768
47235
|
if (this.workflowPickerComp) {
|
|
46769
47236
|
Object.assign(this.model.data, this.workflowPickerComp.model.data);
|
|
@@ -46774,6 +47241,9 @@
|
|
|
46774
47241
|
else {
|
|
46775
47242
|
this.model.data.workflowCodes = null;
|
|
46776
47243
|
}
|
|
47244
|
+
if (this.model.data.options) {
|
|
47245
|
+
this.setValueOption(this.model.data);
|
|
47246
|
+
}
|
|
46777
47247
|
this.model.data.tableName = this.parentSetting.baseService.entityName;
|
|
46778
47248
|
};
|
|
46779
47249
|
WorkflowSettingNewComponent.prototype.handleManualSave = function () {
|
|
@@ -46787,7 +47257,7 @@
|
|
|
46787
47257
|
selector: 'workflow-setting-new',
|
|
46788
47258
|
template: "<crud-form *ngIf=\"readyCrudForm\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [styleClass]=\"'workflow-setting'\" [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #workflowPicker>\r\n <workflow-picker [data]=\"model.data\"></workflow-picker>\r\n </ng-template>\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <div class=\"footer-workflow-setting\">\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button *ngIf=\"model.data.id\" type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-danger p-button-text\"\r\n [label]=\"'H\u1EE7y quy tr\u00ECnh' | translate\" (click)=\"handleCancelWorkflow($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n </div>\r\n</ng-template>",
|
|
46789
47259
|
providers: [ComponentContextService],
|
|
46790
|
-
styles: [".title-workflow{font-size:.9em;font-weight:700;padding:1em 0 .5em}.title-workflow .pi-star{color:orange}.container-button-workflow{background:#fff;border-top:1px solid #ddd;bottom:0;padding:.5em;position:-webkit-sticky;position:sticky;text-align:right;z-index:10}"]
|
|
47260
|
+
styles: [".title-workflow{font-size:.9em;font-weight:700;padding:1em 0 .5em}.title-workflow .pi-star{color:orange}.container-button-workflow{background:#fff;border-top:1px solid #ddd;bottom:0;padding:.5em;position:-webkit-sticky;position:sticky;text-align:right;z-index:10}::ng-deep workflow-setting-new .crud-form-control div[role=checkbox-alone].taskInsideBusinessForm{margin-top:12px!important}"]
|
|
46791
47261
|
},] }
|
|
46792
47262
|
];
|
|
46793
47263
|
WorkflowSettingNewComponent.ctorParameters = function () { return [
|
|
@@ -47037,6 +47507,11 @@
|
|
|
47037
47507
|
};
|
|
47038
47508
|
CongviecDinhkemService.prototype.getDetailItem = function (serviceCode, entity, entityKey, fieldDisplay) {
|
|
47039
47509
|
var serviceCodeEndpoint = this.env.apiDomain[serviceCode + "Endpoint"];
|
|
47510
|
+
if (!serviceCodeEndpoint) {
|
|
47511
|
+
var notifierService = this._injector.get(NotifierService);
|
|
47512
|
+
notifierService.showWarning("Kh\u00F4ng l\u1EA5y \u0111\u01B0\u1EE3c th\u00F4ng tin endpoint c\u1EE7a d\u1ECBch v\u1EE5 " + serviceCode);
|
|
47513
|
+
return new Promise(function (res, rej) { return res({ success: true, data: [] }); });
|
|
47514
|
+
}
|
|
47040
47515
|
var uri = serviceCodeEndpoint + "/" + this._moduleConfigService.getConfig().environment.apiVersion + "/" + entity + "/GetData";
|
|
47041
47516
|
var gridInfo = new GridInfo({
|
|
47042
47517
|
fields: fieldDisplay,
|
|
@@ -47046,6 +47521,150 @@
|
|
|
47046
47521
|
});
|
|
47047
47522
|
return this._http.post(uri, gridInfo).toPromise();
|
|
47048
47523
|
};
|
|
47524
|
+
CongviecDinhkemService.prototype.getDetailItems = function (dicGrouped) {
|
|
47525
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47526
|
+
var result, serviceCodes, _loop_1, this_1, serviceCodes_1, serviceCodes_1_1, serviceCode, state_1, e_1_1;
|
|
47527
|
+
var e_1, _a;
|
|
47528
|
+
return __generator(this, function (_b) {
|
|
47529
|
+
switch (_b.label) {
|
|
47530
|
+
case 0:
|
|
47531
|
+
result = {};
|
|
47532
|
+
serviceCodes = Object.keys(dicGrouped);
|
|
47533
|
+
_loop_1 = function (serviceCode) {
|
|
47534
|
+
var entitys, _loop_2, entitys_1, entitys_1_1, entity, serviceCodeEndpoint, _loop_3, entitys_2, entitys_2_1, entity, e_2_1;
|
|
47535
|
+
var e_3, _a, e_2, _b;
|
|
47536
|
+
return __generator(this, function (_c) {
|
|
47537
|
+
switch (_c.label) {
|
|
47538
|
+
case 0:
|
|
47539
|
+
result[serviceCode] = {};
|
|
47540
|
+
entitys = Object.keys(dicGrouped[serviceCode]);
|
|
47541
|
+
_loop_2 = function (entity) {
|
|
47542
|
+
result[serviceCode][entity] = {};
|
|
47543
|
+
dicGrouped[serviceCode][entity].lstId.forEach(function (entityKey) {
|
|
47544
|
+
result[serviceCode][entity][entityKey] = 'Không tìm thấy bản ghi';
|
|
47545
|
+
});
|
|
47546
|
+
};
|
|
47547
|
+
try {
|
|
47548
|
+
for (entitys_1 = (e_3 = void 0, __values(entitys)), entitys_1_1 = entitys_1.next(); !entitys_1_1.done; entitys_1_1 = entitys_1.next()) {
|
|
47549
|
+
entity = entitys_1_1.value;
|
|
47550
|
+
_loop_2(entity);
|
|
47551
|
+
}
|
|
47552
|
+
}
|
|
47553
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
47554
|
+
finally {
|
|
47555
|
+
try {
|
|
47556
|
+
if (entitys_1_1 && !entitys_1_1.done && (_a = entitys_1.return)) _a.call(entitys_1);
|
|
47557
|
+
}
|
|
47558
|
+
finally { if (e_3) throw e_3.error; }
|
|
47559
|
+
}
|
|
47560
|
+
serviceCodeEndpoint = this_1.env.apiDomain[serviceCode + "Endpoint"];
|
|
47561
|
+
if (!serviceCodeEndpoint) {
|
|
47562
|
+
return [2 /*return*/, { value: void 0 }];
|
|
47563
|
+
}
|
|
47564
|
+
_loop_3 = function (entity) {
|
|
47565
|
+
var dataByEntity, uri, filters, gridInfo, data, err_1;
|
|
47566
|
+
return __generator(this, function (_a) {
|
|
47567
|
+
switch (_a.label) {
|
|
47568
|
+
case 0:
|
|
47569
|
+
dataByEntity = dicGrouped[serviceCode][entity];
|
|
47570
|
+
uri = serviceCodeEndpoint + "/" + this_1._moduleConfigService.getConfig().environment.apiVersion + "/" + entity + "/GetAllByFilter";
|
|
47571
|
+
filters = [];
|
|
47572
|
+
if (dataByEntity.lstId.length == 1) {
|
|
47573
|
+
filters.push(this_1.newFilter('id', exports.Operator.equal, dataByEntity.lstId[0]));
|
|
47574
|
+
}
|
|
47575
|
+
else {
|
|
47576
|
+
filters.push(this_1.newFilter('id', exports.Operator.in, dataByEntity.lstId));
|
|
47577
|
+
}
|
|
47578
|
+
gridInfo = new GridInfo({
|
|
47579
|
+
fields: "id," + dataByEntity.fieldHienThi,
|
|
47580
|
+
pageInfo: { page: 1, pageSize: dataByEntity.lstId.length },
|
|
47581
|
+
filters: filters,
|
|
47582
|
+
sorts: []
|
|
47583
|
+
});
|
|
47584
|
+
_a.label = 1;
|
|
47585
|
+
case 1:
|
|
47586
|
+
_a.trys.push([1, 3, , 4]);
|
|
47587
|
+
return [4 /*yield*/, (this_1._http.post(uri, gridInfo).toPromise())];
|
|
47588
|
+
case 2:
|
|
47589
|
+
data = _a.sent();
|
|
47590
|
+
if (data.success && data.data && data.data.length) {
|
|
47591
|
+
data.data.forEach(function (itemDetail) {
|
|
47592
|
+
result[serviceCode][entity][itemDetail.id] = itemDetail[dataByEntity.fieldHienThi];
|
|
47593
|
+
});
|
|
47594
|
+
}
|
|
47595
|
+
return [3 /*break*/, 4];
|
|
47596
|
+
case 3:
|
|
47597
|
+
err_1 = _a.sent();
|
|
47598
|
+
console.log(err_1);
|
|
47599
|
+
return [3 /*break*/, 4];
|
|
47600
|
+
case 4: return [2 /*return*/];
|
|
47601
|
+
}
|
|
47602
|
+
});
|
|
47603
|
+
};
|
|
47604
|
+
_c.label = 1;
|
|
47605
|
+
case 1:
|
|
47606
|
+
_c.trys.push([1, 6, 7, 8]);
|
|
47607
|
+
entitys_2 = (e_2 = void 0, __values(entitys)), entitys_2_1 = entitys_2.next();
|
|
47608
|
+
_c.label = 2;
|
|
47609
|
+
case 2:
|
|
47610
|
+
if (!!entitys_2_1.done) return [3 /*break*/, 5];
|
|
47611
|
+
entity = entitys_2_1.value;
|
|
47612
|
+
return [5 /*yield**/, _loop_3(entity)];
|
|
47613
|
+
case 3:
|
|
47614
|
+
_c.sent();
|
|
47615
|
+
_c.label = 4;
|
|
47616
|
+
case 4:
|
|
47617
|
+
entitys_2_1 = entitys_2.next();
|
|
47618
|
+
return [3 /*break*/, 2];
|
|
47619
|
+
case 5: return [3 /*break*/, 8];
|
|
47620
|
+
case 6:
|
|
47621
|
+
e_2_1 = _c.sent();
|
|
47622
|
+
e_2 = { error: e_2_1 };
|
|
47623
|
+
return [3 /*break*/, 8];
|
|
47624
|
+
case 7:
|
|
47625
|
+
try {
|
|
47626
|
+
if (entitys_2_1 && !entitys_2_1.done && (_b = entitys_2.return)) _b.call(entitys_2);
|
|
47627
|
+
}
|
|
47628
|
+
finally { if (e_2) throw e_2.error; }
|
|
47629
|
+
return [7 /*endfinally*/];
|
|
47630
|
+
case 8: return [2 /*return*/];
|
|
47631
|
+
}
|
|
47632
|
+
});
|
|
47633
|
+
};
|
|
47634
|
+
this_1 = this;
|
|
47635
|
+
_b.label = 1;
|
|
47636
|
+
case 1:
|
|
47637
|
+
_b.trys.push([1, 6, 7, 8]);
|
|
47638
|
+
serviceCodes_1 = __values(serviceCodes), serviceCodes_1_1 = serviceCodes_1.next();
|
|
47639
|
+
_b.label = 2;
|
|
47640
|
+
case 2:
|
|
47641
|
+
if (!!serviceCodes_1_1.done) return [3 /*break*/, 5];
|
|
47642
|
+
serviceCode = serviceCodes_1_1.value;
|
|
47643
|
+
return [5 /*yield**/, _loop_1(serviceCode)];
|
|
47644
|
+
case 3:
|
|
47645
|
+
state_1 = _b.sent();
|
|
47646
|
+
if (typeof state_1 === "object")
|
|
47647
|
+
return [2 /*return*/, state_1.value];
|
|
47648
|
+
_b.label = 4;
|
|
47649
|
+
case 4:
|
|
47650
|
+
serviceCodes_1_1 = serviceCodes_1.next();
|
|
47651
|
+
return [3 /*break*/, 2];
|
|
47652
|
+
case 5: return [3 /*break*/, 8];
|
|
47653
|
+
case 6:
|
|
47654
|
+
e_1_1 = _b.sent();
|
|
47655
|
+
e_1 = { error: e_1_1 };
|
|
47656
|
+
return [3 /*break*/, 8];
|
|
47657
|
+
case 7:
|
|
47658
|
+
try {
|
|
47659
|
+
if (serviceCodes_1_1 && !serviceCodes_1_1.done && (_a = serviceCodes_1.return)) _a.call(serviceCodes_1);
|
|
47660
|
+
}
|
|
47661
|
+
finally { if (e_1) throw e_1.error; }
|
|
47662
|
+
return [7 /*endfinally*/];
|
|
47663
|
+
case 8: return [2 /*return*/, result];
|
|
47664
|
+
}
|
|
47665
|
+
});
|
|
47666
|
+
});
|
|
47667
|
+
};
|
|
47049
47668
|
return CongviecDinhkemService;
|
|
47050
47669
|
}(BaseService));
|
|
47051
47670
|
CongviecDinhkemService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CongviecDinhkemService_Factory() { return new CongviecDinhkemService(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(ModuleConfigService)); }, token: CongviecDinhkemService, providedIn: "root" });
|
|
@@ -47067,7 +47686,7 @@
|
|
|
47067
47686
|
_this._virtualBaseService = _virtualBaseService;
|
|
47068
47687
|
_this._congViecDinhKemService = _congViecDinhKemService;
|
|
47069
47688
|
_this.fileDataService = fileDataService;
|
|
47070
|
-
_this.
|
|
47689
|
+
_this._formState = exports.FormState.VIEW;
|
|
47071
47690
|
_this.layoutFile = exports.EnumFileLayout;
|
|
47072
47691
|
_this.enumFormState = exports.FormState;
|
|
47073
47692
|
_this.formModel = {};
|
|
@@ -47075,7 +47694,22 @@
|
|
|
47075
47694
|
_this.typedLink = '';
|
|
47076
47695
|
return _this;
|
|
47077
47696
|
}
|
|
47697
|
+
Object.defineProperty(BaseCongviecDinhkemComponent.prototype, "formState", {
|
|
47698
|
+
get: function () {
|
|
47699
|
+
return this._formState;
|
|
47700
|
+
},
|
|
47701
|
+
set: function (value) {
|
|
47702
|
+
this._formState = value;
|
|
47703
|
+
if (this.setting) {
|
|
47704
|
+
this.settingIfIsFormView();
|
|
47705
|
+
}
|
|
47706
|
+
},
|
|
47707
|
+
enumerable: false,
|
|
47708
|
+
configurable: true
|
|
47709
|
+
});
|
|
47710
|
+
;
|
|
47078
47711
|
BaseCongviecDinhkemComponent.prototype.ngOnInit = function () {
|
|
47712
|
+
var _this = this;
|
|
47079
47713
|
this.setting.objectName = 'mục đính kèm';
|
|
47080
47714
|
this.setting.baseService = this._congViecDinhKemService;
|
|
47081
47715
|
this.setting.hiddenSetting = true;
|
|
@@ -47085,11 +47719,10 @@
|
|
|
47085
47719
|
this.setting.hiddenPageSetting = true;
|
|
47086
47720
|
this.setting.hiddenAdvanceSearch = true;
|
|
47087
47721
|
this.setting.hiddenFilterRow = true;
|
|
47088
|
-
// this.setting.hiddenCheckbox = this.formState == FormState.VIEW;
|
|
47089
|
-
// this.setting.hiddenFunctionColumn = this.formState == FormState.VIEW;
|
|
47090
47722
|
this.setting.fixHeightTypeInDialog = false;
|
|
47091
47723
|
this.setting.heightType = exports.HeightType.dynamic;
|
|
47092
47724
|
this.setting.showExportSelectedItems = false;
|
|
47725
|
+
this.settingIfIsFormView();
|
|
47093
47726
|
this.setting.modelSchemas = [
|
|
47094
47727
|
new ModelSchema({ field: 'tenHienThiDoiTuong', name: 'Đối tượng', fullName: 'Đối tượng', description: 'Đối tượng' }),
|
|
47095
47728
|
new ModelSchema({ field: 'tieuDe', name: 'Tiêu đề', fullName: 'Tiêu đề', description: 'Tiêu đề' }),
|
|
@@ -47107,6 +47740,17 @@
|
|
|
47107
47740
|
dataType: 'fileDinhKem'
|
|
47108
47741
|
})
|
|
47109
47742
|
];
|
|
47743
|
+
this.rootContext.replaySubscribe(ComCtxConstants.ROOT.GAN_ENTITY_SANG_CONG_VIEC, function (rowData) {
|
|
47744
|
+
_this.themDinhKem(false);
|
|
47745
|
+
});
|
|
47746
|
+
};
|
|
47747
|
+
BaseCongviecDinhkemComponent.prototype.ngOnDestroy = function () {
|
|
47748
|
+
this.rootContext.unSubscribleReplay(ComCtxConstants.ROOT.GAN_ENTITY_SANG_CONG_VIEC);
|
|
47749
|
+
_super.prototype.ngOnDestroy.call(this);
|
|
47750
|
+
};
|
|
47751
|
+
BaseCongviecDinhkemComponent.prototype.settingIfIsFormView = function () {
|
|
47752
|
+
this.setting.hiddenCheckbox = this.formState == exports.FormState.VIEW;
|
|
47753
|
+
this.setting.hiddenFunctionColumn = this.setting.hiddenCheckbox;
|
|
47110
47754
|
};
|
|
47111
47755
|
BaseCongviecDinhkemComponent.prototype.modifyGridInfo = function (gridInfo) {
|
|
47112
47756
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -47118,50 +47762,57 @@
|
|
|
47118
47762
|
};
|
|
47119
47763
|
BaseCongviecDinhkemComponent.prototype.afterGetData = function () {
|
|
47120
47764
|
return __awaiter(this, void 0, void 0, function () {
|
|
47121
|
-
var
|
|
47765
|
+
var dicGrouped, dataDisplayName, _a, _b, item;
|
|
47122
47766
|
var e_1, _c;
|
|
47123
47767
|
return __generator(this, function (_d) {
|
|
47124
47768
|
switch (_d.label) {
|
|
47125
47769
|
case 0:
|
|
47126
|
-
|
|
47127
|
-
|
|
47128
|
-
|
|
47770
|
+
dicGrouped = {};
|
|
47771
|
+
this.model.dataSource.forEach(function (item) {
|
|
47772
|
+
if (!dicGrouped[item.serviceCode]) {
|
|
47773
|
+
dicGrouped[item.serviceCode] = {};
|
|
47774
|
+
}
|
|
47775
|
+
if (!dicGrouped[item.serviceCode][item.entity]) {
|
|
47776
|
+
dicGrouped[item.serviceCode][item.entity] = {
|
|
47777
|
+
fieldHienThi: item.fieldHienThi,
|
|
47778
|
+
lstId: []
|
|
47779
|
+
};
|
|
47780
|
+
}
|
|
47781
|
+
dicGrouped[item.serviceCode][item.entity].lstId.push(item.entityKey);
|
|
47782
|
+
});
|
|
47783
|
+
return [4 /*yield*/, this._congViecDinhKemService.getDetailItems(dicGrouped)];
|
|
47129
47784
|
case 1:
|
|
47130
|
-
|
|
47131
|
-
item = _b.value;
|
|
47132
|
-
return [4 /*yield*/, this._congViecDinhKemService.getDetailItem(item.serviceCode, item.entity, item.entityKey, item.fieldHienThi)];
|
|
47133
|
-
case 2:
|
|
47134
|
-
detail = (_d.sent()).data;
|
|
47135
|
-
if (detail.length > 0) {
|
|
47136
|
-
item.tieuDe = detail[0][item.fieldHienThi];
|
|
47137
|
-
}
|
|
47138
|
-
else {
|
|
47139
|
-
item.tieuDe = 'Không tìm thấy bản ghi';
|
|
47140
|
-
}
|
|
47141
|
-
if (item.tenHienThiDoiTuong != null) {
|
|
47142
|
-
item.tenHienThiDoiTuong = item.tenHienThiDoiTuong.trim();
|
|
47143
|
-
item.tenHienThiDoiTuong = item.tenHienThiDoiTuong.substring(0, 1).toUpperCase() + item.tenHienThiDoiTuong.substring(1);
|
|
47144
|
-
}
|
|
47145
|
-
_d.label = 3;
|
|
47146
|
-
case 3:
|
|
47147
|
-
_b = _a.next();
|
|
47148
|
-
return [3 /*break*/, 1];
|
|
47149
|
-
case 4: return [3 /*break*/, 7];
|
|
47150
|
-
case 5:
|
|
47151
|
-
e_1_1 = _d.sent();
|
|
47152
|
-
e_1 = { error: e_1_1 };
|
|
47153
|
-
return [3 /*break*/, 7];
|
|
47154
|
-
case 6:
|
|
47785
|
+
dataDisplayName = _d.sent();
|
|
47155
47786
|
try {
|
|
47156
|
-
|
|
47787
|
+
for (_a = __values(this.model.dataSource), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
47788
|
+
item = _b.value;
|
|
47789
|
+
item.tieuDe = dataDisplayName[item.serviceCode][item.entity][item.entityKey];
|
|
47790
|
+
if (item.tenHienThiDoiTuong != null) {
|
|
47791
|
+
item.tenHienThiDoiTuong = item.tenHienThiDoiTuong.trim();
|
|
47792
|
+
item.tenHienThiDoiTuong = item.tenHienThiDoiTuong.substring(0, 1).toUpperCase() + item.tenHienThiDoiTuong.substring(1);
|
|
47793
|
+
}
|
|
47794
|
+
}
|
|
47157
47795
|
}
|
|
47158
|
-
|
|
47159
|
-
|
|
47160
|
-
|
|
47796
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
47797
|
+
finally {
|
|
47798
|
+
try {
|
|
47799
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
47800
|
+
}
|
|
47801
|
+
finally { if (e_1) throw e_1.error; }
|
|
47802
|
+
}
|
|
47803
|
+
return [2 /*return*/];
|
|
47161
47804
|
}
|
|
47162
47805
|
});
|
|
47163
47806
|
});
|
|
47164
47807
|
};
|
|
47808
|
+
BaseCongviecDinhkemComponent.prototype.afterReloaded = function () {
|
|
47809
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47810
|
+
return __generator(this, function (_a) {
|
|
47811
|
+
this.fileDataService.getData();
|
|
47812
|
+
return [2 /*return*/];
|
|
47813
|
+
});
|
|
47814
|
+
});
|
|
47815
|
+
};
|
|
47165
47816
|
BaseCongviecDinhkemComponent.prototype.viewLinkItem = function (evt) {
|
|
47166
47817
|
this.viewRawLink(evt);
|
|
47167
47818
|
};
|
|
@@ -47199,7 +47850,8 @@
|
|
|
47199
47850
|
});
|
|
47200
47851
|
}); });
|
|
47201
47852
|
};
|
|
47202
|
-
BaseCongviecDinhkemComponent.prototype.themDinhKem = function () {
|
|
47853
|
+
BaseCongviecDinhkemComponent.prototype.themDinhKem = function (showNoti) {
|
|
47854
|
+
if (showNoti === void 0) { showNoti = true; }
|
|
47203
47855
|
return __awaiter(this, void 0, void 0, function () {
|
|
47204
47856
|
var content, obj;
|
|
47205
47857
|
var _this = this;
|
|
@@ -47210,7 +47862,9 @@
|
|
|
47210
47862
|
if (obj.length > 0) {
|
|
47211
47863
|
this._congViecDinhKemService.themDinhKemNghiepVu(this.taskId, obj).then(function (rs) {
|
|
47212
47864
|
if (rs.success) {
|
|
47213
|
-
|
|
47865
|
+
if (showNoti) {
|
|
47866
|
+
_this._notifierService.showSuccess('Thêm mục đính kèm thành công!');
|
|
47867
|
+
}
|
|
47214
47868
|
_this.reload();
|
|
47215
47869
|
_this._commonService.clearClipboardStorage();
|
|
47216
47870
|
}
|
|
@@ -47331,7 +47985,7 @@
|
|
|
47331
47985
|
BaseCongviecDinhkemComponent.decorators = [
|
|
47332
47986
|
{ type: i0.Component, args: [{
|
|
47333
47987
|
selector: 'base-congviec-dinhkem',
|
|
47334
|
-
template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [hiddenAdd]=\"true\"\r\n [hiddenEdit]=\"true\" [hiddenDelete]=\"true\" [hiddenCopyLink]=\"true\" (onReload)=\"_triggerProcessData($event)\"\r\n (onView)=\"viewLinkItem($event)\" (onDelete)=\"deleteLinkItem($event)\"\r\n (onDeleteMultiple)=\"deleteLinkItemMultiple($event)\" (onReloaded)=\"
|
|
47988
|
+
template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [hiddenAdd]=\"true\"\r\n [hiddenEdit]=\"true\" [hiddenDelete]=\"true\" [hiddenCopyLink]=\"true\" (onReload)=\"_triggerProcessData($event)\"\r\n (onView)=\"viewLinkItem($event)\" (onDelete)=\"deleteLinkItem($event)\"\r\n (onDeleteMultiple)=\"deleteLinkItemMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #tieuDe let-rowData=\"rowData\">\r\n [{{rowData.tenHienThiDoiTuong}}] {{rowData.tieuDe}}\r\n </ng-template>\r\n <ng-template #buttonAfterToolbar>\r\n <button *ngIf=\"formState == enumFormState.EDIT || formState == enumFormState.ADD\" type=\"button\" pButton pRipple\r\n label=\"Th\u00EAm m\u1EDBi\" icon=\"pi pi-plus\" class=\"p-button-text p-button-primary\" (click)=\"themDinhKem()\"></button>\r\n <button type=\"button\"\r\n *ngIf=\"(formState == enumFormState.EDIT || formState == enumFormState.ADD) && model.selectedItems.length > 0\"\r\n pButton pRipple label=\"X\u00F3a\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-text p-button-danger\"\r\n (click)=\"deleteLinkItemMultiple($event)\"></button>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button *ngIf=\"formState == enumFormState.EDIT || formState == enumFormState.ADD\" type=\"button\" pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-rounded p-button-text p-button-danger\" pTooltip=\"H\u1EE7y \u0111\u00EDnh k\u00E8m\"\r\n tooltipPosition=\"top\" (click)=\"deleteLinkItem(rowData)\"></button>\r\n </ng-template>\r\n <ng-template #fileDinhKem let-rowData=\"rowData\">\r\n <file-manager [readonly]=\"true\" [serviceCode]=\"rowData.serviceCode\" [entity]=\"rowData.entity\"\r\n [entityKey]=\"rowData.entityKey\" [layout]=\"layoutFile.SIMPLE\">\r\n </file-manager>\r\n </ng-template>\r\n</crud-list>\r\n\r\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\r\n <base-congviec-dinhkem-form #formBase [taskId]=\"taskId\" [parentModel]=\"model\" [parentContext]=\"context\"\r\n [model]=\"formModel\" (onSaved)=\"showDetailForm = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onAfterSaved)=\"onAfterSaved($event)\">\r\n </base-congviec-dinhkem-form>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showAttachLinkBox\" #dialog2 [maximizable]=\"false\" [header]=\"'Nh\u1EADp li\u00EAn k\u1EBFt' | translate\"\r\n [popupSize]=\"{ width: 600, height: 50}\" (onHide)=\"showAttachLinkBox = false; typedLink=''\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10\">\r\n <input #input type=\"text\" placeholder=\"Nh\u1EADp li\u00EAn k\u1EBFt sao ch\u00E9p t\u1EEB ph\u00E2n h\u1EC7 kh\u00E1c...\" pInputText\r\n class=\"p-col-12\" [(ngModel)]=\"typedLink\" (keyup.enter)=\"addAttachLink()\" />\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" pButton class=\"p-button-primary p-col-12\" label=\"Ok\"\r\n [disabled]=\"typedLink != ''? null : true\" (click)=\"addAttachLink()\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <after-view-checked (loaded)=\"focusInput(input)\"></after-view-checked>\r\n</tn-dialog>",
|
|
47335
47989
|
providers: [ComponentContextService],
|
|
47336
47990
|
styles: [""]
|
|
47337
47991
|
},] }
|
|
@@ -47445,6 +48099,7 @@
|
|
|
47445
48099
|
},
|
|
47446
48100
|
];
|
|
47447
48101
|
_this.buttons = [];
|
|
48102
|
+
_this.mdWidthWorkflow = 6;
|
|
47448
48103
|
_this.handleChangeLoaiCongViecWhenAdd = function (evt) { return __awaiter(_this, void 0, void 0, function () {
|
|
47449
48104
|
return __generator(this, function (_a) {
|
|
47450
48105
|
switch (_a.label) {
|
|
@@ -47497,15 +48152,6 @@
|
|
|
47497
48152
|
label: 'Mô tả nội dung',
|
|
47498
48153
|
mdWidth: 12
|
|
47499
48154
|
}),
|
|
47500
|
-
new DropdownControlSchema({
|
|
47501
|
-
field: 'idLoaiCongViec',
|
|
47502
|
-
label: 'Phân loại',
|
|
47503
|
-
baseService: this._dmLoaiCongViecService,
|
|
47504
|
-
isTree: true,
|
|
47505
|
-
fieldTree: 'idParent',
|
|
47506
|
-
valueParentRoot: null,
|
|
47507
|
-
onChanged: onChangeLoaiCongViec
|
|
47508
|
-
}),
|
|
47509
48155
|
new DropdownControlSchema({
|
|
47510
48156
|
field: 'idPriority',
|
|
47511
48157
|
label: 'Độ ưu tiên',
|
|
@@ -47531,11 +48177,31 @@
|
|
|
47531
48177
|
}),
|
|
47532
48178
|
new PercentControlSchema({
|
|
47533
48179
|
field: 'phanTram',
|
|
47534
|
-
mdWidth:
|
|
48180
|
+
mdWidth: 6,
|
|
47535
48181
|
label: 'Tiến độ'
|
|
47536
48182
|
}),
|
|
48183
|
+
new DropdownControlSchema({
|
|
48184
|
+
field: 'idLoaiCongViec',
|
|
48185
|
+
label: 'Phân loại công việc',
|
|
48186
|
+
baseService: this._dmLoaiCongViecService,
|
|
48187
|
+
isTree: true,
|
|
48188
|
+
fieldTree: 'idParent',
|
|
48189
|
+
valueParentRoot: null,
|
|
48190
|
+
sorts: [{ field: 'maPhanCap', dir: 1 }],
|
|
48191
|
+
onChanged: onChangeLoaiCongViec
|
|
48192
|
+
})
|
|
47537
48193
|
];
|
|
47538
48194
|
this.addSchemaBase();
|
|
48195
|
+
if (this._isFormAddNew()) {
|
|
48196
|
+
this.setting.schema.push(new CheckboxControlSchema({
|
|
48197
|
+
field: 'autoNextStep',
|
|
48198
|
+
label: 'Tự động chuyển bước đầu tiên',
|
|
48199
|
+
class: 'mg-top-0',
|
|
48200
|
+
showLabel: false,
|
|
48201
|
+
mdWidth: 6,
|
|
48202
|
+
hiddenCheck: function (rootModel) { return !rootModel._WorkflowCode; }
|
|
48203
|
+
}));
|
|
48204
|
+
}
|
|
47539
48205
|
};
|
|
47540
48206
|
BaseCongViecFormComponent.prototype.onFormInitialized = function (evt) {
|
|
47541
48207
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -47792,7 +48458,8 @@
|
|
|
47792
48458
|
this.setting.cols = [
|
|
47793
48459
|
new ColumnSchemaBase({
|
|
47794
48460
|
field: 'ten',
|
|
47795
|
-
dataType: 'congViecInfo'
|
|
48461
|
+
dataType: 'congViecInfo',
|
|
48462
|
+
width: '18rem'
|
|
47796
48463
|
}),
|
|
47797
48464
|
new ColumnSchemaBase({
|
|
47798
48465
|
field: 'ngayBatDau',
|
|
@@ -47804,7 +48471,7 @@
|
|
|
47804
48471
|
}),
|
|
47805
48472
|
new ColumnSchemaBase({
|
|
47806
48473
|
field: 'idLoaiCongViec',
|
|
47807
|
-
width: '
|
|
48474
|
+
width: '100px',
|
|
47808
48475
|
baseService: this._dmLoaiCongViecService,
|
|
47809
48476
|
isTree: true,
|
|
47810
48477
|
fieldTree: 'idParent',
|
|
@@ -47812,14 +48479,14 @@
|
|
|
47812
48479
|
}),
|
|
47813
48480
|
new ColumnSchemaBase({
|
|
47814
48481
|
field: 'idLinhVuc',
|
|
47815
|
-
width: '
|
|
48482
|
+
width: '100px',
|
|
47816
48483
|
baseService: this._dmLinhVucCongViecService
|
|
47817
48484
|
}),
|
|
47818
48485
|
new ColumnSchemaBase({
|
|
47819
48486
|
field: 'idPriority',
|
|
47820
48487
|
dataType: 'idPriority',
|
|
47821
48488
|
dataTypeRefField: 'idPriority',
|
|
47822
|
-
width: '
|
|
48489
|
+
width: '80px',
|
|
47823
48490
|
baseService: this._dmPriorityService,
|
|
47824
48491
|
fieldPlus: 'background,color',
|
|
47825
48492
|
funcSetValueRow: function (rowItem, data) {
|
|
@@ -48095,7 +48762,7 @@
|
|
|
48095
48762
|
BaseCongViecComponent.decorators = [
|
|
48096
48763
|
{ type: i0.Component, args: [{
|
|
48097
48764
|
selector: 'base-congviec',
|
|
48098
|
-
template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [hiddenAdd]=\"hiddenAdd\"\r\n [hiddenEdit]=\"hiddenEdit\" [hiddenDelete]=\"hiddenDelete\" [hiddenCopyLink]=\"true\" [hiddenAdd]=\"isFromDashboard\"\r\n (onCopyLink)=\"_copyLink($event)\" (onCopyLinkMultiple)=\"_copyLinkMultiple()\"
|
|
48765
|
+
template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [hiddenAdd]=\"hiddenAdd\"\r\n [hiddenEdit]=\"hiddenEdit\" [hiddenDelete]=\"hiddenDelete\" [hiddenCopyLink]=\"true\" [hiddenAdd]=\"isFromDashboard\"\r\n [showScrollHorizontal]=\"true\" (onCopyLink)=\"_copyLink($event)\" (onCopyLinkMultiple)=\"_copyLinkMultiple()\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_edit($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\"\r\n (onChangedStatusWorkflow)=\"handleChangedStatusWorkflow($event)\">\r\n <ng-template #buttonAfterToolbar>\r\n <button *ngIf=\"loaiDanhSach > 0 && !isPicker\" type=\"button\" pButton pRipple label=\"Ch\u1ECDn c\u00F4ng vi\u1EC7c\"\r\n icon=\"pi pi-plus\" class=\"p-button-text p-button-success\" (click)=\"onChonCongViec()\"></button>\r\n </ng-template>\r\n <ng-template #congViecInfo let-rowData=\"rowData\">\r\n <div class=\"container-task-info\">\r\n <div class=\"cell-task-info\">\r\n {{rowData.ten}}\r\n </div>\r\n <div class=\"percent-done\">\r\n <div class=\"detail transition-width\" [ngStyle]=\"{\r\n width: rowData.percentWidth\r\n }\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #idPriority let-rowData=\"rowData\">\r\n <div class=\"priority\">\r\n <span [ngStyle]=\"{\r\n color: rowData.priorityColor,\r\n background: rowData.priorityBackground\r\n }\">{{rowData.stridPriority}}</span>\r\n </div>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\r\n <base-congviec-form #formBase [parentModel]=\"model\" [parentSetting]=\"setting\" [parentContext]=\"context\"\r\n [model]=\"formModel\" [crudList]=\"crudList\" (onSaved)=\"showDetailForm = false;crudList.reload()\"\r\n (onCancel)=\"_handleCancel($event)\" (onAfterSaved)=\"onAfterSaved($event)\">\r\n </base-congviec-form>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showPickerForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"'Ch\u1ECDn c\u00F4ng vi\u1EC7c' | translate\" [popupSize]=\"setting.popupSize\" [showFooter]=\"true\"\r\n [useDefaultScrollBar]=\"true\" (onHide)=\"showPickerForm = false\">\r\n <base-congviec #congViecPicker [isPicker]=\"true\" [loaiDanhSach]=\"loaiDanhSach\" [idCongViec]=\"idCongViec\">\r\n </base-congviec>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn' | translate\"\r\n (click)=\"onSelectCongViec()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"showPickerForm=false\"></button>\r\n </ng-template>\r\n</tn-dialog>",
|
|
48099
48766
|
providers: [ComponentContextService],
|
|
48100
48767
|
styles: [".container-task-info .percent-done{background-color:#f0f0f0;border-radius:2px;height:5px;margin-top:5px;overflow:hidden;position:relative}.container-task-info .percent-done .detail{background:#3eb839;border-radius:2px;font-size:13px;height:5px;left:0;position:absolute;text-align:center;top:0}.priority{text-align:center}.priority>span{border-radius:3px;font-size:.8em;padding:3px 7px}"]
|
|
48101
48768
|
},] }
|
|
@@ -50755,7 +51422,7 @@
|
|
|
50755
51422
|
ShareLinkByPermissionComponent.prototype.copyLinkToClipboard = function () {
|
|
50756
51423
|
if (this.links) {
|
|
50757
51424
|
this.copyToClipboard(this.links);
|
|
50758
|
-
this._notifierService.
|
|
51425
|
+
this._notifierService.showSuccess('Copy link vào clipboard thành công');
|
|
50759
51426
|
}
|
|
50760
51427
|
};
|
|
50761
51428
|
return ShareLinkByPermissionComponent;
|
|
@@ -50849,6 +51516,7 @@
|
|
|
50849
51516
|
StateMachinesConnectionReceiverDepartmentComponent,
|
|
50850
51517
|
StateMachinesConnectionReceiverGroupComponent,
|
|
50851
51518
|
StateMachinesConnectionReceiverRoleComponent,
|
|
51519
|
+
StateMachinesConnectionReceiverConditionComponent,
|
|
50852
51520
|
StateMachinesConnectionSenderComponent,
|
|
50853
51521
|
StateMachinesDesignerComponent,
|
|
50854
51522
|
StartWorkflowComponent,
|
|
@@ -52924,6 +53592,7 @@
|
|
|
52924
53592
|
exports.DataSourceTargetType = DataSourceTargetType;
|
|
52925
53593
|
exports.DataSourceUserRule = DataSourceUserRule;
|
|
52926
53594
|
exports.DataSourceUserSender = DataSourceUserSender;
|
|
53595
|
+
exports.DataSourceWorkflowCheckboxOption = DataSourceWorkflowCheckboxOption;
|
|
52927
53596
|
exports.DataSourceWorkflowCoreStatus = DataSourceWorkflowCoreStatus;
|
|
52928
53597
|
exports.DateCompareValidator = DateCompareValidator;
|
|
52929
53598
|
exports.DateTimeControlSchema = DateTimeControlSchema;
|
|
@@ -53208,6 +53877,8 @@
|
|
|
53208
53877
|
exports.ɵ10 = ɵ10;
|
|
53209
53878
|
exports.ɵ11 = ɵ11;
|
|
53210
53879
|
exports.ɵ12 = ɵ12;
|
|
53880
|
+
exports.ɵ13 = ɵ13;
|
|
53881
|
+
exports.ɵ14 = ɵ14;
|
|
53211
53882
|
exports.ɵ2 = ɵ2;
|
|
53212
53883
|
exports.ɵ3 = ɵ3;
|
|
53213
53884
|
exports.ɵ4 = ɵ4;
|
|
@@ -53251,74 +53922,76 @@
|
|
|
53251
53922
|
exports.ɵcd = SimpleWorkflowFormComponent;
|
|
53252
53923
|
exports.ɵce = ProcessWorkflowFormComponent;
|
|
53253
53924
|
exports.ɵcf = ProcessWorkflowTargetComponent;
|
|
53254
|
-
exports.ɵcg =
|
|
53255
|
-
exports.ɵch =
|
|
53256
|
-
exports.ɵci =
|
|
53257
|
-
exports.ɵcj =
|
|
53258
|
-
exports.ɵck =
|
|
53259
|
-
exports.ɵcl =
|
|
53260
|
-
exports.ɵcm =
|
|
53261
|
-
exports.ɵcn =
|
|
53262
|
-
exports.ɵco =
|
|
53263
|
-
exports.ɵcp =
|
|
53264
|
-
exports.ɵcq =
|
|
53265
|
-
exports.ɵcr =
|
|
53266
|
-
exports.ɵcs =
|
|
53267
|
-
exports.ɵct =
|
|
53268
|
-
exports.ɵcu =
|
|
53269
|
-
exports.ɵcv =
|
|
53270
|
-
exports.ɵcw =
|
|
53271
|
-
exports.ɵcx =
|
|
53272
|
-
exports.ɵcy =
|
|
53273
|
-
exports.ɵcz =
|
|
53925
|
+
exports.ɵcg = DmChucVuService;
|
|
53926
|
+
exports.ɵch = ChoYKienFormComponent;
|
|
53927
|
+
exports.ɵci = SplashComponentV1Component;
|
|
53928
|
+
exports.ɵcj = StateMachinesConnectionReceiverComponent;
|
|
53929
|
+
exports.ɵck = StateMachinesConnectionReceiverUserComponent;
|
|
53930
|
+
exports.ɵcl = StateMachinesConnectionReceiverConditionComponent;
|
|
53931
|
+
exports.ɵcm = StateMachinesConnectionReceiverDepartmentComponent;
|
|
53932
|
+
exports.ɵcn = StateMachinesConnectionReceiverGroupComponent;
|
|
53933
|
+
exports.ɵco = StateMachinesConnectionReceiverRoleComponent;
|
|
53934
|
+
exports.ɵcp = StateMachinesConnectionSenderComponent;
|
|
53935
|
+
exports.ɵcq = StartWorkflowComponent;
|
|
53936
|
+
exports.ɵcr = WorkflowSettingsService;
|
|
53937
|
+
exports.ɵcs = ShareLinkByPermissionComponent;
|
|
53938
|
+
exports.ɵct = WorkflowSettingNewComponent;
|
|
53939
|
+
exports.ɵcu = PermissionSharingComponent;
|
|
53940
|
+
exports.ɵcv = WorkflowPermissionService;
|
|
53941
|
+
exports.ɵcw = TnDialogComponent;
|
|
53942
|
+
exports.ɵcx = TnColorPickerComponent;
|
|
53943
|
+
exports.ɵcy = TnTinymceComponent;
|
|
53944
|
+
exports.ɵcz = TnTabViewComponent;
|
|
53274
53945
|
exports.ɵd = ExceptionHandlerService;
|
|
53275
|
-
exports.ɵda =
|
|
53276
|
-
exports.ɵdb =
|
|
53277
|
-
exports.ɵdc =
|
|
53278
|
-
exports.ɵdd =
|
|
53279
|
-
exports.ɵde =
|
|
53280
|
-
exports.ɵdf =
|
|
53281
|
-
exports.ɵdg =
|
|
53282
|
-
exports.ɵdh =
|
|
53283
|
-
exports.ɵdi =
|
|
53284
|
-
exports.ɵdj =
|
|
53285
|
-
exports.ɵdk =
|
|
53286
|
-
exports.ɵdl =
|
|
53287
|
-
exports.ɵdm =
|
|
53288
|
-
exports.ɵdn =
|
|
53289
|
-
exports.ɵdo =
|
|
53290
|
-
exports.ɵdp =
|
|
53291
|
-
exports.ɵdq =
|
|
53292
|
-
exports.ɵdr =
|
|
53293
|
-
exports.ɵds =
|
|
53294
|
-
exports.ɵdt =
|
|
53295
|
-
exports.ɵdu =
|
|
53296
|
-
exports.ɵdv =
|
|
53297
|
-
exports.ɵdw =
|
|
53298
|
-
exports.ɵdx =
|
|
53299
|
-
exports.ɵdy =
|
|
53300
|
-
exports.ɵdz =
|
|
53946
|
+
exports.ɵda = TableDetailFormComponent;
|
|
53947
|
+
exports.ɵdb = FileIconPipe;
|
|
53948
|
+
exports.ɵdc = FileSizePipe;
|
|
53949
|
+
exports.ɵdd = QuickAddFormComponent;
|
|
53950
|
+
exports.ɵde = PreventShiftTabDirective;
|
|
53951
|
+
exports.ɵdf = TnTemplateDirective;
|
|
53952
|
+
exports.ɵdg = UserPickerComponent;
|
|
53953
|
+
exports.ɵdh = UserPickerBoxComponent;
|
|
53954
|
+
exports.ɵdi = CoCauToChucTestService;
|
|
53955
|
+
exports.ɵdj = TnAppHelpComponent;
|
|
53956
|
+
exports.ɵdk = PathNameService;
|
|
53957
|
+
exports.ɵdl = HelperCurrentPageComponent;
|
|
53958
|
+
exports.ɵdm = TnAppNotificationListComponent;
|
|
53959
|
+
exports.ɵdn = TnAppNotificationComponent;
|
|
53960
|
+
exports.ɵdo = MyDriveService;
|
|
53961
|
+
exports.ɵdp = FileVersionService;
|
|
53962
|
+
exports.ɵdq = FileExplorerNewService;
|
|
53963
|
+
exports.ɵdr = FolderFormComponent;
|
|
53964
|
+
exports.ɵds = FileFormComponent;
|
|
53965
|
+
exports.ɵdt = FileViewerComponent;
|
|
53966
|
+
exports.ɵdu = FileVersionListComponent;
|
|
53967
|
+
exports.ɵdv = WorkflowHistoryComponent;
|
|
53968
|
+
exports.ɵdw = EntityWorkflowHistoryService;
|
|
53969
|
+
exports.ɵdx = WorkflowHistoryDialogComponent;
|
|
53970
|
+
exports.ɵdy = WorkflowHistoryNewComponent;
|
|
53971
|
+
exports.ɵdz = WorkflowSettingComponent;
|
|
53301
53972
|
exports.ɵe = CanBo_HoSoService;
|
|
53302
|
-
exports.ɵea =
|
|
53303
|
-
exports.ɵeb =
|
|
53304
|
-
exports.ɵec =
|
|
53305
|
-
exports.ɵed =
|
|
53306
|
-
exports.ɵee =
|
|
53307
|
-
exports.ɵef =
|
|
53308
|
-
exports.ɵeg =
|
|
53309
|
-
exports.ɵeh =
|
|
53310
|
-
exports.ɵei =
|
|
53311
|
-
exports.ɵej =
|
|
53312
|
-
exports.ɵek =
|
|
53313
|
-
exports.ɵel =
|
|
53314
|
-
exports.ɵem =
|
|
53315
|
-
exports.ɵen =
|
|
53316
|
-
exports.ɵeo =
|
|
53317
|
-
exports.ɵep =
|
|
53318
|
-
exports.ɵeq =
|
|
53319
|
-
exports.ɵer =
|
|
53320
|
-
exports.ɵes =
|
|
53321
|
-
exports.ɵet =
|
|
53973
|
+
exports.ɵea = EntityWorkflowSettingService;
|
|
53974
|
+
exports.ɵeb = WorkflowSettingDialogComponent;
|
|
53975
|
+
exports.ɵec = QrCodeGeneratorComponent;
|
|
53976
|
+
exports.ɵed = AccessDeniedV1Component;
|
|
53977
|
+
exports.ɵee = AddNewsComponent;
|
|
53978
|
+
exports.ɵef = ArticleService;
|
|
53979
|
+
exports.ɵeg = NewsCategoryService;
|
|
53980
|
+
exports.ɵeh = NotFoundComponent;
|
|
53981
|
+
exports.ɵei = UniversalLinkProcessorComponent;
|
|
53982
|
+
exports.ɵej = SignatureDetailComponent;
|
|
53983
|
+
exports.ɵek = ChatService;
|
|
53984
|
+
exports.ɵel = ContentsService;
|
|
53985
|
+
exports.ɵem = StatusExtendsService;
|
|
53986
|
+
exports.ɵen = MessageBoardService;
|
|
53987
|
+
exports.ɵeo = KySoSimDanhSachChuKyComponent;
|
|
53988
|
+
exports.ɵep = KySoSimChuKyUserService;
|
|
53989
|
+
exports.ɵeq = FileKySoSimComponent;
|
|
53990
|
+
exports.ɵer = KySoSimSignPDFService;
|
|
53991
|
+
exports.ɵes = CheckReadyComponent;
|
|
53992
|
+
exports.ɵet = SendAccessTokenInterceptor;
|
|
53993
|
+
exports.ɵeu = LogInterceptor;
|
|
53994
|
+
exports.ɵev = PermissionUtilsInterceptor;
|
|
53322
53995
|
exports.ɵf = AfterViewCheckedComponent;
|
|
53323
53996
|
exports.ɵg = AdvanceSearchComponent;
|
|
53324
53997
|
exports.ɵh = AppRootMenuComponent;
|