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