var oTable;
var aPos;
$(document).ready(function () {
var dataTables = {
init: function init() {
this.bindUIActions();
},
bindUIActions: function bindUIActions() {
this.table = this.handleDataTables();
},
handleDataTables: function handleDataTables() {
return $('#myTable').DataTable({
language: {
paginate: {
previous: '',
next: ''
}
},
autoWidth: false,
ajax: {
url: 'api/usersList.ashx',
dataSrc: 'userlist'
},
rowId: 'user_uid',
deferRender: true,
initComplete: function () {
$('#myTable').on('click', 'a', function () {
buttonClick(this);
});
$('#myTable').on('change', 'input[name="selectedRow[]"]', function () {
checkboxClick(this);
});
},
columns: [{ data: 'user_name', className: 'align-middle' }, { data: 'user_id', className: 'align-middle' }, { data: 'user_email', className: 'align-middle' }, { data: 'user_lastlogin', className: 'align-middle' }, { data: 'user_uid', className: 'align-middle text-right', orderable: false, searchable: false }],
columnDefs: [{
targets: 0,
render: function render(data, type, row, meta) {
return '\n \n \n ' + row.user_name + '';
}
}, {
targets: 4,
render: function render(data, type, row, meta) {
return '\n ';
}
}]
});
}
};
dataTables.init();
function buttonClick(obj) {
$("#elab_select option").remove();
$.ajax({
url: "api/elab-userslist.ashx",
type: "POST",
data: null,
success: function (data, textStatus, jqXHR) {
if (data.ret === "yes") {
$("#elab_select").append($("").attr("value", "").text("請選擇要加入的E白板帳號... "));
$.each(data.userslist, function (i, item) {
$("#elab_select").append($("").attr("value", item.userid).text(item.username + ' (' + item.mail + ')'));
});
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('网絡或伺服器发生错误,请稍后重试!');
}
});
oTable = $('#myTable').dataTable();
var type = obj.getAttribute('data-method');
var uid = obj.getAttribute('data-uid');
aPos = oTable.fnGetPosition($('#' + uid)[0]);
$("#user_uid").val(uid);
$("#method").val(type);
if (type === 'del') {
if (confirm('確定刪除此筆資料?')) {
var formData = {
uid: uid,
method: 'delete'
};
$.ajax({
url: "api/userData.ashx",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
var row = oTable.api().row($("#" + uid)).remove().draw(false);
alert('刪除成功');
} else {
alert(data.message);
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('网絡或伺服器发生错误,请稍后重试!');
}
});
}
}
if (type === 'edit') {
var formData = {
method: 'get',
uid: uid
};
$.ajax({
url: "api/userData.ashx",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret === "yes") {
if (data.data.user_type === "N") {
$("input[name=user_type][value='N']").prop("checked", true);
$("#sys").hide();
$("#elab").show();
$("#elab_select").append($("").attr("value", data.data.user_id).text(data.data.user_name + ' (' + data.data.user_email + ')'));
$("#elab_select").val(data.data.user_id);
$("#elab_select").prop('disabled', true);
} else {
$("input[name=user_type][value='Y']").prop("checked", true);
$("#sys").show();
$("#elab").hide();
$("#sys_name").val(data.data.user_name);
$("#sys_id").val(data.data.user_id);
$("#sys_email").val(data.data.user_email);
$("#sys_pwd").val(data.data.user_pwd);
$('#sys_name').prop('readonly', true);
$('#sys_id').prop('readonly', true);
}
$("input[name=user_type]").prop("disabled", true);
$('#user_perm').val(data.data.user_perm);
$('#myModal').modal('toggle');
} else {
alert(data.message);
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('网絡或伺服器发生错误,请稍后重试!');
}
});
}
}
$('#btn-add').click(function () {
$("#elab_select option").remove();
$.ajax({
url: "api/elab-userslist.ashx",
type: "POST",
data: null,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
$("#elab_select").append($("").attr("value", "").text("請選擇要加入的E白板帳號... "));
$.each(data.userslist, function (i, item) {
$("#elab_select").append($("").attr("value", item.userid).text(item.username + ' (' + item.mail + ')'));
});
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('网絡或伺服器发生错误,请稍后重试!');
}
});
oTable = $('#myTable').dataTable();
$("#method").val("add");
$("#sys").hide();
$("input[name=user_type][value='N']").prop("checked", true);
$('#myModal').modal('toggle');
$('#sys_name').prop('readonly', false);
$('#sys_id').prop('readonly', false);
$("#elab_select").prop('disabled', false);
$("input[name=user_type]").prop("disabled", false);
$("input[name=user_type][value='Y']").prop("checked", true).trigger("change");
$("input[name=user_type][value='N']").prop("disabled", true);
$("#sys_id").val('').trigger('change');
$("#sys_pwd").val('').trigger('change');
$("#sys_email").val('').trigger('change');
});
$("#myModal").on("hidden.bs.modal", function () {
clearChildren(document.getElementById('myModal'));
$('#sys_name').prop('readonly', false);
$('#sys_id').prop('readonly', false);
$("#elab_select").prop('disabled', false);
$("input[name=user_type]").prop("disabled", false);
});
function clearChildren(element) {
for (var i = 0; i < element.childNodes.length; i++) {
var e = element.childNodes[i];
if (e.tagName) switch (e.tagName.toLowerCase()) {
case 'input':
switch (e.type) {
case "radio":
case "checkbox": e.checked = false; break;
case "button":
case "submit":
case "image": break;
default: if (e.type !== "checkbox") { e.value = ''; } break;
}
break;
case 'select': e.selectedIndex = 0; break;
case 'textarea': e.innerHTML = ''; break;
default: clearChildren(e);
}
}
$(element).children().find('textarea').each(function () {
$(this).val('');
});
$(element).children().find('select').each(function () {
$(this).prop('selectedIndex', 0);
});
}
$('input[type=radio][name=user_type]').change(function () {
if (this.value === 'N') {
$("#sys").hide();
$("#elab").show();
}
else if (this.value === 'Y') {
$("#sys").show();
$("#elab").hide();
}
});
$('#saveBtn').click(function () {
var errmsg = "";
if ($('input:radio:checked[name="user_type"]').val() === 'N' && $('select[name="elab_select"]').val() === '') {
errmsg += "請選擇要加入的E白板帳號! \n";
}
if ($('input:radio:checked[name="user_type"]').val() === 'Y' && $('#sys_name').val() === '') {
errmsg += "請輸入姓名! \n";
}
if ($('input:radio:checked[name="user_type"]').val() === 'Y' && $('#sys_id').val() === '') {
errmsg += "請輸入帳號! \n";
}
var emailRule = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]+$/;
if ($('input:radio:checked[name="user_type"]').val() === 'Y' && $('#sys_email').val().search(emailRule) === -1) {
errmsg += "請輸入正確的Email! \n";
}
if ($('input:radio:checked[name="user_type"]').val() === 'Y' && $('#sys_pwd').val() === '' && $('#method').val() === 'add') {
errmsg += "請輸入密碼! \n";
}
if ($('#user_perm').val() === "") {
errmsg += "請選擇帳號的權限! \n";
}
if (errmsg.length > 0) {
alert(errmsg);
return;
}
var method = $('#method').val();
var user_type = $('input:radio:checked[name="user_type"]').val();
var elab_select = $('select[name="elab_select"]').val();
var sys_name = $('#sys_name').val();
var sys_id = $('#sys_id').val();
var sys_email = $('#sys_email').val();
var sys_pwd = $('#sys_pwd').val();
var user_perm = $('#user_perm').val();
var user_uid = $('#user_uid').val();
var formData = {
method: method,
type: user_type,
elab_select: elab_select,
sys_name: sys_name,
sys_id: sys_id,
sys_email: sys_email,
sys_pwd: sys_pwd,
user_perm: user_perm,
uid: user_uid
};
$.ajax({
url: "api/userData.ashx",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
alert("儲存成功");
if (method == "add") {
var obj = {
'user_name': data.data.user_name,
'user_id': data.data.user_id,
'user_email': data.data.user_email,
'user_lastlogin': '尚未登入',
'user_uid': data.data.user_uid,
'user_picurl': data.data.user_picurl
}
oTable.fnAddData(obj);
$('#myModal').modal('toggle');
}
if (method === "edit") {
oTable.fnUpdate(data.data.user_email, aPos, 2);
$('#myModal').modal('toggle');
}
//if (data_method == "edit") {
// oTable.fnUpdate(data.data.class_name, aPos, 2);
// oTable.fnUpdate(data.data.classArea_name, aPos, 3);
// oTable.fnUpdate(data.data.class_credit, aPos, 4);
// oTable.fnUpdate(data.data.class_instructor, aPos, 5);
// oTable.fnUpdate(data.data.class_fee, aPos, 6);
// //oTable.fnUpdate(data.data.class_signuprange, aPos, 7);
//}
//if (data_method == "add") {
// var obj = { 'DT_RowId': data.data.DT_RowId, 'class_edit': data.data.class_edit, 'class_no': data.data.class_no, 'class_name': data.data.class_name, 'classArea_name': data.data.classArea_name, 'class_credit': data.data.class_credit, 'class_instructor': data.data.class_instructor, 'class_fee': data.data.class_fee, 'class_signuprange': data.data.class_signuprange }
// var rowIndex = oTable.fnAddData(obj);
// var val = '