Commit 23bb1d768dc99cf190ce4da83e1f9b6cf1f40b63
1 parent
ac7be478
add new way to load selector by ajax call
remove writer_list and move the writer into hk_controller call_back collection
Showing
4 changed files
with
73 additions
and
45 deletions
Show diff stats
view/view_table_manager.anubis
| ... | ... | @@ -59,30 +59,30 @@ public define Maybe(VTM_edit) |
| 59 | 59 | ) = |
| 60 | 60 | _vtm_get_edit(table_name, vtm_vlist.list). |
| 61 | 61 | |
| 62 | -public define Maybe(TM_writer) | |
| 63 | - _tm_get_writer | |
| 64 | - ( | |
| 65 | - String table_name, | |
| 66 | - List(TM_writer) list | |
| 67 | - ) = | |
| 68 | - if list is | |
| 69 | - { | |
| 70 | - [] then failure, | |
| 71 | - [ h . t ] then | |
| 72 | - if h is tm_writer(tb_name, get_writer_from_type, get_writer_from_fields) then | |
| 73 | - if tb_name = table_name then | |
| 74 | - success(h) | |
| 75 | - else | |
| 76 | - _tm_get_writer(table_name, t) | |
| 77 | - }. | |
| 62 | +//public define Maybe(TM_writer) | |
| 63 | +// _tm_get_writer | |
| 64 | +// ( | |
| 65 | +// String table_name, | |
| 66 | +// List(TM_writer) list | |
| 67 | +// ) = | |
| 68 | +// if list is | |
| 69 | +// { | |
| 70 | +// [] then failure, | |
| 71 | +// [ h . t ] then | |
| 72 | +// if h is tm_writer(tb_name, get_writer_from_type, get_writer_from_fields) then | |
| 73 | +// if tb_name = table_name then | |
| 74 | +// success(h) | |
| 75 | +// else | |
| 76 | +// _tm_get_writer(table_name, t) | |
| 77 | +// }. | |
| 78 | 78 | |
| 79 | -public define Maybe(TM_writer) | |
| 80 | - tm_get_writer | |
| 81 | - ( | |
| 82 | - String table_name, | |
| 83 | - TM_writer_list tm_wlist | |
| 84 | - ) = | |
| 85 | - _tm_get_writer(table_name, tm_wlist.list). | |
| 79 | +//public define Maybe(TM_writer) | |
| 80 | +// tm_get_writer | |
| 81 | +// ( | |
| 82 | +// String table_name, | |
| 83 | +// TM_writer_list tm_wlist | |
| 84 | +// ) = | |
| 85 | +// _tm_get_writer(table_name, tm_wlist.list). | |
| 86 | 86 | |
| 87 | 87 | public define Maybe((SQLite3DataBase db, List(Int) l_int) -> Maybe(One)) |
| 88 | 88 | _tm_get_delete | ... | ... |
view/view_table_manager_types.anubis
| ... | ... | @@ -14,6 +14,7 @@ read hayamiki_lib/types/hayamiki.anubis |
| 14 | 14 | |
| 15 | 15 | |
| 16 | 16 | read calexium_lib/web/CXM_common.anubis |
| 17 | +read calexium_lib/web/CXM_making_a_web_site.anubis | |
| 17 | 18 | read calexium_lib/database/db_types.anubis |
| 18 | 19 | |
| 19 | 20 | public type VTM_edit: |
| ... | ... | @@ -22,13 +23,13 @@ public type VTM_edit: |
| 22 | 23 | public type VTM_edit_list: |
| 23 | 24 | vtm_edit_list(List(VTM_edit) list). |
| 24 | 25 | |
| 25 | -public type TM_writer: | |
| 26 | - tm_writer( | |
| 27 | - String table_name, | |
| 28 | - (SQLite3DataBase db, List(Web_arg) lwa) -> Maybe(One) write_from_type, | |
| 29 | - (SQLite3DataBase db, List(Web_arg) lwa) -> Maybe(One) write_from_fields | |
| 30 | - ) | |
| 31 | -. | |
| 26 | +//public type TM_writer: | |
| 27 | +// tm_writer( | |
| 28 | +// String table_name, | |
| 29 | +// (SQLite3DataBase db, List(Web_arg) lwa) -> Maybe(One) write_from_type, | |
| 30 | +// (SQLite3DataBase db, List(Web_arg) lwa) -> Maybe(One) write_from_fields | |
| 31 | +// ) | |
| 32 | +//. | |
| 32 | 33 | |
| 33 | 34 | //CRUD basis function + |
| 34 | 35 | //Create |
| ... | ... | @@ -48,12 +49,16 @@ public type HK_Table_controller: |
| 48 | 49 | (SQLite3DataBase db, List(String) columns, HK_Referer referer, String clause, String order_by) -> JsonValue get_rows_json, |
| 49 | 50 | //Update |
| 50 | 51 | //Delete |
| 51 | - (SQLite3DataBase db, List(Int) l_int) -> Maybe(One) delete | |
| 52 | + (SQLite3DataBase db, List(Int) l_int) -> Maybe(One) delete, | |
| 53 | + | |
| 54 | + //view interface | |
| 55 | + //selector | |
| 56 | + (SQLite3DataBase db, HK_Referer referer, String filter) -> List((List(CoreAttrs), WebArgValue, String)) get_selector | |
| 52 | 57 | ) |
| 53 | 58 | . |
| 54 | 59 | |
| 55 | -public type TM_writer_list: | |
| 56 | - tm_writer_list(List(TM_writer) list). | |
| 60 | +//public type TM_writer_list: | |
| 61 | +// tm_writer_list(List(TM_writer) list). | |
| 57 | 62 | |
| 58 | 63 | public type TM_delete: |
| 59 | 64 | tm_delete(String table_name, (SQLite3DataBase db, List(Int) l_int) -> Maybe(One) delete). |
| ... | ... | @@ -70,6 +75,6 @@ public type VTM_view_list: |
| 70 | 75 | public type VTM: |
| 71 | 76 | vtm(VTM_view_list view_list, |
| 72 | 77 | VTM_edit_list edit_list, |
| 73 | - TM_writer_list writer_list, | |
| 78 | + //TM_writer_list writer_list, | |
| 74 | 79 | TM_delete_list delete_list, |
| 75 | 80 | List(HK_Table_controller) hk_controllers). | ... | ... |
view/view_table_renderer.anubis
| ... | ... | @@ -17,6 +17,7 @@ read hayamiki_lib/types/hayamiki.anubis |
| 17 | 17 | read system/string.anubis |
| 18 | 18 | read locale/L3.anubis |
| 19 | 19 | read tools/basis.anubis |
| 20 | +read tools/base64.anubis | |
| 20 | 21 | read tools/list.anubis |
| 21 | 22 | read tools/printable_tree.anubis |
| 22 | 23 | read data_base/sqlite.anubis |
| ... | ... | @@ -630,17 +631,32 @@ public define List(CXM_Form_Field) |
| 630 | 631 | ], |
| 631 | 632 | |
| 632 | 633 | foreign_text(s_name, c_name, value, foreign_table_name, select, help) then |
| 633 | - with uid = generate_random_string(20)+"_", | |
| 634 | + with uid = "_"+generate_random_string(20)+"_", | |
| 635 | + with refresh_func = uid+foreign_table_name+"_"+c_name+"_selector_refresh", | |
| 636 | + with load_script = script("text/javascript","function "+refresh_func+"() { CalexiumToolBox.ajax_load_content('"+uid+foreign_table_name+"_"+c_name+"_selector', '?aws_controller=hk_c&aws_action=selector&table_name="+foreign_table_name+"&fk_filter="+fk_clause+"&selected="+value+"');} "+refresh_func+"(); "), | |
| 637 | + //with load_script_b64 = base64_encode(load_script, false), | |
| 634 | 638 | [ |
| 635 | - partial(jq_dialog_create(dialog_id(uid+foreign_table_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+foreign_table_name+"_dlg_ajax&sub_dialog=true&table_name="+foreign_table_name)))), | |
| 639 | + partial(jq_dialog_create(dialog_id(uid+foreign_table_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+foreign_table_name+"_dlg_ajax&sub_dialog=true&table_name="+foreign_table_name+"&after_close_cb="+refresh_func)))), | |
| 636 | 640 | one_line_fields([ |
| 637 | - selector_c([],label(_T(s_name), no_help), html_Id(""), wan(c_name), 1, select.get(db, table_referer, fk_clause), success(init(to_String(value))), mandatory), help_line(help, _T), | |
| 641 | + partial(partial_content([js_inline(load_script)],empty)), | |
| 642 | + selector_c([],label(_T(s_name), no_help), html_Id(uid+foreign_table_name+"_"+c_name+"_selector"), wan(c_name), 1, [],/*select.get(db, table_referer, fk_clause), */ success(init("")), mandatory), help_line(help, _T), | |
| 638 | 643 | partial(img_button(icn16_add, [event(onclick, jq_dialog_open(dialog_id(uid+foreign_table_name+"_dlg_ajax")))], "", [])), |
| 639 | 644 | ]) |
| 640 | 645 | ], |
| 646 | + | |
| 647 | +// with uid = generate_random_string(20)+"_", | |
| 648 | +// with load_script = "CalexiumToolBox.ajax_load_content('"+uid+foreign_table_name+c_name+"_selector', '?aws_controller=hkc&aws_action=selector&table_name="+foreign_table_name+"&fk_filter="+fk_clause+"');", | |
| 649 | +// [ | |
| 650 | +// partial(jq_dialog_create(dialog_id(uid+foreign_table_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+foreign_table_name+"_dlg_ajax&sub_dialog=true&table_name="+foreign_table_name)))), | |
| 651 | +// one_line_fields([ | |
| 652 | +// partial(partial_content([js_inline(jquery_ready(load_script))],empty)), | |
| 653 | +// selector_c([],label(_T(s_name), no_help), html_Id(uid+foreign_table_name+c_name+"_selector"), wan(c_name), 1, select.get(db, table_referer, fk_clause), success(init(to_String(value))), mandatory), help_line(help, _T), | |
| 654 | +// partial(img_button(icn16_add, [event(onclick, jq_dialog_open(dialog_id(uid+foreign_table_name+"_dlg_ajax")))], "", [])), | |
| 655 | +// ]) | |
| 656 | +// ], | |
| 641 | 657 | |
| 642 | 658 | foreign_text_search(s_name, c_name, select, foreign_table_name, fields, help) then |
| 643 | - with uid = generate_random_string(20)+"_", | |
| 659 | + with uid = "_"+generate_random_string(20)+"_", | |
| 644 | 660 | [ |
| 645 | 661 | partial(jq_dialog_create(dialog_id(uid+foreign_table_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+foreign_table_name+"_dlg_ajax&sub_dialog=true&table_name="+foreign_table_name)))), |
| 646 | 662 | one_line_fields([ |
| ... | ... | @@ -866,8 +882,9 @@ public define HTML_Partial_Content |
| 866 | 882 | with id = get_String(lwa, "id","none"), |
| 867 | 883 | with sub_dialog = get_String(lwa, "sub_dialog", "false"), |
| 868 | 884 | with dialog_id = get_String(lwa, "dialog_id", ""), |
| 869 | - with button_label = if create then _T("CREATE") else _T("UPDATE"), | |
| 870 | - with button_name = if create then "create" else "update", | |
| 885 | + with after_close_cb = get_String(lwa, "after_close_cb", ""), //call back | |
| 886 | + with button_label = if create then _T("CREATE") else _T("UPDATE"), | |
| 887 | + with button_name = if create then "create" else "update", | |
| 871 | 888 | with button_name_and_new = if create then _T("CREATE_AND_EDIT_NEW") else _T("UPDATE_AND_EDIT_NEW"), |
| 872 | 889 | |
| 873 | 890 | println("renderer_edit_list_form dialog_id ["+dialog_id+"]"); |
| ... | ... | @@ -889,7 +906,7 @@ public define HTML_Partial_Content |
| 889 | 906 | (if length(list_entries) > 19 then |
| 890 | 907 | [ |
| 891 | 908 | one_line_fields([ |
| 892 | - partial(jquery_button(jQuery_button(button, dialog_id+button_name, button_name, button_label, jQuery_actioner(same, jqscript(jq_form_submit_and_close(dialog_id, table_name, hkc_update_row, [("table_name", table_name), ("sub_dialog", sub_dialog)])))))), | |
| 909 | + partial(jquery_button(jQuery_button(button, dialog_id+button_name, button_name, button_label, jQuery_actioner(same, jqscript(jq_form_submit_and_close(dialog_id, table_name, hkc_update_row, [("table_name", table_name), ("sub_dialog", sub_dialog)], after_close_cb)))))), | |
| 893 | 910 | partial(jquery_button(jQuery_button(button, dialog_id+"cancel", "cancel", _T("CANCEL"), jQuery_actioner(same, jqscript("$('#"+dialog_id+"').dialog('close')"))))), |
| 894 | 911 | ]), |
| 895 | 912 | hr |
| ... | ... | @@ -917,7 +934,7 @@ public define HTML_Partial_Content |
| 917 | 934 | |
| 918 | 935 | [ hr, |
| 919 | 936 | one_line_fields([ |
| 920 | - partial(jquery_button(jQuery_button(button, dialog_id+button_name, button_name, button_label, jQuery_actioner(same, jqscript(jq_form_submit_and_close(dialog_id, table_name, hkc_update_row, [("table_name", table_name), ("sub_dialog", sub_dialog)])))))), | |
| 937 | + partial(jquery_button(jQuery_button(button, dialog_id+button_name, button_name, button_label, jQuery_actioner(same, jqscript(jq_form_submit_and_close(dialog_id, table_name, hkc_update_row, [("table_name", table_name), ("sub_dialog", sub_dialog)], after_close_cb)))))), | |
| 921 | 938 | partial(jquery_button(jQuery_button(button, dialog_id+"cancel", "cancel", _T("CANCEL"), jQuery_actioner(same, jqscript("$('#"+dialog_id+"').dialog('close')"))))), |
| 922 | 939 | ]) |
| 923 | 940 | ] |
| ... | ... | @@ -975,18 +992,22 @@ public define List(CXM_Form_Field) |
| 975 | 992 | |
| 976 | 993 | foreign_text(s_name, c_name, value, foreign_table_name, select, help) then |
| 977 | 994 | //[selector_c([],no_label, html_Id(""), wan(c_name), 1, select.get(db, table_referer, fk_clause), success(init(to_String(value))), mandatory), help_line(help, _T)], |
| 978 | - with uid = generate_random_string(20)+"_", | |
| 995 | + with uid = "_"+generate_random_string(20)+"_", | |
| 996 | + with refresh_func = uid+foreign_table_name+"_"+c_name+"_selector_refresh", | |
| 997 | + //with load_script = "CalexiumToolBox.ajax_load_content('"+uid+foreign_table_name+"_"+c_name+"_selector', '?aws_controller=hk_c&aws_action=selector&table_name="+foreign_table_name+"&fk_filter="+fk_clause+"&selected="+value+"');", | |
| 998 | + with load_script = script("text/javascript","function "+refresh_func+"() { CalexiumToolBox.ajax_load_content('"+uid+foreign_table_name+"_"+c_name+"_selector', '?aws_controller=hk_c&aws_action=selector&table_name="+foreign_table_name+"&fk_filter="+fk_clause+"&selected="+value+"');} "+refresh_func+"(); "), | |
| 979 | 999 | [ |
| 980 | 1000 | partial(jq_dialog_create(dialog_id(uid+foreign_table_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+foreign_table_name+"_dlg_ajax&sub_dialog=true&table_name="+foreign_table_name)))), |
| 981 | 1001 | one_line_fields([ |
| 982 | - selector_c([],label(_T(s_name), no_help), html_Id(""), wan(c_name), 1, select.get(db, table_referer, fk_clause), success(init(to_String(value))), mandatory), help_line(help, _T), | |
| 1002 | + partial(partial_content([js_inline(load_script)],empty)), | |
| 1003 | + selector_c([],label(_T(s_name), no_help), html_Id(uid+foreign_table_name+"_"+c_name+"_selector"), wan(c_name), 1, select.get(db, table_referer, fk_clause), success(init(to_String(value))), mandatory), help_line(help, _T), | |
| 983 | 1004 | partial(img_button(icn16_add, [event(onclick, jq_dialog_open(dialog_id(uid+foreign_table_name+"_dlg_ajax")))], "", [])), |
| 984 | 1005 | ]) |
| 985 | 1006 | ], |
| 986 | 1007 | |
| 987 | 1008 | foreign_text_search(s_name, c_name, select, foreign_table_name, s_fields, help) then |
| 988 | 1009 | //[raw_in_form(literal("<input class=\"in\" id=\"acb_"+c_name+"\" data-init_record=\""+select+"\" size=\"50\" type=\"text\">"))] |
| 989 | - with uid = generate_random_string(20)+"_", | |
| 1010 | + with uid = "_"+generate_random_string(20)+"_", | |
| 990 | 1011 | [ |
| 991 | 1012 | partial(jq_dialog_create(dialog_id(uid+foreign_table_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+foreign_table_name+"_dlg_ajax&sub_dialog=true&table_name="+foreign_table_name)))), |
| 992 | 1013 | one_line_fields([ | ... | ... |
view/web_action.anubis
| ... | ... | @@ -15,6 +15,8 @@ public define WEB_Action_Name hkc_view_editor = controller_action("hk_c" |
| 15 | 15 | public define WEB_Action_Name hkc_grid_view = controller_action("hk_c", "grid_view"). |
| 16 | 16 | public define WEB_Action_Name hkc_grid_action = controller_action("hk_c", "grid_action"). |
| 17 | 17 | public define WEB_Action_Name hkc_combo_search = controller_action("hk_c", "combo_search"). |
| 18 | +public define WEB_Action_Name hkc_selector = controller_action("hk_c", "selector"). //get dropdown HMTL content | |
| 19 | + | |
| 18 | 20 | public define WEB_Action_Name hkc_list_view = controller_action("hk_c", "view_table"). |
| 19 | 21 | public define WEB_Action_Name hkc_list_view_name = controller_action("hk_c", "hkc_list_view_name"). |
| 20 | 22 | public define WEB_Action_Name hkc_list_view_filter = controller_action("hk_c", "hkc_list_view_filter"). | ... | ... |