Commit 3e26ff35 authored by Jason's avatar Jason

更新 create key UI

parent fc7198d5
......@@ -102,16 +102,37 @@ namespace backstage.Controllers
/// <returns></returns>
[Authorize(Policy = "AdminOnly")]
[HttpPost]
public async Task<ResultModel> CreateKey(int keyId)
public async Task<ResultModel> CreateKey(string key_name)
{
var result = new ResultModel();
string msg;
#region key/list
if (string.IsNullOrEmpty(key_name))
{
result.IsSuccess = false;
switch (_currentLanguage)
{
case "en":
msg = "Key name is empty.";
break;
case "zh":
msg = "鑰匙名稱不得為空";
break;
default:
msg = "鑰匙名稱不得為空";
break;
}
result.Message = msg;
return result;
}
// step1 create key
var url = _config["IP"] + "/security/key/generate";
var httpMethod = HttpMethod.Post;
var parameters = new Dictionary<string, string>
{
};
var apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
......@@ -123,23 +144,66 @@ namespace backstage.Controllers
if (Response.r == 0)
{
switch (_currentLanguage)
#region step2 combine key
url = _config["IP"] + "/security/key/combine";
parameters = new Dictionary<string, string>
{
{ "name", key_name}
};
case "en":
msg = "Create key success.";
break;
case "zh":
msg = "新增鑰匙成功";
break;
default:
msg = "新增鑰匙成功";
break;
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
try
{
Response = JsonConvert.DeserializeObject<Response>(apiResult.Data.ToString());
if (Response.r == 0)
{
switch (_currentLanguage)
{
case "en":
msg = "Create key success.";
break;
case "zh":
msg = "新增鑰匙成功";
break;
default:
msg = "新增鑰匙成功";
break;
}
result.IsSuccess = true;
result.Message = msg;
return result;
}
else
{
result.IsSuccess = false;
result.Message = Response.m.ToString();
return result;
}
}
catch (Exception e)
{
result.IsSuccess = false;
result.Message = e.Message + e.InnerException?.Message;
return result;
}
}
result.IsSuccess = true;
result.Message = msg;
return result;
else
{
result.IsSuccess = false;
result.Message = apiResult.Message;
return result;
}
#endregion
}
else
{
......@@ -157,10 +221,13 @@ namespace backstage.Controllers
}
}
result.IsSuccess = false;
result.Message = apiResult.Message;
return result;
#endregion
else
{
result.IsSuccess = false;
result.Message = apiResult.Message;
return result;
}
......
......@@ -14,8 +14,14 @@
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
.btn img {
max-width: 100%;
max-height: 100%;
}
</style>
}
<div class="page-header">
<h3 class="page-title">@Localizer["Keys List"]</h3>
......@@ -43,351 +49,165 @@
</ul>
</div>
</div>
<a type="button" class="btn btn-info float-right mb-2 @disabledClass" id="CreateKey">@Localizer["Create key"]</a>
<div class="table-responsive">
<!--交易紀錄列表 table-->
<table class="table table-striped TBL_keysList">
<thead>
<tr>
<th style=" border-left: solid 0.1px #d9d9d9;">@Localizer["Serial number"]</th>
<th>@Localizer["Name"]</th>
<th>@Localizer["Encryption"]</th>
<th>@Localizer["Last Update"]</th>
<th>@Localizer["Status"]</th>
<th>@Localizer["Expiration"]</th>
<th>@Localizer["Revise"]</th>
<th style=" border-right: solid 0.1px #d9d9d9;">@Localizer["Delete"]</th>
</tr>
</thead>
<tbody>
@if (Model != null)
@if (Model.Count > 0)
{
foreach (var k in Model)
{
<tr>
<td>@k.id</td>
<td><a asp-action="" title="Enter Application Management">@k.name</a></td>
<td>@k.encryption</td>
<td>@k.lastUpdate</td>
<td>@(k.active==1?"In use":"")</td>
<td>@k.expiration</td>
<td>
<div class="newBlock">
<button type="button" class="btn btn-mainblue-solid float-right disabledClass" data-toggle="modal" data-target="#newApp"><img src="~/images/memberGo/apiKey/newapp-w-300ppi.png">@Localizer["Create key"]</button>
<a data-toggle="modal" data-target="#editProject" title="Modify">
<div class="table-responsive">
<!--交易紀錄列表 table-->
<table class="table table-striped TBL_keysList">
<thead>
<tr>
<th style=" border-left: solid 0.1px #d9d9d9;">@Localizer["Serial number"]</th>
<th>@Localizer["Name"]</th>
<th>@Localizer["Encryption"]</th>
<th>@Localizer["Last Update"]</th>
<th>@Localizer["Status"]</th>
<th>@Localizer["Expiration"]</th>
<th>@Localizer["Revise"]</th>
<th style=" border-right: solid 0.1px #d9d9d9;">@Localizer["Delete"]</th>
</tr>
</thead>
<a class="reviseKeyBtn" data-keyId="@k.id" data-toggle="modal" data-target="#editProject" title="Revise">
<tbody>
<i class="fa-solid fa-pen-to-square"></i>
@if (Model != null)
@if (Model.Count > 0)
{
foreach (var k in Model)
{
<tr>
<td>@k.id</td>
<td><a asp-action="" title="Enter Application Management">@k.name</a></td>
<td>@k.encryption</td>
<td>@k.lastUpdate</td>
<td>@(k.active==1?"In use":"")</td>
<td>@k.expiration</td>
<td>
<a data-toggle="modal" data-target="#editProject" title="Modify">
<a class="reviseKeyBtn" data-keyId="@k.id" data-toggle="modal" data-target="#editProject" title="Revise">
<i class="fa-solid fa-pen-to-square"></i>
</a>
</a>
</a>
</td>
<td>
</td>
<td>
<a data-toggle="modal" data-target="#deleteProject" title="Delete">
<a data-toggle="modal" data-target="#deleteProject" title="Delete">
<a class="deleteKeyBtn" data-keyId="@k.id" data-toggle="modal" data-target="#deleteProject" title="Delete">
<a class="deleteKeyBtn" data-keyId="@k.id" data-toggle="modal" data-target="#deleteProject" title="Delete">
<i class="fa-solid fa-trash-can"></i>
<i class="fa-solid fa-trash-can"></i>
</a>
</a>
</a>
</td>
</tr>
</td>
</tr>
}
}
}
</tbody>
</table>
<!--End of APIKey管理 table-->
</tbody>
</table>
<!--End of APIKey管理 table-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- MODAL -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">選擇使用者</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<select id="selectUser" class="form-control" asp-items="ViewBag.users">
<!-- 其他用户选项 -->
</select>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="confirmBtn" data-dismiss="modal">確認</button>
</div>
</div>
</div>
</div>
<div class="modal fade " id="deleteProject" role="dialog" tabindex="-1" aria-modal="true">
<div class="modal-dialog modal-md modalforMemberGo">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4>
@Localizer["Delete key"]
</h4>
</div> <!--END of div "modal-header"-->
<div class="modal-body" style="padding-top:35px; padding-bottom: 35px">
<form>
<p>
@Localizer["Confirm"]?
</p>
<div class="SubmitBlock SubmitBlock_sm button-container">
<button id="confirmBtn" class="btn btn-mainblue-solid same-size-button">@Localizer["Submit"]</button>
<button type="button" class="btn btn-mainblue-hollow same-size-button" data-dismiss="modal">@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>
<!--權限 Popup Form-->
<!-- Modal -->
<div class="modal fade" id="permission" role="dialog" tabindex="-1">
<div class="modal-dialog modal-xl modalforMemberGo">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">
<i class="fa fa-tags" aria-hidden="true"></i> 權限管理
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div> <!--END of div "modal-header"-->
<div class="modal-body" style="padding-top:35px;">
<div>
<div class="newBlock newPerm">
<button type="button" class="btn btn-mainblue-solid" data-toggle="collapse" data-target="#newPermission"><img src="images/memberGo/permission/userRights-4-white-100.png">新增使用者及權限</button>
</div> <!--end fo newBlock-->
<div id="newPermission" class="collapse">
<div class="row">
<div class="col-md-5">
<div class="form-group">
<select title="請選擇使用者" class="selectpicker selecter form-control selectpicker-tokenization">
<option>test A</option>
<option>test B</option>
<option>test C</option>z
<option>test D</option>
</select>
</div>
<!--END of 權限 Popup Form-->
<!--New App Popup Form-->
<!-- Modal -->
<div class="modal fade" id="newApp" role="dialog" tabindex="-1">
<div class="modal-dialog modalforMemberGo">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<!--
<button type="button" class="close" data-dismiss="modal">&times;</button>
-->
<h3 class="modal-title">
<img src="~/images/memberGo/apiKey/newapp-orange-300ppi.png">
@Localizer["Create key"]
</h3>
</div> <!--END of div "modal-header"-->
<div class="modal-body" style="padding-top:35px">
<form class="form-horizontal0">
<div class="form-group">
<label class="control-label" for="projectid">@Localizer["Name"]:</label>
<div>
<input type="text" class="form-control input-sm" id="key_name">
</div>
<div class="col-md-5">
<div class="form-group">
<select multiple title="請選擇權限(複選)" class="selectpicker selecter form-control selectpicker-tokenization">
<option>Read</option>
<option>Write</option>
<option>Update</option>
<option>Delete</option>
<option>Enable &amp; Disable</option>
</select>
</div>
</div> <!--End of id:-->
<!--<div class="form-group">
<label class="control-label" for="projectType">類型:</label>
<div>
<select id="projectType" class="form-control" onchange="showAppAdv()">
<option value=0>請選擇類型</option>
<option value=1>Android</option>
<option value=2>iOS</option>
</select>
</div>
<div class="col-md-2">
<div class="form-group">
<button class="btn btn-primary newPermConfirmBtn">新增</button>
</div>-->
<!--End of 類型:-->
<!-- Andorid Adv-->
<!--<div id="andoridAdvID" class="andoridAdv">
<div class="form-group">
<label class="control-label" for="packageName">套件名稱:</label>
<div>
<input type="text" class="form-control input-sm" id="packageName" placeholder="例如 com.example">
</div>
</div>
<div class="form-group">
<label class="control-label" for="packageName">SHA-1指紋憑證:</label>
<div>
<input type="text" class="form-control input-sm" id="fingerPrint" placeholder="例如: AA:BB:CC:DD:EE:00:11:22:33:44:FF:GG:HH:II:JJ:55:66:77:88:99">
</div>
</div>-->
<!--End of app id:-->
<!--</div>--> <!-- End of Andorid Adv-->
<!-- iOS Adv-->
<!--<div id="iOSAdvID" class="iOSAdv">
<div class="form-group">
<label class="control-label" for="bundleID">繫結識別碼:</label>
<div>
<input type="text" class="form-control input-sm" id="bundleID" placeholder="例如 com.example.MyApp">
</div>
</div>-->
<!--End of app id:-->
<!-- <div class="description col-sm-12 text-center">
當您新增一個App後,系統會自動產生一組API金鑰,可至App列表中檢視
</div> -->
<!--</div>--> <!-- End of iOS Adv-->
<div class="SubmitBlock">
<button id="CreateKey" type="button" class="btn btn-mainblue-solid btnSubmit">新增</button>
<button type="button" class="btn btn-mainblue-hollow btnReset" data-dismiss="modal">取消</button>
</div>
<hr>
</div> <!--end of "newPermission"-->
</div>
<div class="table-responsive permissionTableDiv">
<table class="table table-striped table-hover" id="memberGoTbl_permission">
<tbody>
<tr>
<th style=" border-left: solid 1px #d9d9d9;">編號</th>
<th>使用者</th>
<th>權限</th>
<th>啟動</th>
<th>建立日</th>
<th>修改日</th>
<th style=" border-right: solid 1px #d9d9d9;">操作</th>
</tr>
<tr>
<td>01</td>
<td>test1</td>
<td>
<div>
<select multiple title="請選擇權限(複選)" class="selectpicker selecter selectpicker-tokenization">
<option>Read</option>
<option>Write</option>
<option>Update</option>
<option>Delete</option>
<option>Enable &amp; Disable</option>
</select>
</div>
</td>
<td>
<input type="checkbox" checked>
</td>
<td>2018-11-09 15:14:43</td>
<td>2018-11-09 15:14:43</td>
<td>
<button class="btn btn-primary btn-sm" title="儲存">儲存</button>
</td>
</tr>
<tr>
<td>02</td>
<td>test2</td>
<td>
<div>
<select multiple title="請選擇權限(複選)" class="selectpicker selectpicker-tokenization">
<option>Read</option>
<option>Write</option>
<option>Update</option>
<option>Delete</option>
<option>Enable &amp; Disable</option>
</select>
</div>
</td>
<td>
<input type="checkbox" checked>
</td>
<td>2018-11-09 15:14:43</td>
<td>2018-11-09 15:14:43</td>
<td>
<button class="btn btn-primary btn-sm" title="儲存">儲存</button>
</td>
</tr>
<tr>
<td>03</td>
<td>test3</td>
<td>
<div>
<select multiple title="請選擇權限(複選)" class="selectpicker selectpicker-tokenization">
<option>Read</option>
<option>Write</option>
<option>Update</option>
<option>Delete</option>
<option>Enable &amp; Disable</option>
</select>
</div>
</td>
<td>
<input type="checkbox" checked>
</td>
<td>2018-11-09 15:14:43</td>
<td>2018-11-09 15:14:43</td>
<td>
<button class="btn btn-primary btn-sm" title="儲存">儲存</button>
</td>
</tr>
<tr>
<td>04</td>
<td>test4</td>
<td>
<div>
<select title="請選擇權限(複選)" class="selectpicker selectpicker-tokenization" multiple>
<option>Read</option>
<option>Write</option>
<option>Update</option>
<option>Delete</option>
<option>Enable &amp; Disable</option>
</select>
</div>
</td>
<td>
<input type="checkbox" checked>
</td>
<td>2018-11-09 15:14:43</td>
<td>2018-11-09 15:14:43</td>
<td>
<button class="btn btn-primary btn-sm" title="儲存">儲存</button>
</td>
</tr>
<tr>
<td>05</td>
<td>test5</td>
<td>
<div>
<select title="請選擇權限(複選)" class="selectpicker selectpicker-tokenization" multiple>
<option>Read</option>
<option>Write</option>
<option>Update</option>
<option>Delete</option>
<option>Enable &amp; Disable</option>
</select>
</div>
</td>
<td>
<input type="checkbox" checked>
</td>
<td>2018-11-09 15:14:43</td>
<td>2018-11-09 15:14:43</td>
<td>
<button class="btn btn-primary btn-sm" title="儲存">儲存</button>
</td>
</tr>
</tbody>
<!-- <tfoot>
<tr>
<td colspan="7" class="permissionList">
<button type="button" class="btn btn-mainblue-hollow" data-dismiss="modal">關閉</button>
</td>
</tr>
</tfoot> -->
</table>
</div>
<!-- <div class="text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">關閉</button>
</div> -->
</div><!--END of div "modal-body"-->
<div class="modal-footer modalforMemberGo">
</div>
</div><!-- END of Modal content-->
</div><!-- END of div "modal-dialog modal-lg" -->
</div><!-- END of Modal-->
<!--END of 權限 Popup Form-->
@section Scripts{
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script nonce="KUY8VewuvyUYVEIvEFue4vwyiuf">
</form>
</div> <!--END of div "modal-body"-->
<div class="modal-footer modalforMemberGo">
<!--
<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><!-- END of Modal-->
<!--END of New App Popup Form-->
@section Scripts{
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script nonce="KUY8VewuvyUYVEIvEFue4vwyiuf">
$('document').ready(function () {
var msg = '@TempData["msg"]';
var IsSuccess = '@TempData["IsSuccess"]';
......@@ -444,17 +264,17 @@
//新增鑰匙
$("#CreateKey").on("click", function (e) {
$.ajax({
var keyName = $('#key_name').val();
$.ajax({
url: "/Key/CreateKey",
type: 'POST', // 或 'GET',根據實際需求
data: { key_name: keyName},
success: function (response) {
// API 呼叫成功的處理程式碼
showAlert(response.isSuccess, response.message)
if (response.isSuccess) {
$('#newApp').modal('hide');
setTimeout(function () {
location.reload();
}, 2000);
......@@ -473,5 +293,5 @@
})
</script>
}
\ No newline at end of file
</script>
}
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