????

Your IP : 3.129.217.27


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/public/js/sohoa/
Upload File :
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/public/js/sohoa/taovanban.js

$(document).on('webviewerloaded', function() {
  var PdfViewerApp = document.getElementById('pdfViewerFrame').contentWindow.PDFViewerApplication;
  var pdfNotification = $('<span/>').kendoNotification({ appendTo: '#pdfViewerContainer', autoHideAfter: 0 })
    .data('kendoNotification');

  moment.locale("vi");
  kendo.culture("vi-VN");

  var docViewModal = kendo.observable({
    doc: {},
    fileCode: "",
    organs: new kendo.data.DataSource({
      serverFiltering: true,
      transport: {
        read: "/sohoa/taovanban/coquan",
        cache: true
      }
    })
  });
  kendo.bind($("#add-doc-ui"), docViewModal);

  var dropZone = new Dropzone("div#dropzone", {
    url: "/sohoa/taovanban/upload",
    headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
    parallelUploads: 1,
    maxFilesize: 200,
    timeout: 30 * 60 * 1000,
    acceptedFiles: 'application/pdf,.pdf',
    previewsContainer: "#drop-overlay",
    previewTemplate: `<div class="row dz-preview border-bottom"><div class="col-6"> <span class="dz-name" data-dz-name></span></div><div class="col-6"><div class="progress progress-sx"><div class="progress-bar progress-bar-primary" data-dz-uploadprogress></div></div> <span class="dz-size"></span> <span class="dz-err-message d-block text-danger" data-dz-errormessage></span></div></div>`,
    addfile: () => $("#drop-overlay").removeClass("collapse"),
    uploadprogress: (file, progress, bytesSent) => {
      $(file.previewElement).find('.dz-size').text(`${getSize(bytesSent)} / ${getSize(file.size)}`);
    },
    queuecomplete: () => {
      $("#drop-overlay").addClass("collapse");
      $("#drop-overlay").empty();
      $("#reload-btn").trigger("click");
    },
    sending: (file, xhr, formData) => {
      var fn = encodeURI(file.name)
      formData.append("encFilename", fn);
    },
  });

  $("#date").datepicker({
    format: "dd/mm/yyyy",
    autoclose: true,
    language: "vi"
  });
  $("#date").inputmask('datetime', { inputFormat: "dd/mm/yyyy" });
  $.getJSON("/danhmuc/phong/json", function (data, text, jqXHR) {
    $("#select-fond").select2({
      data: data.map(function (x) { x.id = x.FondCode; return x; }),
      theme: "bootstrap4",
      sorter: function (data) {
        return data.sort(function (a, b) {
          return a.FondNumber - b.FondNumber;
        })
      },
      templateResult: function (fond) {
        var html = `<div class='w-100 border-bottom border-dark d-flex flex-column'>
                      <span>${fond.FondName} </span>
                      <div class='d-flex justify-content-between align-items-center'>
                        <small class='text-warning d-block'>Mã phông: ${fond.FondCode}</small>
                        <span class='btn btn-xs text-nowrap fw-bold ${fond.State ? `btn-danger'>Đóng ` : `btn-success'>Mở `}</span>
                      </div>
                    </div>`;
        return $(html)
      },
      templateSelection: function (fond) {
        var html = `<div class="w-100 d-flex align-items-center overflow-hidden"><span class="btn btn-xs ${fond.State ? `btn-danger">Đóng ` : `btn-success">Mở `}</span><span class="ml-2">${fond.FondName}</span></div>`;
        return $(html)
      }
    });
  });
  $("#select-file").select2({
    ajax: {
      url: "/sohoa/taovanban/hoso",
      dataType: "json",
      data: function (params) {
        var query = {
          search: params.term,
          page: params.page,
          fond: $("#select-fond").val()
        };
        return query;
      },
      cache: true
    },
    theme: "bootstrap4",
    delay: 250,
    templateResult: function (file) {
      var html = `<div class='w-100 border-bottom border-dark d-flex flex-column'>
                    <span>${file.Title}</span>
                    <div class='d-flex justify-content-between align-items-center'>
                      <small class='w-100 text-warning'>Mục lục: ${file.FileCatalog} - Hộp: ${file.BoxNumber}</small>
                      <span class='btn btn-success btn-xs text-nowrap fw-bold'>Hồ sơ số ${file.FileNumber}</span>
                    </div>
                  </div>`;
      return $(html)
    },
    templateSelection: function (file) {
      var html = `<div class='w-100 d-flex align-items-center overflow-hidden' title="${file.Title}"><span class='btn btn-success btn-xs'>Số ${file.FileNumber}</span><span class="ml-2">${file.Title}</span></div>`;
      return $(html)
    }
  });
  $.getJSON("/danhmuc/loaivanban", function (data, textStatus, jqXHR) {
    var docType = [
      {
        text: "Văn bản hành chính",
        children: data.filter(function (x) { return x.TypeGroup == 2 }).map(function (x) { return { id: x.Id, text: x.TypeName } })
      },
      {
        text: "Văn bản quy phạm pháp luật",
        children: data.filter(function (x) { return x.TypeGroup == 1 }).map(function (x) { return { id: x.Id, text: x.TypeName } })
      }
    ];
    $("#docTypes").select2({
      data: docType,
      theme: "bootstrap4",
      allowClear: true,
      placeholder: "Chọn loại văn bản"
    });
    $("#docTypes").val('29').trigger("change");
  });
  $.getJSON("/danhmuc/ngonngu", function (data, textStatus, jqXHR) {
    $("#language").select2({
      data: data.map(function (x) { return { id: x.LangCode, text: x.LangName } }),
      theme: "bootstrap4"
    });
  }).fail(function (jqXHR, err) {
    $('<span/>').kendoNotification({ appendTo: '#msg-div' }).data('kendoNotification').show(jqXHR.responseText, 'error');
  });
  $.getJSON("/danhmuc/quyentailieu", function (data, textStatus, jqXHR) {
    $("#mode").select2({
      data: data.map(function (x) { return { id: x.Id, text: x.ModeName } }),
      theme: "bootstrap4",
      minimumResultsForSearch: -1
    });
  });
  $.getJSON("/danhmuc/dotincay", function (data, text, jqXHR) {
    $("#level").select2({
      data: data.map(function (x) { return { id: x.Id, text: x.Name } }),
      theme: "bootstrap4",
      minimumResultsForSearch: -1
    });
  })
  $("#doc-keyword").tagsinput({ tagClass: "badge badge-secondary" });
  var addDocForm = $("#addDoc").validate({
    validClass: "success",
    highlight: function (element) {
      $(element).closest(".form-group").removeClass("has-primary").addClass("has-error");
    },
    unhighlight: function (element) {
      $(element).closest(".form-group").removeClass("has-error").addClass("has-primary");
    },
    errorPlacement: function (error, element) {
      $(element).closest(".form-group").append(error);
    },
    submitHandler: function (domForm) {
      $.ajax({
        url: "/sohoa/vanban",
        method: "POST",
        type: "POST",
        data: $(domForm).serialize(),
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
        success: function (data, textStatus, jqXHR) {
          $('<span/>').kendoNotification({ appendTo: '#msg-div' }).data('kendoNotification').success(jqXHR.responseText);
          addDocForm.resetForm();
          docViewModal.set("doc", {});
          $("#doc-keyword").tagsinput('removeAll');
          getFolderContent($("#folderPath").val());
        },
        error: function (jqXHR, textStatus, err) {
          $('<span/>').kendoNotification({ appendTo: '#msg-div' }).data('kendoNotification').error(jqXHR.responseText);
        },
        complete: function (jqXHR, textStatus) {
          window.scrollTo(0, 0);
          $("#docnumber").focus();
        }
      });
    }
  });
  $('#floating-btn').on('click', function (e) {
    $("#addDoc").trigger('submit');
  });
  $(document).ready(function (e) {
    $(".navbar-minimize .btn").trigger("click");
  });
  getFolderContent('');
  $("#folder-content").on("click", ".item-list", function (e) {
    var root = $("#folderPath").val();//$(this).parent().attr("data-root");
    var name = $(this).find("span").text();
    var path = (root || "") + "/" + name;
    var isFolder = $(this).attr("data-type") == "1";
    if ($(this).has(".del-file").length && $(this).find(".del-file")[0].contains(e.target)) {
      Swal.fire({
        title: 'Xác nhận',
        text: `Bạn muốn xóa ${isFolder ? "thư mục" : "tập tin"} "${name}"?`,
        type: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#cd201f',
        cancelButtonColor: '#467fcf',
        confirmButtonText: 'Xóa ' + (isFolder ? "thư mục" : "tập tin"),
        cancelButtonText: 'Hủy'
      }).then(function (result) {
        if (result.value) {
          $.ajax({
            url: "/sohoa/taovanban/thumuc/delete",
            type: "POST",
            data: { path: path },
            headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
            success: function (data, textStatus, jqXHR) {
              $("#reload-btn").trigger("click");
            },
            error: function (jqXHR, textStatus, err) {
              $('<span/>').kendoNotification({ appendTo: '#folder-err-msg' }).data('kendoNotification').error(jqXHR.responseText);
            }
          });
        }
      })
    }
    else if (isFolder) {
      getFolderContent(path);
    }
    else {
      openView(root || "", name, $(this).find("i").text());
    }
  });
  $("#reload-btn").on("click", function (e) {
    getFolderContent($("#folderPath").val());
  });

  function getFolderContent(dir) {
    pdfNotification.hide();
    $("#reload-btn .fas").addClass("fa-spin");
    PdfViewerApp.initializedPromise
      .then(() => PdfViewerApp.documentInfo && PdfViewerApp.close());
    $("#pdfViewerFrame").css("height", 0);
    var path = window.encodePath(dir);
    $.getJSON(`/sohoa/taovanban/thumuc?path=${path}`, function (data, textStatus, jqXHR) {
      $("#folder-content").empty();
      dropZone.options.url = `/sohoa/taovanban/upload?root=${window.encodePath(data.root)}`;
      $("#folderPath").val(data.root);
      var topFile = "";
      if (data.root && data.root != "/" && data.root != "\\") $("#folder-content").append($(`<li data-type="1" class="item-list"><img src="/img/tailieu/folder-parent.png"><span>..</span></li>`));
      data.folders.forEach(function (item, index) {
        $("#folder-content").append($(`<li data-type="1" class="item-list"><button class="del-file btn btn-icon btn-link btn-danger btn-sm"><i class="fas fa-times"></i></button><img src="/img/tailieu/folder-yellow.png"><span>${item}</span></li>`));
      });
      data.files.forEach(function (item, index) {
        if (index == 0) topFile = item;
        $("#folder-content").append(`<li data-type="2" class="item-list"><button class="del-file btn btn-icon btn-link btn-danger btn-sm"><i class="fas fa-times"></i></button><img src="/img/tailieu/pdf.png"><span>${item.name}</span><i class="ml-auto badge badge-secondary">${getSize(item.size)}</i></li>`);
      });
      if (topFile) {
        openView(data.root, topFile.name, getSize(topFile.size));
      } else {
        pdfNotification.info('Không còn văn bản nào trong thư mục. Chọn thư mục khác để tiếp tục số hóa!');
      }
    }).fail(function (jqXHR, err) {
      $('<span/>').kendoNotification({ appendTo: '#msg-div' }).data('kendoNotification').error(jqXHR.responseText);
    }).always(function () {
      setTimeout(function () {
        $("#reload-btn .fas").removeClass("fa-spin");
      }, 500);
    });
  }

  function openView(path, name, size) {
    if (PdfViewerApp) {
      var filepath = `/sohoa/taovanban/scan/${window.encodePath(`${path}/${name}`)}`;
      $("#docname").val(name);
      $("#doc-name").val(name);
      $("#doc-dir").val(path);
      $("#doc-size").text(size);
      $('#pdfViewerFrame').css('height', '100%');
      PdfViewerApp.initializedPromise.then(() => {
        PdfViewerApp.open(filepath).then(() => {
          PdfViewerApp.pdfSidebar.isOpen = false;
          PdfViewerApp.pdfSidebar.close();
        })
        window.scrollTo(0, 0);
        $("#docnumber").focus();
      })
      return;
    }
    setTimeout(() => openView(path, name, size), 100)
  }
  //Tạo thư mục
  $("#add-folder-btn").on("click", function (e) {
    Swal.fire({
      title: 'Tạo thư mục',
      text: 'Nhập tên thư mục muốn tạo',
      input: 'text',
      inputPlaceholder: 'Tên thư mục',
      showCancelButton: true,
      confirmButtonColor: '#4b9500',
      cancelButtonColor: '#cd201f',
      confirmButtonText: 'Tạo thư mục',
      cancelButtonText: 'Hủy',
      preConfirm: function (input) {
        if (input) {
          $.ajax({
            url: "/sohoa/taovanban/thumuc",
            method: "POST",
            headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
            data: {
              name: input,
              dir: $("#folderPath").val()
            }
          }).then(function (data, text, jqXHR) {
            return data;
          }, function (jqXHR, text, err) {
            $('<span/>').kendoNotification({ appendTo: '#folder-err-msg' }).data('kendoNotification').error(jqXHR.responseText);
          })
        } else { Swal.showValidationMessage('Tên thư mục rỗng') }
      }
    }).then(function (result) { $('#reload-btn').trigger('click') })
  });

  function setPagesCount(pagesNum) {
    $("#pageamount").val(`${pagesNum}`);
  }
})