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');
}
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();
$("#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 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 (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
}
$.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');
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("");
$.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($("