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:
@@ -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;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user