Naposledy aktivní 1724977287

fix.ts Raw
1export const createFieldsForUpdate = (
2 columnField: Record<string, any>,
3 configOpt: CanonicalConfigOption,
4 oldFields: Record<string, any>,
5 allDerivedData: Record<string, DerivedData>
6): SettingsExecute => {
7 let fields: Record<string, any> = {};
8 let dependencyFields: string[] = [];
9 Object.keys(columnField).forEach((k) => {
10 let column = configOpt.columns.find((c) => c.id === k);
11
12 if (!column) {
13 return;
14 }
15
16 if (configOpt.primary_key != column.id && column.ignored_for.includes('Update')) {
17 return;
18 }
19
20 let dispatchType = getDispatchType(columnField, column);
21
22 let referencedVariables = dispatchType.referenced_variables;
23
24 //logger.debug('editRow', 'Referenced variables', referencedVariables, k);
25
26 // Ignore unchanged fields that are not the primary key
27 if (isEqual(columnField[k], oldFields[k]) && k != configOpt.primary_key) {
28 return;
29 }
30
31 // Check if isCleared
32 if (allDerivedData[k]?.isCleared) {
33 fields[k] = null;
34 } else {
35 fields[k] = columnField[k];
36 }
37
38 // Add to dependencyFields
39 if (referencedVariables) {
40 dependencyFields.push(
41 ...referencedVariables.filter((v) => !dependencyFields.includes(v))
42 );
43 }
44 });
45
46 logger.info('editRow', 'Dependency fields', dependencyFields);
47
48 // Add all dependency fields to the edit
49 dependencyFields.forEach((k) => {
50 let column = configOpt.columns.find((c) => c.id === k);
51
52 if (!column) {
53 return;
54 }
55
56 if (configOpt.primary_key != column.id && column.ignored_for.includes('Update')) {
57 return;
58 }
59
60 if (!columnField[k]) {
61 fields[k] = null;
62 } else {
63 fields[k] = columnField[k];
64 }
65 });
66
67 let payload: SettingsExecute = {
68 operation: 'Update',
69 module: module.id,
70 setting: configOpt.id,
71 fields
72 };
73
74 return payload;
75}
76