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