Commit 17c955e7ba74732e62ef23bb38642a2023230967
1 parent
ee7a1e4b
add autoresize in in jqgrid
Showing
3 changed files
with
76 additions
and
22 deletions
Show diff stats
view/jqgrid.anubis
| ... | ... | @@ -58,6 +58,21 @@ define String |
| 58 | 58 | . |
| 59 | 59 | |
| 60 | 60 | define String |
| 61 | + search_options | |
| 62 | + ( | |
| 63 | + String col_name | |
| 64 | + )= | |
| 65 | +" searchoptions: { | |
| 66 | + dataInit: function (elem, options) { | |
| 67 | + initAutocomplete.call(this, elem, \""+col_name+"\"); | |
| 68 | + }, | |
| 69 | + sopt: [ 'cn', 'eq', 'bw', 'ew', 'bn', 'nc', 'en' ], | |
| 70 | + clearSearch: true | |
| 71 | + }" | |
| 72 | +. | |
| 73 | + | |
| 74 | + | |
| 75 | +define String | |
| 61 | 76 | to_jqGrid_ColModel |
| 62 | 77 | ( |
| 63 | 78 | SQLite3DataBase db, |
| ... | ... | @@ -69,33 +84,33 @@ define String |
| 69 | 84 | if model is |
| 70 | 85 | { |
| 71 | 86 | primary_key then "{ name: \"id\", hidden:true }", |
| 72 | - information(label,column_name,width,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\" }", | |
| 73 | - text(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true }", | |
| 74 | - password(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\" }", | |
| 87 | + information(label,column_name,width,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", autoResizable: true, "+search_options(column_name)+"}", | |
| 88 | + text(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, "+search_options(column_name)+" }", | |
| 89 | + password(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", autoResizable: true }", | |
| 75 | 90 | foreign_text(label,column_name,selector,help) then |
| 76 | - "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db,table_referer,""))+"},"+ | |
| 91 | + "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db,table_referer,""))+"},"+ | |
| 77 | 92 | " formatter: \"select\","+ |
| 78 | 93 | " formatoptions:{value: "+to_jqGrid_selector(selector.get(db, table_referer, ""))+"},"+ |
| 79 | 94 | "}", |
| 80 | 95 | choices_text(label,column_name,selector,help) then |
| 81 | - "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ | |
| 96 | + "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype:\"select\", editoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ | |
| 82 | 97 | " formatter: \"select\","+ |
| 83 | 98 | " formatoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ |
| 84 | 99 | "}", |
| 85 | 100 | text_area(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\" }", |
| 86 | - boolean(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, template: \"booleanCheckboxFa\" }", | |
| 87 | - integer(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, template: \"integer\" }", | |
| 88 | - float(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, template: \"number\" }", | |
| 89 | - 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, ""))+"},"+ | |
| 101 | + boolean(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, template: \"booleanCheckboxFa\" }", | |
| 102 | + integer(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, template: \"integer\" }", | |
| 103 | + float(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, template: \"number\" }", | |
| 104 | + 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, ""))+"},"+ | |
| 90 | 105 | " formatter: \"select\","+ |
| 91 | 106 | " formatoptions:{value: "+to_jqGrid_selector(selector.get(db, empty_referer, ""))+"},"+ |
| 92 | 107 | "}", |
| 93 | - date(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, formatter: \"date\", formatoptions: { newformat: \"Y-M-d\" }}", | |
| 94 | - time(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true }", | |
| 95 | - datetime(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true }", | |
| 96 | - color(label, column_name, help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", width: 60, editable:false, formatter:formatColor}", | |
| 97 | - phone(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype: 'custom', formatter:formatPhone, unformat:unformatPhone, "+custom_edit_phone+"}", | |
| 98 | - email(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, edittype: 'custom', formatter:formatEmail, unformat:unformatEmail, "+custom_edit_email+"}", | |
| 108 | + date(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, formatter: \"date\", formatoptions: { newformat: \"Y-M-d\" }}", | |
| 109 | + time(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true }", | |
| 110 | + datetime(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true }", | |
| 111 | + color(label, column_name, help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", width: 60, editable:false, autoResizable: true, formatter:formatColor}", | |
| 112 | + phone(label,column_name,help) then "{ name: \""+column_name+"\", label: \""+_T(label)+"\", editable:true, autoResizable: true, edittype: 'custom', formatter:formatPhone, unformat:unformatPhone, "+custom_edit_phone+"}", | |
| 113 | + 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+"}", | |
| 99 | 114 | |
| 100 | 115 | } |
| 101 | 116 | . |
| ... | ... | @@ -110,7 +125,7 @@ public define String |
| 110 | 125 | )= |
| 111 | 126 | "colModel: [\n"+ |
| 112 | 127 | join(",\n ", |
| 113 | - [ "{name: 'myac', label: 'Action', width:65, fixed:true, sortable:false, resize:false, formatter:'actions', formatoptions:{keys:true}}" . | |
| 128 | + [ "{name: 'myac', label: '', width:65, fixed:true, sortable:false, resize:false, formatter:'actions', formatoptions:{keys:true}}" . | |
| 114 | 129 | map((VT_view_model_entry col_model) |-> to_jqGrid_ColModel(db, table_referer, col_model, _T), models) |
| 115 | 130 | ] |
| 116 | 131 | )+ | ... | ... |
view/view_rows_import.anubis
| ... | ... | @@ -208,7 +208,7 @@ public define HTML_Partial_Content |
| 208 | 208 | ])), //end of sequence in form |
| 209 | 209 | // )]) |
| 210 | 210 | partial(jquery_button(jquery_img_button(icn16_cross, _T("CANCEL"), "", jQuery_actioner(same, jqlink(cancel_action)), left))), |
| 211 | - partial(jquery_button(jquery_img_button(icn16_check, _T("IMPORT"), "", jQuery_actioner(same, jqform("import_csv_form")), left))) | |
| 211 | + partial(img_submit_button(_T("IMPORT"), "import_csv_form")) | |
| 212 | 212 | ]) //end of sequence |
| 213 | 213 | ) |
| 214 | 214 | . | ... | ... |
view/view_table_renderer.anubis
| ... | ... | @@ -175,8 +175,16 @@ define String |
| 175 | 175 | " |
| 176 | 176 | editurl: '?aws_controller=hk_c&aws_action=grid_action&table_name="+rows.table_name+"', |
| 177 | 177 | iconSet: \"fontAwesome\", |
| 178 | + cmTemplate: { autoResizable: true}, | |
| 179 | + autoResizing: { compact: true, resetWidthOrg: true }, | |
| 180 | + autoresizeOnLoad: true, | |
| 178 | 181 | autowidth:true, |
| 179 | - shrinkToFit:false, | |
| 182 | + /*idPrefix: '_g_"+uid+"_',*/ | |
| 183 | + /*pager: '#"+uid+"_pager',*/ | |
| 184 | + pager: true, | |
| 185 | + toppager: true, | |
| 186 | + | |
| 187 | + /*shrinkToFit:false,*/ | |
| 180 | 188 | rowNum:30, |
| 181 | 189 | rowList:[5,10,20,30,50], |
| 182 | 190 | cellEdit: false, |
| ... | ... | @@ -197,7 +205,18 @@ define String |
| 197 | 205 | $self.jqGrid(\"editRow\", rowid, { focusField: e.target }); |
| 198 | 206 | }, |
| 199 | 207 | |
| 200 | - pager: '#"+uid+"_pager', | |
| 208 | + afterAddRow: function () { | |
| 209 | + recreateFilterToolbar.call(this); | |
| 210 | + //updateAutocompleteSource.call(this, \"name\"); | |
| 211 | + }, | |
| 212 | + afterSetRow: function () { | |
| 213 | + recreateFilterToolbar.call(this); | |
| 214 | + //updateAutocompleteSource.call(this, \"name\"); | |
| 215 | + }, | |
| 216 | + afterDelRow: function () { | |
| 217 | + //updateAutocompleteSource.call(this, \"name\"); | |
| 218 | + recreateFilterToolbar.call(this); | |
| 219 | + }, | |
| 201 | 220 | caption:"+to_JSON_String(_T(to_upper(rows.table_name)))+", |
| 202 | 221 | actionsNavOptions: { |
| 203 | 222 | openicon: \"fa-folder-open-o\", |
| ... | ... | @@ -234,9 +253,29 @@ public define HTML_Partial_Content |
| 234 | 253 | )= |
| 235 | 254 | with filter_clause = if clause = "" then "" else "&clause="+url_quote(clause), |
| 236 | 255 | with referer_arg = "&"+to_Web_arg(table_referer, ""), |
| 237 | - with js = js_inline(jquery_ready("var lastSel;$(\"#"+uid+"_grid\").jqGrid({\n"+ | |
| 238 | - "url:'?aws_controller=hk_c&aws_action=grid_view&table_name="+rows.table_name+"&view_name="+rows.view_name+filter_clause+referer_arg+"',"+ | |
| 239 | - "datatype: \"json\","+ | |
| 256 | + with js = js_inline(jquery_ready( | |
| 257 | +"var lastSel; | |
| 258 | + initAutocomplete = function (elem, cmName) { | |
| 259 | + $(elem).autocomplete({ | |
| 260 | + source: $(this).jqGrid(\"getUniqueValueFromColumnIndex\", cmName), | |
| 261 | + delay: 0, | |
| 262 | + minLength: 0 | |
| 263 | + }); | |
| 264 | + }, | |
| 265 | + recreateFilterToolbar = function () { | |
| 266 | + $(this) | |
| 267 | + .jqGrid(\"destroyFilterToolbar\") | |
| 268 | + .jqGrid(\"filterToolbar\"); | |
| 269 | + }, | |
| 270 | + updateAutocompleteSource = function (cmName) { | |
| 271 | + var newUniqueValues = $(this).jqGrid(\"getUniqueValueFromColumnIndex\", cmName); | |
| 272 | + $(\"#gs_\" + this.id + \"_\" + cmName) | |
| 273 | + .autocomplete(\"option\", \"source\", newUniqueValues); | |
| 274 | + }; | |
| 275 | +$(\"#"+uid+"_grid\").jqGrid({ | |
| 276 | +url:'?aws_controller=hk_c&aws_action=grid_view&table_name="+rows.table_name+"&view_name="+rows.view_name+filter_clause+referer_arg+"',"+ | |
| 277 | + "datatype: \"json\", | |
| 278 | + "+ | |
| 240 | 279 | to_jqGrid_ColModel(db, table_referer, _T, rows.view_model.list)+","+ |
| 241 | 280 | // rows.json_data_string+ |
| 242 | 281 | jqGrid_options(uid, rows, _T)+ | ... | ... |