Sync changes v29.0.0 from IceHrmPro (https://icehrm.com/purchase-icehrmpro)
This commit is contained in:
@@ -20,6 +20,8 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
return [
|
||||
'id',
|
||||
'name',
|
||||
'field_type',
|
||||
'field_label',
|
||||
'display',
|
||||
'display_order',
|
||||
];
|
||||
@@ -29,6 +31,8 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
return [
|
||||
{ sTitle: 'ID', bVisible: false },
|
||||
{ sTitle: 'Name' },
|
||||
{ sTitle: 'Field Type' },
|
||||
{ sTitle: 'Field Label' },
|
||||
{ sTitle: 'Display Status' },
|
||||
{ sTitle: 'Priority' },
|
||||
];
|
||||
@@ -40,17 +44,24 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
title: 'Name',
|
||||
dataIndex: 'name',
|
||||
sorter: true,
|
||||
width: '25%',
|
||||
},
|
||||
{
|
||||
title: 'Field Label',
|
||||
dataIndex: 'field_label',
|
||||
},
|
||||
{
|
||||
title: 'Field Type',
|
||||
dataIndex: 'field_type',
|
||||
},
|
||||
{
|
||||
title: 'Display Status',
|
||||
dataIndex: 'display',
|
||||
width: '35%',
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: 'Priority',
|
||||
dataIndex: 'display_order',
|
||||
width: '10%',
|
||||
sorter: true,
|
||||
},
|
||||
];
|
||||
}
|
||||
@@ -58,10 +69,8 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
getFormFields() {
|
||||
return [
|
||||
['id', { label: 'ID', type: 'hidden' }],
|
||||
['name', { label: 'Name', type: 'text', validation: '' }],
|
||||
['display', { label: 'Display Status', type: 'select', source: [['Form', 'Show'], ['Hidden', 'Hidden']] }],
|
||||
['field_type', { label: 'Field Type', type: 'select', source: [['text', 'Text Field'], ['textarea', 'Text Area'], ['select', 'Select'], ['select2', 'Select2'], ['select2multi', 'Multi Select'], ['fileupload', 'File Upload'], ['date', 'Date'], ['datetime', 'Date Time'], ['time', 'Time']] }],
|
||||
['field_label', { label: 'Field Label', type: 'text', validation: '' }],
|
||||
['field_type', { label: 'Field Type', type: 'select', source: [['text', 'Text Field'], ['textarea', 'Text Area'], ['select', 'Select'], ['select2', 'Select2'], ['select2multi', 'Multi Select'], ['fileupload', 'File Upload'], ['date', 'Date'], ['datetime', 'Date Time'], ['time', 'Time'], ['signature', 'Signature']] }],
|
||||
['field_validation', {
|
||||
label: 'Validation', type: 'select2', validation: 'none', sort: 'none', 'null-label': 'Required', 'allow-null': true, source: [['none', 'None'], ['number', 'Number'], ['numberOrEmpty', 'Number or Empty'], ['float', 'Decimal'], ['email', 'Email'], ['emailOrEmpty', 'Email or Empty']],
|
||||
}],
|
||||
@@ -87,11 +96,14 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
],
|
||||
validation: 'none',
|
||||
}],
|
||||
['display_order', { label: 'Priority', type: 'text', validation: 'number' }],
|
||||
['display_section', { label: 'Display Section', type: 'text', validation: 'none' }],
|
||||
['display_order', { label: 'Priority', type: 'text', validation: 'none' }],
|
||||
];
|
||||
}
|
||||
|
||||
getNameFromFieldName(fieldName) {
|
||||
return fieldName.replace(/[^a-z0-9+]+/gi, '').toLowerCase();
|
||||
}
|
||||
|
||||
setTableType(type) {
|
||||
this.tableType = type;
|
||||
}
|
||||
@@ -102,18 +114,26 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
return str != null && name.test(str);
|
||||
};
|
||||
|
||||
if (this.currentElement == null || this.currentElement.name == null || this.currentElement.name === '') {
|
||||
params.name = this.getNameFromFieldName(params.field_label);
|
||||
if (!validateName(params.name)) {
|
||||
return 'Invalid field label for custom field';
|
||||
}
|
||||
} else {
|
||||
params.name = this.currentElement.name;
|
||||
}
|
||||
|
||||
if (!validateName(params.name)) {
|
||||
return 'Invalid name for custom field';
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
forceInjectValuesBeforeSave(params) {
|
||||
const data = [params.name]; const options = []; let
|
||||
optionsData;
|
||||
data.push({});
|
||||
const data = ['', {}];
|
||||
const options = [];
|
||||
let optionsData;
|
||||
|
||||
data[1].label = params.field_label;
|
||||
data[1].type = params.field_type;
|
||||
data[1].validation = params.field_validation;
|
||||
@@ -128,8 +148,23 @@ class ReactCustomFieldAdapter extends AdapterBase {
|
||||
if (params.field_validation == null || params.field_validation === undefined) {
|
||||
params.field_validation = '';
|
||||
}
|
||||
params.data = JSON.stringify(data);
|
||||
|
||||
params.type = this.tableType;
|
||||
if (this.currentElement == null || this.currentElement.name == null || this.currentElement.name === '') {
|
||||
params.name = this.getNameFromFieldName(params.field_label);
|
||||
} else {
|
||||
params.name = this.currentElement.name;
|
||||
}
|
||||
|
||||
data[0] = params.name;
|
||||
params.data = JSON.stringify(data);
|
||||
|
||||
params.display = 'Form';
|
||||
params.display_order = parseInt(params.display_order);
|
||||
if (!Number.isInteger(params.display_order)) {
|
||||
params.display_order = 1;
|
||||
}
|
||||
|
||||
return params;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user