1
0
Fork 0
QuotationMaker/wwwroot/assets/javascript/custom/grouplist.js

280 lines
9.5 KiB
JavaScript

var tmpNestableObj;
var tmpNestableItem;
$(document).ready(function () {
deptList();
$('#memberAddSaveBtn').on('click', function () {
var userArray = [];
var html = '';
$.each($('input[type=checkbox][name="memberChkList[]"]:checked'), function () {
var item = {
user_uid: $(this).val(),
user_name: $(this).parent().find('span').eq(0).text().trim()
}
userArray.push(item);
html += optionItemHtml(item);
});
$('#nestableMember .dd-list').append(html);
$('#memberModal').modal('toggle');
});
$('#groupNewModal').on('click', function () {
$('#group_method').val('add');
$('#dept_uid').val($('#dept_select').val());
$('#nestableMember .dd-list').children().remove();
//$('#nestableMember').nestable();
$('#groupModal').modal('toggle');
});
$('#groupDialogSaveBtn').on('click', function () {
var method = $('#group_method').val();
var group_uid = $('#group_uid').val();
var dept_uid = $('#dept_uid').val();
var group_name = $('#group_name').val();
var userArray = [];
if (group_name == '') {
alert('請輸入群組名稱!');
return;
}
$.each($('#nestableMember .dd-list li'), function () {
var tmp_uid = $(this).attr('data-user-uid');
var tmp_name = $(this).find("[data-name='option_name']").text();
var item = {
user_uid: tmp_uid,
user_name: tmp_name
}
userArray.push(item);
});
if (userArray.length == 0) {
alert('群組內至少需要一名成員!');
return;
}
var users_json = JSON.stringify(userArray);
var formData = {
dept_uid: dept_uid,
group_name: group_name,
users_json: users_json
}
$.ajax({
url: "/AuthApi/addNewGroup",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
var obj = data.groups;
$.each(obj, function (index, item) {
$('#group_div').append(cardHtml(item));
$('#' + item.group_uid).nestable();
//$('#' + item.optionItem_uid).on('change', function () {
// nestableChange(this);
//});
});
if (data.message != '') {
alert(data.message);
}
$('#groupModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
});
});
function newMemberClick(dept_uid) {
var formData = {
dept_uid: dept_uid
}
$.ajax({
url: "/AuthApi/noGroupUserList",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
$('#nogroup_memberlist').html('<div class="list-group-header"> 勾選要加入群組的成員 </div>');
var obj = data.userList;
var items = "";
$.each(obj, function (i, item) {
var isExist = 'N';
$.each($('#nestableMember .dd-list li'), function () {
var tmp_uid = $(this).attr('data-user-uid');
if (tmp_uid == item.user_uid) {
isExist = 'Y';
}
});
if (isExist == 'N') {
items += '<label class="list-group-item custom-control custom-checkbox mb-0"><input id="chk_' + item.user_uid + '" name="memberChkList[]" type="checkbox" value="' + item.user_uid + '" class="custom-control-input"> <span class="custom-control-label">' + item.user_name + '</span></label>';
}
});
$('#nogroup_memberlist').append(items);
$('#memberModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
function groupList() {
var dept_uid = $('#dept_select').val();
var formData = {
dept_uid: dept_uid
}
$.ajax({
url: "/AuthApi/groupList",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
$('#group_div').html('');
var obj = data.groups;
var items = "";
$.each(obj, function (i, item) {
});
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
function deptList() {
$.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) {
$("#dept_select").append($("<option>", {
value: item.dept_uid,
text: item.dept_name
}));
});
} 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 += '<li class="dd-item dd-nodrag" data-name="user_item" data-id="1" data-user-uid="'+ item.user_uid +'">';
html += ' <div class="dd-handle">';
html += ' <span class="dd-nodrag drag-indicator"></span>';
html += ' <div data-name="option_name"> ' + item.user_name + ' </div>';
html += ' <div class="dd-nodrag btn-group ml-auto">';
html += ' <button type="button" class="btn btn-sm btn-secondary" onclick="delMemberBtnClick(this);"><i class="far fa-trash-alt"></i></button>';
html += ' </div>';
html += ' </div>';
html += '</li > ';
return html;
}
function delMemberBtnClick(obj) {
if (confirm('再次確認要移除此成員?')) {
tmpNestableItem = $(obj).parent().parent().find("[data-name='option_name']");
var optionItem_name = $(obj).parent().parent().find("[data-name='option_name']").text();
var user_uid = $(obj).parent().parent().parent().attr("data-user-uid");
var group_uid = $(obj).parent().parent().parent().parent().parent().attr("data-type");
delItem = $(obj).parent().parent().parent();
if (group_uid == '') {
delItem.remove();
} else {
}
}
}
function cardHtml(groupOption) {
var html = "";
html += "<!-- grid column -->";
html += "<div class=\"col-lg-6\">";
html += " <!-- .card -->";
html += " <div class=\"card card-fluid\">";
html += " <div class=\"card-header border-bottom-0 btn-group\"> " + groupOption.group_name + " <div class=\"dd-nodrag btn-group ml-auto\"><button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"editGroupClick(this);\">Edit</button> <button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"delGroupClick(this);\"><i class=\"far fa-trash-alt\"></i></button></div></div><!-- .nestable -->";
html += " <div id=\"" + groupOption.group_uid + "\" class=\"dd\" data-toggle=\"sortable\" data-max-depth=\"1\" data-type=\"" + groupOption.group_uid + "\">";
html += " <!-- .dd-list -->";
html += " <ol class=\"dd-list\">";
html += " <li></li>";
$.each(groupOption.users, function (index, item) {
html += optionItemHtml(item);
});
html += " </ol><!-- /.dd-list -->";
html += " </div><!-- /.nestable -->";
html += " <!-- .card-footer -->";
html += " <div class=\"card-footer\">";
html += " <a href=\"javascript: void(0);\" onclick=\"addItem(this)\" data-type=\"" + groupOption.group_uid + "\" class=\"card-footer-item justify-content-start\"><span><i class=\"fa fa-plus-circle mr-1\"></i> 新增成員 </span></a>";
html += " </div><!-- /.card-footer -->";
html += " </div><!-- /.card -->";
html += "</div><!-- /grid column -->";
return html;
}