Commit cd8a0a45283d63e8a75a1fd799b6af3eea579d21
1 parent
99a54291
add float_field. Now must be generated by hk_generator
move web_action_name definition into file view/web_action.anubis Add view/view_apps_renderer.anubis, which constructs html table with all applications and their tables
Showing
4 changed files
with
101 additions
and
11 deletions
Show diff stats
types/model/fields.anubis
| ... | ... | @@ -26,6 +26,7 @@ transmit calexium_lib/web/CXM_json.anubis |
| 26 | 26 | datetime_field | DB_datetime | text (date in ISO-8601 format: yyyy-mm-dd hh:mm:ss) |
| 27 | 27 | foreign_key | Int | integer |
| 28 | 28 | integer_field | Int | arbitrary size integer (numeric) |
| 29 | + float_field | Float | | |
| 29 | 30 | char_field | String | max size text |
| 30 | 31 | text_field | String | arbitrary size text |
| 31 | 32 | |
| ... | ... | @@ -196,6 +197,7 @@ public type HK_Model_Field: |
| 196 | 197 | datetime_field(HK_Datetime_Field_Attr), // datetime with the precision of the second |
| 197 | 198 | foreign_key (HK_App_Name app_name, String table_name), // foreign key to 'id' in another (or same) table and column_name for choice selector. |
| 198 | 199 | integer_field (HK_Int_Choices choices), // integer of arbitrary size |
| 200 | + float_field , | |
| 199 | 201 | char_field (HK_Text_Choices choices, Int size), // text of maximal size 'size' (number of characters) |
| 200 | 202 | password_field(Int min_size), // the password field doesn't show the password string or store it in hashed version into database |
| 201 | 203 | text_field (HK_Text_Field_Attr). // text of variable size |
| ... | ... | @@ -287,7 +289,10 @@ public define Message |
| 287 | 289 | integer_field(choices) then // integer of arbitrary size |
| 288 | 290 | //TODO add choices if need |
| 289 | 291 | forget(add_string(hk_model_field_message, "type", "integer_field")), |
| 290 | - | |
| 292 | + | |
| 293 | + float_field then | |
| 294 | + forget(add_string(hk_model_field_message, "type", "float_field")), | |
| 295 | + | |
| 291 | 296 | char_field (choices, size) then // text of maximal size 'size' (number of characters) |
| 292 | 297 | //TODO add choices if need |
| 293 | 298 | forget(add_string(hk_model_field_message, "type", "char_field")); |
| ... | ... | @@ -343,7 +348,10 @@ public define JsonValue |
| 343 | 348 | integer_field(choices) then // integer of arbitrary size |
| 344 | 349 | //TODO add choices if need |
| 345 | 350 | [ json_member("type", json_string("integer_field")) ], |
| 346 | - | |
| 351 | + | |
| 352 | + float_field then //float | |
| 353 | + [ json_member("type", json_string("float_field"))], | |
| 354 | + | |
| 347 | 355 | char_field (choices, size) then // text of maximal size 'size' (number of characters) |
| 348 | 356 | //TODO add choices if need |
| 349 | 357 | [ json_member("type", json_string("char_field")), |
| ... | ... | @@ -380,14 +388,15 @@ define Maybe(HK_Model_Field) |
| 380 | 388 | if from_Message(msg_app_name) is {failure then failure, success(app_name) then |
| 381 | 389 | success(foreign_key(app_name, table_name)) |
| 382 | 390 | }}} |
| 383 | - else if type = "integer_field" then success(integer_field) | |
| 391 | + else if type = "integer_field" then success(integer_field) | |
| 392 | + else if type = "float_field" then success(float_field) | |
| 384 | 393 | else if type = "char_field" then |
| 385 | 394 | if find_int32(hk_model_field_message, "size") is {failure then failure, success(w32_size) then |
| 386 | 395 | success(char_field(to_Int(w32_size)))} |
| 387 | 396 | else if type = "password_field" then |
| 388 | 397 | if find_int32(hk_model_field_message, "size") is {failure then failure, success(w32_size) then |
| 389 | 398 | success(password_field(to_Int(w32_size)))} |
| 390 | - else if type = "text_field" then success(text_field(get_text_attribute(hk_model_field_message))) | |
| 399 | + else if type = "text_field" then success(text_field(get_text_attribute(hk_model_field_message))) | |
| 391 | 400 | else failure |
| 392 | 401 | . |
| 393 | 402 | ... | ... |
| 1 | +/* | |
| 2 | + * Created by PyramIDE. | |
| 3 | + * User: フランスのトトロ aka (David RENÉ) | |
| 4 | + * Date: 11/03/2017 | |
| 5 | + * Time: 19:12 | |
| 6 | + * © Calexium | |
| 7 | + */ | |
| 8 | + | |
| 9 | +read hayamiki_lib/types/hayamiki.anubis | |
| 10 | +read hayamiki_lib/view/web_action.anubis | |
| 11 | + | |
| 12 | +read calexium_lib/web/CXM_making_a_web_site.anubis | |
| 13 | + | |
| 14 | +read calexium_lib/web/jQuery/CXM_jquery_dialog.anubis | |
| 15 | +read calexium_lib/web/jQuery/CXM_jquery_button.anubis | |
| 16 | +read calexium_lib/web/jQuery/ui-addon/datetimepicker.anubis | |
| 17 | +read calexium_lib/web/widgets/button.anubis | |
| 18 | + | |
| 19 | + | |
| 20 | +define List(HTML_Row(HTML_Off_Form)) | |
| 21 | + generate_apps | |
| 22 | + ( | |
| 23 | + List(HK_App) apps, | |
| 24 | + (String) -> String _T, | |
| 25 | + )= | |
| 26 | + map_append((HK_App app) |-> since app is hk_app(app_name, icon, help, tables), | |
| 27 | + [ (HTML_Row(HTML_Off_Form))row([core_attrs([class("hk_app_title")])],cell([columns(2)],text(app_name)))]+ //APP name line | |
| 28 | + //here map for each table | |
| 29 | + map((HK_Table table) |-> since table is hk_table(_table_name, short_name, model, display), | |
| 30 | + //construct the real name of the table (app + table_name) | |
| 31 | + with table_name = if length(app_name) > 0 then app_name +"_"+_table_name else _table_name, | |
| 32 | + (HTML_Row(HTML_Off_Form))row([core_attrs([class("hk_table_line")])], | |
| 33 | + [ cell(text(_table_name)), | |
| 34 | + cell( | |
| 35 | + sequence([ | |
| 36 | + partial(img_button(icn16_add, [event(onclick, jq_dialog_open(dialog_id("edit_table_dlg_ajax"), "'table_name="+table_name+"'"))], "", [])), | |
| 37 | + partial(img_button(icn16_view_list, view_table, [("table_name",table_name)])) | |
| 38 | + ]) | |
| 39 | + ) | |
| 40 | + ]) | |
| 41 | + ,tables) | |
| 42 | + | |
| 43 | + ,apps | |
| 44 | + ) | |
| 45 | +. | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | +public define Maybe(HTML_Partial_Content) | |
| 50 | + show_apps_content | |
| 51 | + ( | |
| 52 | + SQLite3DataBase db, | |
| 53 | + HK_Database hk_db, | |
| 54 | + (String) -> String _T, | |
| 55 | + String lang, | |
| 56 | + String web_site_directory | |
| 57 | + ) = | |
| 58 | + success(partial_content([css(css_file("hayamiki/hayamiki.css")),]+ | |
| 59 | + jq_dialog_init + jq_datetimepicker_init(lang), | |
| 60 | + sequence([ | |
| 61 | + partial(jq_dialog_create(dialog_id("edit_table_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table")))), /*&table_name="+rows.table_name*/ | |
| 62 | + table([class("hk_table_apps")], generate_apps(hk_db.apps, _T)) | |
| 63 | + ]) | |
| 64 | + )) | |
| 65 | +. | ... | ... |
view/view_table_renderer.anubis
| ... | ... | @@ -9,6 +9,7 @@ |
| 9 | 9 | read hayamiki_lib/view/view_table_types.anubis |
| 10 | 10 | read hayamiki_lib/view/view_table_manager_types.anubis |
| 11 | 11 | read hayamiki_lib/view/view_table_manager.anubis |
| 12 | +read hayamiki_lib/view/web_action.anubis | |
| 12 | 13 | read hayamiki_lib/types/hayamiki.anubis |
| 13 | 14 | read system/string.anubis |
| 14 | 15 | read locale/L3.anubis |
| ... | ... | @@ -32,12 +33,7 @@ read calexium_lib/web/CXM_form.anubis |
| 32 | 33 | read calexium_lib/web/widgets/css_helper.anubis |
| 33 | 34 | read calexium_lib/web/widgets/button.anubis |
| 34 | 35 | |
| 35 | -public define WEB_Action_Name edit_table = controller_action("hk_c", "edit_table"). | |
| 36 | -public define WEB_Action_Name view_table = controller_action("hk_c", "view_table"). | |
| 37 | -public define WEB_Action_Name save_row = controller_action("hk_c", "save_row"). | |
| 38 | -public define WEB_Action_Name delete_row = controller_action("hk_c", "delete_row"). | |
| 39 | -public define WEB_Action_Name hk_cancel = controller_action("hk_c", "cancel"). | |
| 40 | -public define WEB_Action_Name ajax_edit_table = controller_action("hk_c", "ajax_edit_table"). | |
| 36 | + | |
| 41 | 37 | |
| 42 | 38 | |
| 43 | 39 | define CXM_Form_Field |
| ... | ... | @@ -116,7 +112,7 @@ define HTML_Head_Tag |
| 116 | 112 | join("",map_select((VT_edit_entry entry) |-> |
| 117 | 113 | if entry is text_area(s_name, c_name, value, txt_editor, help) then |
| 118 | 114 | if txt_editor is { none then failure, |
| 119 | - rich_editor then success("CKEDITOR.on( 'loaded', function(){\n CKEDITOR.replace( '"+c_name+"_editor' );});") | |
| 115 | + rich_editor then success(" CKEDITOR.replace( '"+c_name+"_editor' );") | |
| 120 | 116 | } |
| 121 | 117 | else |
| 122 | 118 | failure, list)) |
| ... | ... | @@ -144,6 +140,7 @@ public define HTML_Partial_Content |
| 144 | 140 | ) = |
| 145 | 141 | with table_name = vt_elist.table_name, |
| 146 | 142 | with button_name = if get_String(lwa, "id","none") = "none" then _T("CREATE") else _T("UPDATE"), |
| 143 | + with button_name_and_new = if get_String(lwa, "id","none") = "none" then _T("CREATE_AND_EDIT_NEW") else _T("UPDATE_AND_EDIT_NEW"), | |
| 147 | 144 | |
| 148 | 145 | |
| 149 | 146 | partial_content( |
| ... | ... | @@ -153,6 +150,7 @@ public define HTML_Partial_Content |
| 153 | 150 | edit_form_lines(db, _T, vt_elist.list, [])+ |
| 154 | 151 | [ one_line_fields([ |
| 155 | 152 | submit(save_row, failure, button_name, [("table_name", table_name)]), |
| 153 | + submit(save_row_and_new, failure, button_name_and_new, [("table_name", table_name)]), | |
| 156 | 154 | submit(hk_cancel, failure, _T("CANCEL")) |
| 157 | 155 | ]) |
| 158 | 156 | ] | ... | ... |
| 1 | +/* | |
| 2 | + * Created by PyramIDE. | |
| 3 | + * User: フランスのトトロ aka (David RENÉ) | |
| 4 | + * Date: 11/03/2017 | |
| 5 | + * Time: 21:55 | |
| 6 | + * © Calexium | |
| 7 | + */ | |
| 8 | + | |
| 9 | +read calexium_lib/web/CXM_making_a_web_site.anubis | |
| 10 | + | |
| 11 | +public define WEB_Action_Name edit_table = controller_action("hk_c", "edit_table"). | |
| 12 | +public define WEB_Action_Name view_table = controller_action("hk_c", "view_table"). | |
| 13 | +public define WEB_Action_Name save_row = controller_action("hk_c", "save_row"). | |
| 14 | +public define WEB_Action_Name save_row_and_new = controller_action("hk_c", "save_row_and_new"). | |
| 15 | +public define WEB_Action_Name delete_row = controller_action("hk_c", "delete_row"). | |
| 16 | +public define WEB_Action_Name hk_cancel = controller_action("hk_c", "cancel"). | |
| 17 | +public define WEB_Action_Name ajax_edit_table = controller_action("hk_c", "ajax_edit_table"). | |
| 18 | +public define WEB_Action_Name show_apps = controller_action("hk_c", "show_apps"). | ... | ... |