var folder = folder || "";
function safeAlert(title, text, type) {
if (typeof Swal !== 'undefined') {
if(type === 'toast') {
Swal.fire({ icon: 'success', title: title, toast: true, position: 'top-end', showConfirmButton: false, timer: 1500 });
} else {
Swal.fire(title, text, type);
}
} else {
alert(title + "\n" + (text || ""));
}
}
function safeConfirm(title, text, callback) {
if (typeof Swal !== 'undefined') {
Swal.fire({
title: title, text: text, icon: 'warning', showCancelButton: true,
confirmButtonColor: '#d33', cancelButtonColor: '#858796',
confirmButtonText: 'ตกลง', cancelButtonText: 'ยกเลิก'
}).then((result) => {
if (result.isConfirmed) callback();
});
} else {
if (confirm(title + "\n" + text)) callback();
}
}
function show_data(page) {
if (page == null) page = $("#page").val() || 1;
else $("#page").val(page);
$("#show_data").empty();
let param = new FormData(document.getElementById("frm-search"));
param.append("page", page);
param.append("qpage", $("#qpage").val());
param.append("form_action", "6");
$.ajax({
url: folder + "db.php",
type: "POST",
data: param,
processData: false,
contentType: false,
success: function (data) {
try {
let obj = jQuery.parseJSON(data.trim());
$("#show_state").html(obj["pagination"].state);
pagination(obj["pagination"].max_loop, page);
let x = (page == 1) ? 1 : (page - 1) * $("#qpage").val() + 1;
let da = "";
$.each(obj, function (i) {
if (i !== "pagination") {
let isApproved = (obj[i].status === 'true' || obj[i].status === true);
let status_btn = isApproved
? ``
: ``;
let fName = obj[i].firstName || "";
let lName = obj[i].lastName || "";
let fullName = `${fName} ${lName}`.replace(/"/g, '"').replace(/'/g, ''');
let workGroup = obj[i].workGroup || "";
let groupName = obj[i].group_name || "-";
let userName = obj[i].userName || "";
let userId = obj[i].id;
da += `
| ${x} |
${fullName} |
${userName} |
${groupName} |
${status_btn} |
|
`;
x++;
}
});
$("#show_data").html(da);
} catch (e) {
console.log("JSON Error: ", data);
}
}
});
}
// ---------------- ฟังก์ชันต่างๆ ----------------
// เปิดฟอร์มเพิ่มผู้ใช้งาน (แก้ให้ส่งผ่าน FormData แล้วครับ)
function add_user() {
$("#frm-add-user")[0].reset();
let param = new FormData();
param.append("form_action", "get_groups");
$.ajax({
url: folder + "db.php",
type: "POST",
data: param,
processData: false,
contentType: false,
success: function (data) {
try {
let groups = jQuery.parseJSON(data.trim());
$("#add_workGroup").empty().append('');
$.each(groups, function(i, v) {
$("#add_workGroup").append('');
});
$("#add_user_modal").modal("show");
} catch(e) {
safeAlert("ข้อผิดพลาด", "ไม่สามารถดึงข้อมูลกลุ่มงานได้", "error");
}
}
});
}
// ลบผู้ใช้งาน
function delete_user(id) {
safeConfirm("ยืนยันการลบผู้ใช้งาน?", "หากลบแล้วจะไม่สามารถกู้คืนได้!", function() {
let param = new FormData();
param.append("id", id);
param.append("form_action", "delete_user");
$.ajax({
url: folder + "db.php", type: "POST", data: param, processData: false, contentType: false,
success: function (data) {
if(data.indexOf("0") > -1 || data.trim() === "") {
safeAlert("สำเร็จ!", "ลบข้อมูลผู้ใช้งานเรียบร้อยแล้ว", "success");
show_data();
} else {
safeAlert("ข้อผิดพลาด", data, "error");
}
}
});
});
}
function reset_pw(id) {
safeConfirm("ยืนยันการรีเซ็ตรหัสผ่าน?", "รหัสผ่านจะถูกเปลี่ยนเป็น 1234567890", function() {
let param = new FormData();
param.append("id", id);
param.append("form_action", "reset_pw");
$.ajax({
url: folder + "db.php", type: "POST", data: param, processData: false, contentType: false,
success: function (data) {
if(data.indexOf("0") > -1 || data.trim() === "") {
safeAlert("สำเร็จ!", "รีเซ็ตรหัสผ่านเรียบร้อยแล้ว", "success");
show_data();
} else {
safeAlert("ข้อผิดพลาด", data, "error");
}
}
});
});
}
function update_status(id, new_status) {
let param = new FormData();
param.append("id", id);
param.append("status", new_status);
param.append("form_action", "update_status");
$.ajax({
url: folder + "db.php", type: "POST", data: param, processData: false, contentType: false,
success: function (data) {
if(data.indexOf("0") > -1 || data.trim() === "") {
safeAlert("อัปเดตสถานะสำเร็จ", "", "toast");
show_data();
} else {
safeAlert("ข้อผิดพลาด", "ไม่สามารถอัปเดตได้", "error");
}
}
});
}
function edit_group(element, id, group_id) {
let name = $(element).attr("data-name");
$("#user_id").val(id);
$("#display_name").val(name);
let param = new FormData();
param.append("form_action", "get_groups");
$.ajax({
url: folder + "db.php", type: "POST", data: param, processData: false, contentType: false,
success: function (data) {
try {
let groups = jQuery.parseJSON(data.trim());
$("#workGroup").empty().append('');
$.each(groups, function(i, v) {
let sel = (i == group_id) ? "selected" : "";
$("#workGroup").append('');
});
$("#user_modal").modal("show");
} catch(e) {
safeAlert("ข้อผิดพลาด", "ไม่สามารถดึงข้อมูลกลุ่มงานได้", "error");
}
}
});
}
function pagination(max_page, page) {
$("#pagination").empty();
if (max_page > 1) {
for(let i=1; i<=max_page; i++) {
let active = (i == page) ? "active" : "";
$("#pagination").append(''+i+'');
}
}
}
$(function () {
show_data(1);
// บันทึกเปลี่ยนกลุ่มงาน
$(document).on("submit", "#frm-user-group", function(e) {
e.preventDefault();
let param = new FormData(this);
$.ajax({
url: folder + "db.php", type: "POST", data: param, processData: false, contentType: false,
success: function(data) {
if(data.indexOf("0") > -1 || data.trim() === "") {
$("#user_modal").modal("hide");
safeAlert("สำเร็จ", "เปลี่ยนกลุ่มงานเรียบร้อยแล้ว", "success");
show_data();
} else {
safeAlert("ข้อผิดพลาด", data, "error");
}
}
});
});
// บันทึกเพิ่มผู้ใช้งานใหม่
$(document).on("submit", "#frm-add-user", function(e) {
e.preventDefault();
let param = new FormData(this);
$.ajax({
url: folder + "db.php",
type: "POST",
data: param,
processData: false,
contentType: false,
success: function(data) {
// บังคับว่าต้องตอบกลับมาเป็น 0 เท่านั้นถึงจะแปลว่าสำเร็จจริง
if(data.trim() === "0") {
$("#add_user_modal").modal("hide");
safeAlert("สำเร็จ", "เพิ่มผู้ใช้งานใหม่เรียบร้อยแล้ว", "success");
show_data(1);
} else {
// ถ้าไม่สำเร็จ ให้เอาข้อความ Error จาก PHP มาโชว์เลย จะได้รู้สาเหตุ
safeAlert("บันทึกไม่สำเร็จ", data, "error");
}
},
error: function() {
safeAlert("ข้อผิดพลาด", "ไม่สามารถเชื่อมต่อฐานข้อมูลได้", "error");
}
});
});
});