/* * Created by PyramIDE. * User: フランスのトトロ aka (David RENÉ) * Date: 21/03/2017 * Time: 22:49 * © David RENÉ */ read xlib/web/making_a_web_site.anubis read xlib/web/js_tools.anubis read hayamiki_lib/types/hayamiki.anubis read hayamiki_lib/view/types/hk_form.anubis read hayamiki_lib/view/types/hk_view.anubis read tools/time.anubis read app/app_loggers.anubis define String to_jqGrid_selector ( List((List(CoreAttrs), WebArgValue, String)) from_hk_selector )= //logDebug("to_jqGrid_selector: entry"); with start_time = unow, with result = "\""+ join(";",map(((List(CoreAttrs), WebArgValue, String) select) |-> since select is (_, wav, show), wav.value+":"+show, from_hk_selector))+ "\"", //logDebug(show_duration_string("to_jqGrid_selector: duration ", start_time)); result . define String custom_edit_phone = " editoptions: { custom_element: function(value, options) { var elemStr = ''; var elem = $(elemStr)[0]; // return DOM element from jQuery object return elem; }, custom_value: function(elem) { //var inputs = $(\"input\", $(elem)[0]); //var first = inputs[0].value; return $(elem).find('input')[0].value; } } " . define String custom_edit_email = " editoptions: { custom_element: function(value, options) { var elemStr = ''; var elem = $(elemStr)[0]; // return DOM element from jQuery object return elem; }, custom_value: function(elem) { //var inputs = $(\"input\", $(elem)[0]); //var first = inputs[0].value; return $(elem).find('input')[0].value; } } " . define String custom_edit_color = " editoptions: { custom_element: function(value, options) { var el = document.createElement('input'); el.type='text'; el.value = value; var myPicker = new jscolor(el); myPicker.fromString(value); return el; }, custom_value: function(elem, operation, value ) { if (operation === 'get') { return $(elem).val(); // change this to get value from color picker } else if (operation === 'set') { $('input',elem).val(value); // change this to set value of color picker } } } " . define String search_options ( String col_name )= " searchoptions: { dataInit: function (elem, options) { initAutocomplete.call(this, elem, \""+col_name+"\"); }, sopt: [ 'cn', 'eq', 'bw', 'ew', 'bn', 'nc', 'en' ], clearSearch: true }" . define String to_jqGrid_ColModel ( SQLite3DataBase db, HK_Referer table_referer, VT_view_model_entry model, (String) -> String _T )= logDebug("to_jqGrid_ColModel 1: entry"); with start_time = unow, with empty_referer = hk_referer("","","",""), with result = if model is { primary_key(label,column_name) then if column_name = "id" then "{ name: 'id', label:'id', editable:false}" else "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, template: 'integer' }" , information(label,column_name,width,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", autoResizable: true, "+search_options(column_name)+"}", text(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, "+search_options(column_name)+" }", password(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", autoResizable: true }", foreign_text(label,column_name,selector,help) then logDebug("to_jqGrid_ColModel 1: foreign_text column_name "+column_name); with jqgrid_selector = to_jqGrid_selector(selector.get(db,table_referer,"")), "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, edittype:'select', editoptions: {value: "+jqgrid_selector+", dataInit: function (elem) { $(elem).select2({ dropdownCssClass: 'ui-widget ui-jqdialog', width: '100%' }); }},"+ //" formatter: \"select\","+ //" formatoptions:{value: "+jqgrid_selector+"},"+ "}", choices_text(label,column_name,selector,help) then logDebug("to_jqGrid_ColModel 1: choices_text column_name "+column_name); with jqgrid_selector = to_jqGrid_selector(selector.get(db, empty_referer, "")), "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, edittype:'select', editoptions:{value: "+jqgrid_selector+",dataInit: function (elem) { $(elem).select2({ dropdownCssClass: 'ui-widget ui-jqdialog', width: '100%' }); }},"+ //" formatter: \"select\","+ //" formatoptions:{value: "+jqgrid_selector+"},"+ "}", text_area(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+" }", boolean(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, template: 'booleanCheckboxFa' }", integer(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, template: 'integer' }", float(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, template: 'number' }", choices_int(label,column_name,selector,help) then logDebug("to_jqGrid_ColModel 1: choices_int column_name "+column_name); with jqgrid_selector = to_jqGrid_selector(selector.get(db, empty_referer, "")), "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, edittype:'select', editoptions:{value: "+jqgrid_selector+"},"+ " formatter: 'select',"+ " formatoptions:{value: "+jqgrid_selector+"},"+ "}", date(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, formatter: 'date', formatoptions: { newformat: 'Y-M-d' }}", time(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true }", datetime(label,column_name,help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true }", color(label, column_name, help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", width: 40, editable:true, autoResizable: true, edittype: 'custom', formatter:formatColor, unformat:unformatColor, "+custom_edit_color+" }", phone(label,column_name, ph_type, help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, edittype: 'custom', formatter:formatPhone, unformat:unformatPhone, "+custom_edit_phone+"}", email(label,column_name, help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, edittype: 'custom', formatter:formatEmail, unformat:unformatEmail, "+custom_edit_email+"}", url(label, column_name, help) then "{ name: '"+column_name+"', label: "+to_JS_String(_T(label))+", editable:true, autoResizable: true, "+search_options(column_name)+" }", }, logDebug(show_duration_string("to_jqGrid_ColModel 1: result", start_time)); result . public define String to_jqGrid_ColModel ( SQLite3DataBase db, HK_Referer table_referer, (String) -> String _T, List(VT_view_model_entry) models )= logDebug("to_jqGrid_ColModel: entry"); with result = "colModel: [\n"+ join(",\n ", [ "{name: 'myac', label: '', width:65, fixed:true, sortable:false, resize:false, formatter:'actions', formatoptions:{keys:true}}" . map((VT_view_model_entry col_model) |-> to_jqGrid_ColModel(db, table_referer, col_model, _T), models) ] )+ "]", logDebug("to_jqGrid_ColModel: result"); result .