/* * Created by PyramIDE. * User: フランスのトトロ aka (David RENÉ) * Date: 09/04/2017 * Time: 16:40 * © Calexium */ read hayamiki_lib/types/hayamiki.anubis read tools/basis.anubis read tools/list.anubis read tools/streams.anubis read system/string.anubis read columns.anubis read html.anubis define String hk_form_tab_entries ( List(HK_FK_View) fk_views, String indent )= join(",\n", map((HK_FK_View fk_view) |-> since fk_view is fk_view(app_name, fk_table_name, fk_col), indent+" hk_form_tab(\""+fk_table_name+"\", \""+fk_col+"\", \"default\")" , fk_views) ) . public define Maybe(One) /* Generate */ generate_edit_view_list_form ( Stream stream, //stream file where to write HK_Table table, //db table name String view_name, //name of the form List(HK_Model_Column) l_cols, //Columns selected to be editable in this list form List(HK_FK_View) l_fk_view //List of foreign key view to display )= since table is hk_table(table_name, short_name, model, display), since model is hk_model( columns, _), with type_name = to_upper(table_name, 1), //make the first character to upper case and be an Anubis Type. if write_string(stream, "\n\n"+ //SQL query "define HK_Form\n"+ " _get_editable_"+table_name+"_"+view_name+"\n"+ " (\n"+ " "+type_name+" "+table_name+",\n"+ " SQLite3DataBase db\n"+ " )=\n"+ " with edit_entries = (List(HK_Form_Entry))\n"+ " [\n"+ " hidden(\"id\", to_String("+table_name+".id)),\n"+ edit_entries(l_cols, table_name, " ", [])+"\n"+ " ],\n"+ (if is_empty(l_fk_view) then " hk_form_in_list(\""+table_name+"\", \""+view_name+"\", edit_entries, []).\n\n" else " with fk_view_entries = (List(HK_Form_Tab))\n"+ " [\n"+ hk_form_tab_entries(l_fk_view, " ")+"\n"+ " ],\n\n"+ " hk_form_in_list(\""+table_name+"\", \""+view_name+"\", edit_entries, fk_view_entries).\n\n" ) ) is //end of the function { failure then println("can't write generate_VT_view "+type_name); failure, success(_) then success(unique) }.