jqgrid.anubis 4.01 KB
/*
 * 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 view_table_types.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
  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}",
  }
.

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)
      ]
      )+
  "]"
.