From ee6c417d877f65159eac2d03aa187d79f25c846b Mon Sep 17 00:00:00 2001 From: totoro Date: Tue, 26 Oct 2021 23:48:47 +0200 Subject: [PATCH] add log and speed up the construction of the drop down into the jqgrid --- view/jqgrid.anubis | 41 +++++++++++++++++++++++++++++------------ view/view_table_manager.anubis | 3 ++- view/view_table_renderer.anubis | 41 ++++++++++++++++++++++++++++++----------- 3 files changed, 61 insertions(+), 24 deletions(-) diff --git a/view/jqgrid.anubis b/view/jqgrid.anubis index 4876225..df7ca30 100644 --- a/view/jqgrid.anubis +++ b/view/jqgrid.anubis @@ -10,15 +10,21 @@ read xlib/web/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 +read tools/time.anubis +read app/app_loggers.anubis define String to_jqGrid_selector ( List((List(CoreAttrs), WebArgValue, String)) from_hk_selector )= - "\""+ + logDebug("to_jqGrid_selector: entry"); + with start_time = unow, + with result = "\""+ join(";",map(((List(CoreAttrs), WebArgValue, String) select) |-> since select is (_, wav, show), wav.value+":"+show, from_hk_selector))+ - "\"" + "\"", + logDebug(show_duration_string("to_jqGrid_selector: duration ", start_time)); + result . define String @@ -102,30 +108,36 @@ define String VT_view_model_entry model, (String) -> String _T )= + logDebug("to_jqGrid_ColModel 1: entry"); + with start_time = unow, with empty_referer = hk_referer("","","",""), - if model is + with result = if model is { primary_key then "{ name: \"id\", hidden:true }", information(label,column_name,width,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", autoResizable: true, "+search_options(column_name)+"}", text(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, "+search_options(column_name)+" }", password(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", autoResizable: true }", foreign_text(label,column_name,selector,help) then - "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db,table_referer,""))+"},"+ + with jqgrid_selector = to_jqGrid_selector(selector.get(db,table_referer,"")), + "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+jqgrid_selector+"},"+ " formatter: \"select\","+ - " formatoptions:{value: "+to_jqGrid_selector(selector.get(db, table_referer, ""))+"},"+ + " formatoptions:{value: "+jqgrid_selector+"},"+ "}", choices_text(label,column_name,selector,help) then - "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ + with jqgrid_selector = to_jqGrid_selector(selector.get(db, empty_referer, "")), + "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+jqgrid_selector+"},"+ " formatter: \"select\","+ - " formatoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ + " formatoptions:{value: "+jqgrid_selector+"},"+ "}", 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, autoResizable: true, template: \"booleanCheckboxFa\" }", integer(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, template: \"integer\" }", float(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, template: \"number\" }", - choices_int(label,column_name,selector,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ + choices_int(label,column_name,selector,help) then + with jqgrid_selector = to_jqGrid_selector(selector.get(db, empty_referer, "")), + "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+jqgrid_selector+"},"+ " formatter: \"select\","+ - " formatoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ + " formatoptions:{value: "+jqgrid_selector+"},"+ "}", date(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, formatter: \"date\", formatoptions: { newformat: \"Y-M-d\" }}", time(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true }", @@ -134,7 +146,9 @@ define String phone(label,column_name, ph_type, help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype: 'custom', formatter:formatPhone, unformat:unformatPhone, "+custom_edit_phone+"}", email(label,column_name, help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype: 'custom', formatter:formatEmail, unformat:unformatEmail, "+custom_edit_email+"}", url(label, column_name, help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, "+search_options(column_name)+" }", - } + }, + logDebug(show_duration_string("to_jqGrid_ColModel 1: result", start_time)); + result . public define String @@ -145,11 +159,14 @@ public define String (String) -> String _T, List(VT_view_model_entry) models )= - "colModel: [\n"+ + logDebug("to_jqGrid_ColModel: entry"); + with result = "colModel: [\n"+ join(",\n ", [ "{name: 'myac', label: '', 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) ] )+ - "]" + "]", + logDebug("to_jqGrid_ColModel: result"); + result . diff --git a/view/view_table_manager.anubis b/view/view_table_manager.anubis index 49be902..1696ff0 100644 --- a/view/view_table_manager.anubis +++ b/view/view_table_manager.anubis @@ -6,6 +6,7 @@ */ read tools/basis.anubis +read app/app_loggers.anubis transmit hayamiki_lib/view/types/hk_form.anubis transmit hayamiki_lib/view/view_table_manager_types.anubis @@ -17,7 +18,7 @@ public define Maybe(VTM_view) ) = if list is { - [] then println("_vtm_get_view "+_table_name+" not found"); failure, + [] then logError("_vtm_get_view "+_table_name+" not found"); failure, [ h . t ] then if h.table_name = _table_name then success(h) diff --git a/view/view_table_renderer.anubis b/view/view_table_renderer.anubis index 2115e33..a79a9c3 100644 --- a/view/view_table_renderer.anubis +++ b/view/view_table_renderer.anubis @@ -20,6 +20,7 @@ read tools/basis.anubis read tools/base64.anubis read tools/list.anubis read tools/printable_tree.anubis +read tools/time.anubis read data_base/sqlite.anubis read system_colors/rgb.anubis read system/convert.anubis @@ -42,6 +43,7 @@ read xlib/web/widgets/css_helper.anubis read xlib/web/widgets/button.anubis read xlib/web/widgets/specialized_elements.anubis read xlib/web/urllib.anubis +read app/app_loggers.anubis public define List(CXM_Form_Field) get_hidden @@ -375,7 +377,8 @@ define String VT_view rows, (String) -> String _T )= - " + logDebug("jqGrid_options: entry"); + with result = " editurl: '?aws_controller=hk_c&aws_action=grid_action&table_name="+rows.table_name+"', iconSet: \"fontAwesome\", cmTemplate: { autoResizable: true}, @@ -437,7 +440,9 @@ define String } ] } - " + ", + logDebug("jqGrid_options: return result"); + result // ondblClickRow: function( rowid) {"+ // jq_dialog_open(dialog_id(uid+"edit_table_dlg_ajax"), "'id='+rowid")+ . @@ -454,6 +459,7 @@ public define HTML_Partial_Content String clause, HK_Referer table_referer )= + logDebug("jqGrid_table: entry"); with filter_clause = if clause = "" then "" else "&clause="+url_quote(clause), with referer_arg = "&"+to_Web_arg(table_referer, ""), with js = js_inline(jquery_ready( @@ -511,7 +517,7 @@ url:'?aws_controller=hk_c&aws_action=grid_view&table_name="+rows.table_name+"&vi var ret = jqo.text(); return ret; }")), - + logDebug("jqGrid_table: partial_content"); partial_content(jqgrid_init(lang) + [js, css(css_file("hayamiki/css/hayamiki.css"))], div([], sequence([ @@ -537,15 +543,19 @@ public define HTML_Partial_Content HK_Referer table_referer, String fk_clause //filter for foreign key of the table (one to many) ) = + logDebug("view_table_page: entry"); with current_view = vtm_v.get_view(view_name), //with _filter = get_filter_from_name(vtm_v, view_name, filter_name), //with f_clause = if _filter.filter_string = "" then "" else if _f_clause = "" then _filter.filter_string else "("+_filter.filter_string+") AND "+_f_clause, with filter_clause = if f_clause = "" then "" else "&clause="+url_quote(f_clause), //with foreign_clause = if fk_clause = "" then "" else "&fk_clause="+url_quote(fk_clause), with referer_arg = "&"+to_Web_arg(table_referer, ""), - - with uid = "_"+generate_random_string(15)+"_", + logDebug("view_table_page: start_time unow"); + with start_time = unow, + with jqgrid_table = jqGrid_table(db, uid, current_view, filter_name, _T, lang, f_clause, table_referer), + logDebug(show_duration_string("jqGrid_table : current_view '"+view_name+"' filter_name '"+filter_name+"'", start_time)); + with result = partial_content([ js(js_file("hayamiki/js/jscolor.min.js")) ]+jq_dialog_init + jq_datetimepicker_init(lang), [html_wave_box_wide(_T(to_upper(current_view.table_name)), @@ -559,9 +569,11 @@ public define HTML_Partial_Content table_view_filter_selector(_T, vtm_v, view_name, filter_name), ])), //grid with data - partial(jqGrid_table(db, uid, current_view, filter_name, _T, lang, f_clause, table_referer)) + partial(jqgrid_table) //partial(jquery_datatable(uid+"table_view", view_table_form(_T, uid, action_name, rows), true, false, jq_dt_pt_full_numbers, false, scrollY(500), true, true, true, lang, no_extra, web_site_directory)) - ]))]). + ]))]), + logDebug(show_duration_string("view_table_page: current_view '"+view_name+"' filter_name '"+filter_name+"'", start_time)); + result. public define HTML_Partial_Content table_in_list_view @@ -583,7 +595,10 @@ public define HTML_Partial_Content with referer_arg = "&"+to_Web_arg(table_referer, ""), with current_view = vtm_v.get_view(view_name), with uid = generate_random_string(20)+"_", - partial_content([ js(js_file("hayamiki/js/jscolor.min.js")) + with start_time = unow, + with jqgrid_table = jqGrid_table(db, uid, current_view, filter_name, _T, lang, /*fk_clause*/ f_clause, table_referer), + logDebug(show_duration_string("jqGrid_table : current_view '"+view_name+"' filter_name '"+filter_name+"'", start_time)); + with result = partial_content([ js(js_file("hayamiki/js/jscolor.min.js")) ]+ jq_dialog_init + jq_datetimepicker_init(lang), @@ -591,9 +606,11 @@ public define HTML_Partial_Content partial(jq_dialog_create(dialog_id(uid+action_name+"_dlg_ajax"), ajax(controller_action("hk_c", "ajax_edit_table&dialog_id="+uid+action_name+"_dlg_ajax&table_name="+current_view.table_name+filter_clause+referer_arg)))), partial(img_button(icn16_add, [class("icon_in_text"), event(onclick, jq_dialog_open(dialog_id(uid+action_name+"_dlg_ajax")))], "", [])), //table_view_selector(_T, vtm_v, view_name), - partial(jqGrid_table(db, uid, current_view, filter_name, _T, lang, /*fk_clause*/ f_clause, table_referer)), + partial(jqgrid_table), //partial(jquery_datatable(uid+"table_view", view_table_form(_T, uid, action_name, rows), true, false, jq_dt_pt_full_numbers, false, scrollY(200), true, true, true, lang, no_extra, web_site_directory)) - ]). + ]), + logDebug(show_duration_string("table_in_list_view: current_view '"+view_name+"' filter_name '"+filter_name+"'", start_time)); + result. public define Maybe(HTML_Partial_Content) view_table_content @@ -611,10 +628,12 @@ public define Maybe(HTML_Partial_Content) String fk_clause, VTM vtm ) = + logDebug("view_table_content: entry"); if vtm_get_view(table_name, vtm.view_list) is { failure then failure, - success(vtm_v) then + success(vtm_v) then + logDebug("view_table_content: success"); success(view_table_page(db, _T, lang, /*web_site_directory, */action_name, vtm_v, view_name, filter_name, f_clause, table_referer, fk_clause)) }. -- libgit2 0.21.4