function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } // DataTables Demo // ============================================================= var DataTablesResponsive = /*#__PURE__*/function () { function DataTablesResponsive() { _classCallCheck(this, DataTablesResponsive); this.init(); } _createClass(DataTablesResponsive, [{ key: "init", value: function init() { // event handlers this.table = this.table(); } }, { key: "table", value: function table() { $('#dt-responsive').DataTable({ ajax: { url: '/AuthApi/userList', type: 'POST', dataSrc: 'userList' }, rowId: 'user_uid', responsive: true, dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>\n <'table-responsive'tr>\n <'row align-items-center'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7 d-flex justify-content-end'p>>", language: { paginate: { previous: '', next: '' } }, columns: [{ data: 'user_name' }, { data: 'user_id' }, { data: 'user_type' }, { data: 'user_perm' }, { data: 'user_lastlogintime' }, { data: 'user_uid' }], columnDefs: [ { targets: 2, orderable: false, searchable: false, render: function render(data, type, row, meta) { if (row.user_type == 'N') { return 'E白板帳號'; } else { return '自建帳號'; } } }, { targets: 3, orderable: false, searchable: false, render: function render(data, type, row, meta) { if (row.user_perm == 'user') { return '一般使用者'; } else { return '系統使用者'; } } }, { targets: 5, orderable: false, searchable: false, render: function render(data, type, row, meta) { return "\n "); } } ], initComplete: function () { userTable = $('#dt-responsive').dataTable(); $('#dt-responsive').on('click', 'a', function () { buttonClick(this); }); $('#dt-responsive').on('click', 'input[name="selectedRow[]"]', function () { checkboxClick(this); }); } }); } }]); return DataTablesResponsive; }(); /** * Keep in mind that your scripts may not always be executed after the theme is completely ready, * you might need to observe the `theme:load` event to make sure your scripts are executed after the theme is ready. */ var userTable; var userRowID; var userRowPos; $(document).on('theme:init', function () { new DataTablesResponsive(); }); function buttonClick(obj) { var type = obj.getAttribute('data-method'); var uid = obj.getAttribute('data-uid'); userRowID = $('#' + uid); userRowPos = userTable.fnGetPosition($('#' + uid)[0]); if (type == "edit") { var formData = { method: 'get', user_uid: uid } $.ajax({ url: "/AuthApi/addEditGetUser", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.user; $("#method").val('edit'); $("#user_uid").val(obj.user_uid); $("#user_type").val(obj.user_type).trigger('change'); $("#user_perm").val(obj.user_perm).trigger('change'); if (obj.user_type == "N") { $("#user_elabName").val(obj.user_id).trigger('change'); } else { $("#user_name").val(obj.user_name).trigger('change'); $("#user_id").val(obj.user_id).trigger('change'); $("#user_email").val(obj.user_email).trigger('change'); } $("input:checkbox[name='dept[]']").prop('checked', false); $.each(obj.Depts, function (key, value) { $("input:checkbox[name='dept[]'][value='" + value.dept_uid + "']").prop('checked', true); }); modalStatus("Y"); $('#clientNewModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } if (type == "del") { if (confirm('確定刪除此筆資料?')) { var formData = { method: 'del', user_uid: uid } $.ajax({ url: "/AuthApi/addEditGetUser", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var row = userTable.api().row(userRowID).remove().draw(false); alert('刪除成功'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } } } function modalStatus(readonly) { if (readonly == "Y") { $("#user_type").prop("disabled", true); $("#user_elabName").prop("disabled", true); $("#user_id").prop("readonly", true); } else { $("#user_type").prop("disabled", false); $("#user_elabName").prop("disabled", false); $("#user_id").prop("readonly", false); } } $(document).ready(function () { loadElabList(); userTypeStatus(); loadDept(); $("#saveBtn").on('click', function () { var user_uid = $("#user_uid").val(); var user_type = $("#user_type").val(); var method = $("#method").val(); var user_id = $("#user_id").val(); var user_elabName = $("#user_elabName").val(); var user_name = $("#user_name").val(); var user_pwd = $("#user_pwd").val(); var user_chkpwd = $("#user_chkpwd").val(); var user_email = $("#user_email").val(); var user_perm = $("#user_perm").val(); var user_depts = ""; $.each($('input[name="dept[]"]:checked'), function () { user_depts = user_depts + $(this).val() + ","; }); var err_msg = ""; if (user_type == "N") { if ($("#user_elabName").val() == "") { err_msg += "請選擇要加入系統用戶的E白板帳號!\n"; } } else { if (user_id == "") { err_msg += "請輸入帳號!\n"; } if (user_name == "") { err_msg += "請輸入使用者名稱!\n"; } if (user_email.isEmail == false) { err_msg += "請輸入正確的Email!\n"; } if (method == "add") { if (user_pwd == "") { err_msg += "請輸入密碼!\n"; } } if (user_pwd != user_chkpwd) { err_msg += "請確認兩次密碼是否輸入正確!\n"; } if (method == "edit" && user_pwd == "") { user_pwd = ""; } else { user_pwd = sha256_digest(user_pwd); } } if (user_perm == "") { err_msg += "請選擇此使用者的使用權限!\n"; } if (user_depts == "") { err_msg += "請勾選所屬單位!\n"; } if (err_msg != "") { alert(err_msg); return; } var formData = { user_uid: user_uid, user_type: user_type, method: method, user_id: user_id, user_elabName: user_elabName, user_name: user_name, user_email: user_email, user_pwd: user_pwd, user_perm: user_perm, user_depts: user_depts } $.ajax({ url: "/AuthApi/AddEditGetUser", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.user; if (method == "add") { userTable.fnAddData(obj); alert("新增完成"); } if (method == "edit") { userTable.fnUpdate(obj, userRowPos); alert("修改完成"); } $('#clientNewModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); }); $("#user_type").on('change', function () { userTypeStatus(); }); $('#userNewModal').on('click', function () { $('#method').val('add'); $("input:checkbox[name='dept[]']").prop('checked', false); modalStatus("N"); $('#clientNewModal').modal('toggle'); }); function userTypeStatus() { var user_type = $("#user_type").val(); if (user_type == "Y") { $("#user_elab_div").hide(); $("#user_name_div").show(); $("#user_id_div").show(); $("#user_pwd_div").show(); $("#user_chkpwd_div").show(); $("#user_email_div").show(); } else { $("#user_elab_div").show(); $("#user_name_div").hide(); $("#user_id_div").hide(); $("#user_pwd_div").hide(); $("#user_chkpwd_div").hide(); $("#user_email_div").hide(); } } function loadElabList() { $("#user_elabName") .find("option") .remove() .end() .append(" Choose... "); $.ajax({ url: "/AuthApi/elab_UserList", type: "post", data: {}, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { $.each(data.userList, function (i, item) { $("#user_elabName").append($("", { value: item.userid, text: item.username + " (" + item.mail +")" })); }); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } }); function loadDept() { $.ajax({ url: "/AuthApi/authDeptList", type: "post", data: null, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.depts; var items = ""; $.each(obj, function (i, item) { items += optionItemHtml(item); }); items = "所屬單位" + items; $('#user_dept_div').children().first().html(items); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function optionItemHtml(item) { var html = ""; html += ""; html += " " + item.dept_name + ""; html += ""; return html; }