/*
* Created by PyramIDE.
* User: フランスのトトロ aka (David RENÉ)
* Date: 21/03/2017
* Time: 22:49
* © Calexium
*/
read calexium_lib/web/CXM_making_a_web_site.anubis
read hayamiki_lib/types/hayamiki.anubis
read hayamiki_lib/view/types/hk_form.anubis
read hayamiki_lib/view/types/hk_view.anubis
define String
to_jqGrid_selector
(
List((List(CoreAttrs), WebArgValue, String)) from_hk_selector
)=
"\""+
join(";",map(((List(CoreAttrs), WebArgValue, String) select) |-> since select is (_, wav, show), wav.value+":"+show, from_hk_selector))+
"\""
.
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
to_jqGrid_ColModel
(
SQLite3DataBase db,
HK_Referer table_referer,
VT_view_model_entry model,
(String) -> String _T
)=
with empty_referer = hk_referer("","","",""),
if model is
{
primary_key then "{ name: \"id\", hidden:true }",
information(label,column_name,width,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\" }",
text(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true }",
password(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\" }",
foreign_text(label,column_name,selector,help) then
"{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db,table_referer,""))+"},"+
" formatter: \"select\","+
" formatoptions:{value: "+to_jqGrid_selector(selector.get(db, table_referer, ""))+"},"+
"}",
choices_text(label,column_name,selector,help) then
"{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+
" formatter: \"select\","+
" formatoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+
"}",
text_area(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\" }",
boolean(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, template: \"booleanCheckboxFa\" }",
integer(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, template: \"integer\" }",
float(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, template: \"number\" }",
choices_int(label,column_name,selector,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+
" formatter: \"select\","+
" formatoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+
"}",
date(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, formatter: \"date\", formatoptions: { newformat: \"Y-M-d\" }}",
time(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true }",
datetime(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true }",
color(label, column_name, help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", width: 60, editable:false, formatter:formatColor}",
phone(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype: 'custom', formatter:formatPhone, unformat:unformatPhone, "+custom_edit_phone+"}",
email(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype: 'custom', formatter:formatEmail, unformat:unformatEmail, "+custom_edit_email+"}",
}
.
public define String
to_jqGrid_ColModel
(
SQLite3DataBase db,
HK_Referer table_referer,
(String) -> String _T,
List(VT_view_model_entry) models
)=
"colModel: [\n"+
join(",\n ",
[ "{name: 'myac', label: 'Action', 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)
]
)+
"]"
.