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}}