github.com/kotovmak/go-admin@v1.1.1/plugins/admin/modules/table/tmpl/generator.tmpl (about) 1 {{define "generator"}} 2 <script> 3 $(function () { 4 let pack = localStorage.getItem("{{index . "prefix"}}package"); 5 let pk = localStorage.getItem("{{index . "prefix"}}pk"); 6 let path = localStorage.getItem("{{index . "prefix"}}path"); 7 if (pack !== "") { 8 $(".package").val(pack); 9 } 10 if (pk !== "") { 11 $(".pk").val(pk); 12 } 13 if (path !== "") { 14 $(".path").val(path); 15 } 16 17 let save_table_list_str = localStorage.getItem("{{index . "prefix"}}save_table_list"); 18 if (save_table_list_str && save_table_list_str !== "") { 19 addTableToList(JSON.parse(save_table_list_str)); 20 } 21 }); 22 23 function getLis() { 24 return $("li.list-group-item.list-group-item-action") 25 } 26 27 function addTableToList(save_table_list) { 28 let list_group = $(".list-group.save_table_list"); 29 getLis().remove(); 30 for (let i = save_table_list.length - 1; i > save_table_list.length - 6 && i > -1; i--) { 31 let new_li = "<li class='list-group-item list-group-item-action'>" + save_table_list[i] + "</li>"; 32 list_group.append(new_li); 33 } 34 list_group.show(); 35 getLis().on("click", restoreTableData); 36 } 37 38 $(".nav.nav-tabs li a").on("click", function () { 39 let href = $(this).attr("href"); 40 let trs = $(".list-group-item.list-group-item-action"); 41 if (trs.length > 0) { 42 if (href === "#tab-form-0") { 43 $(".list-group.save_table_list").show(); 44 } 45 if (href === "#tab-form-1" || href === "#tab-form-2" || href === "#tab-form-3") { 46 $(".list-group.save_table_list").hide(); 47 } 48 } 49 }); 50 51 $(".btn-group.pull-right .btn.btn-primary").on("click", function () { 52 let pack = $(".package").val(); 53 let pk = $(".pk").val(); 54 let path = $(".path").val(); 55 if (pack !== "") { 56 localStorage.setItem("{{index . "prefix"}}package", pack); 57 } 58 if (pk !== "") { 59 localStorage.setItem("{{index . "prefix"}}pk", pk); 60 } 61 if (path !== "") { 62 localStorage.setItem("{{index . "prefix"}}path", path); 63 } 64 let table = $("select.table").val(); 65 if (table && table !== "") { 66 let save_table_list = []; 67 let save_table_list_str = localStorage.getItem("{{index . "prefix"}}save_table_list"); 68 if (save_table_list_str && save_table_list_str !== "") { 69 save_table_list = JSON.parse(save_table_list_str); 70 } 71 let table_index = save_table_list.indexOf(table); 72 if (table_index !== -1) { 73 save_table_list.splice(table_index, 1); 74 } 75 save_table_list.push(table); 76 localStorage.setItem("{{index . "prefix"}}save_table_list", JSON.stringify(save_table_list)); 77 localStorage.setItem("{{index . "prefix"}}save_table_" + table, getItemObjData()); 78 79 addTableToList(save_table_list); 80 } 81 }); 82 83 function restoreTableData() { 84 NProgress.start(); 85 let data_str = localStorage.getItem("{{index . "prefix"}}save_table_" + $(this).html()); 86 if (data_str && data_str !== "") { 87 let data = JSON.parse(data_str); 88 $(".package").val(data.package); 89 $(".pk").val(data.pk); 90 $(".path").val(data.path); 91 $("select.conn").val(data.conn).select2(); 92 conn_req_refresh($("select.table"), false, "select"); 93 setTimeout(function () { 94 $("select.table").val(data.table).select2(); 95 }, 2000); 96 97 $(".extra_import_package").val(data.extra_import_package).select2(); 98 $(".table_title").val(data.table_title); 99 $(".table_description").val(data.table_description); 100 $(".form_title").val(data.form_title); 101 $(".form_description").val(data.form_description); 102 $(".detail_title").val(data.detail_title); 103 $(".detail_description").val(data.detail_description); 104 $("select.detail_display").val(data.detail_display).select2(); 105 if (data.detail_display !== "0") { 106 $("label[for='detail_title']").parent().show(); 107 $("label[for='detail_description']").parent().show(); 108 $("label[for='fields_detail']").parent().show(); 109 } 110 111 if (extra_codeeditor && data.extra_code && data.extra_code !== "") { 112 extra_codeeditor.setValue(decodeURIComponent(data.extra_code)); 113 } 114 115 let info_table = $("tbody.fields-table"); 116 info_table.find("tr").remove(); 117 let tpl = $("template.fields-tpl").html(); 118 for (let i = 0; i < data.infos.length; i++) { 119 info_table.append(tpl); 120 } 121 122 let trs = info_table.find("tr"); 123 for (let i = 0; i < trs.length; i++) { 124 $(trs[i]).find('.field_head').val(data.infos[i][0]); 125 $(trs[i]).find('.field_name').val(data.infos[i][1]); 126 checkItemSwitch($(trs[i]).find('input.field_filterable'), data.infos[i][2]); 127 checkItemSwitch($(trs[i]).find('input.field_sortable'), data.infos[i][3]); 128 checkItemSwitch($(trs[i]).find('input.field_hide'), data.infos[i][4]); 129 checkItemSwitch($(trs[i]).find('input.info_field_editable'), data.infos[i][5]); 130 $(trs[i]).find('select.field_db_type').val(data.infos[i][6]).select2(); 131 } 132 133 let form_table = $("tbody.fields_form-table"); 134 form_table.find("tr").remove(); 135 let tpl_form = $("template.fields_form-tpl").html(); 136 for (let i = 0; i < data.forms.length; i++) { 137 form_table.append(tpl_form); 138 } 139 140 let trs_form = form_table.find("tr"); 141 for (let i = 0; i < trs_form.length; i++) { 142 $(trs_form[i]).find('.field_head_form').val(data.forms[i][0]); 143 $(trs_form[i]).find('.field_name_form').val(data.forms[i][1]); 144 checkItemSwitch($(trs_form[i]).find('input.field_canedit'), data.forms[i][2]); 145 checkItemSwitch($(trs_form[i]).find('input.field_canadd'), data.forms[i][3]); 146 $(trs_form[i]).find('.field_default').val(data.forms[i][4]); 147 $(trs_form[i]).find('select.field_display').val(data.forms[i][5]).select2(); 148 $(trs_form[i]).find('select.field_db_type_form').val(data.forms[i][6]).select2(); 149 $(trs_form[i]).find('select.field_form_type_form').val(data.forms[i][7]).select2(); 150 } 151 152 let detail_table = $("tbody.fields_detail-table"); 153 detail_table.find("tr").remove(); 154 let tpl_detail = $("template.fields_detail-tpl").html(); 155 for (let i = 0; i < data.details.length; i++) { 156 detail_table.append(tpl_detail); 157 } 158 159 let trs_detail = detail_table.find("tr"); 160 for (let i = 0; i < trs_detail.length; i++) { 161 $(trs_detail[i]).find('.field_head').val(data.details[i][0]); 162 $(trs_detail[i]).find('.field_name').val(data.details[i][1]); 163 $(trs_detail[i]).find('select.field_db_type').val(data.details[i][2]).select2(); 164 } 165 166 toggleItemSwitchOpposite($(".permission.ga_checkbox"), data.permission); 167 toggleItemSwitch($(".hide_filter_area.ga_checkbox"), data.hide_filter_area); 168 toggleItemSwitch($(".hide_new_button.ga_checkbox"), data.hide_new_button); 169 toggleItemSwitch($(".hide_export_button.ga_checkbox"), data.hide_export_button); 170 toggleItemSwitch($(".hide_edit_button.ga_checkbox"), data.hide_edit_button); 171 toggleItemSwitch($(".hide_pagination.ga_checkbox"), data.hide_pagination); 172 toggleItemSwitch($(".hide_delete_button.ga_checkbox"), data.hide_delete_button); 173 toggleItemSwitch($(".hide_detail_button.ga_checkbox"), data.hide_detail_button); 174 toggleItemSwitch($(".hide_filter_button.ga_checkbox"), data.hide_filter_button); 175 toggleItemSwitch($(".hide_row_selector.ga_checkbox"), data.hide_row_selector); 176 toggleItemSwitch($(".hide_query_info.ga_checkbox"), data.hide_query_info); 177 toggleItemSwitch($(".filter_form_layout.ga_checkbox"), data.filter_form_layout); 178 toggleItemSwitch($(".hide_continue_edit_check_box.ga_checkbox"), data.hide_continue_edit_check_box); 179 toggleItemSwitch($(".hide_reset_button.ga_checkbox"), data.hide_reset_button); 180 toggleItemSwitch($(".hide_continue_new_check_box.ga_checkbox"), data.hide_continue_new_check_box); 181 toggleItemSwitch($(".hide_back_button.ga_checkbox"), data.hide_back_button); 182 } 183 NProgress.done(); 184 } 185 186 function toggleItemSwitch(obj, val) { 187 if (val === "n") { 188 $(obj).bootstrapSwitch('state', true); 189 } else { 190 $(obj).bootstrapSwitch('state', false); 191 } 192 } 193 194 function toggleItemSwitchOpposite(obj, val) { 195 if (val === "n") { 196 $(obj).bootstrapSwitch('state', false); 197 } else { 198 $(obj).bootstrapSwitch('state', true); 199 } 200 } 201 202 function checkItemSwitch(obj, val) { 203 if (val === "y") { 204 $(obj).iCheck("check") 205 } else { 206 $(obj).iCheck("uncheck") 207 } 208 } 209 210 function getItemSwitchValue(obj) { 211 if ($(obj).hasClass("checked")) { 212 return "y" 213 } 214 return "n" 215 } 216 217 function getItemObjData() { 218 let data = {}; 219 data.conn = $("select.conn").val(); 220 data.package = $(".package").val(); 221 data.pk = $(".pk").val(); 222 data.path = $(".path").val(); 223 data.extra_code = $("#extra_code_input").val(); 224 data.table = $("select.table").val(); 225 data.table_title = $(".table_title").val(); 226 data.table_description = $(".table_description").val(); 227 data.form_title = $(".form_title").val(); 228 data.form_description = $(".form_description").val(); 229 data.extra_import_package = $(".extra_import_package").val(); 230 data.detail_title = $(".detail_title").val(); 231 data.detail_description = $(".detail_description").val(); 232 data.detail_display = $("select.detail_display").val(); 233 234 let infos = []; 235 let trs = $("tbody.fields-table").find("tr"); 236 for (let i = 0; i < trs.length; i++) { 237 infos[i] = []; 238 infos[i].push($(trs[i]).find('.field_head').val()); 239 infos[i].push($(trs[i]).find('.field_name').val()); 240 infos[i].push(getItemSwitchValue($(trs[i]).find('input.field_filterable').parent())); 241 infos[i].push(getItemSwitchValue($(trs[i]).find('input.field_sortable').parent())); 242 infos[i].push(getItemSwitchValue($(trs[i]).find('input.field_hide').parent())); 243 infos[i].push(getItemSwitchValue($(trs[i]).find('input.info_field_editable').parent())); 244 infos[i].push($(trs[i]).find('select.field_db_type').val()); 245 } 246 data.infos = infos; 247 248 let forms = []; 249 let trs_form = $("tbody.fields_form-table").find("tr"); 250 for (let i = 0; i < trs_form.length; i++) { 251 forms[i] = []; 252 forms[i].push($(trs_form[i]).find('.field_head_form').val()); 253 forms[i].push($(trs_form[i]).find('.field_name_form').val()); 254 forms[i].push(getItemSwitchValue($(trs_form[i]).find('input.field_canedit').parent())); 255 forms[i].push(getItemSwitchValue($(trs_form[i]).find('input.field_canadd').parent())); 256 forms[i].push($(trs_form[i]).find('.field_default').val()); 257 forms[i].push($(trs_form[i]).find('select.field_display').val()); 258 forms[i].push($(trs_form[i]).find('select.field_db_type_form').val()); 259 forms[i].push($(trs_form[i]).find('select.field_form_type_form').val()); 260 } 261 data.forms = forms; 262 263 let details = []; 264 let detail_trs = $("tbody.fields_detail-table").find("tr"); 265 for (let i = 0; i < detail_trs.length; i++) { 266 details[i] = []; 267 details[i].push($(detail_trs[i]).find('.field_head').val()); 268 details[i].push($(detail_trs[i]).find('.field_name').val()); 269 details[i].push($(detail_trs[i]).find('select.field_db_type').val()); 270 } 271 data.details = details; 272 273 data.permission = $("input[name='permission']").val(); 274 275 data.hide_filter_area = $("input[name='hide_filter_area']").val(); 276 data.hide_new_button = $("input[name='hide_new_button']").val(); 277 data.hide_export_button = $("input[name='hide_export_button']").val(); 278 data.hide_edit_button = $("input[name='hide_edit_button']").val(); 279 data.hide_pagination = $("input[name='hide_pagination']").val(); 280 data.hide_delete_button = $("input[name='hide_delete_button']").val(); 281 data.hide_detail_button = $("input[name='hide_detail_button']").val(); 282 data.hide_filter_button = $("input[name='hide_filter_button']").val(); 283 data.hide_row_selector = $("input[name='hide_row_selector']").val(); 284 data.hide_query_info = $("input[name='hide_query_info']").val(); 285 data.filter_form_layout = $("select.filter_form_layout").val(); 286 287 data.hide_continue_edit_check_box = $('input[name="hide_continue_edit_check_box"]').val(); 288 data.hide_reset_button = $('input[name="hide_reset_button"]').val(); 289 data.hide_continue_new_check_box = $('input[name="hide_continue_new_check_box"]').val(); 290 data.hide_back_button = $('input[name="hide_back_button"]').val(); 291 292 return JSON.stringify(data) 293 } 294 295 function conn_req_refresh(selectObj, box, event) { 296 $.ajax({ 297 url: "\/admin\/operation\/_tool_choose_conn", 298 type: 'post', 299 dataType: 'text', 300 data: { 301 'value': $("select.conn").val(), 302 303 'event': event 304 }, 305 success: function (data) { 306 if (typeof (data) === "string") { 307 data = JSON.parse(data); 308 } 309 if (data.code === 0) { 310 311 312 if (selectObj.length > 0) { 313 if (typeof (data.data) === "object") { 314 if (box) { 315 conn_updateBoxSelections(selectObj, data.data) 316 } else { 317 if (typeof (selectObj.attr("multiple")) !== "undefined") { 318 selectObj.html(""); 319 } 320 selectObj.select2({ 321 data: data.data 322 }); 323 } 324 } else { 325 if (box) { 326 selectObj.val(data.data).select2() 327 } else { 328 329 } 330 } 331 } else { 332 $('.table').val(data.data); 333 } 334 335 336 } else { 337 swal(data.msg, '', 'error'); 338 } 339 }, 340 error: function () { 341 alert('error') 342 } 343 }); 344 } 345 </script> 346 <style> 347 .save_table_list { 348 position: absolute; 349 right: 45px; 350 top: 200px; 351 background-color: white; 352 width: 300px; 353 min-height: 50px; 354 z-index: 9999; 355 display: none; 356 } 357 358 .list-group-item.list-head { 359 background-color: #5a5a5a; 360 border-color: #5a5a5a; 361 font-weight: bold; 362 color: white; 363 } 364 365 .list-group-item.list-group-item-action { 366 cursor: pointer; 367 } 368 </style> 369 {{end}}