1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

perf: Migliorata precedenza dei campi durante il salvataggio

This commit is contained in:
Maicol Battistini
2022-01-26 12:31:39 +01:00
parent 8fc6e4d9b1
commit 0348df7547

View File

@@ -368,19 +368,23 @@ export class RecordsPage extends Page {
} }
async setter(model: IModel, data: Collection<File | string>) { async setter(model: IModel, data: Collection<File | string>) {
const filtered = data const firstFields = data.only(this.fieldsPrecedence);
.filter((item: any, id: string) => this.fieldsPrecedence.includes(id)); const fields = data.except(this.fieldsPrecedence);
firstFields.each((currentItem, key) => {
fields.put(key, currentItem);
});
const relations: Record<string, IModel> = {}; const relations: Record<string, IModel> = {};
(filtered.isNotEmpty() ? filtered.merge<string | File>(data) : data).each((value: string, field: string) => { data.each((value, field) => {
if (field.includes(':')) { if (typeof field === 'string' && field.includes(':')) {
const [relation, fieldName] = field.split(':'); const [relation, fieldName] = field.split(':');
const relationModel = this.getRelation(model, relation); const relationModel = this.getRelation(model, relation);
relationModel[fieldName] = value; relationModel[fieldName] = value;
relations[relation] = relationModel; relations[relation] = relationModel;
} else { } else {
model[field] = value; model[field as string] = value;
} }
}); });