SUPPORT-8846: fix LoadForm and pages; remove redundant scripts

This commit is contained in:
gulnaz 2025-01-14 17:19:09 +03:00
parent 5108caf305
commit 117891dc10
14 changed files with 365 additions and 984 deletions

View file

@ -1,7 +1,8 @@
import {Form} from "@webbpm/base-package";
import {FieldData, Form} from "@webbpm/base-package";
import {ChangeDetectionStrategy, Component} from "@angular/core";
import {ErvuDataService} from "../../../modules/app/service/ervu-data.service";
import {LoadFormRpcService} from "../../../generated/ru/micord/ervu/service/rpc/LoadFormRpcService";
import {LoadFormField} from "../field/LoadFormField";
import {Subscription} from "rxjs";
@Component({
moduleId: module.id,
@ -11,22 +12,30 @@ import {LoadFormRpcService} from "../../../generated/ru/micord/ervu/service/rpc/
})
export class LoadForm extends Form {
private formRpcService: LoadFormRpcService;
private ervuDataService: ErvuDataService;
private subscription: Subscription;
private fields: any[];
private fieldDataList: FieldData[] = [];
initialize() {
super.initialize();
this.formRpcService = this.getScript(LoadFormRpcService);
this.fields = this.getScriptsInChildren(LoadFormField);
this.ervuDataService = this.injector.get(ErvuDataService);
this.subscription = this.ervuDataService.message.subscribe(value => {
if (value) {
this.fields.forEach(field => {
let fieldData: FieldData = new FieldData();
fieldData.componentGuid = field.objectId;
fieldData.value = value[field.id];
this.fieldDataList.push(fieldData);
});
this.loadData();
}
});
}
loadData(): Promise<any> {
return this.formRpcService
.loadData()
.then(fieldDataList => this.setData(fieldDataList))
.catch(reason => {
throw new Error(reason);
});
return Promise.resolve().then(() => this.setData(this.fieldDataList));
}
saveData(): Promise<any> {
@ -39,5 +48,6 @@ export class LoadForm extends Form {
ngOnDestroy() {
super.ngOnDestroy();
this.subscription.unsubscribe();
}
}

View file

@ -0,0 +1,8 @@
import {AnalyticalScope, Behavior, Control} from "@webbpm/base-package";
@AnalyticalScope(Control)
export class LoadFormField extends Behavior {
public id: string;
}

View file

@ -0,0 +1,12 @@
import {TextFormatter} from "@webbpm/base-package";
export class DateTextFormatter implements TextFormatter {
public prefix: string;
format(value: string): string {
return value
? (this.prefix ? this.prefix + ' ' : '') + new Date(value).toLocaleDateString()
: value;
}
}