datasync-dynamic-form 1.0.26 → 1.0.28
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/components/DsDynamicForm.js +187 -75
- package/package.json +3 -1
|
@@ -15,6 +15,8 @@ var _multiselectReactDropdown = _interopRequireDefault(require("multiselect-reac
|
|
|
15
15
|
var _datasyncCore = require("datasync-core");
|
|
16
16
|
var _datasyncCommonLibrary = require("datasync-common-library");
|
|
17
17
|
var _datasyncBlob = require("datasync-blob");
|
|
18
|
+
var _reactDatepicker = _interopRequireWildcard(require("react-datepicker"));
|
|
19
|
+
require("react-datepicker/dist/react-datepicker.css");
|
|
18
20
|
var _reactstrap = require("reactstrap");
|
|
19
21
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -70,48 +72,6 @@ class DsDynamicForm extends _react.Component {
|
|
|
70
72
|
this.clearForm();
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
clearForm_OBSOLETE = () => {
|
|
74
|
-
console.log("27:ClearForm");
|
|
75
|
-
/** Duplicate props.form */
|
|
76
|
-
let clearObject2 = JSON.parse(JSON.stringify(this.props.form));
|
|
77
|
-
|
|
78
|
-
/** set data_tier with (props.foreign_keys + props.data_tier) */
|
|
79
|
-
if (this.props.data_blob) {
|
|
80
|
-
//Set internal data_tier component property
|
|
81
|
-
//OBSOLETE this.data_tier = this.props.data_blob.data_tier
|
|
82
|
-
if (globals.parameters.debugging) console.log("01:this.props.data_blob ->", this.props.data_blob);
|
|
83
|
-
clearObject2.data_tier = this.props.data_blob.data_tier;
|
|
84
|
-
} else {
|
|
85
|
-
if (globals.parameters.debugging) console.log("01:this.props.data_blob.data_tier unDefined");
|
|
86
|
-
clearObject2.data_tier = {}; //Set empty data_tier
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/** Override data with foreign keys wne props.foreign_key is available */
|
|
90
|
-
if (this.props.foreign_keys) {
|
|
91
|
-
clearObject2.data_tier = Object.assign(clearObject2.data_tier, this.props.foreign_keys); //Dead code to be checked !!!
|
|
92
|
-
this.local_data_blob.data_tier = Object.assign(clearObject2.data_tier, this.props.foreign_keys); //Dead code to be checked !!!
|
|
93
|
-
}
|
|
94
|
-
if (globals.parameters.debugging) {
|
|
95
|
-
console.log("01:----- clearForm -----");
|
|
96
|
-
console.log("01:clearForm::this.props.form->", this.props.form);
|
|
97
|
-
console.log("01:clearForm::clearObject2 mixed with data_tier ->", clearObject2);
|
|
98
|
-
console.log("01:clearForm::internal this.data_blob ->", this.local_data_blob);
|
|
99
|
-
}
|
|
100
|
-
this.setState({
|
|
101
|
-
fieldError: [],
|
|
102
|
-
form: {},
|
|
103
|
-
captcha1: (0, _datasyncCommonLibrary.Randomize)(0, 5),
|
|
104
|
-
captcha2: (0, _datasyncCommonLibrary.Randomize)(0, 5)
|
|
105
|
-
},
|
|
106
|
-
//Clear forced
|
|
107
|
-
() => {
|
|
108
|
-
if (globals.parameters.debugging) console.log("09/07:DynamicForm3Tiers2 state cleansed 2:", this.state);
|
|
109
|
-
this.setState({
|
|
110
|
-
fieldError: [],
|
|
111
|
-
form: clearObject2
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
75
|
|
|
116
76
|
/**
|
|
117
77
|
* Prototype : clearForm
|
|
@@ -143,25 +103,28 @@ class DsDynamicForm extends _react.Component {
|
|
|
143
103
|
data_tier: {}
|
|
144
104
|
};
|
|
145
105
|
//this.local_data_blob.data_tier = Object.assign({}, duplicate_data_tier);
|
|
106
|
+
|
|
107
|
+
//Ensure props.foreign_keys is a json object - PMAB on 2025-04-10
|
|
108
|
+
if (this.props.foreign_keys && typeof this.props.foreign_keys !== "object") throw new Error("foreign_keys must be a json object !");
|
|
146
109
|
this.local_data_blob.data_tier = Object.assign(this.props.foreign_keys ? this.props.foreign_keys : {}, duplicate_data_tier);
|
|
147
|
-
console.log("
|
|
148
|
-
console.log("
|
|
110
|
+
console.log("this.local_data_blob.data_tier ->", this.local_data_blob.data_tier);
|
|
111
|
+
console.log("this.props.data_blob.data_tier ->", this.props.data_blob && this.props.data_blob.data_tier ? this.props.data_blob.data_tier : "props data_blob not set");
|
|
149
112
|
};
|
|
150
|
-
getFieldData =
|
|
113
|
+
getFieldData = fieldName => {
|
|
151
114
|
/** Return data value form field object */
|
|
152
|
-
let nextFieldData = this.local_data_blob.data_tier[
|
|
153
|
-
if (globals.parameters.debugging) console.log("
|
|
115
|
+
let nextFieldData = this.local_data_blob.data_tier[fieldName] ? this.local_data_blob.data_tier[fieldName] : "";
|
|
116
|
+
if (globals.parameters.debugging) console.log("getFieldData[", fieldName, "] nextFieldData->", nextFieldData);
|
|
154
117
|
return nextFieldData;
|
|
155
118
|
};
|
|
156
|
-
setFieldData = (
|
|
157
|
-
this.local_data_blob.data_tier[
|
|
119
|
+
setFieldData = (fieldName, value) => {
|
|
120
|
+
this.local_data_blob.data_tier[fieldName] = value;
|
|
158
121
|
|
|
159
|
-
//onFormChange handler return current form value to caller - PMAB
|
|
122
|
+
//onFormChange handler return current form value to caller - PMAB on 2025-02-03
|
|
160
123
|
if (this.props.onFormChange) this.props.onFormChange(this.local_data_blob.data_tier);
|
|
161
124
|
if (globals.parameters.debugging) {
|
|
162
|
-
console.log("
|
|
163
|
-
console.log("
|
|
164
|
-
console.log("
|
|
125
|
+
console.log("setFieldData[", fieldName, "] value->", value);
|
|
126
|
+
console.log("setFieldData[", fieldName, "] this.local_data_blob.data_tier ->", this.local_data_blob.data_tier);
|
|
127
|
+
console.log("setFieldData[", fieldName, "] this.data_blob ->", this.local_data_blob);
|
|
165
128
|
}
|
|
166
129
|
};
|
|
167
130
|
getSelectedFieldValues_V1 = pFieldObject => {
|
|
@@ -223,7 +186,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
223
186
|
}, /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
|
|
224
187
|
readOnly: this.props.read_only ? this.props.read_only : false,
|
|
225
188
|
type: field.input_type,
|
|
226
|
-
value: this.getFieldData(field),
|
|
189
|
+
value: this.getFieldData(field.name),
|
|
227
190
|
placeholder: field.placeholder,
|
|
228
191
|
autocomplete: "on",
|
|
229
192
|
id: field.name,
|
|
@@ -247,7 +210,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
247
210
|
}, /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
|
|
248
211
|
readOnly: this.props.read_only ? this.props.read_only : false,
|
|
249
212
|
type: field.input_type,
|
|
250
|
-
value: this.getFieldData(field),
|
|
213
|
+
value: this.getFieldData(field.name),
|
|
251
214
|
placeholder: field.placeholder,
|
|
252
215
|
autocomplete: "on",
|
|
253
216
|
id: field.name,
|
|
@@ -265,7 +228,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
265
228
|
return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
|
|
266
229
|
readOnly: this.props.read_only ? this.props.read_only : false,
|
|
267
230
|
type: field.input_type,
|
|
268
|
-
value: this.getFieldData(field),
|
|
231
|
+
value: this.getFieldData(field.name),
|
|
269
232
|
placeholder: field.placeholder,
|
|
270
233
|
autocomplete: "off",
|
|
271
234
|
onChange: e => {
|
|
@@ -281,7 +244,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
281
244
|
return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
|
|
282
245
|
readOnly: this.props.read_only ? this.props.read_only : false,
|
|
283
246
|
type: field.input_type,
|
|
284
|
-
value: this.getFieldData(field),
|
|
247
|
+
value: this.getFieldData(field.name),
|
|
285
248
|
placeholder: field.placeholder,
|
|
286
249
|
pattern: "[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$",
|
|
287
250
|
autocomplete: "on",
|
|
@@ -301,7 +264,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
301
264
|
className: "form-control",
|
|
302
265
|
readOnly: this.props.read_only ? this.props.read_only : false,
|
|
303
266
|
type: field.input_type,
|
|
304
|
-
value: this.getFieldData(field),
|
|
267
|
+
value: this.getFieldData(field.name),
|
|
305
268
|
placeholder: field.placeholder,
|
|
306
269
|
rows: field.rows,
|
|
307
270
|
onChange: e => {
|
|
@@ -319,14 +282,14 @@ class DsDynamicForm extends _react.Component {
|
|
|
319
282
|
options: field.combo_list,
|
|
320
283
|
isObject: false,
|
|
321
284
|
displayValue: "key",
|
|
322
|
-
selectedValues: this.getFieldData(field) ? this.getFieldData(field).split(";") : [],
|
|
285
|
+
selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name.name).split(";") : [],
|
|
323
286
|
placeholder: field.placeholder,
|
|
324
287
|
emptyRecordMsg: "",
|
|
325
288
|
onSelect: (selectedList, selectedItem) => {
|
|
326
|
-
this.setFieldData(field, selectedList.join(";"));
|
|
289
|
+
this.setFieldData(field.name, selectedList.join(";"));
|
|
327
290
|
},
|
|
328
291
|
onRemove: (selectedList, selectedItem) => {
|
|
329
|
-
this.setFieldData(field, selectedList.join(";"));
|
|
292
|
+
this.setFieldData(field.name, selectedList.join(";"));
|
|
330
293
|
},
|
|
331
294
|
disable: this.props.read_only,
|
|
332
295
|
singleSelect: true
|
|
@@ -338,19 +301,110 @@ class DsDynamicForm extends _react.Component {
|
|
|
338
301
|
options: field.combo_list,
|
|
339
302
|
isObject: false,
|
|
340
303
|
displayValue: "key",
|
|
341
|
-
selectedValues: this.getFieldData(field) ? this.getFieldData(field).split(";") : [],
|
|
304
|
+
selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name).split(";") : [],
|
|
342
305
|
placeholder: field.placeholder,
|
|
343
306
|
emptyRecordMsg: "",
|
|
344
307
|
onSelect: (selectedList, selectedItem) => {
|
|
345
|
-
this.setFieldData(field, selectedList.join(";"));
|
|
308
|
+
this.setFieldData(field.name, selectedList.join(";"));
|
|
346
309
|
},
|
|
347
310
|
onRemove: (selectedList, selectedItem) => {
|
|
348
|
-
this.setFieldData(field, selectedList.join(";"));
|
|
311
|
+
this.setFieldData(field.name, selectedList.join(";"));
|
|
349
312
|
},
|
|
350
313
|
disable: this.props.read_only,
|
|
351
314
|
singleSelect: false
|
|
352
315
|
}), this._error_label(field));
|
|
353
316
|
};
|
|
317
|
+
_date_field = field => {
|
|
318
|
+
return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(_reactDatepicker.default
|
|
319
|
+
//locale="fr"
|
|
320
|
+
, {
|
|
321
|
+
value: this.getFieldData(field.name),
|
|
322
|
+
placeholder: "dd-mm-yyyy",
|
|
323
|
+
onChange: p_oDate => {
|
|
324
|
+
this.handle_date_picker({
|
|
325
|
+
selection: p_oDate,
|
|
326
|
+
fieldObject: field
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}), this._error_label(field));
|
|
330
|
+
};
|
|
331
|
+
_time_field = field => {
|
|
332
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
333
|
+
className: "time-div"
|
|
334
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
335
|
+
className: "time-hour-div"
|
|
336
|
+
}, /*#__PURE__*/_react.default.createElement(_multiselectReactDropdown.default, {
|
|
337
|
+
showArrow: true,
|
|
338
|
+
options: ["07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22"],
|
|
339
|
+
isObject: false,
|
|
340
|
+
displayValue: "key",
|
|
341
|
+
selectedValues: this.getFieldData(field.name + "__hour") ? this.getFieldData(field.name + "__hour").split(";") : [],
|
|
342
|
+
placeholder: field.placeholder,
|
|
343
|
+
emptyRecordMsg: "",
|
|
344
|
+
onSelect: (selectedList, selectedItem) => {
|
|
345
|
+
this.handle_time_picker({
|
|
346
|
+
fieldObject: field,
|
|
347
|
+
name: field.name,
|
|
348
|
+
sub_name: "__hour",
|
|
349
|
+
value: selectedList.join(";")
|
|
350
|
+
});
|
|
351
|
+
},
|
|
352
|
+
onRemove: (selectedList, selectedItem) => {
|
|
353
|
+
this.handle_time_picker({
|
|
354
|
+
fieldObject: field,
|
|
355
|
+
name: field.name,
|
|
356
|
+
sub_name: "__hour",
|
|
357
|
+
value: selectedList.join(";")
|
|
358
|
+
});
|
|
359
|
+
},
|
|
360
|
+
disable: this.props.read_only,
|
|
361
|
+
singleSelect: true
|
|
362
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
363
|
+
className: "time-min-div"
|
|
364
|
+
}, /*#__PURE__*/_react.default.createElement(_multiselectReactDropdown.default, {
|
|
365
|
+
showArrow: false,
|
|
366
|
+
options: ["00", "15", "20", "25", "30", "35", "40", "45", "50", "55"],
|
|
367
|
+
isObject: false,
|
|
368
|
+
displayValue: "key",
|
|
369
|
+
selectedValues: this.getFieldData(field.name + "__min") ? this.getFieldData(field.name + "__min").split(";") : [],
|
|
370
|
+
placeholder: field.placeholder,
|
|
371
|
+
emptyRecordMsg: "",
|
|
372
|
+
onSelect: (selectedList, selectedItem) => {
|
|
373
|
+
this.handle_time_picker({
|
|
374
|
+
fieldObject: field,
|
|
375
|
+
name: field.name,
|
|
376
|
+
sub_name: "__min",
|
|
377
|
+
value: selectedList.join(";")
|
|
378
|
+
});
|
|
379
|
+
},
|
|
380
|
+
onRemove: (selectedList, selectedItem) => {
|
|
381
|
+
this.handle_time_picker({
|
|
382
|
+
fieldObject: field,
|
|
383
|
+
name: field.name,
|
|
384
|
+
sub_name: "__min",
|
|
385
|
+
value: selectedList.join(";")
|
|
386
|
+
});
|
|
387
|
+
},
|
|
388
|
+
disable: this.props.read_only,
|
|
389
|
+
singleSelect: true
|
|
390
|
+
})), this._error_label(field));
|
|
391
|
+
};
|
|
392
|
+
_time_field_DISABLED = field => {
|
|
393
|
+
return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(TimePickerPackage, {
|
|
394
|
+
hour_title: "heure",
|
|
395
|
+
hour_placeholder: "heure",
|
|
396
|
+
minutes_title: "minutes",
|
|
397
|
+
minutes_placeholder: "minutes",
|
|
398
|
+
required: false,
|
|
399
|
+
onChange: timeValuePack => {
|
|
400
|
+
console.log("valuepack in EventForm ==>", timeValuePack);
|
|
401
|
+
this.setState({
|
|
402
|
+
hour: timeValuePack.hour,
|
|
403
|
+
minutes: timeValuePack.minutes
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
}), this._error_label(field));
|
|
407
|
+
};
|
|
354
408
|
saveFormToDatasyncProcess = () => {
|
|
355
409
|
//Everything sounds ok in Form, Go ahead
|
|
356
410
|
let hasDataGuid = this.props.datasync_object && this.props.datasync_object.data_guid;
|
|
@@ -434,7 +488,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
434
488
|
/** Get field properties */
|
|
435
489
|
let min = pFieldObject.min_length;
|
|
436
490
|
let max = pFieldObject.max_length;
|
|
437
|
-
let fieldValue = this.getFieldData(pFieldObject);
|
|
491
|
+
let fieldValue = this.getFieldData(pFieldObject.name);
|
|
438
492
|
console.log("d3t3:checkValidation fieldValue->", fieldValue);
|
|
439
493
|
let errorsFieldName = `err_${fieldName}`; /** Error data displayed in dedicated error label, beside input field in Form */
|
|
440
494
|
let nextErrors = [];
|
|
@@ -453,6 +507,11 @@ class DsDynamicForm extends _react.Component {
|
|
|
453
507
|
if (pFieldObject.input_type.toLowerCase() == "email") {
|
|
454
508
|
if (!fieldValue.match(/^([\w.%+-]+)@([\w-]+\.)+([\w]{2,})$/i)) nextErrors.push(`Format de mail incorrect !`);
|
|
455
509
|
}
|
|
510
|
+
|
|
511
|
+
//Date check
|
|
512
|
+
if (pFieldObject.input_type.toLowerCase() == "date") {
|
|
513
|
+
if (!fieldValue.match(/^(\d{2}\/\d{2}\/\d{4})$/i)) nextErrors.push(`Format de date incorrect !`);
|
|
514
|
+
}
|
|
456
515
|
if (max > 0 && fieldValue.trim().length > max) nextErrors.push(`trop long, ${fieldValue.trim().length - max} caractères en trop.`);
|
|
457
516
|
/* Special validation handlers
|
|
458
517
|
if (parseInt(this.state[fieldName]) !== (this.state.v1 + this.state.v2))
|
|
@@ -485,7 +544,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
485
544
|
dynamicInputTextChangeHandler = eventObject => {
|
|
486
545
|
if (eventObject && eventObject.event) eventObject.event.preventDefault();
|
|
487
546
|
if (globals.parameters.debugging) console.log(`d3t:dynamicInputTextChangeHandler eventObject -> `, eventObject);
|
|
488
|
-
this.setFieldData(eventObject.fieldObject, eventObject.event.target.value);
|
|
547
|
+
this.setFieldData(eventObject.fieldObject.name, eventObject.event.target.value);
|
|
489
548
|
|
|
490
549
|
//Validate field
|
|
491
550
|
this.checkValidation(eventObject.fieldObject);
|
|
@@ -493,12 +552,61 @@ class DsDynamicForm extends _react.Component {
|
|
|
493
552
|
dynamicInputNumericChangeHandler = eventObject => {
|
|
494
553
|
if (eventObject && eventObject.event) eventObject.event.preventDefault();
|
|
495
554
|
if (globals.parameters.debugging) console.log(`d3t:dynamicInputNumericChangeHandler ${eventObject.fieldObject.name} Input field has changed`);
|
|
496
|
-
if (eventObject.event.target.value.length == 0 || !isNaN(eventObject.event.target.value) && !isNaN(parseFloat(eventObject.event.target.value))) this.setFieldData(eventObject.fieldObject, eventObject.event.target.value);else {
|
|
555
|
+
if (eventObject.event.target.value.length == 0 || !isNaN(eventObject.event.target.value) && !isNaN(parseFloat(eventObject.event.target.value))) this.setFieldData(eventObject.fieldObject.name, eventObject.event.target.value);else {
|
|
497
556
|
if (globals.parameters.debugging) console.log(`d3t:Value rejected -> ${eventObject.event.target.value}`);
|
|
498
557
|
}
|
|
499
558
|
|
|
500
559
|
//Validate field
|
|
501
|
-
if (globals.parameters.debugging) console.log(`#${eventObject.fieldObject.name} => ${this.getFieldData(eventObject.fieldObject)}`);
|
|
560
|
+
if (globals.parameters.debugging) console.log(`#${eventObject.fieldObject.name} => ${this.getFieldData(eventObject.fieldObject.name)}`);
|
|
561
|
+
this.checkValidation(eventObject.fieldObject);
|
|
562
|
+
};
|
|
563
|
+
convertDate = p_o_day_month_year => {
|
|
564
|
+
function pad(s) {
|
|
565
|
+
return s < 10 ? '0' + s : s;
|
|
566
|
+
}
|
|
567
|
+
return {
|
|
568
|
+
asString: [pad(p_o_day_month_year.day), pad(p_o_day_month_year.month), p_o_day_month_year.year].join('/'),
|
|
569
|
+
asDate: {
|
|
570
|
+
day: p_o_day_month_year.day,
|
|
571
|
+
month: p_o_day_month_year.month,
|
|
572
|
+
year: p_o_day_month_year.year
|
|
573
|
+
}
|
|
574
|
+
};
|
|
575
|
+
};
|
|
576
|
+
handle_date_picker = eventObject => {
|
|
577
|
+
let p_oDate = eventObject.selection;
|
|
578
|
+
//Convert date picker string as day month year object
|
|
579
|
+
let dateConvertedObject = this.convertDate({
|
|
580
|
+
day: p_oDate.getDate(),
|
|
581
|
+
month: 1 + p_oDate.getMonth(),
|
|
582
|
+
year: p_oDate.getFullYear()
|
|
583
|
+
});
|
|
584
|
+
if (globals.parameters.debugging) {
|
|
585
|
+
console.log("p_oDate =>", p_oDate);
|
|
586
|
+
console.log("dateConvertedObject =>", dateConvertedObject);
|
|
587
|
+
console.log("dateConvertedObject.asString =>", dateConvertedObject.asString);
|
|
588
|
+
}
|
|
589
|
+
this.setFieldData(eventObject.fieldObject.name, dateConvertedObject.asString);
|
|
590
|
+
this.setFieldData(eventObject.fieldObject.name + "__day", dateConvertedObject.asDate.day);
|
|
591
|
+
this.setFieldData(eventObject.fieldObject.name + "__month", dateConvertedObject.asDate.month);
|
|
592
|
+
this.setFieldData(eventObject.fieldObject.name + "__year", dateConvertedObject.asDate.year);
|
|
593
|
+
|
|
594
|
+
//Validate field
|
|
595
|
+
this.checkValidation(eventObject.fieldObject);
|
|
596
|
+
};
|
|
597
|
+
handle_time_picker = eventObject => {
|
|
598
|
+
//Set hour or min
|
|
599
|
+
this.setFieldData(eventObject.name + eventObject.sub_name, eventObject.value);
|
|
600
|
+
//update fulll time field
|
|
601
|
+
this.setFieldData(eventObject.name, this.getFieldData(eventObject.name + "__hour") + ":" + this.getFieldData(eventObject.name + "__min"));
|
|
602
|
+
if (true) {
|
|
603
|
+
console.clear();
|
|
604
|
+
console.log("__hour ->", this.getFieldData(eventObject.name + "__hour"));
|
|
605
|
+
console.log("__min ->", this.getFieldData(eventObject.name + "__min"));
|
|
606
|
+
console.log(eventObject.name, " ->", this.getFieldData(eventObject.name));
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
//Validate field
|
|
502
610
|
this.checkValidation(eventObject.fieldObject);
|
|
503
611
|
};
|
|
504
612
|
_colRendering = col => {
|
|
@@ -527,7 +635,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
527
635
|
data_tier_migration = (field, ii) => {
|
|
528
636
|
if (!this.props.data_blob) return; //Discard migration
|
|
529
637
|
return;
|
|
530
|
-
//data_tier_migration
|
|
638
|
+
//data_tier_migration disabled
|
|
531
639
|
console.log("09/07:data_tier_migration ### Migration check !!!");
|
|
532
640
|
console.log("09/07:this.data_blob.modified ->", this.local_data_blob && this.local_data_blob.modified ? this.local_data_blob.modified : "null");
|
|
533
641
|
//Check if migration required
|
|
@@ -575,7 +683,7 @@ class DsDynamicForm extends _react.Component {
|
|
|
575
683
|
console.log("09/07:_fieldRendering -> data_tier_migration call");
|
|
576
684
|
this.data_tier_migration(field, ii);
|
|
577
685
|
//Do not display field if empty in read only mode
|
|
578
|
-
if (this.props.read_only && (this.getFieldData(field) == null || !this.getFieldData(field) || this.getFieldData(field).trim().length == 0)) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
686
|
+
if (this.props.read_only && (this.getFieldData(field.name) == null || !this.getFieldData(field.name) || this.getFieldData(field.name).trim().length == 0)) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
579
687
|
|
|
580
688
|
//Do not display hidden field
|
|
581
689
|
if (field.hidden && !this.props.show_hidden) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
@@ -600,14 +708,14 @@ class DsDynamicForm extends _react.Component {
|
|
|
600
708
|
options: ["Oui", "Non"],
|
|
601
709
|
isObject: false,
|
|
602
710
|
displayValue: "key",
|
|
603
|
-
selectedValues: this.getFieldData(field) ? this.getFieldData(field).split(";") : [],
|
|
711
|
+
selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name).split(";") : [],
|
|
604
712
|
placeholder: field.placeholder,
|
|
605
713
|
emptyRecordMsg: "",
|
|
606
714
|
onSelect: (selectedList, selectedItem) => {
|
|
607
|
-
this.setFieldData(field, selectedList.join(";"));
|
|
715
|
+
this.setFieldData(field.name, selectedList.join(";"));
|
|
608
716
|
},
|
|
609
717
|
onRemove: (selectedList, selectedItem) => {
|
|
610
|
-
this.setFieldData(field, selectedList.join(";"));
|
|
718
|
+
this.setFieldData(field.name, selectedList.join(";"));
|
|
611
719
|
},
|
|
612
720
|
disable: this.props.read_only,
|
|
613
721
|
singleSelect: true
|
|
@@ -618,9 +726,9 @@ class DsDynamicForm extends _react.Component {
|
|
|
618
726
|
}, /*#__PURE__*/_react.default.createElement(_datasyncBlob.DsBlob, {
|
|
619
727
|
readOnly: this.props.read_only ? this.props.read_only : false,
|
|
620
728
|
Caption: `${this.getFieldPrompt(field)} ...`,
|
|
621
|
-
data: this.getFieldData(field),
|
|
729
|
+
data: this.getFieldData(field.name),
|
|
622
730
|
uploadPicture: UploadFile => {
|
|
623
|
-
this.setFieldData(field, UploadFile.data);
|
|
731
|
+
this.setFieldData(field.name, UploadFile.data);
|
|
624
732
|
this.checkValidation(field);
|
|
625
733
|
},
|
|
626
734
|
pictureStyle: "pic",
|
|
@@ -642,6 +750,10 @@ class DsDynamicForm extends _react.Component {
|
|
|
642
750
|
return this._combo_field(field);
|
|
643
751
|
case "multi":
|
|
644
752
|
return this._multi_field(field);
|
|
753
|
+
case "date":
|
|
754
|
+
return this._date_field(field);
|
|
755
|
+
case "time":
|
|
756
|
+
return this._time_field(field);
|
|
645
757
|
case "numeric":
|
|
646
758
|
return this._numeric_field_with_add_on(field, "*");
|
|
647
759
|
case "amount":
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datasync-dynamic-form",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.28",
|
|
4
4
|
"description": "Datasync Dynamic Form component",
|
|
5
5
|
"main": "./dist/components/DsDynamicForm",
|
|
6
6
|
"types": "./dist/components/DsDynamicForm",
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"datasync-blob": "^1.0.2",
|
|
46
46
|
"datasync-common-library": "^1.0.5",
|
|
47
47
|
"datasync-core": "^1.0.28",
|
|
48
|
+
"datasync-dynamic-form": "^1.0.27",
|
|
49
|
+
"react-datepicker": "^8.3.0",
|
|
48
50
|
"universal-cookie": "^7.2.2"
|
|
49
51
|
}
|
|
50
52
|
}
|