updates
parent
5f4530f9ad
commit
5f3f787dcf
|
|
@ -25,6 +25,222 @@ namespace QuotationMaker.Controllers
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("addGroupUser")]
|
||||||
|
public ActionResult AddGroupUser(IFormCollection obj) {
|
||||||
|
groupUserListResult ret = new groupUserListResult();
|
||||||
|
|
||||||
|
authToken token = new authToken(this._httpContextAccessor);
|
||||||
|
if (token.user_isLogin == false)
|
||||||
|
{
|
||||||
|
HttpContext.Response.Cookies.Delete("token_key");
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "99999";
|
||||||
|
ret.message = "非登入狀態!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token.user_perm != "system")
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "90001";
|
||||||
|
ret.message = "此帳號無此api使用權限!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
string dept_uid = obj["dept_uid"].ToString();
|
||||||
|
string users_json_str = obj["users_json"].ToString();
|
||||||
|
string group_uid = obj["group_uid"].ToString();
|
||||||
|
|
||||||
|
group objGroup = conn.QueryFirstOrDefault<group>("select * from [group] where group_uid = @group_uid", new { group_uid = group_uid });
|
||||||
|
|
||||||
|
if (objGroup == null)
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0003";
|
||||||
|
ret.message = "無此group_uid的群組資料!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
dynamic usersJsonObj;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
usersJsonObj = JsonConvert.DeserializeObject(users_json_str);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0003";
|
||||||
|
ret.message = "使用者列表資料錯誤 users json error," + ex.Message;
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
string nowrite_msg = "";
|
||||||
|
int userCount = 0;
|
||||||
|
foreach (dynamic item in usersJsonObj)
|
||||||
|
{
|
||||||
|
string user_uid = item.user_uid;
|
||||||
|
string user_name = item.user_name;
|
||||||
|
groupUser chk_user = conn.QueryFirstOrDefault<groupUser>("select * from groupUser where user_uid = @user_uid and dept_uid = @dept_uid", new { user_uid = user_uid, dept_uid = dept_uid });
|
||||||
|
|
||||||
|
if (chk_user == null)
|
||||||
|
{
|
||||||
|
groupUser newGU = new groupUser();
|
||||||
|
newGU.group_uid = group_uid;
|
||||||
|
newGU.user_uid = user_uid;
|
||||||
|
newGU.groupUser_uid = GlobalClass.CreateRandomCode(16);
|
||||||
|
newGU.dept_uid = dept_uid;
|
||||||
|
conn.Insert<groupUser>(newGU);
|
||||||
|
|
||||||
|
user objUser = new user();
|
||||||
|
objUser.user_uid=user_uid;
|
||||||
|
objUser.user_name=user_name;
|
||||||
|
ret.users.Add(objUser);
|
||||||
|
userCount++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nowrite_msg += user_name + " 此用戶已經是其他群組的成員,故此員取消加入!\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ret.message = nowrite_msg;
|
||||||
|
ret.ret = "yes";
|
||||||
|
|
||||||
|
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("delGroup")]
|
||||||
|
public ActionResult DelGroup(IFormCollection obj) {
|
||||||
|
signinResult ret = new signinResult();
|
||||||
|
|
||||||
|
authToken token = new authToken(this._httpContextAccessor);
|
||||||
|
if (token.user_isLogin == false)
|
||||||
|
{
|
||||||
|
HttpContext.Response.Cookies.Delete("token_key");
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "99999";
|
||||||
|
ret.message = "非登入狀態!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token.user_perm != "system")
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "90001";
|
||||||
|
ret.message = "此帳號無此api使用權限!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string group_uid = obj["group_uid"].ToString();
|
||||||
|
|
||||||
|
group objGroup = conn.QueryFirstOrDefault<group>("select * from [group] where group_uid = @group_uid", new { group_uid = group_uid });
|
||||||
|
|
||||||
|
if (objGroup == null)
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0003";
|
||||||
|
ret.message = "無此group_uid的群組資料!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
conn.Execute("delete groupUser where group_uid = @group_uid", new { group_uid = group_uid});
|
||||||
|
conn.Delete(objGroup);
|
||||||
|
|
||||||
|
ret.ret = "yes";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("editGroupName")]
|
||||||
|
public ActionResult EditGroupName(IFormCollection obj) {
|
||||||
|
signinResult ret = new signinResult();
|
||||||
|
|
||||||
|
authToken token = new authToken(this._httpContextAccessor);
|
||||||
|
if (token.user_isLogin == false)
|
||||||
|
{
|
||||||
|
HttpContext.Response.Cookies.Delete("token_key");
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "99999";
|
||||||
|
ret.message = "非登入狀態!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token.user_perm != "system")
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "90001";
|
||||||
|
ret.message = "此帳號無此api使用權限!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
string group_name = obj["group_name"].ToString();
|
||||||
|
string group_uid = obj["group_uid"].ToString();
|
||||||
|
|
||||||
|
group objGroup = conn.QueryFirstOrDefault<group>("select * from [group] where group_uid = @group_uid", new { group_uid = group_uid });
|
||||||
|
|
||||||
|
if (objGroup == null) {
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0003";
|
||||||
|
ret.message = "無此group_uid的群組資料!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
objGroup.group_name = group_name;
|
||||||
|
|
||||||
|
conn.Update(objGroup);
|
||||||
|
|
||||||
|
ret.ret = "yes";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("delGroupUser")]
|
||||||
|
public ActionResult DelGroupUser(IFormCollection obj) {
|
||||||
|
signinResult ret = new signinResult();
|
||||||
|
|
||||||
|
authToken token = new authToken(this._httpContextAccessor);
|
||||||
|
if (token.user_isLogin == false)
|
||||||
|
{
|
||||||
|
HttpContext.Response.Cookies.Delete("token_key");
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "99999";
|
||||||
|
ret.message = "非登入狀態!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token.user_perm != "system")
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "90001";
|
||||||
|
ret.message = "此帳號無此api使用權限!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
string dept_uid = obj["dept_uid"].ToString();
|
||||||
|
string user_uid = obj["user_uid"].ToString();
|
||||||
|
string group_uid = obj["group_uid"].ToString();
|
||||||
|
|
||||||
|
groupUser objUser = conn.QueryFirstOrDefault<groupUser>("select * from groupUser where dept_uid = @dept_uid and user_uid = @user_uid and group_uid = @group_uid ", new { dept_uid = dept_uid, user_uid = user_uid, group_uid = group_uid });
|
||||||
|
|
||||||
|
if (objUser == null) {
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0002";
|
||||||
|
ret.message = "此群組無此帳號可以刪除!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
conn.Delete(objUser);
|
||||||
|
|
||||||
|
ret.ret = "yes";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
[Route("addNewGroup")]
|
[Route("addNewGroup")]
|
||||||
public ActionResult AddNewGroup(IFormCollection obj) {
|
public ActionResult AddNewGroup(IFormCollection obj) {
|
||||||
groupListResult ret = new groupListResult();
|
groupListResult ret = new groupListResult();
|
||||||
|
|
@ -176,7 +392,13 @@ namespace QuotationMaker.Controllers
|
||||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.depts = conn.Query<depts>("select * from depts order by dept_order ").ToList();
|
string sqlString = "select * from depts order by dept_order";
|
||||||
|
|
||||||
|
if (token.user_id != GlobalClass.appsettings("Admin:id")) {
|
||||||
|
sqlString = "select * from depts where dept_uid in (select dept_uid from groupUser where user_uid = '" + token.user_uid + "' ) order by dept_order ";
|
||||||
|
}
|
||||||
|
|
||||||
|
ret.depts = conn.Query<depts>(sqlString).ToList();
|
||||||
ret.ret = "yes";
|
ret.ret = "yes";
|
||||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
}
|
}
|
||||||
|
|
@ -213,7 +435,7 @@ namespace QuotationMaker.Controllers
|
||||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
}
|
}
|
||||||
|
|
||||||
List<group> groupList = conn.Query<group>("select * from group where dept_uid = @dept_uid", new { dept_uid = dept_uid}).ToList();
|
List<group> groupList = conn.Query<group>("select * from [group] where dept_uid = @dept_uid", new { dept_uid = dept_uid}).ToList();
|
||||||
|
|
||||||
foreach (group objGroup in groupList)
|
foreach (group objGroup in groupList)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,13 @@ public class resultClass
|
||||||
public List<depts> depts = new List<depts>();
|
public List<depts> depts = new List<depts>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class groupUserListResult
|
||||||
|
{
|
||||||
|
public string ret = "no";
|
||||||
|
public string err_code = "0000";
|
||||||
|
public string message = "";
|
||||||
|
public List<user> users = new List<user>();
|
||||||
|
}
|
||||||
|
|
||||||
public class groupListResult
|
public class groupListResult
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -58,36 +58,7 @@
|
||||||
<!-- grid row -->
|
<!-- grid row -->
|
||||||
<div id="group_div" class="row">
|
<div id="group_div" class="row">
|
||||||
<!-- grid column -->
|
<!-- grid column -->
|
||||||
<div class="col-lg-6">
|
|
||||||
<!-- .card -->
|
|
||||||
<div class="card card-fluid">
|
|
||||||
<!-- .nestable -->
|
|
||||||
<div class="card-header border-bottom-0 btn-group">
|
|
||||||
<div>Footer Menus</div>
|
|
||||||
<div class="dd-nodrag btn-group ml-auto">
|
|
||||||
<button class="btn btn-sm btn-secondary">Edit</button> <button class="btn btn-sm btn-secondary"><i class="far fa-trash-alt"></i></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="nestable01" class="dd" data-toggle="sortable" data-group="1" data-max-depth="0">
|
|
||||||
<!-- .dd-list -->
|
|
||||||
<ol class="dd-list">
|
|
||||||
<li class="dd-item dd-nodrag" data-id="1">
|
|
||||||
<div class="dd-handle">
|
|
||||||
<span class="dd-nodrag drag-indicator"></span>
|
|
||||||
<div> Tracking Order </div>
|
|
||||||
<div class="dd-nodrag btn-group ml-auto">
|
|
||||||
<button class="btn btn-sm btn-secondary">Edit</button> <button class="btn btn-sm btn-secondary"><i class="far fa-trash-alt"></i></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ol><!-- /.dd-list -->
|
|
||||||
</div><!-- /.nestable -->
|
|
||||||
<!-- .card-footer -->
|
|
||||||
<div class="card-footer">
|
|
||||||
<a href="#" class="card-footer-item justify-content-start"><span><i class="fa fa-plus-circle mr-1"></i> Add Menu Item</span></a>
|
|
||||||
</div><!-- /.card-footer -->
|
|
||||||
</div><!-- /.card -->
|
|
||||||
</div><!-- /grid column -->
|
|
||||||
</div><!-- / grid row -->
|
</div><!-- / grid row -->
|
||||||
</div><!-- /.page-section -->
|
</div><!-- /.page-section -->
|
||||||
</div><!-- /.page-inner -->
|
</div><!-- /.page-inner -->
|
||||||
|
|
@ -149,7 +120,7 @@
|
||||||
|
|
||||||
|
|
||||||
<!-- .modal -->
|
<!-- .modal -->
|
||||||
<form id="clientMemberForm" name="clientMemberForm">
|
<form id="clientGroupNameForm" name="clientGroupNameForm">
|
||||||
<div class="modal fade" id="memberModal" tabindex="-1" role="dialog" aria-labelledby="optionItemModalLabel" data-backdrop="static"
|
<div class="modal fade" id="memberModal" tabindex="-1" role="dialog" aria-labelledby="optionItemModalLabel" data-backdrop="static"
|
||||||
data-keyboard="false" aria-hidden="true">
|
data-keyboard="false" aria-hidden="true">
|
||||||
<!-- .modal-dialog -->
|
<!-- .modal-dialog -->
|
||||||
|
|
@ -191,4 +162,81 @@
|
||||||
</div><!-- /.modal-content -->
|
</div><!-- /.modal-content -->
|
||||||
</div><!-- /.modal-dialog -->
|
</div><!-- /.modal-dialog -->
|
||||||
</div>
|
</div>
|
||||||
|
</form><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- .modal -->
|
||||||
|
<form id="clientGroupNameEditForm" name="clientGroupNameEditForm">
|
||||||
|
<div class="modal fade" id="clientGroupNameEditModal" tabindex="-1" role="dialog" aria-labelledby="clientGroupNameEditModalLabel" data-backdrop="static"
|
||||||
|
data-keyboard="false" aria-hidden="true">
|
||||||
|
<!-- .modal-dialog -->
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<!-- .modal-content -->
|
||||||
|
<div class="modal-content">
|
||||||
|
<!-- .modal-header -->
|
||||||
|
<div class="modal-header">
|
||||||
|
<h6 id="clientGroupNameEditModalLabel" class="modal-title inline-editable">
|
||||||
|
<span class="sr-only"></span> <input type="text" class="form-control form-control-lg" value="" placeholder="修改群組名稱" required="">
|
||||||
|
</h6>
|
||||||
|
</div><!-- /.modal-header -->
|
||||||
|
<!-- .modal-body -->
|
||||||
|
<div class="modal-body">
|
||||||
|
<input type="hidden" id="client_groupname_group_uid" />
|
||||||
|
<!-- .form-group -->
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label-group">
|
||||||
|
<input type="text" id="clientGroupName" class="form-control" value="" placeholder="群組名稱"> <label for="clientGroupName">群組名稱</label>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.form-group -->
|
||||||
|
</div><!-- /.modal-body -->
|
||||||
|
<!-- .modal-footer -->
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="groupNameEditBtn" class="btn btn-primary">儲存</button> <button type="button" class="btn btn-light" data-dismiss="modal">取消</button>
|
||||||
|
</div><!-- /.modal-footer -->
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div>
|
||||||
|
</form><!-- /.modal -->
|
||||||
|
<!-- .modal -->
|
||||||
|
<form id="clientGroupNewUserForm" name="clientGroupNewUserForm">
|
||||||
|
<div class="modal fade" id="groupNewUserModal" tabindex="-1" role="dialog" aria-labelledby="groupNewUserModalLabel" data-backdrop="static"
|
||||||
|
data-keyboard="false" aria-hidden="true">
|
||||||
|
<!-- .modal-dialog -->
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<!-- .modal-content -->
|
||||||
|
<div class="modal-content">
|
||||||
|
<!-- .modal-header -->
|
||||||
|
<div class="modal-header">
|
||||||
|
<h6 id="optionItemModalLabel" class="modal-title inline-editable">
|
||||||
|
<span class="sr-only">成員列表</span> <input id="member_content" type="text" class="form-control form-control-lg" value="" placeholder="成員列表" readonly="readonly " required="">
|
||||||
|
</h6>
|
||||||
|
</div><!-- /.modal-header -->
|
||||||
|
<!-- .modal-body -->
|
||||||
|
<div class="modal-body">
|
||||||
|
<input type="hidden" id="client_group_method" />
|
||||||
|
<input type="hidden" id="client_group_group_uid" />
|
||||||
|
<input type="hidden" id="client_group_dept_uid" />
|
||||||
|
|
||||||
|
<!-- grid row -->
|
||||||
|
<div class="row">
|
||||||
|
<!-- grid column -->
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<!-- .card -->
|
||||||
|
<div class="card card-fluid">
|
||||||
|
<!-- .list-group -->
|
||||||
|
<div class="list-group list-group-flush list-group-bordered" id="lastgroup_memberlist">
|
||||||
|
<div class="list-group-header"> 勾選要加入群組的成員 </div>
|
||||||
|
<label class="list-group-item custom-control custom-checkbox mb-0"><input name="listcheckbox" type="checkbox" class="custom-control-input" checked> <span class="custom-control-label">List checkbox #1</span></label>
|
||||||
|
<label class="list-group-item custom-control custom-checkbox mb-0"><input name="listcheckbox" type="checkbox" class="custom-control-input" checked> <span class="custom-control-label">List checkbox #2</span></label>
|
||||||
|
</div><!-- /.list-group -->
|
||||||
|
</div><!-- /.card -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-body -->
|
||||||
|
<!-- .modal-footer -->
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="groupMemberAddSaveBtn" class="btn btn-primary">加入</button> <button type="button" class="btn btn-light" data-dismiss="modal">Close</button>
|
||||||
|
</div><!-- /.modal-footer -->
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div>
|
||||||
</form><!-- /.modal -->
|
</form><!-- /.modal -->
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
|
|
||||||
var tmpNestableObj;
|
var tmpNestableObj;
|
||||||
var tmpNestableItem;
|
var tmpNestableItem;
|
||||||
|
var tmpGroupNameItem;
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
deptList();
|
deptList();
|
||||||
|
|
||||||
$('#memberAddSaveBtn').on('click', function () {
|
$('#memberAddSaveBtn').on('click', function () {
|
||||||
var userArray = [];
|
var userArray = [];
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
@ -16,9 +16,9 @@ $(document).ready(function () {
|
||||||
userArray.push(item);
|
userArray.push(item);
|
||||||
html += optionItemHtml(item);
|
html += optionItemHtml(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#nestableMember .dd-list').append(html);
|
$('#nestableMember .dd-list').append(html);
|
||||||
|
|
||||||
$('#memberModal').modal('toggle');
|
$('#memberModal').modal('toggle');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -101,8 +101,110 @@ $(document).ready(function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#groupMemberAddSaveBtn').on('click', function () {
|
||||||
|
var userArray = [];
|
||||||
|
var dept_uid = $('#client_group_dept_uid').val();
|
||||||
|
var group_uid = $('#client_group_group_uid').val();
|
||||||
|
|
||||||
|
$.each($('input[type=checkbox][name="memberChkList2[]"]:checked'), function () {
|
||||||
|
var item = {
|
||||||
|
user_uid: $(this).val(),
|
||||||
|
user_name: $(this).parent().find('span').eq(0).text().trim()
|
||||||
|
}
|
||||||
|
userArray.push(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (userArray.length == 0) {
|
||||||
|
alert('沒有勾選欲加入群組的成員!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var users_json = JSON.stringify(userArray);
|
||||||
|
|
||||||
|
|
||||||
|
var formData = {
|
||||||
|
dept_uid: dept_uid,
|
||||||
|
group_uid: group_uid,
|
||||||
|
users_json: users_json
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/AuthApi/addGroupUser",
|
||||||
|
type: "post",
|
||||||
|
data: formData,
|
||||||
|
success: function (data, textStatus, jqXHR) {
|
||||||
|
if (data.ret == "yes") {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var obj = data.users;
|
||||||
|
|
||||||
|
$.each(obj, function (index, item) {
|
||||||
|
$('#' + group_uid + ' .dd-list').append(optionItemHtml(item));
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
if (data.message != '') {
|
||||||
|
alert(data.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#groupNewUserModal').modal('toggle');
|
||||||
|
} else {
|
||||||
|
alert(data.message);
|
||||||
|
|
||||||
|
if (data.err_code == "99999") {
|
||||||
|
location.href = "/Root/Login";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#groupNameEditBtn').on('click', function () {
|
||||||
|
var group_uid = $('#client_groupname_group_uid').val();
|
||||||
|
var group_name = $('#clientGroupName').val().trim();
|
||||||
|
|
||||||
|
if (group_name == '') {
|
||||||
|
alert('群組名稱不得為空白!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var formData = {
|
||||||
|
group_uid: group_uid,
|
||||||
|
group_name: group_name
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/AuthApi/editGroupName",
|
||||||
|
type: "post",
|
||||||
|
data: formData,
|
||||||
|
success: function (data, textStatus, jqXHR) {
|
||||||
|
if (data.ret == "yes") {
|
||||||
|
tmpGroupNameItem.text(group_name);
|
||||||
|
$('#clientGroupNameEditModal').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) {
|
function newMemberClick(dept_uid) {
|
||||||
var formData = {
|
var formData = {
|
||||||
dept_uid: dept_uid
|
dept_uid: dept_uid
|
||||||
|
|
@ -163,16 +265,13 @@ function groupList() {
|
||||||
data: formData,
|
data: formData,
|
||||||
success: function (data, textStatus, jqXHR) {
|
success: function (data, textStatus, jqXHR) {
|
||||||
if (data.ret == "yes") {
|
if (data.ret == "yes") {
|
||||||
$('#group_div').html('');
|
$('#group_div').children().remove();
|
||||||
|
|
||||||
var obj = data.groups;
|
var obj = data.groups;
|
||||||
var items = "";
|
var items = "";
|
||||||
$.each(obj, function (i, item) {
|
$.each(obj, function (i, item) {
|
||||||
|
$('#group_div').append(cardHtml(item));
|
||||||
|
$('#' + item.group_uid).nestable();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
|
|
@ -206,6 +305,8 @@ function deptList() {
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
groupList();
|
||||||
} else {
|
} else {
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
|
|
||||||
|
|
@ -245,7 +346,32 @@ function delMemberBtnClick(obj) {
|
||||||
if (group_uid == '') {
|
if (group_uid == '') {
|
||||||
delItem.remove();
|
delItem.remove();
|
||||||
} else {
|
} else {
|
||||||
|
var formData = {
|
||||||
|
dept_uid: $('#dept_select').val(),
|
||||||
|
group_uid: group_uid,
|
||||||
|
user_uid: user_uid
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/AuthApi/delGroupUser",
|
||||||
|
type: "post",
|
||||||
|
data: formData,
|
||||||
|
success: function (data, textStatus, jqXHR) {
|
||||||
|
if (data.ret == "yes") {
|
||||||
|
|
||||||
|
delItem.remove();
|
||||||
|
} else {
|
||||||
|
alert(data.message);
|
||||||
|
|
||||||
|
if (data.err_code == "99999") {
|
||||||
|
location.href = "/Root/Login";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -256,11 +382,11 @@ function cardHtml(groupOption) {
|
||||||
html += "<div class=\"col-lg-6\">";
|
html += "<div class=\"col-lg-6\">";
|
||||||
html += " <!-- .card -->";
|
html += " <!-- .card -->";
|
||||||
html += " <div class=\"card card-fluid\">";
|
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 class=\"card-header border-bottom-0 btn-group\" data-group-uid=\"" + groupOption.group_uid + "\"> " + groupOption.group_name + " <div class=\"dd-nodrag btn-group ml-auto\"><button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"editGroupClick(this);\"><i class=\"fas fa-pencil-alt\"></i></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 += " <div id=\"" + groupOption.group_uid + "\" class=\"dd\" data-toggle=\"sortable\" data-max-depth=\"1\" data-type=\"" + groupOption.group_uid + "\">";
|
||||||
html += " <!-- .dd-list -->";
|
html += " <!-- .dd-list -->";
|
||||||
html += " <ol class=\"dd-list\">";
|
html += " <ol class=\"dd-list\">";
|
||||||
html += " <li></li>";
|
//html += " <li></li>";
|
||||||
|
|
||||||
$.each(groupOption.users, function (index, item) {
|
$.each(groupOption.users, function (index, item) {
|
||||||
html += optionItemHtml(item);
|
html += optionItemHtml(item);
|
||||||
|
|
@ -271,10 +397,111 @@ function cardHtml(groupOption) {
|
||||||
html += " </div><!-- /.nestable -->";
|
html += " </div><!-- /.nestable -->";
|
||||||
html += " <!-- .card-footer -->";
|
html += " <!-- .card-footer -->";
|
||||||
html += " <div class=\"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 += " <a href=\"javascript: void(0);\" onclick=\"addUserItem(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-footer -->";
|
||||||
html += " </div><!-- /.card -->";
|
html += " </div><!-- /.card -->";
|
||||||
html += "</div><!-- /grid column -->";
|
html += "</div><!-- /grid column -->";
|
||||||
|
|
||||||
return html;
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
function editGroupClick(obj) {
|
||||||
|
tmpGroupNameItem = $(obj).parent().parent();
|
||||||
|
var group_name = $(obj).parent().parent().text().trim();
|
||||||
|
var grid_obj = $(obj).parent().parent().parent().parent();
|
||||||
|
var group_uid = $(obj).parent().parent().attr("data-group-uid");
|
||||||
|
|
||||||
|
$('#client_groupname_group_uid').val(group_uid);
|
||||||
|
$('#clientGroupName').val(group_name).trigger('change');
|
||||||
|
|
||||||
|
$('#clientGroupNameEditModal').modal('toggle');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function delGroupClick(obj) {
|
||||||
|
var group_name = $(obj).parent().parent().text().trim();
|
||||||
|
var grid_obj = $(obj).parent().parent().parent().parent();
|
||||||
|
var group_uid = $(obj).parent().parent().attr("data-group-uid");
|
||||||
|
|
||||||
|
if (confirm('請確認是否要刪除此群組?')) {
|
||||||
|
var formData = {
|
||||||
|
group_uid: group_uid
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/AuthApi/delGroup",
|
||||||
|
type: "post",
|
||||||
|
data: formData,
|
||||||
|
success: function (data, textStatus, jqXHR) {
|
||||||
|
if (data.ret == "yes") {
|
||||||
|
|
||||||
|
grid_obj.remove();
|
||||||
|
} else {
|
||||||
|
alert(data.message);
|
||||||
|
|
||||||
|
if (data.err_code == "99999") {
|
||||||
|
location.href = "/Root/Login";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addUserItem(obj) {
|
||||||
|
var group_uid = $(obj).attr("data-type");
|
||||||
|
tmpNestableObj = $(obj).parent().parent().parent();
|
||||||
|
|
||||||
|
$('#client_group_group_uid').val(group_uid);
|
||||||
|
$('#client_group_dept_uid').val($('#dept_select').val());
|
||||||
|
|
||||||
|
var formData = {
|
||||||
|
dept_uid: $('#dept_select').val()
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/AuthApi/noGroupUserList",
|
||||||
|
type: "post",
|
||||||
|
data: formData,
|
||||||
|
success: function (data, textStatus, jqXHR) {
|
||||||
|
if (data.ret == "yes") {
|
||||||
|
$('#lastgroup_memberlist').html('<div class="list-group-header"> 勾選要加入群組的成員 </div>');
|
||||||
|
|
||||||
|
var obj = data.userList;
|
||||||
|
var items = "";
|
||||||
|
$.each(obj, function (i, item) {
|
||||||
|
var isExist = 'N';
|
||||||
|
|
||||||
|
$.each($('#' + group_uid + ' .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="memberChkList2[]" type="checkbox" value="' + item.user_uid + '" class="custom-control-input"> <span class="custom-control-label">' + item.user_name + '</span></label>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#lastgroup_memberlist').append(items);
|
||||||
|
|
||||||
|
$('#groupNewUserModal').modal('toggle');
|
||||||
|
} else {
|
||||||
|
alert(data.message);
|
||||||
|
|
||||||
|
if (data.err_code == "99999") {
|
||||||
|
location.href = "/Root/Login";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue