Skip to content

Instantly share code, notes, and snippets.

@lethern
Created June 10, 2019 19:42
Show Gist options
  • Save lethern/bd0760ded53fdeffe4f53412b6c8ff43 to your computer and use it in GitHub Desktop.
Save lethern/bd0760ded53fdeffe4f53412b6c8ff43 to your computer and use it in GitHub Desktop.
function createFieldRow(objects, row, design_row, readonly) {
var log = GLOBALS.CONTROL.getLog();
var column = row.column;
var column2 = row.column2;
var global_edit_group = objects._CONTROL.edit_group;
var edit_group = row.edit_group;
if (edit_group === null) edit_group = -1;
var label_col = column + '_label';
var first_input_col = column + '_first';
var second_input_col = column2 + '_second';
var date_col = column + '_date';
var chbox_col = column + '_chbox';
var btn_col = column + '_btn';
var comment_col = column + '_comm';
var login_col = column + '_login';
var odpow_col = column + '_odpow';
if (column.indexOf(' ') > -1 || column.indexOf('\t') > -1)
MASTER.throw('Kolumna zawiera biale znaki: ' + column);
if (column2 && (column2.indexOf(' ') > -1 || column.indexOf('\t') > -1))
MASTER.throw('Kolumna2 zawiera biale znaki: ' + column2);
var form_fields_def = objects.form_fields_def;
// data
{
var RO_value = '';
var RO_struct;
var first_value = '';
var first_struct;
var first_length;
var second_value = '';
var second_struct;
var second_length;
//var second_value = '';
var chbox_value = '';
var date_value = '';
var comment_value = '';
var login_value = '';
var odpow_value = row.odpowiedzialnosc;
if (objects.serv_model) {
if (objects.serv_model.exists(column)) {
RO_value = objects.serv_model.get(column);
RO_struct = objects.serv_model.getTypeStr(column);
first_value = objects.serv_model.get(column);
first_struct = objects.serv_model.getTypeStr(column);
first_length = objects.serv_model.getLength(column);
if (column2) {
second_value = objects.serv_model.get(column2);
second_struct = objects.serv_model.getTypeStr(column2);
second_length = objects.serv_model.getLength(column2);
if (!second_struct) {
log.writeWarn('Brak struct dla \'' + column2 + '\'');
}
}
} else {
log.writeWarn('Brak kolumny \'' + column + '\' w modelu');
}
}
if (objects.commentsMap[column]) {
comment_value = objects.commentsMap[column].comment;
}
if (objects.historyMap[column]) {
date_value = objects.historyMap[column].date_obj;
login_value = objects.historyMap[column].user_login;
}
if (objects.flagi_RECG[column]) {
chbox_value = UTILS.parseStringBoolean(objects.flagi_RECG[column].flag_val);
date_value = objects.flagi_RECG[column].date_obj;
}
if (!RO_struct || !first_struct) {
log.writeWarn('Brak struct dla \'' + column + '\'');
}
}
var row_control = new CLASSES.ROW_CONTROL(objects._CONTROL);
row_control.init(column, column2, edit_group);
if (objects.RECG) {
if (chbox_value) {
// RECG_readonly
readonly = true;
}
}
else {
if (edit_group > global_edit_group) {
log.writeDebug('niespelniony edit_group, ukrywam ' + column);
readonly = true;
}
}
// structs
{
// label
buildStructs(label_col, 'label', row.label, { double: !!column2 });
// first_value
buildStructs(first_input_col, 'first', first_value, { dbtype: first_struct, double: !!column2, row_control: row_control, readonly: readonly, length: first_length, name: row.label, addonchange: objects.RECG, edit_group: edit_group });
if (column2) {
log.writeDebug('Second column dla ' + column2);
// second_value
buildStructs(second_input_col, 'second', second_value, { dbtype: second_struct, double: !!column2, row_control: row_control, readonly: readonly, length: second_length, addonchange: objects.RECG, edit_group: edit_group });
}
if (objects.RECG) {
// chbox
buildStructs(chbox_col, 'chbox', chbox_value, { double: !!column2, row_control: row_control, disabled: !row.RECG_checkbox, readonly: readonly });
}
// date
buildStructs(date_col, 'date', date_value, { double: !!column2 });
//comment
buildStructs(comment_col, 'comm', comment_value, { double: !!column2, row_control: row_control, readonly: readonly });
// login
buildStructs(login_col, 'login', login_value, { double: !!column2 });
// odpowiedzialnosc
buildStructs(odpow_col, 'odpow', odpow_value, { double: !!column2 });
// btn
if (GLOBALS.CONTROL.hasPermission(objects.permissions, PERMISSIONS.form_aktualizuj)
&& objects._CONTROL.showAktualizuj)
{
buildStructs(btn_col, 'btn', null, { name: 'Aktualizuj', row_control: row_control, addonclick: true });
}
function buildStructs(_column, _type, _value, _params) {
if (form_fields_def[_column]) {
var res = buildFieldStructs(form_fields_def, _column);
/**/
if (!_column.startsWith('default')) {
form_fields_def[_column] = null;
}
/**/
var _struct = res._struct;
var design_struct = res.design_struct;
if (_struct.disabled) {
_params.disabled= true;
}
} else {
if (!_params.double) {
var _struct = UTILS.cloneObject(objects.defaults[_type + '_struct'], false, true);
_struct.column = _column;
var design_struct = UTILS.cloneObject(objects.defaults[_type + '_design_struct']);
design_struct.id = _column;
} else {
// second
var _struct = UTILS.cloneObject(objects.defaults[_type + '_struct2'], false, true);
_struct.column = _column;
var design_struct = UTILS.cloneObject(objects.defaults[_type + '_design_struct2']);
design_struct.id = _column;
}
}
if (_params.disabled) {
design_struct.field_class = (design_struct.field_class || '') + ' hidden_field';
}
if (!_params.readonly && !_params.disabled && !_value
&& _params.edit_group >= 0
&& (UTILS.endsWith(_column, 'first') || UTILS.endsWith(_column, 'second')))
{
design_struct.field_class = (design_struct.field_class || '') + ' highlighted';
}
_struct.name = _params.name;
_struct.value = _value;
if (_params.dbtype) _struct.dbtype = _params.dbtype;
if (_params.readonly) _struct.readonly = _params.readonly;
if (_params.length) _struct.length = +_params.length;
if (_params.row_control) _struct.custom_data = _params.row_control;
if (_params.name) _struct.name = _params.name;
if (_params.addonchange) {
_struct.onchange = field_onchange;
}
if (_params.addonclick) {
_struct.onclick = field_onclick;
}
add_struct(objects, _struct);
design_row.fields.push(design_struct);
};
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment