Commit 3b215dca authored by nickchen's avatar nickchen 🎨

up: 拿掉金鑰刪除功能

add: 遮罩唯一值設定
parent c5d52520
...@@ -317,71 +317,72 @@ namespace backstage.Controllers ...@@ -317,71 +317,72 @@ namespace backstage.Controllers
/// ajax /// ajax
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[Authorize(Policy = "AdminOnly")] //v2.5版拿掉金鑰刪除功能
[HttpPost] //[Authorize(Policy = "AdminOnly")]
public async Task<ResultModel> DeleteKey(int keyId) //[HttpPost]
{ //public async Task<ResultModel> DeleteKey(int keyId)
var result = new ResultModel(); //{
string msg; // var result = new ResultModel();
#region key/list // string msg;
var url = _config["IP"] + "/security/key"; // #region key/list
var httpMethod = HttpMethod.Delete; // var url = _config["IP"] + "/security/key";
var parameters = new Dictionary<string, string> // var httpMethod = HttpMethod.Delete;
{ // var parameters = new Dictionary<string, string>
{ "id",keyId.ToString()}, // {
}; // { "id",keyId.ToString()},
// };
var apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess) // var apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
{ // if (apiResult.IsSuccess)
try // {
{ // try
var Response = JsonConvert.DeserializeObject<Response>(apiResult.Data.ToString()); // {
if (Response.r == 0) // var Response = JsonConvert.DeserializeObject<Response>(apiResult.Data.ToString());
{ // if (Response.r == 0)
// {
switch (_currentLanguage)
{ // switch (_currentLanguage)
// {
case "en":
msg = "Delete key success."; // case "en":
break; // msg = "Delete key success.";
case "zh": // break;
msg = "鑰匙刪除成功"; // case "zh":
break; // msg = "鑰匙刪除成功";
default: // break;
msg = "鑰匙刪除成功"; // default:
break; // msg = "鑰匙刪除成功";
// break;
}
result.IsSuccess = true; // }
result.Message = msg; // result.IsSuccess = true;
return result; // result.Message = msg;
} // return result;
else // }
{ // else
// {
result.IsSuccess = false;
result.Message = Response.m.ToString(); // result.IsSuccess = false;
return result; // result.Message = Response.m.ToString();
} // return result;
} // }
catch (Exception e) // }
{ // catch (Exception e)
result.IsSuccess = false; // {
result.Message = e.Message + e.InnerException?.Message; // result.IsSuccess = false;
return result; // result.Message = e.Message + e.InnerException?.Message;
} // return result;
// }
}
result.IsSuccess = false; // }
result.Message = apiResult.Message; // result.IsSuccess = false;
return result; // result.Message = apiResult.Message;
#endregion // return result;
// #endregion
}
//}
......
...@@ -1453,21 +1453,22 @@ namespace backstage.Controllers ...@@ -1453,21 +1453,22 @@ namespace backstage.Controllers
{ {
action = "MOD"; action = "MOD";
} }
var fieldData = new[] var fieldData = new[]
{ {
new new
{ {
action = action, 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要帶上 //編輯功能 mask_id要帶上
is_unique= Convert.ToInt32(form["isunique"]),
id = mask_id
id = mask_id
} }
}; };
string namstext = form["name"]; string namstext = form["name"];
......
{ {
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:5425",
"sslPort": 44399
}
},
"profiles": { "profiles": {
"IIS Express": { "IIS Express": {
"commandName": "IISExpress", "commandName": "IISExpress",
...@@ -23,5 +15,13 @@ ...@@ -23,5 +15,13 @@
}, },
"applicationUrl": "http://localhost:5000" "applicationUrl": "http://localhost:5000"
} }
},
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:5425",
"sslPort": 44399
}
} }
} }
\ No newline at end of file
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<th>@Localizer["Enable"]</th> <th>@Localizer["Enable"]</th>
<th>@Localizer["Expiration"]</th> <th>@Localizer["Expiration"]</th>
<th>@Localizer["Revise"]</th> <th>@Localizer["Revise"]</th>
<th style=" border-right: solid 0.1px #d9d9d9;">@Localizer["Delete"]</th> @* <th style=" border-right: solid 0.1px #d9d9d9;">@Localizer["Delete"]</th> *@
</tr> </tr>
</thead> </thead>
...@@ -97,17 +97,11 @@ ...@@ -97,17 +97,11 @@
<i class="fa-solid fa-pen-to-square"></i> <i class="fa-solid fa-pen-to-square"></i>
</a> </a>
</td> </td>
<td> @* <td>
@*<a @(k.deleteable == 1 && k.active != 1 ? "" : "hidden") class="deleteKeyBtn @(k.deleteable == 1 ? "deletable" : "")" data-keyid="@k.id" data-toggle="modal" data-target="#deleteProject" title="Delete" disable>
<i class="fa-solid fa-trash-can"></i>
</a>*@
<a class="deleteKeyBtn" data-keyid="@k.id" data-toggle="modal" data-target="#deleteProject" title="Delete" @(k.deleteable == 1 ? "" : "hidden")> <a class="deleteKeyBtn" data-keyid="@k.id" data-toggle="modal" data-target="#deleteProject" title="Delete" @(k.deleteable == 1 ? "" : "hidden")>
<i class="fa-solid fa-trash-can"></i> <i class="fa-solid fa-trash-can"></i>
</a> </a>
</td> *@
</td>
</tr> </tr>
} }
...@@ -427,35 +421,35 @@ ...@@ -427,35 +421,35 @@
//刪除鑰匙 //刪除鑰匙
$("#confirmBtn").on("click", function (e) { // $("#confirmBtn").on("click", function (e) {
e.preventDefault(); // 防止點擊後刷新頁面(如果該鏈接是 <a> 標籤) // e.preventDefault(); // 防止點擊後刷新頁面(如果該鏈接是 <a> 標籤)
var data = { // var data = {
keyId: selectKeyId // keyId: selectKeyId
}; // };
console.log('data.keyId=' + data.keyId); // console.log('data.keyId=' + data.keyId);
$.ajax({ // $.ajax({
url: "/Key/DeleteKey", // url: "/Key/DeleteKey",
type: 'POST', // 或 'GET',根據實際需求 // type: 'POST', // 或 'GET',根據實際需求
data: data, // data: data,
success: function (response) { // success: function (response) {
// API 呼叫成功的處理程式碼 // // API 呼叫成功的處理程式碼
showAlert(response.isSuccess, response.message) // showAlert(response.isSuccess, response.message)
console.log(response); // console.log(response);
if (response.isSuccess) { // if (response.isSuccess) {
$('#deleteProject').modal('hide'); // $('#deleteProject').modal('hide');
setTimeout(function () { // setTimeout(function () {
location.reload(); // location.reload();
}, 2000); // }, 2000);
} // }
}, // },
error: function (xhr, status, error) { // error: function (xhr, status, error) {
// API 呼叫失敗的處理程式碼 // // API 呼叫失敗的處理程式碼
showAlert(false, error.responseText) // showAlert(false, error.responseText)
} // }
}); // });
}); // });
//新增鑰匙 //新增鑰匙
$("#CreateKey").on("click", function (e) { $("#CreateKey").on("click", function (e) {
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
</a> </a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<div class="versionNo"> <div class="versionNo">
@Localizer["version"]: v2.40 @Localizer["version"]: v2.50
</div> </div>
</div> </div>
......
...@@ -104,8 +104,8 @@ ...@@ -104,8 +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">@Localizer[(m.is_unique == 1 ? "Yes" : "No")]</td> <td class="item unique" data-val="@m.is_unique">@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="修改">
...@@ -156,6 +156,7 @@ ...@@ -156,6 +156,7 @@
<div class="modal-body" style="padding-top:35px"> <div class="modal-body" style="padding-top:35px">
<form id="createMaskForm" class="form-horizontal0" method="post" autocomplete="off"> <form id="createMaskForm" class="form-horizontal0" method="post" autocomplete="off">
<div id="errorMsg" asp-validation-summary="All" class="text-danger"></div> <div id="errorMsg" asp-validation-summary="All" class="text-danger"></div>
<div class="form-group"> <div class="form-group">
<input hidden name="mask_id"> <input hidden name="mask_id">
<input hidden name="merchant_id" value="@ViewBag.merchant_id"> <input hidden name="merchant_id" value="@ViewBag.merchant_id">
...@@ -181,6 +182,29 @@ ...@@ -181,6 +182,29 @@
</div> </div>
</div> </div>
<div class="maskSettings hidden" id="maskTypeSet1">
<hr>
<div class="maskSettingsTitle"> @Localizer["Set uppp"]</div>
<div class="maskSettingForm">
<div class="form-group">
<label class="control-labe" for="">@Localizer["Is it a unique value"]? :</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="isunique" id="uniqueValueY" value="1" checked>
<label class="form-check-label" for="uniqueValueY">
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="isunique" id="uniqueValueN" value="0">
<label class="form-check-label" for="uniqueValueN">
@Localizer["No"]
</label>
</div>
</div>
</div>
</div>
<div class="maskSettings hidden" id="maskSettingsAdvID"> <div class="maskSettings hidden" id="maskSettingsAdvID">
<hr> <hr>
<div class="maskSettingsTitle"> @Localizer["Set up"]</div> <div class="maskSettingsTitle"> @Localizer["Set up"]</div>
...@@ -292,22 +316,22 @@ ...@@ -292,22 +316,22 @@
// 页面加载完成后,隐藏 maskSettingsAdvID // 页面加载完成后,隐藏 maskSettingsAdvID
document.getElementById("maskSettingsAdvID").classList.remove("show"); document.getElementById("maskSettingsAdvID").classList.remove("show");
document.getElementById("maskTypeSet1").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"], [name="isunique"])').val('');
$("#maskType").selectpicker("val", ""); $("#maskType").selectpicker("val", "");
$("#mask").selectpicker("val", ""); $("#mask").selectpicker("val", "");
document.getElementById("maskSettingsAdvID").classList.remove("show"); document.getElementById("maskSettingsAdvID").classList.remove("show");
document.getElementById("maskTypeSet1").classList.remove("show");
}) })
//送出新mask //送出新mask
$("#createMaskBtn").click(function (event) { $("#createMaskBtn").click(function (event) {
console.log($('#createMaskForm').serialize())
$.ajax({ $.ajax({
url: '/TokenVault/CreateMask', url: '/TokenVault/CreateMask',
type: 'POST', type: 'POST',
...@@ -336,8 +360,14 @@ ...@@ -336,8 +360,14 @@
$(".editMaskBtn").click(function (event) { $(".editMaskBtn").click(function (event) {
var selectMaskId = 0; var selectMaskId = 0;
selectMaskId = $(this).closest("tr").find("td:first").text(); selectMaskId = $(this).closest("tr").find("td:first").text();
var uniqueval = $(this).closest("tr").find(".unique").data('val');
console.log('selectMaskId=' + selectMaskId); console.log('selectMaskId=' + selectMaskId);
if (uniqueval == 1) {
$('input[name="isunique"][value="1"]').prop('checked', true);
} else {
$('input[name="isunique"][value="0"]').prop('checked', true);
}
$('input[name="mask_id"]').val(selectMaskId); $('input[name="mask_id"]').val(selectMaskId);
$('#new-field-mask .modal-title').text('編輯遮罩'); $('#new-field-mask .modal-title').text('編輯遮罩');
var name = $("#memberGoTbl_masksList tr").filter(function () { var name = $("#memberGoTbl_masksList tr").filter(function () {
......
...@@ -4042,6 +4042,9 @@ TBL_keysList tbody td { ...@@ -4042,6 +4042,9 @@ TBL_keysList tbody td {
#maskSettingsAdvID.show { #maskSettingsAdvID.show {
display: block !important; display: block !important;
} }
#maskTypeSet1.show {
display: block !important;
}
#recoverKeyForm.show { #recoverKeyForm.show {
display: block !important; display: block !important;
......
...@@ -143,12 +143,17 @@ function showMaskSettingsAdv() { ...@@ -143,12 +143,17 @@ function showMaskSettingsAdv() {
var oSel = document.getElementById("maskType"); var oSel = document.getElementById("maskType");
var oValue = oSel.options[oSel.selectedIndex].value; var oValue = oSel.options[oSel.selectedIndex].value;
var maskSettingsAdvID = document.getElementById("maskSettingsAdvID"); var maskSettingsAdvID = document.getElementById("maskSettingsAdvID");
var maskTypeSet1 = document.getElementById("maskTypeSet1");
if (oValue == 0 && !maskSettingsAdvID.classList.contains("show")) { if (oValue == "0" && !maskSettingsAdvID.classList.contains("show")) {
maskSettingsAdvID.classList.add("show"); maskSettingsAdvID.classList.add("show");
} else if (oValue != 0 && maskSettingsAdvID.classList.contains("show")) { } else if (oValue != "0" && maskSettingsAdvID.classList.contains("show")) {
maskSettingsAdvID.classList.remove("show"); maskSettingsAdvID.classList.remove("show");
} }
if (oValue == "1" && !maskTypeSet1.classList.contains("show")) {
maskTypeSet1.classList.add("show");
} else if (oValue != "1" && maskTypeSet1.classList.contains("show")) {
maskTypeSet1.classList.remove("show");
}
} }
......
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