Commit af852a90 authored by DESKTOP-KIP9E0Q\jason's avatar DESKTOP-KIP9E0Q\jason

1.刪除mask

2.編輯mask, 修正js
3.user list 當switch完成在顯示table
4.移除欄位使用者
parent 4eecaac7
...@@ -774,298 +774,60 @@ namespace backstage.Controllers ...@@ -774,298 +774,60 @@ namespace backstage.Controllers
string token = User.FindFirstValue("token"); string token = User.FindFirstValue("token");
//檢查user_id是否存在 //檢查user_id是否存在
var url = _config["IP"] + "/user/list"; var url = _config["IP"] + "/v2/vault";
var httpMethod = HttpMethod.Post; var httpMethod = HttpMethod.Post;
var types = new[] { "all" };
var types_data = new { inc = types }; var data = new[]{ new {
action="DEL",
id=user_id,
field_id
} };
var parameters = new Dictionary<string, string> var parameters = new Dictionary<string, string>
{ {
{ "token", token }, { "id", vault_id.ToString() },
{ "types", JsonConvert.SerializeObject(types_data)}, { "data", JsonConvert.SerializeObject(data)},
{ "email","1"}, { "info","USERS"},
{ "phone","1"} { "Merchant_id",Merchant_id.ToString()}
}; };
var apiResult = await _callApi.CallAPI(url, parameters, httpMethod); var apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess) if (apiResult.IsSuccess)
{ {
var UserResponse = JsonConvert.DeserializeObject<UserResponse>(apiResult.Data.ToString()); var Response = JsonConvert.DeserializeObject<Response>(apiResult.Data.ToString());
if (UserResponse.userCount > 0) if (Response.r == 0)
{
var existUser = UserResponse.Users.Where(u => u.uid == user_id).FirstOrDefault();
if (existUser == null)
{
switch (_currentLanguage)
{
case "en":
msg = "User_id is not exist.";
break;
case "zh":
msg = "user_id不存在";
break;
default:
msg = "user_id不存在";
break;
}
result.IsSuccess = false;
result.Message = msg;
return result;
}
}
else
{
switch (_currentLanguage)
{
case "en":
msg = "User_id is not exist.";
break;
case "zh":
msg = "user_id不存在";
break;
default:
msg = "user_id不存在";
break;
}
result.IsSuccess = false;
result.Message = msg;
return result;
}
}
else
{
switch (_currentLanguage)
{
case "en":
msg = "Check field_id failed.";
break;
case "zh":
msg = "檢查field_id失敗";
break;
default:
msg = "檢查field_id失敗";
break;
}
result.IsSuccess = false;
result.Message = msg;
return result;
}
//檢查merchant_id是否存在
url = _config["IP"] + "/merchant/list";
httpMethod = HttpMethod.Post;
parameters = new Dictionary<string, string>
{
{ "token", token },
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
var DepartmentsResponse = JsonConvert.DeserializeObject<DepartmentsResponse>(apiResult.Data.ToString());
if (DepartmentsResponse.count > 0)
{
var existDepartment = DepartmentsResponse.merchants.Where(m => m.merchant_id == Merchant_id).FirstOrDefault();
if (existDepartment == null)
{
switch (_currentLanguage)
{
case "en":
msg = "Merchant_id is not exist.";
break;
case "zh":
msg = "merchant_id不存在";
break;
default:
msg = "merchant_id不存在";
break;
}
result.IsSuccess = false;
result.Message = msg;
return result;
}
}
else
{
result.IsSuccess = false;
result.Message = "merchant_id不存在";
return result;
}
}
else
{ {
switch (_currentLanguage) switch (_currentLanguage)
{ {
case "en": case "en":
msg = "User_id is not exist."; msg = "Remove user success.";
break; break;
case "zh": case "zh":
msg = "檢查merchant_id失敗"; msg = "移除使用者成功";
break; break;
default: default:
msg = "檢查merchant_id失敗"; msg = "移除使用者成功";
break; break;
} }
result.IsSuccess = false; result.IsSuccess = true;
result.Message = msg; result.Message = msg;
return result; return result;
}
//檢查field_id是否存在
url = _config["IP"] + "/v2/vault/get";
httpMethod = HttpMethod.Post;
parameters = new Dictionary<string, string>
{
{ "Merchant_id", Merchant_id.ToString() },
{ "id", vault_id.ToString() },
{ "info", "FIELDS" },
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
var FieldsResponse = JsonConvert.DeserializeObject<FieldsResponse>(apiResult.Data.ToString());
if (FieldsResponse.fields.Count > 0)
{
var existField = FieldsResponse.fields.Where(m => m.id == field_id).FirstOrDefault();
if (existField == null)
{
result.IsSuccess = false;
result.Message = "field_id不存在";
}
} }
else else
{ {
result.IsSuccess = false;
result.Message = "field_id不存在";
}
}
else
{
result.IsSuccess = false; result.IsSuccess = false;
result.Message = "檢查field_id失敗"; result.Message = Response.m.ToString();
return result;
}
//加入部門
url = _config["IP"] + "/merchant/adduser";
httpMethod = HttpMethod.Post;
var data = new[]
{
new {
userId = user_id.ToString(),
merchantId = Merchant_id.ToString()
}
};
parameters = new Dictionary<string, string>
{
{ "token", token},
{ "data", JsonConvert.SerializeObject(data)}
//{ "data", """userId"":""1"",""merchantId"":""1""")
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (!apiResult.IsSuccess)
{
var departmentResponse = JsonConvert.DeserializeObject<DepartmentsResponse>(apiResult.Data.ToString());
if (departmentResponse.r != 0)
{
result.IsSuccess = false;
result.Message = "加入部門失敗" + apiResult.Data.ToString();
return result;
}
}
//加入vault
var TokenVaultResponse = new TokenVaultResponse();
url = _config["IP"] + "/merchant/vault/access";
httpMethod = HttpMethod.Post;
parameters = new Dictionary<string, string>
{
{ "token", token},
{ "vault_id", vault_id.ToString()},
{ "access_code", "31"},
{ "merchant_id", Merchant_id.ToString()},
{ "user_id", user_id.ToString()},
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (!apiResult.IsSuccess)
{
result.IsSuccess = false;
result.Message = "加入vault失敗";
return result; return result;
} }
//加入欄位
var FieldsResponse2 = new FieldsResponse();
url = _config["IP"] + "/v2/vault";
httpMethod = HttpMethod.Post;
var addUserToField_data = new[]
{
new
{
action = "ADD",
id = user_id,
field_id = field_id,
allow_decrypt = "1",
allow_new = "1",
allow_update = "1",
allow_del = "1",
default_mask_id = "1"
}
};
parameters = new Dictionary<string, string>
{
{ "id", vault_id.ToString()},
{ "info", "USERS"},
{ "Merchant_id", Merchant_id.ToString()},
{ "data", JsonConvert.SerializeObject(addUserToField_data)},
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
FieldsResponse2 = JsonConvert.DeserializeObject<FieldsResponse>(apiResult.Data.ToString());
if (FieldsResponse2.failInfo != null)
{
result.IsSuccess = false;
result.Message = "加入Fields失敗" + FieldsResponse2.m;
return result;
} }
else else
{ {
result.IsSuccess = true;
result.Message = "加入Fields成功";
return result;
}
}
else
{
result.IsSuccess = false; result.IsSuccess = false;
result.Message = "加入Fields失敗" + apiResult.Data.ToString(); result.Message = apiResult.Message;
return result; return result;
} }
...@@ -1273,24 +1035,38 @@ namespace backstage.Controllers ...@@ -1273,24 +1035,38 @@ namespace backstage.Controllers
} }
} }
//新增MASK ajax //新增or編輯 MASK ajax
[Authorize(Policy = "AdminOnly")] [Authorize(Policy = "AdminOnly")]
[HttpPost] [HttpPost]
public async Task<ResultModel> CreateMask(IFormCollection form) public async Task<ResultModel> CreateMask(IFormCollection form)
{ {
var result = new ResultModel(); var result = new ResultModel();
string msg;
//判斷非null就是編輯 反之新增
var mask_id = (form.ContainsKey("mask_id") && Convert.ToInt32(form["mask_id"]) != 0) ? Convert.ToInt32(form["mask_id"]) : (int?)null;
try try
{ {
var url = _config["IP"] + "/v2/vault"; var url = _config["IP"] + "/v2/vault";
if (string.IsNullOrEmpty(form["name"])) if (string.IsNullOrEmpty(form["name"]))
{
switch (_currentLanguage)
{ {
case "en":
msg = "Name is empty.";
break;
case "zh":
msg = "名稱不能為空";
break;
default:
msg = "名稱不能為空";
break;
}
result.IsSuccess = false; result.IsSuccess = false;
result.Message = "名稱不能為空"; result.Message = msg;
return result; return result;
} }
...@@ -1306,18 +1082,28 @@ namespace backstage.Controllers ...@@ -1306,18 +1082,28 @@ namespace backstage.Controllers
size_end = GetValidIntegerValue(form["size_end"]), size_end = GetValidIntegerValue(form["size_end"]),
}; };
string action = "ADD";
if (mask_id != null)
{
action = "MOD";
}
var fieldData = new[] var fieldData = new[]
{ {
new new
{ {
action = "ADD", action = action,
field_id=Convert.ToInt32(form["field_id"]), field_id=Convert.ToInt32(form["field_id"]),
name=form["name"].ToString(), name=form["name"].ToString(),
type = Convert.ToInt32(form["type"]), type = Convert.ToInt32(form["type"]),
setting = System.Text.Json.JsonSerializer.Serialize(setting) setting = System.Text.Json.JsonSerializer.Serialize(setting),
//編輯功能 mask_id要帶上
id = (form.ContainsKey("mask_id") && Convert.ToInt32(form["mask_id"]) != 0) ? Convert.ToInt32(form["mask_id"]) : (int?)null
} }
}; };
string namstext = form["name"]; string namstext = form["name"];
var parameters = new Dictionary<string, string> var parameters = new Dictionary<string, string>
...@@ -1336,8 +1122,22 @@ namespace backstage.Controllers ...@@ -1336,8 +1122,22 @@ namespace backstage.Controllers
{ {
if (Response.failInfo == null) if (Response.failInfo == null)
{ {
switch (_currentLanguage)
{
case "en":
msg = "Create mask success.";
break;
case "zh":
msg = "新增遮罩成功";
break;
default:
msg = "新增遮罩成功";
break;
}
result.IsSuccess = true; result.IsSuccess = true;
result.Message = "Create success"; result.Message = msg;
return result; return result;
} }
...@@ -1381,6 +1181,72 @@ namespace backstage.Controllers ...@@ -1381,6 +1181,72 @@ namespace backstage.Controllers
public async Task<ResultModel> DeleteMask(int merchant_id, int vault_id, int mask_id) public async Task<ResultModel> DeleteMask(int merchant_id, int vault_id, int mask_id)
{ {
var result = new ResultModel(); var result = new ResultModel();
string msg;
#region key/list
var url = _config["IP"] + "/v2/vault";
var httpMethod = HttpMethod.Post;
var data = new[]{
new {
action="DEL",
id=mask_id
}
};
var parameters = new Dictionary<string, string>
{
{ "id",vault_id.ToString()},
{ "Merchant_id",merchant_id.ToString()},
{ "info","MASKS"},
{ "data",JsonConvert.SerializeObject(data)}
};
var apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
try
{
var Response = JsonConvert.DeserializeObject<Response>(apiResult.Data.ToString());
if (Response.failInfo == null)
{
switch (_currentLanguage)
{
case "en":
msg = "Delete mask success.";
break;
case "zh":
msg = "遮罩刪除成功";
break;
default:
msg = "遮罩刪除成功";
break;
}
result.IsSuccess = true;
result.Message = msg;
return result;
}
else
{
result.IsSuccess = false;
result.Message = System.Text.RegularExpressions.Regex.Unescape(string.Join(", ", Response.failInfo));
return result;
}
}
catch (Exception e)
{
result.IsSuccess = false;
result.Message = e.Message + e.InnerException?.Message;
return result;
}
}
result.IsSuccess = false;
result.Message = apiResult.Message;
return result;
#endregion
......
...@@ -135,6 +135,9 @@ ...@@ -135,6 +135,9 @@
<data name="Allow update" xml:space="preserve"> <data name="Allow update" xml:space="preserve">
<value>允許更新</value> <value>允許更新</value>
</data> </data>
<data name="Are you sure you want to delete the mask?" xml:space="preserve">
<value>是否確定要刪除遮罩?</value>
</data>
<data name="Choose department" xml:space="preserve"> <data name="Choose department" xml:space="preserve">
<value>選擇部門</value> <value>選擇部門</value>
</data> </data>
...@@ -153,6 +156,9 @@ ...@@ -153,6 +156,9 @@
<data name="Data Mask" xml:space="preserve"> <data name="Data Mask" xml:space="preserve">
<value>遮罩</value> <value>遮罩</value>
</data> </data>
<data name="Data mask list" xml:space="preserve">
<value>資料遮罩列表</value>
</data>
<data name="Data Token Vault" xml:space="preserve"> <data name="Data Token Vault" xml:space="preserve">
<value>資料代碼保險庫</value> <value>資料代碼保險庫</value>
</data> </data>
...@@ -162,6 +168,9 @@ ...@@ -162,6 +168,9 @@
<data name="Delete" xml:space="preserve"> <data name="Delete" xml:space="preserve">
<value>刪除</value> <value>刪除</value>
</data> </data>
<data name="Delete mask" xml:space="preserve">
<value>刪除遮罩</value>
</data>
<data name="Description" xml:space="preserve"> <data name="Description" xml:space="preserve">
<value>描述</value> <value>描述</value>
</data> </data>
...@@ -189,12 +198,21 @@ ...@@ -189,12 +198,21 @@
<data name="Name" xml:space="preserve"> <data name="Name" xml:space="preserve">
<value>名稱</value> <value>名稱</value>
</data> </data>
<data name="No" xml:space="preserve">
<value></value>
</data>
<data name="Number of codes" xml:space="preserve"> <data name="Number of codes" xml:space="preserve">
<value>代碼數量</value> <value>代碼數量</value>
</data> </data>
<data name="Number of users" xml:space="preserve"> <data name="Number of users" xml:space="preserve">
<value>使用者數量</value> <value>使用者數量</value>
</data> </data>
<data name="Please choose a mask (single choice)" xml:space="preserve">
<value>請選擇遮罩(單選)</value>
</data>
<data name="Please select the mask type (single choice)" xml:space="preserve">
<value>請選擇遮罩種類(單選)</value>
</data>
<data name="Remove User" xml:space="preserve"> <data name="Remove User" xml:space="preserve">
<value>移除使用者</value> <value>移除使用者</value>
</data> </data>
...@@ -204,6 +222,9 @@ ...@@ -204,6 +222,9 @@
<data name="Select user" xml:space="preserve"> <data name="Select user" xml:space="preserve">
<value>新增用戶</value> <value>新增用戶</value>
</data> </data>
<data name="Send out" xml:space="preserve">
<value>送出</value>
</data>
<data name="Serial number" xml:space="preserve"> <data name="Serial number" xml:space="preserve">
<value>編號</value> <value>編號</value>
</data> </data>
...@@ -219,6 +240,9 @@ ...@@ -219,6 +240,9 @@
<data name="Tpye" xml:space="preserve"> <data name="Tpye" xml:space="preserve">
<value>種類</value> <value>種類</value>
</data> </data>
<data name="Type" xml:space="preserve">
<value>種類</value>
</data>
<data name="Username" xml:space="preserve"> <data name="Username" xml:space="preserve">
<value>用戶名</value> <value>用戶名</value>
</data> </data>
...@@ -228,4 +252,7 @@ ...@@ -228,4 +252,7 @@
<data name="Vault" xml:space="preserve"> <data name="Vault" xml:space="preserve">
<value>保險庫</value> <value>保險庫</value>
</data> </data>
<data name="Yes" xml:space="preserve">
<value></value>
</data>
</root> </root>
\ No newline at end of file
...@@ -91,9 +91,9 @@ ...@@ -91,9 +91,9 @@
<div> <div>
<div class="rank-table"> <div class="rank-table">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped expense-color"> <table class="table table-striped ">
<thead> <thead>
<tr class="expense-color"> <tr class="">
<th>@Localizer["Serial number"]</th> <th>@Localizer["Serial number"]</th>
<th>@Localizer["Name"]</th> <th>@Localizer["Name"]</th>
<th>@Localizer["Description"]</th> <th>@Localizer["Description"]</th>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
{ {
@foreach (var i in Model.fields) @foreach (var i in Model.fields)
{ {
<tr id="@i.id" class="expense-color"> <tr id="@i.id" class="">
<td>@i.id</td> <td>@i.id</td>
<td>@i.name</td> <td>@i.name</td>
<td>@i.desc</td> <td>@i.desc</td>
......
...@@ -3,15 +3,23 @@ ...@@ -3,15 +3,23 @@
@inject IViewLocalizer Localizer @inject IViewLocalizer Localizer
@model List<backstage.Models.TokenVault.Mask> @model List<backstage.Models.TokenVault.Mask>
@{ @{
ViewData["Title"] = "Mask列表管理"; ViewData["Title"] = @Localizer["Token Vault List"];
} }
@{ @{
bool isAdmin = User.IsInRole("Admin"); bool isAdmin = User.IsInRole("Admin");
string disabledClass = isAdmin ? "" : "disabled"; string disabledClass = isAdmin ? "" : "disabled";
} }
@section header
{
<style>
.hidden {
display: none;
}
</style>
}
<div class="page-header"> <div class="page-header">
<h3 class="page-title">Mask列表管理</h3> <h3 class="page-title"> @Localizer["Mask list management"]</h3>
<input id="msg" hidden value="@TempData["msg"]" /> <input id="msg" hidden value="@TempData["msg"]" />
@if (TempData["isSuccess"] != null) @if (TempData["isSuccess"] != null)
{ {
...@@ -70,7 +78,7 @@ ...@@ -70,7 +78,7 @@
<table class="table table-striped table-hover0 table-bordered" id="memberGoTbl_masksList"> <table class="table table-striped table-hover0 table-bordered" id="memberGoTbl_masksList">
<thead> <thead>
<tr> <tr>
<th colspan="9">@Localizer["Name"]資料遮罩列表</th> <th colspan="9">@Localizer["Data mask list"]</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -96,7 +104,8 @@ ...@@ -96,7 +104,8 @@
<td class="mask_name">@m.name</td> <td class="mask_name">@m.name</td>
<td class="content">@m.type</td> <td class="content">@m.type</td>
<td class="content">@m.mask</td> <td class="content">@m.mask</td>
<td class="item">@(m.is_unique==1?"是":"否")</td> <td class="item">@Localizer[(m.is_unique == 1 ? "Yes" : "No")]</td>
<td class="content">@m.setting</td> <td class="content">@m.setting</td>
<td> <td>
<a class="editMaskBtn" data-toggle="modal" data-target="#edit-field-mask" title="修改"> <a class="editMaskBtn" data-toggle="modal" data-target="#edit-field-mask" title="修改">
...@@ -138,8 +147,8 @@ ...@@ -138,8 +147,8 @@
<!-- <!--
<button type="button" class="close" data-dismiss="modal">&times;</button> <button type="button" class="close" data-dismiss="modal">&times;</button>
--> -->
<h3 class="modal-title" > <h3 class="modal-title">
新增遮罩 @Localizer["Add mask"]
</h3> </h3>
</div> <!--END of div "modal-header"--> </div> <!--END of div "modal-header"-->
...@@ -155,32 +164,16 @@ ...@@ -155,32 +164,16 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-labe required" for="name">名稱:</label> <label class="control-labe required" for="name"> @Localizer["Name"]:</label>
<div class=""> <div class="">
<input type="text" name="name" class="form-control form-control-sm0" required> <input type="text" name="name" class="form-control form-control-sm0" required>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-labe" for="">是否為唯一值:</label> <label class="control-labe" for="userName"> @Localizer["Type"]:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="is_unique" id="uniqueY" value="1" checked>
<label class="form-check-label" for="uniqueY">
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="is_unique" id="uniqueN" value="0">
<label class="form-check-label" for="uniqueN">
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="userName">種類:</label>
<div class="form-group"> <div class="form-group">
<select title="請選遮罩種類(單選)" name="type" id="maskType" class="selectpicker selecter form-control selectpicker-tokenization" onchange="showMaskSettingsAdv()"> <select title=" @Localizer["Please select the mask type (single choice)"]" name="type" id="maskType" class="selectpicker selecter form-control selectpicker-tokenization" onchange="showMaskSettingsAdv()">
<option class="bs-title-option" value=""></option> <option class="bs-title-option" value=""></option>
<option value="0">0</option> <option value="0">0</option>
<option value="1">1</option> <option value="1">1</option>
...@@ -188,46 +181,46 @@ ...@@ -188,46 +181,46 @@
</div> </div>
</div> </div>
<div class="maskSettings" id="maskSettingsAdvID"> <div class="maskSettings hidden" id="maskSettingsAdvID">
<hr> <hr>
<div class="maskSettingsTitle">設定:</div> <div class="maskSettingsTitle"> @Localizer["Set up"]</div>
<div class="maskSettingForm"> <div class="maskSettingForm">
<div class="form-group"> <div class="form-group">
<label class="control-labe" for="userName">mask:</label> <label class="control-labe">mask:</label>
<div class="form-group"> <div class="form-group">
<select id="mask" title="請選擇mask(單選)" name="mask" class="selectpicker selecter form-control selectpicker-tokenization"> <select id="mask" title=" @Localizer["Please choose a mask (single choice)"]" name="mask" class="selectpicker selecter form-control selectpicker-tokenization">
<option class="bs-title-option" value=""></option> <option class="bs-title-option" value=""></option>
<option>0</option> <option value="0">0</option>
<option>1</option> <option value="1">1</option>
<option>2</option> <option value="2">2</option>
<option>3</option> <option value="3">3</option>
</select> </select>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-labe required" for="userName">size init:</label> <label class="control-labe required" for="userName">size init:</label>
<div class=""> <div class="">
<input type="number" name="size_init" class="form-control form-control-sm0" required> <input type="number" name="size_init" id="size_init" class="form-control form-control-sm0" required>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-labe required" for="userName">size end:</label> <label class="control-labe required">size end:</label>
<div class=""> <div class="">
<input type="number" name="size_end" class="form-control form-control-sm0" required> <input type="number" name="size_end" id="size_end" class="form-control form-control-sm0" required>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-labe required" for="userName">to skip:</label> <label class="control-labe required">to skip:</label>
<div class=""> <div class="">
<input type="text" name="toskip" class="form-control form-control-sm0" required> <input type="text" name="toskip" id="toskip" class="form-control form-control-sm0" required>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="SubmitBlock"> <div class="SubmitBlock">
<button id="createMaskBtn" type="button" class="btn btn-mainblue-solid btnSubmit">送出</button> <button id="createMaskBtn" type="button" class="btn btn-mainblue-solid btnSubmit"> @Localizer["Send out"]</button>
<button type="button" class="btn btn-mainblue-hollow btnReset" data-dismiss="modal">取消</button> <button type="button" class="btn btn-mainblue-hollow btnReset" data-dismiss="modal"> @Localizer["Cancel"]</button>
</div> </div>
</form> </form>
</div> <!--END of div "modal-body"--> </div> <!--END of div "modal-body"-->
...@@ -254,7 +247,7 @@ ...@@ -254,7 +247,7 @@
<div class="modal-header"> <div class="modal-header">
<h4> <h4>
刪除遮罩 @Localizer["Delete mask"]
</h4> </h4>
</div> <!--END of div "modal-header"--> </div> <!--END of div "modal-header"-->
...@@ -262,12 +255,12 @@ ...@@ -262,12 +255,12 @@
<form> <form>
<p> <p>
是否確定要刪除遮罩? @Localizer["Are you sure you want to delete the mask?"]
</p> </p>
<div class="SubmitBlock SubmitBlock_sm"> <div class="SubmitBlock SubmitBlock_sm">
<button type="button" id="delMaskConfirmBtn" class="btn btn-mainblue-solid" style="margin-right: 10px; width: 80px">確定</button> <button type="button" id="delMaskConfirmBtn" class="btn btn-mainblue-solid" style="margin-right: 10px; width: 80px"> @Localizer["Confirm"]</button>
<button type="button" class="btn btn-mainblue-hollow" data-dismiss="modal" style="margin-right: 10px; width: 80px">取消</button> <button type="button" class="btn btn-mainblue-hollow" data-dismiss="modal" style="margin-right: 10px; width: 80px"> @Localizer["Cancel"]</button>
</div> </div>
</form> </form>
...@@ -297,13 +290,18 @@ ...@@ -297,13 +290,18 @@
showAlert(IsSuccess, msg); showAlert(IsSuccess, msg);
} }
// 页面加载完成后,隐藏 maskSettingsAdvID
document.getElementById("maskSettingsAdvID").classList.remove("show");
//新增mask //新增mask
$("#NewMaskBtn").click(function (event) { $("#NewMaskBtn").click(function (event) {
console.log('NewMaskBtn') console.log('NewMaskBtn')
$('#new-field-mask .modal-title').text('新增遮罩'); $('#new-field-mask .modal-title').text('新增遮罩');
$('#new-field-mask input:not([name="mask_id"], [name="merchant_id"], [name="field_id"], [name="vault_id"])').val(''); $('#new-field-mask input:not([name="mask_id"], [name="merchant_id"], [name="field_id"], [name="vault_id"])').val('');
$("#maskType").selectpicker("val", "");
$("#mask").selectpicker("val", "");
document.getElementById("maskSettingsAdvID").classList.remove("show");
}) })
...@@ -356,32 +354,25 @@ ...@@ -356,32 +354,25 @@
var type = $("#memberGoTbl_masksList tr").filter(function () { var type = $("#memberGoTbl_masksList tr").filter(function () {
return $(this).find("td:first-child").text().trim() === selectMaskId; return $(this).find("td:first-child").text().trim() === selectMaskId;
}).find("td:nth-child(3)").text(); }).find("td:nth-child(3)").text();
console.log("type=" + type);
$("#new-field-mask select[name='type'] option").filter(function () { $("#maskType").selectpicker();
return $(this).val() === type; $("#maskType").selectpicker("val", type);
}).prop("selected", true);
$('#new-field-mask').modal(); showMaskSettingsAdv();
//$.ajax({
// url: '/TokenVault/EditMask',
// type: 'POST',
// data: $('#createMaskForm').serialize(),
// success: function (data) {
// //console.log(data);
// showAlert(data.isSuccess, data.message);
// if (data.isSuccess) {
// $('#new-field-mask').modal('hide');
// setTimeout(function () {
// location.reload();
// }, 2000);
// }
// },
// error: function (xhr, status, error) {
// console.log(xhr.responseText);
// showAlert(false, "發生錯誤");
// }
//});
var tdData = $("#memberGoTbl_masksList tr").filter(function () {
return $(this).find("td:first-child").text().trim() === selectMaskId;
}).find("td:nth-child(6)").text();
var tdObject = JSON.parse(tdData);
console.log(tdObject);
$("#size_init").val(tdObject.size_init);
$("#size_end").val(tdObject.size_end);
$("#toSkip").val(""); // 这里的值可以根据需要进行设定
$('#new-field-mask').modal();
}) })
......
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
<td>@i.default_mask_id</td> <td>@i.default_mask_id</td>
<td> <td>
<a class="btn btnPermission btn-sm">@Localizer["Remove User"]</a> <a data-id="@i.id" class="btn btnPermission btn-sm" data-toggle="modal" data-target="#delete-field-user">@Localizer["Remove User"]</a>
</td> </td>
</tr> </tr>
} }
...@@ -136,6 +136,48 @@ ...@@ -136,6 +136,48 @@
</div> </div>
</div> </div>
</div> </div>
<!--移除user Form-->
<!-- Modal -->
<div class="modal fade " id="delete-field-user" tabindex="-1" style=" padding-right: 17px;" aria-modal="true" role="dialog">
<div class="modal-dialog modal-sm modalforMemberGo">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4>
@Localizer["Remove user"]
</h4>
</div> <!--END of div "modal-header"-->
<div class="modal-body" style="padding-top:35px; padding-bottom: 35px">
<form>
<p>
@Localizer["Are you sure you want to remove this user?"]
</p>
<div class="SubmitBlock SubmitBlock_sm">
<button type="button" id="delUserConfirmBtn" class="btn btn-mainblue-solid" style="margin-right: 10px; width: 80px"> @Localizer["Confirm"]</button>
<button type="button" class="btn btn-mainblue-hollow" data-dismiss="modal" style="margin-right: 10px; width: 80px"> @Localizer["Cancel"]</button>
</div>
</form>
</div> <!--END of div "modal-body"-->
<div class="modal-footer">
<!--
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
-->
</div> <!--END of div "modal-footer"-->
</div><!-- END of Modal content-->
</div><!-- END of div "modal-dialog modal-lg" -->
</div>
@section Scripts{ @section Scripts{
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
...@@ -187,6 +229,54 @@ ...@@ -187,6 +229,54 @@
//移除user
var selectUserId = 0;
$('.btnPermission').click(function () {
selectUserId = $(this).data('id');
console.log('selectUserId=' + selectUserId);
})
$('#delUserConfirmBtn').click(function () {
var data = {
Merchant_id: parseInt('@ViewBag.merchant_id'),
vault_id: parseInt('@ViewBag.vault_id'),
field_id: parseInt('@ViewBag.field_id'),
user_id: selectUserId
};
$.ajax({
url: '/TokenVault/DelUsers',
type: 'POST',
data: JSON.stringify(data),
contentType: "application/json",
success: function (data) {
//console.log(data);
showAlert(data.isSuccess, data.message);
if (data.isSuccess) {
$('#delete-field-user').modal('hide');
setTimeout(function () {
location.reload();
}, 2000);
}
},
error: function (xhr, status, error) {
console.log(xhr.responseText);
showAlert(false, "發生錯誤");
}
});
})
}) })
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
@*列表*@ @*列表*@
<div class=""> <div class="">
<table class="table table-striped"> <table class="table table-striped" style="display: none;">
<thead> <thead>
<tr> <tr>
<th>uid</th> <th>uid</th>
...@@ -127,6 +127,11 @@ ...@@ -127,6 +127,11 @@
onColor: 'success', onColor: 'success',
offColor: 'danger', offColor: 'danger',
size: 'small', size: 'small',
onInit: function () {
// 初始化完成時的操作
// 例如顯示表格等
$('table').show();
},
onSwitchChange: function (event, state) { onSwitchChange: function (event, state) {
var uid = $(this).data('uid'); var uid = $(this).data('uid');
var isAdmin = $(this).is(':checked')?1:0; var isAdmin = $(this).is(':checked')?1:0;
...@@ -155,6 +160,11 @@ ...@@ -155,6 +160,11 @@
onColor: 'success', onColor: 'success',
offColor: 'danger', offColor: 'danger',
size: 'small', size: 'small',
onInit: function () {
// 初始化完成時的操作
// 例如顯示表格等
$('table').show();
},
onSwitchChange: function (event, state) { onSwitchChange: function (event, state) {
var uid = $(this).data('uid'); var uid = $(this).data('uid');
var enabled = $(this).is(':checked') ? 1 : 0;; var enabled = $(this).is(':checked') ? 1 : 0;;
......
...@@ -19339,6 +19339,6 @@ tbody { ...@@ -19339,6 +19339,6 @@ tbody {
.custom-tooltip { .custom-tooltip {
cursor: pointer !important; cursor: pointer !important;
} }
.deleteKeyBtn, .reviseKeyBtn { .deleteKeyBtn, .reviseKeyBtn, .fa-pen-to-square, .fa-trash-can {
cursor: pointer; cursor: pointer;
} }
...@@ -139,23 +139,23 @@ function showBankTypeAdv(){ ...@@ -139,23 +139,23 @@ function showBankTypeAdv(){
} }
} }
function showMaskSettingsAdv() {
function showMaskSettingsAdv(){
var oSel = document.getElementById("maskType"); var oSel = document.getElementById("maskType");
console.log('testtttttt')
var oValue = oSel.options[oSel.selectedIndex].value; var oValue = oSel.options[oSel.selectedIndex].value;
if(oValue == 0){ var maskSettingsAdvID = document.getElementById("maskSettingsAdvID");
document.getElementById("maskSettingsAdvID").classList.toggle("show");
}
else{ if (oValue == 0 && !maskSettingsAdvID.classList.contains("show")) {
document.getElementById("maskSettingsAdvID").classList.remove("show"); maskSettingsAdvID.classList.add("show");
} else if (oValue != 0 && maskSettingsAdvID.classList.contains("show")) {
maskSettingsAdvID.classList.remove("show");
} }
} }
///////copy to clipboard///// ///////copy to clipboard/////
// function myFunction() { // function myFunction() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment