@saltcorn/data 1.5.0-beta.1 → 1.5.0-beta.10
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/dist/base-plugin/actions.d.ts +90 -33
- package/dist/base-plugin/actions.d.ts.map +1 -1
- package/dist/base-plugin/actions.js +94 -21
- package/dist/base-plugin/actions.js.map +1 -1
- package/dist/base-plugin/fieldviews.d.ts.map +1 -1
- package/dist/base-plugin/fieldviews.js +1 -0
- package/dist/base-plugin/fieldviews.js.map +1 -1
- package/dist/base-plugin/fileviews.d.ts +13 -0
- package/dist/base-plugin/fileviews.js +36 -14
- package/dist/base-plugin/fileviews.js.map +1 -1
- package/dist/base-plugin/index.d.ts +22 -12
- package/dist/base-plugin/index.d.ts.map +1 -1
- package/dist/base-plugin/types.d.ts +18 -6
- package/dist/base-plugin/types.d.ts.map +1 -1
- package/dist/base-plugin/types.js +20 -8
- package/dist/base-plugin/types.js.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.d.ts +5 -5
- package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.js +12 -2
- package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
- package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/feed.js +57 -21
- package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.js +35 -30
- package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts +2 -2
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.js +64 -17
- package/dist/base-plugin/viewtemplates/list.js.map +1 -1
- package/dist/base-plugin/viewtemplates/room.d.ts +3 -3
- package/dist/base-plugin/viewtemplates/show.d.ts +2 -2
- package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/show.js +15 -10
- package/dist/base-plugin/viewtemplates/show.js.map +1 -1
- package/dist/db/connect.d.ts.map +1 -1
- package/dist/db/connect.js +5 -0
- package/dist/db/connect.js.map +1 -1
- package/dist/db/state.d.ts +18 -5
- package/dist/db/state.d.ts.map +1 -1
- package/dist/db/state.js +79 -16
- package/dist/db/state.js.map +1 -1
- package/dist/migrations/202511081024.d.ts +2 -0
- package/dist/migrations/202511081024.d.ts.map +1 -0
- package/dist/migrations/202511081024.js +4 -0
- package/dist/migrations/202511081024.js.map +1 -0
- package/dist/mobile-mocks/models/internal/mail_queue.d.ts +1 -0
- package/dist/mobile-mocks/models/internal/mail_queue.d.ts.map +1 -0
- package/dist/mobile-mocks/models/internal/mail_queue.js +2 -0
- package/dist/mobile-mocks/models/internal/mail_queue.js.map +1 -0
- package/dist/models/config.d.ts.map +1 -1
- package/dist/models/config.js +29 -9
- package/dist/models/config.js.map +1 -1
- package/dist/models/discovery.d.ts.map +1 -1
- package/dist/models/discovery.js +4 -1
- package/dist/models/discovery.js.map +1 -1
- package/dist/models/email.d.ts.map +1 -1
- package/dist/models/email.js +47 -1
- package/dist/models/email.js.map +1 -1
- package/dist/models/expression.d.ts +2 -0
- package/dist/models/expression.d.ts.map +1 -1
- package/dist/models/expression.js +41 -0
- package/dist/models/expression.js.map +1 -1
- package/dist/models/field.d.ts +2 -1
- package/dist/models/field.d.ts.map +1 -1
- package/dist/models/field.js +12 -1
- package/dist/models/field.js.map +1 -1
- package/dist/models/fieldrepeat.d.ts +7 -2
- package/dist/models/fieldrepeat.d.ts.map +1 -1
- package/dist/models/fieldrepeat.js +9 -1
- package/dist/models/fieldrepeat.js.map +1 -1
- package/dist/models/file.d.ts +2 -1
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js +37 -3
- package/dist/models/file.js.map +1 -1
- package/dist/models/index.d.ts +5 -5
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/internal/mail_queue.d.ts +24 -0
- package/dist/models/internal/mail_queue.d.ts.map +1 -0
- package/dist/models/internal/mail_queue.js +172 -0
- package/dist/models/internal/mail_queue.js.map +1 -0
- package/dist/models/layout.d.ts +1 -1
- package/dist/models/layout.d.ts.map +1 -1
- package/dist/models/layout.js +58 -1
- package/dist/models/layout.js.map +1 -1
- package/dist/models/notification.d.ts +2 -1
- package/dist/models/notification.d.ts.map +1 -1
- package/dist/models/notification.js +7 -13
- package/dist/models/notification.js.map +1 -1
- package/dist/models/page.d.ts +1 -1
- package/dist/models/page.d.ts.map +1 -1
- package/dist/models/page.js +27 -5
- package/dist/models/page.js.map +1 -1
- package/dist/models/plugin.d.ts.map +1 -1
- package/dist/models/plugin.js +4 -3
- package/dist/models/plugin.js.map +1 -1
- package/dist/models/scheduler.d.ts.map +1 -1
- package/dist/models/scheduler.js +38 -0
- package/dist/models/scheduler.js.map +1 -1
- package/dist/models/table.d.ts +9 -5
- package/dist/models/table.d.ts.map +1 -1
- package/dist/models/table.js +68 -20
- package/dist/models/table.js.map +1 -1
- package/dist/models/user.d.ts +11 -0
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +28 -3
- package/dist/models/user.js.map +1 -1
- package/dist/models/workflow.d.ts +1 -0
- package/dist/models/workflow.d.ts.map +1 -1
- package/dist/models/workflow.js +16 -1
- package/dist/models/workflow.js.map +1 -1
- package/dist/models/workflow_run.d.ts.map +1 -1
- package/dist/models/workflow_run.js +12 -1
- package/dist/models/workflow_run.js.map +1 -1
- package/dist/models/workflow_step.d.ts.map +1 -1
- package/dist/models/workflow_step.js +8 -0
- package/dist/models/workflow_step.js.map +1 -1
- package/dist/plugin-helper.d.ts.map +1 -1
- package/dist/plugin-helper.js +139 -14
- package/dist/plugin-helper.js.map +1 -1
- package/dist/standard-menu.d.ts.map +1 -1
- package/dist/standard-menu.js +20 -2
- package/dist/standard-menu.js.map +1 -1
- package/dist/tests/auxtest.test.js +38 -0
- package/dist/tests/auxtest.test.js.map +1 -1
- package/dist/tests/calc.test.js +44 -1
- package/dist/tests/calc.test.js.map +1 -1
- package/dist/tests/exact_views.test.js +10 -10
- package/dist/tests/exact_views.test.js.map +1 -1
- package/dist/tests/mail_queue.test.d.ts +2 -0
- package/dist/tests/mail_queue.test.d.ts.map +1 -0
- package/dist/tests/mail_queue.test.js +122 -0
- package/dist/tests/mail_queue.test.js.map +1 -0
- package/dist/tests/mocks.d.ts +8 -2
- package/dist/tests/mocks.d.ts.map +1 -1
- package/dist/tests/mocks.js +1 -1
- package/dist/tests/mocks.js.map +1 -1
- package/dist/tests/show.test.js +1 -1
- package/dist/tests/show.test.js.map +1 -1
- package/dist/tests/table.test.js +37 -0
- package/dist/tests/table.test.js.map +1 -1
- package/dist/tests/user.test.js +23 -1
- package/dist/tests/user.test.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +6 -4
- package/dist/utils.js.map +1 -1
- package/dist/web-mobile-commons.d.ts.map +1 -1
- package/dist/web-mobile-commons.js +13 -1
- package/dist/web-mobile-commons.js.map +1 -1
- package/package.json +8 -8
- package/webpack.config.js +1 -0
|
@@ -80,18 +80,22 @@ export namespace loop_rows {
|
|
|
80
80
|
sublabel: string;
|
|
81
81
|
input_type: string;
|
|
82
82
|
options: string[];
|
|
83
|
-
type?: undefined;
|
|
84
|
-
class?: undefined;
|
|
85
83
|
attributes?: undefined;
|
|
84
|
+
type?: undefined;
|
|
86
85
|
} | {
|
|
87
86
|
name: string;
|
|
88
87
|
label: string;
|
|
89
88
|
sublabel: string;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
input_type: string;
|
|
90
|
+
attributes: {
|
|
91
|
+
mode: string;
|
|
92
|
+
singleline: boolean;
|
|
93
|
+
expression_type: string;
|
|
94
|
+
calcOptions?: undefined;
|
|
95
|
+
min?: undefined;
|
|
96
|
+
};
|
|
93
97
|
options?: undefined;
|
|
94
|
-
|
|
98
|
+
type?: undefined;
|
|
95
99
|
} | {
|
|
96
100
|
name: string;
|
|
97
101
|
label: string;
|
|
@@ -99,7 +103,6 @@ export namespace loop_rows {
|
|
|
99
103
|
sublabel: string;
|
|
100
104
|
input_type?: undefined;
|
|
101
105
|
options?: undefined;
|
|
102
|
-
class?: undefined;
|
|
103
106
|
attributes?: undefined;
|
|
104
107
|
} | {
|
|
105
108
|
name: string;
|
|
@@ -107,12 +110,14 @@ export namespace loop_rows {
|
|
|
107
110
|
type: string;
|
|
108
111
|
attributes: {
|
|
109
112
|
calcOptions: {}[];
|
|
113
|
+
mode?: undefined;
|
|
114
|
+
singleline?: undefined;
|
|
115
|
+
expression_type?: undefined;
|
|
110
116
|
min?: undefined;
|
|
111
117
|
};
|
|
112
118
|
sublabel?: undefined;
|
|
113
119
|
input_type?: undefined;
|
|
114
120
|
options?: undefined;
|
|
115
|
-
class?: undefined;
|
|
116
121
|
} | {
|
|
117
122
|
name: string;
|
|
118
123
|
label: string;
|
|
@@ -120,7 +125,6 @@ export namespace loop_rows {
|
|
|
120
125
|
sublabel?: undefined;
|
|
121
126
|
input_type?: undefined;
|
|
122
127
|
options?: undefined;
|
|
123
|
-
class?: undefined;
|
|
124
128
|
attributes?: undefined;
|
|
125
129
|
} | {
|
|
126
130
|
name: string;
|
|
@@ -129,11 +133,13 @@ export namespace loop_rows {
|
|
|
129
133
|
type: string;
|
|
130
134
|
attributes: {
|
|
131
135
|
min: number;
|
|
136
|
+
mode?: undefined;
|
|
137
|
+
singleline?: undefined;
|
|
138
|
+
expression_type?: undefined;
|
|
132
139
|
calcOptions?: undefined;
|
|
133
140
|
};
|
|
134
141
|
input_type?: undefined;
|
|
135
142
|
options?: undefined;
|
|
136
|
-
class?: undefined;
|
|
137
143
|
} | {
|
|
138
144
|
name: string;
|
|
139
145
|
label: string;
|
|
@@ -143,9 +149,8 @@ export namespace loop_rows {
|
|
|
143
149
|
label: string | undefined;
|
|
144
150
|
value: number | null | undefined;
|
|
145
151
|
}[];
|
|
146
|
-
type?: undefined;
|
|
147
|
-
class?: undefined;
|
|
148
152
|
attributes?: undefined;
|
|
153
|
+
type?: undefined;
|
|
149
154
|
})[]>;
|
|
150
155
|
export { configFields_2 as configFields };
|
|
151
156
|
export function run_1({ row, configuration: { table_name, where, limit, orderBy, orderDesc, trigger_id, interval, }, user, ...rest }: {
|
|
@@ -494,7 +499,7 @@ export namespace recalculate_stored_fields {
|
|
|
494
499
|
options: string[];
|
|
495
500
|
type?: undefined;
|
|
496
501
|
showIf?: undefined;
|
|
497
|
-
|
|
502
|
+
attributes?: undefined;
|
|
498
503
|
} | {
|
|
499
504
|
name: string;
|
|
500
505
|
label: string;
|
|
@@ -507,15 +512,19 @@ export namespace recalculate_stored_fields {
|
|
|
507
512
|
sublabel?: undefined;
|
|
508
513
|
input_type?: undefined;
|
|
509
514
|
options?: undefined;
|
|
510
|
-
|
|
515
|
+
attributes?: undefined;
|
|
511
516
|
} | {
|
|
512
517
|
name: string;
|
|
513
518
|
label: string;
|
|
514
519
|
sublabel: string;
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
520
|
+
input_type: string;
|
|
521
|
+
attributes: {
|
|
522
|
+
mode: string;
|
|
523
|
+
singleline: boolean;
|
|
524
|
+
expression_type: string;
|
|
525
|
+
};
|
|
518
526
|
options?: undefined;
|
|
527
|
+
type?: undefined;
|
|
519
528
|
showIf?: undefined;
|
|
520
529
|
})[]>;
|
|
521
530
|
export { configFields_8 as configFields };
|
|
@@ -589,8 +598,11 @@ export namespace modify_row {
|
|
|
589
598
|
input_type: string;
|
|
590
599
|
attributes: {
|
|
591
600
|
mode: string;
|
|
601
|
+
compact: boolean;
|
|
602
|
+
expression_type: string;
|
|
592
603
|
options?: undefined;
|
|
593
604
|
showIf?: undefined;
|
|
605
|
+
singleline?: undefined;
|
|
594
606
|
};
|
|
595
607
|
type?: undefined;
|
|
596
608
|
required?: undefined;
|
|
@@ -603,7 +615,10 @@ export namespace modify_row {
|
|
|
603
615
|
attributes: {
|
|
604
616
|
options: string[];
|
|
605
617
|
mode?: undefined;
|
|
618
|
+
compact?: undefined;
|
|
619
|
+
expression_type?: undefined;
|
|
606
620
|
showIf?: undefined;
|
|
621
|
+
singleline?: undefined;
|
|
607
622
|
};
|
|
608
623
|
sublabel?: undefined;
|
|
609
624
|
input_type?: undefined;
|
|
@@ -619,6 +634,9 @@ export namespace modify_row {
|
|
|
619
634
|
where: string;
|
|
620
635
|
};
|
|
621
636
|
mode?: undefined;
|
|
637
|
+
compact?: undefined;
|
|
638
|
+
expression_type?: undefined;
|
|
639
|
+
singleline?: undefined;
|
|
622
640
|
};
|
|
623
641
|
sublabel?: undefined;
|
|
624
642
|
input_type?: undefined;
|
|
@@ -626,14 +644,21 @@ export namespace modify_row {
|
|
|
626
644
|
} | {
|
|
627
645
|
name: string;
|
|
628
646
|
label: string;
|
|
629
|
-
|
|
647
|
+
input_type: string;
|
|
648
|
+
attributes: {
|
|
649
|
+
mode: string;
|
|
650
|
+
singleline: boolean;
|
|
651
|
+
expression_type: string;
|
|
652
|
+
compact?: undefined;
|
|
653
|
+
options?: undefined;
|
|
654
|
+
showIf?: undefined;
|
|
655
|
+
};
|
|
630
656
|
required: boolean;
|
|
631
657
|
showIf: {
|
|
632
658
|
where: string;
|
|
633
659
|
};
|
|
634
660
|
sublabel?: undefined;
|
|
635
|
-
|
|
636
|
-
attributes?: undefined;
|
|
661
|
+
type?: undefined;
|
|
637
662
|
})[]>;
|
|
638
663
|
export { configFields_10 as configFields };
|
|
639
664
|
let requireRow_3: boolean;
|
|
@@ -831,7 +856,8 @@ export namespace form_action {
|
|
|
831
856
|
};
|
|
832
857
|
}[];
|
|
833
858
|
export { configFields_14 as configFields };
|
|
834
|
-
export function run_13({ row, table, user, req, configuration: { form_action } }: {
|
|
859
|
+
export function run_13({ row, table, user, req, configuration: { form_action }, ...rest }: {
|
|
860
|
+
[x: string]: any;
|
|
835
861
|
row: any;
|
|
836
862
|
table: any;
|
|
837
863
|
user: any;
|
|
@@ -849,6 +875,10 @@ export namespace form_action {
|
|
|
849
875
|
[x: number]: any;
|
|
850
876
|
};
|
|
851
877
|
eval_js?: undefined;
|
|
878
|
+
} | {
|
|
879
|
+
notify_success: any;
|
|
880
|
+
eval_js?: undefined;
|
|
881
|
+
set_fields?: undefined;
|
|
852
882
|
}>;
|
|
853
883
|
export { run_13 as run };
|
|
854
884
|
let namespace_13: string;
|
|
@@ -936,14 +966,17 @@ export namespace run_js_code {
|
|
|
936
966
|
export namespace configFormOptions {
|
|
937
967
|
let formStyle: string;
|
|
938
968
|
}
|
|
939
|
-
export function configFields_16({ table }: {
|
|
969
|
+
export function configFields_16({ table, when_trigger }: {
|
|
940
970
|
table: any;
|
|
971
|
+
when_trigger: any;
|
|
941
972
|
}): Promise<({
|
|
942
973
|
name: string;
|
|
943
974
|
label: string;
|
|
944
975
|
input_type: string;
|
|
945
976
|
attributes: {
|
|
946
977
|
mode: string;
|
|
978
|
+
table: any;
|
|
979
|
+
user: string | undefined;
|
|
947
980
|
secondColHoriz?: undefined;
|
|
948
981
|
};
|
|
949
982
|
class: string;
|
|
@@ -965,6 +998,8 @@ export namespace run_js_code {
|
|
|
965
998
|
attributes: {
|
|
966
999
|
secondColHoriz: boolean;
|
|
967
1000
|
mode?: undefined;
|
|
1001
|
+
table?: undefined;
|
|
1002
|
+
user?: undefined;
|
|
968
1003
|
};
|
|
969
1004
|
name?: undefined;
|
|
970
1005
|
class?: undefined;
|
|
@@ -1104,10 +1139,9 @@ export namespace sync_table_from_external {
|
|
|
1104
1139
|
sublabel: string;
|
|
1105
1140
|
input_type: string;
|
|
1106
1141
|
options: string[];
|
|
1142
|
+
attributes?: undefined;
|
|
1107
1143
|
type?: undefined;
|
|
1108
|
-
class?: undefined;
|
|
1109
1144
|
required?: undefined;
|
|
1110
|
-
attributes?: undefined;
|
|
1111
1145
|
default?: undefined;
|
|
1112
1146
|
fieldview?: undefined;
|
|
1113
1147
|
showIf?: undefined;
|
|
@@ -1115,12 +1149,16 @@ export namespace sync_table_from_external {
|
|
|
1115
1149
|
name: string;
|
|
1116
1150
|
label: string;
|
|
1117
1151
|
sublabel: string;
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1152
|
+
input_type: string;
|
|
1153
|
+
attributes: {
|
|
1154
|
+
mode: string;
|
|
1155
|
+
singleline: boolean;
|
|
1156
|
+
expression_type: string;
|
|
1157
|
+
calcOptions?: undefined;
|
|
1158
|
+
};
|
|
1121
1159
|
options?: undefined;
|
|
1160
|
+
type?: undefined;
|
|
1122
1161
|
required?: undefined;
|
|
1123
|
-
attributes?: undefined;
|
|
1124
1162
|
default?: undefined;
|
|
1125
1163
|
fieldview?: undefined;
|
|
1126
1164
|
showIf?: undefined;
|
|
@@ -1132,10 +1170,12 @@ export namespace sync_table_from_external {
|
|
|
1132
1170
|
required: boolean;
|
|
1133
1171
|
attributes: {
|
|
1134
1172
|
calcOptions: {}[];
|
|
1173
|
+
mode?: undefined;
|
|
1174
|
+
singleline?: undefined;
|
|
1175
|
+
expression_type?: undefined;
|
|
1135
1176
|
};
|
|
1136
1177
|
input_type?: undefined;
|
|
1137
1178
|
options?: undefined;
|
|
1138
|
-
class?: undefined;
|
|
1139
1179
|
default?: undefined;
|
|
1140
1180
|
fieldview?: undefined;
|
|
1141
1181
|
showIf?: undefined;
|
|
@@ -1147,9 +1187,8 @@ export namespace sync_table_from_external {
|
|
|
1147
1187
|
default: boolean;
|
|
1148
1188
|
input_type?: undefined;
|
|
1149
1189
|
options?: undefined;
|
|
1150
|
-
class?: undefined;
|
|
1151
|
-
required?: undefined;
|
|
1152
1190
|
attributes?: undefined;
|
|
1191
|
+
required?: undefined;
|
|
1153
1192
|
fieldview?: undefined;
|
|
1154
1193
|
showIf?: undefined;
|
|
1155
1194
|
} | {
|
|
@@ -1163,9 +1202,8 @@ export namespace sync_table_from_external {
|
|
|
1163
1202
|
};
|
|
1164
1203
|
input_type?: undefined;
|
|
1165
1204
|
options?: undefined;
|
|
1166
|
-
class?: undefined;
|
|
1167
|
-
required?: undefined;
|
|
1168
1205
|
attributes?: undefined;
|
|
1206
|
+
required?: undefined;
|
|
1169
1207
|
default?: undefined;
|
|
1170
1208
|
})[]>;
|
|
1171
1209
|
export { configFields_20 as configFields };
|
|
@@ -1443,6 +1481,9 @@ export namespace train_model_instance {
|
|
|
1443
1481
|
}[];
|
|
1444
1482
|
attributes: {
|
|
1445
1483
|
explainers: {};
|
|
1484
|
+
mode?: undefined;
|
|
1485
|
+
singleline?: undefined;
|
|
1486
|
+
expression_type?: undefined;
|
|
1446
1487
|
};
|
|
1447
1488
|
type?: undefined;
|
|
1448
1489
|
sublabel?: undefined;
|
|
@@ -1464,7 +1505,23 @@ export namespace train_model_instance {
|
|
|
1464
1505
|
label: string;
|
|
1465
1506
|
fieldview: string;
|
|
1466
1507
|
sublabel: string;
|
|
1508
|
+
input_type: string;
|
|
1509
|
+
attributes: {
|
|
1510
|
+
mode: string;
|
|
1511
|
+
singleline: boolean;
|
|
1512
|
+
expression_type: string;
|
|
1513
|
+
explainers?: undefined;
|
|
1514
|
+
};
|
|
1515
|
+
required?: undefined;
|
|
1516
|
+
options?: undefined;
|
|
1517
|
+
type?: undefined;
|
|
1518
|
+
class?: undefined;
|
|
1519
|
+
} | {
|
|
1520
|
+
name: string;
|
|
1521
|
+
label: string;
|
|
1522
|
+
sublabel: string;
|
|
1467
1523
|
type: string;
|
|
1524
|
+
fieldview: string;
|
|
1468
1525
|
class: string;
|
|
1469
1526
|
input_type?: undefined;
|
|
1470
1527
|
required?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../base-plugin/actions.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../base-plugin/actions.js"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ const File = require("../models/file");
|
|
|
17
17
|
const { getState } = require("../db/state");
|
|
18
18
|
const User = require("../models/user");
|
|
19
19
|
const Trigger = require("../models/trigger");
|
|
20
|
+
const WorkflowRun = require("../models/workflow_run");
|
|
20
21
|
const Notification = require("../models/notification");
|
|
21
22
|
const { getMailTransport, viewToEmailHtml, loadAttachments, getFileAggregations, mjml2html, } = require("../models/email");
|
|
22
23
|
const { get_async_expression_function, recalculate_for_stored, eval_expression, freeVariablesInInterpolation, add_free_variables_to_joinfields, freeVariables, } = require("../models/expression");
|
|
@@ -164,6 +165,7 @@ const run_code = async ({ row, table, channel, configuration: { code, run_where
|
|
|
164
165
|
Buffer: isNode() ? Buffer : require("buffer"),
|
|
165
166
|
Trigger,
|
|
166
167
|
Notification,
|
|
168
|
+
WorkflowRun,
|
|
167
169
|
setTimeout,
|
|
168
170
|
interpolate,
|
|
169
171
|
require,
|
|
@@ -278,8 +280,12 @@ module.exports = {
|
|
|
278
280
|
name: "where",
|
|
279
281
|
label: "Where",
|
|
280
282
|
sublabel: "Where-expression for subset of rows to loop over",
|
|
281
|
-
|
|
282
|
-
|
|
283
|
+
input_type: "code",
|
|
284
|
+
attributes: {
|
|
285
|
+
mode: "application/javascript",
|
|
286
|
+
singleline: true,
|
|
287
|
+
expression_type: "query",
|
|
288
|
+
},
|
|
283
289
|
},
|
|
284
290
|
{
|
|
285
291
|
name: "limit",
|
|
@@ -437,8 +443,8 @@ module.exports = {
|
|
|
437
443
|
};
|
|
438
444
|
if (method !== "GET") {
|
|
439
445
|
let postBody;
|
|
440
|
-
if (body &&
|
|
441
|
-
const f = get_async_expression_function(body, table.
|
|
446
|
+
if (body && row) {
|
|
447
|
+
const f = get_async_expression_function(body, table?.fields || Object.keys(row).map((k) => ({ name: k })), {
|
|
442
448
|
row: row || {},
|
|
443
449
|
user,
|
|
444
450
|
});
|
|
@@ -1016,8 +1022,12 @@ module.exports = {
|
|
|
1016
1022
|
name: "where",
|
|
1017
1023
|
label: "Recalculate where",
|
|
1018
1024
|
sublabel: "Where-expression for subset of rows to recalculate",
|
|
1019
|
-
|
|
1020
|
-
|
|
1025
|
+
input_type: "code",
|
|
1026
|
+
attributes: {
|
|
1027
|
+
mode: "application/javascript",
|
|
1028
|
+
singleline: true,
|
|
1029
|
+
expression_type: "query",
|
|
1030
|
+
},
|
|
1021
1031
|
},
|
|
1022
1032
|
];
|
|
1023
1033
|
},
|
|
@@ -1039,7 +1049,7 @@ module.exports = {
|
|
|
1039
1049
|
}
|
|
1040
1050
|
else if (configuration.where) {
|
|
1041
1051
|
const where = eval_expression(configuration.where, row || {}, user, "recalculate_stored_fields where");
|
|
1042
|
-
recalculate_for_stored(table_for_recalc, where);
|
|
1052
|
+
await recalculate_for_stored(table_for_recalc, where);
|
|
1043
1053
|
}
|
|
1044
1054
|
else if (table_for_recalc)
|
|
1045
1055
|
recalculate_for_stored(table_for_recalc);
|
|
@@ -1163,7 +1173,11 @@ module.exports = {
|
|
|
1163
1173
|
label: "Row expression",
|
|
1164
1174
|
sublabel: "Expression for JavaScript object. For example, <code>{points: 34}</code>",
|
|
1165
1175
|
input_type: "code",
|
|
1166
|
-
attributes: {
|
|
1176
|
+
attributes: {
|
|
1177
|
+
mode: "application/javascript",
|
|
1178
|
+
compact: true,
|
|
1179
|
+
expression_type: "row",
|
|
1180
|
+
},
|
|
1167
1181
|
},
|
|
1168
1182
|
...(mode === "edit" ||
|
|
1169
1183
|
mode === "filter" ||
|
|
@@ -1202,7 +1216,12 @@ module.exports = {
|
|
|
1202
1216
|
{
|
|
1203
1217
|
name: "query",
|
|
1204
1218
|
label: "Query object",
|
|
1205
|
-
|
|
1219
|
+
input_type: "code",
|
|
1220
|
+
attributes: {
|
|
1221
|
+
mode: "application/javascript",
|
|
1222
|
+
singleline: true,
|
|
1223
|
+
expression_type: "query",
|
|
1224
|
+
},
|
|
1206
1225
|
required: true,
|
|
1207
1226
|
showIf: { where: "Database" },
|
|
1208
1227
|
},
|
|
@@ -1422,7 +1441,7 @@ module.exports = {
|
|
|
1422
1441
|
},
|
|
1423
1442
|
},
|
|
1424
1443
|
],
|
|
1425
|
-
run: async ({ row, table, user, req, configuration: { form_action } }) => {
|
|
1444
|
+
run: async ({ row, table, user, req, configuration: { form_action }, ...rest }) => {
|
|
1426
1445
|
const jqGet = `$('form[data-viewname="'+viewname+'"]')`;
|
|
1427
1446
|
switch (form_action) {
|
|
1428
1447
|
case "Submit":
|
|
@@ -1430,14 +1449,34 @@ module.exports = {
|
|
|
1430
1449
|
case "RequestSubmit":
|
|
1431
1450
|
return { eval_js: jqGet + "[0].requestSubmit()" };
|
|
1432
1451
|
case "Save":
|
|
1433
|
-
|
|
1434
|
-
|
|
1452
|
+
const applyUploadedFiles = async () => {
|
|
1453
|
+
if (!req?.files)
|
|
1454
|
+
return false;
|
|
1455
|
+
const viewColumns = rest?.columns;
|
|
1456
|
+
let processed = false;
|
|
1435
1457
|
for (const field of table.fields) {
|
|
1436
|
-
if (field.type === "File" && req
|
|
1437
|
-
|
|
1458
|
+
if (field.type === "File" && req.files[field.name]) {
|
|
1459
|
+
let folder = field?.attributes?.folder;
|
|
1460
|
+
if (Array.isArray(viewColumns)) {
|
|
1461
|
+
const col = viewColumns.find((c) => c?.type === "Field" && c.field_name === field.name);
|
|
1462
|
+
let cfgFolder = col?.configuration?.folder;
|
|
1463
|
+
if (typeof cfgFolder === "string" && cfgFolder.length) {
|
|
1464
|
+
// allow simple interpolations like {{user.id}} if present
|
|
1465
|
+
folder = cfgFolder.includes("{{")
|
|
1466
|
+
? interpolate(cfgFolder, row, user, "Upload folder")
|
|
1467
|
+
: cfgFolder;
|
|
1468
|
+
}
|
|
1469
|
+
}
|
|
1470
|
+
const file = await File.from_req_files(req.files[field.name], user ? user.id : null, (field.attributes && +field.attributes.min_role_read) || 1, folder);
|
|
1438
1471
|
row[field.name] = file.path_to_serve;
|
|
1472
|
+
processed = true;
|
|
1439
1473
|
}
|
|
1440
1474
|
}
|
|
1475
|
+
return processed;
|
|
1476
|
+
};
|
|
1477
|
+
if (!row[table.pk_name]) {
|
|
1478
|
+
// insert: process uploaded file fields server-side, then insert
|
|
1479
|
+
await applyUploadedFiles();
|
|
1441
1480
|
const result = await table.tryInsertRow(row, user);
|
|
1442
1481
|
if (result.success)
|
|
1443
1482
|
return {
|
|
@@ -1449,7 +1488,20 @@ module.exports = {
|
|
|
1449
1488
|
return { eval_js: `return saveAndContinueAsync(${jqGet})` };
|
|
1450
1489
|
}
|
|
1451
1490
|
}
|
|
1452
|
-
|
|
1491
|
+
else {
|
|
1492
|
+
// update: if any file uploads present, process server-side and update row
|
|
1493
|
+
const hasUploads = await applyUploadedFiles();
|
|
1494
|
+
if (hasUploads) {
|
|
1495
|
+
const updateres = await table.tryUpdateRow(row, row[table.pk_name], user);
|
|
1496
|
+
if (!updateres?.error)
|
|
1497
|
+
return { notify_success: req ? req.__("Saved") : "Saved" };
|
|
1498
|
+
else {
|
|
1499
|
+
getState().log(3, `form_actions Save update failed server side, result: ${JSON.stringify(updateres)} row ${JSON.stringify(row)}`);
|
|
1500
|
+
return { eval_js: `return saveAndContinueAsync(${jqGet})` };
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
return { eval_js: `return saveAndContinueAsync(${jqGet})` };
|
|
1504
|
+
}
|
|
1453
1505
|
case "Reset":
|
|
1454
1506
|
return { eval_js: jqGet + ".trigger('reset')" };
|
|
1455
1507
|
case "Submit with Ajax":
|
|
@@ -1533,7 +1585,7 @@ module.exports = {
|
|
|
1533
1585
|
configFormOptions: {
|
|
1534
1586
|
formStyle: "vert",
|
|
1535
1587
|
},
|
|
1536
|
-
configFields: async ({ table }) => {
|
|
1588
|
+
configFields: async ({ table, when_trigger }) => {
|
|
1537
1589
|
const fields = table ? table.getFields().map((f) => f.name) : [];
|
|
1538
1590
|
const vars = [
|
|
1539
1591
|
...(table ? ["row"] : []),
|
|
@@ -1558,12 +1610,25 @@ module.exports = {
|
|
|
1558
1610
|
.map((f) => code(f))
|
|
1559
1611
|
.join(", ");
|
|
1560
1612
|
const clientvars = [...fields].map((f) => code(f)).join(", ");
|
|
1613
|
+
const has_user = [
|
|
1614
|
+
"Hourly",
|
|
1615
|
+
"Weekly",
|
|
1616
|
+
"Daily",
|
|
1617
|
+
"Often",
|
|
1618
|
+
"Startup",
|
|
1619
|
+
].includes(when_trigger)
|
|
1620
|
+
? undefined
|
|
1621
|
+
: "maybe";
|
|
1561
1622
|
return [
|
|
1562
1623
|
{
|
|
1563
1624
|
name: "code",
|
|
1564
1625
|
label: "Code",
|
|
1565
1626
|
input_type: "code",
|
|
1566
|
-
attributes: {
|
|
1627
|
+
attributes: {
|
|
1628
|
+
mode: "application/javascript",
|
|
1629
|
+
table: table?.name || undefined,
|
|
1630
|
+
user: has_user,
|
|
1631
|
+
},
|
|
1567
1632
|
class: "validate-statements enlarge-in-card",
|
|
1568
1633
|
validator(s) {
|
|
1569
1634
|
try {
|
|
@@ -1806,8 +1871,12 @@ module.exports = {
|
|
|
1806
1871
|
name: "where",
|
|
1807
1872
|
label: "Query",
|
|
1808
1873
|
sublabel: "Query-expression on source table for subset of rows to synchronize. Example: <code>{ status: 'Open' }</code>",
|
|
1809
|
-
|
|
1810
|
-
|
|
1874
|
+
input_type: "code",
|
|
1875
|
+
attributes: {
|
|
1876
|
+
mode: "application/javascript",
|
|
1877
|
+
singleline: true,
|
|
1878
|
+
expression_type: "query",
|
|
1879
|
+
},
|
|
1811
1880
|
},
|
|
1812
1881
|
{
|
|
1813
1882
|
name: "table_dest",
|
|
@@ -2253,8 +2322,12 @@ module.exports = {
|
|
|
2253
2322
|
label: "Where",
|
|
2254
2323
|
fieldview: "textarea",
|
|
2255
2324
|
sublabel: "Where-expression for subset of rows to train on. Optional",
|
|
2256
|
-
|
|
2257
|
-
|
|
2325
|
+
input_type: "code",
|
|
2326
|
+
attributes: {
|
|
2327
|
+
mode: "application/javascript",
|
|
2328
|
+
singleline: true,
|
|
2329
|
+
expression_type: "query",
|
|
2330
|
+
},
|
|
2258
2331
|
},
|
|
2259
2332
|
{
|
|
2260
2333
|
name: "hyperparameters",
|