Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
T
TokenVaultManagement
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jasonwai
TokenVaultManagement
Commits
4eecaac7
Commit
4eecaac7
authored
Jun 17, 2023
by
DESKTOP-KIP9E0Q\jason
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
947640ad
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1320 additions
and
303 deletions
+1320
-303
KeyController.cs
...n Vault Management/backstage/Controllers/KeyController.cs
+171
-0
TokenVaultController .cs
...Management/backstage/Controllers/TokenVaultController .cs
+1
-89
Index.zh.resx
...t Management/backstage/Resources/Views/Home/Index.zh.resx
+7
-7
ListKeys.zh.resx
...Management/backstage/Resources/Views/Key/ListKeys.zh.resx
+237
-0
List.zh.resx
...agement/backstage/Resources/Views/TokenVault/List.zh.resx
+11
-5
ListFields.zh.resx
...t/backstage/Resources/Views/TokenVault/ListFields.zh.resx
+189
-0
ListMasks.zh.resx
...nt/backstage/Resources/Views/TokenVault/ListMasks.zh.resx
+231
-0
ListUsers.zh.resx
...nt/backstage/Resources/Views/TokenVault/ListUsers.zh.resx
+222
-0
CreateDepartment.zh.resx
...t/backstage/Resources/Views/User/CreateDepartment.zh.resx
+8
-8
ListDepartments.zh.resx
...nt/backstage/Resources/Views/User/ListDepartments.zh.resx
+7
-7
ListUsers.zh.resx
...nagement/backstage/Resources/Views/User/ListUsers.zh.resx
+2
-2
Index.cshtml
... Token Vault Management/backstage/Views/Home/Index.cshtml
+3
-3
ListKeys.cshtml
...oken Vault Management/backstage/Views/Key/ListKeys.cshtml
+107
-73
_Layout.cshtml
...en Vault Management/backstage/Views/Shared/_Layout.cshtml
+2
-2
List.cshtml
...n Vault Management/backstage/Views/TokenVault/List.cshtml
+5
-5
ListFields.cshtml
...t Management/backstage/Views/TokenVault/ListFields.cshtml
+33
-26
ListMasks.cshtml
...lt Management/backstage/Views/TokenVault/ListMasks.cshtml
+22
-19
ListUsers.cshtml
...lt Management/backstage/Views/TokenVault/ListUsers.cshtml
+52
-50
CreateDepartment.cshtml
...t Management/backstage/Views/User/CreateDepartment.cshtml
+3
-3
ListDepartments.cshtml
...lt Management/backstage/Views/User/ListDepartments.cshtml
+4
-4
style.css
...nt Token Vault Management/backstage/wwwroot/css/style.css
+3
-0
No files found.
Merchant Token Vault Management/backstage/Controllers/Key
s
Controller.cs
→
Merchant Token Vault Management/backstage/Controllers/KeyController.cs
View file @
4eecaac7
...
...
@@ -12,6 +12,11 @@ using backstage.Models.Keys;
using
System.Net.Http
;
using
System.Security.Claims
;
using
TokenVault_management.Models
;
using
backstage.Models
;
using
Microsoft.Extensions.Localization
;
using
Microsoft.AspNetCore.Localization
;
using
Microsoft.AspNetCore.Http
;
namespace
backstage.Controllers
{
...
...
@@ -23,14 +28,22 @@ namespace backstage.Controllers
private
readonly
IConfiguration
_config
;
private
readonly
ICallApi
_callApi
;
private
readonly
IHttpContextAccessor
_httpContextAccessor
;
private
readonly
IStringLocalizer
<
UserController
>
_localizer
;
private
readonly
string
_currentLanguage
;
/// <summary>
/// 讀取組態用
/// </summary>
public
KeyController
(
IConfiguration
config
,
ICallApi
callApi
)
public
KeyController
(
IConfiguration
config
,
ICallApi
callApi
,
IHttpContextAccessor
httpContextAccessor
,
IStringLocalizer
<
UserController
>
localizer
)
{
_config
=
config
;
_callApi
=
callApi
;
_httpContextAccessor
=
httpContextAccessor
;
_localizer
=
localizer
;
var
requestCultureFeature
=
_httpContextAccessor
.
HttpContext
.
Features
.
Get
<
IRequestCultureFeature
>();
var
currentCulture
=
requestCultureFeature
.
RequestCulture
.
Culture
;
_currentLanguage
=
currentCulture
.
TwoLetterISOLanguageName
;
}
...
...
@@ -44,9 +57,9 @@ namespace backstage.Controllers
var
url
=
_config
[
"IP"
]
+
"/security/key/list"
;
var
httpMethod
=
HttpMethod
.
Post
;
var
parameters
=
new
Dictionary
<
string
,
string
>
{
};
{
};
var
apiResult
=
await
_callApi
.
CallAPI
(
url
,
parameters
,
httpMethod
);
if
(
apiResult
.
IsSuccess
)
...
...
@@ -68,7 +81,7 @@ namespace backstage.Controllers
catch
(
Exception
e
)
{
TempData
[
"IsSuccess"
]
=
false
;
TempData
[
"msg"
]
=
e
.
Message
+
e
.
InnerException
?.
Message
;
TempData
[
"msg"
]
=
e
.
Message
+
e
.
InnerException
?.
Message
;
return
View
();
}
...
...
@@ -83,8 +96,75 @@ namespace backstage.Controllers
}
/// <summary>
/// ajax
/// </summary>
/// <returns></returns>
[
Authorize
(
Policy
=
"AdminOnly"
)]
[
HttpPost
]
public
async
Task
<
ResultModel
>
DeleteKey
(
int
keyId
)
{
var
result
=
new
ResultModel
();
string
msg
;
#
region
key
/
list
var
url
=
_config
[
"IP"
]
+
"/security/key"
;
var
httpMethod
=
HttpMethod
.
Delete
;
var
parameters
=
new
Dictionary
<
string
,
string
>
{
{
"id"
,
keyId
.
ToString
()},
};
var
apiResult
=
await
_callApi
.
CallAPI
(
url
,
parameters
,
httpMethod
);
if
(
apiResult
.
IsSuccess
)
{
try
{
var
Response
=
JsonConvert
.
DeserializeObject
<
Response
>(
apiResult
.
Data
.
ToString
());
if
(
Response
.
r
==
0
)
{
switch
(
_currentLanguage
)
{
case
"en"
:
msg
=
"Delete 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
=
false
;
result
.
Message
=
apiResult
.
Message
;
return
result
;
#
endregion
}
}
...
...
Merchant Token Vault Management/backstage/Controllers/TokenVaultController .cs
View file @
4eecaac7
...
...
@@ -1378,99 +1378,11 @@ namespace backstage.Controllers
//刪除MASK ajax
[
Authorize
(
Policy
=
"AdminOnly"
)]
[
HttpPost
]
public
async
Task
<
ResultModel
>
DeleteMask
(
IFormCollection
form
)
public
async
Task
<
ResultModel
>
DeleteMask
(
int
merchant_id
,
int
vault_id
,
int
mask_id
)
{
var
result
=
new
ResultModel
();
try
{
var
url
=
_config
[
"IP"
]
+
"/v2/vault"
;
if
(
string
.
IsNullOrEmpty
(
form
[
"name"
]))
{
result
.
IsSuccess
=
false
;
result
.
Message
=
"名稱不能為空"
;
return
result
;
}
var
httpMethod
=
HttpMethod
.
Post
;
// 取得使用者的 "token" Claim 值
string
token
=
User
.
FindFirstValue
(
"token"
);
var
setting
=
new
{
mask
=
Convert
.
ToInt32
(
form
[
"mask"
]),
size_init
=
Convert
.
ToInt32
(
form
[
"size_init"
]),
size_end
=
Convert
.
ToInt32
(
form
[
"size_end"
])
};
var
fieldData
=
new
[]
{
new
{
action
=
"MOD"
,
id
=
Convert
.
ToInt32
(
form
[
"mask_id"
]),
name
=
form
[
"name"
].
ToString
(),
type
=
Convert
.
ToInt32
(
form
[
"type"
]),
setting
=
System
.
Text
.
Json
.
JsonSerializer
.
Serialize
(
setting
)
}
};
string
namstext
=
form
[
"name"
];
var
parameters
=
new
Dictionary
<
string
,
string
>
{
{
"Merchant_id"
,
form
[
"merchant_id"
]
},
{
"info"
,
"MASKS"
},
{
"id"
,
form
[
"vault_id"
]},
{
"data"
,
JsonConvert
.
SerializeObject
(
fieldData
)}
};
var
apiResult
=
await
_callApi
.
CallAPI
(
url
,
parameters
,
httpMethod
);
if
(
apiResult
.
IsSuccess
)
{
var
Response
=
JsonConvert
.
DeserializeObject
<
Response
>(
apiResult
.
Data
.
ToString
());
if
(
Response
.
r
==
0
)
{
if
(
Response
.
failInfo
==
null
)
{
result
.
IsSuccess
=
true
;
result
.
Message
=
"Create success"
;
return
result
;
}
result
.
IsSuccess
=
false
;
result
.
Message
=
System
.
Text
.
RegularExpressions
.
Regex
.
Unescape
(
string
.
Join
(
", "
,
Response
.
failInfo
));
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
=
false
;
result
.
Message
=
"Create fail."
;
return
result
;
}
...
...
Merchant Token Vault Management/backstage/Resources/Views/Home/Index.zh.resx
View file @
4eecaac7
...
...
@@ -117,17 +117,14 @@
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<data
name=
"Number of data"
xml:space=
"preserve"
>
<value>
資料數量
</value>
</data>
<data
name=
"Number of data modifications this month"
xml:space=
"preserve"
>
<value>
本月資料修改數量
</value>
<data
name=
"Modify the number of Token Vault Entry this month"
xml:space=
"preserve"
>
<value>
本月修改代碼化保險庫入口數量
</value>
</data>
<data
name=
"Number of departments"
xml:space=
"preserve"
>
<value>
部門數量
</value>
</data>
<data
name=
"Number of new
data
this month"
xml:space=
"preserve"
>
<value>
本月新
資料
數量
</value>
<data
name=
"Number of new
Token Vault Entry added
this month"
xml:space=
"preserve"
>
<value>
本月新
增代碼化保險庫入口
數量
</value>
</data>
<data
name=
"Number of Token Vaults"
xml:space=
"preserve"
>
<value>
Token Vault數量
</value>
...
...
@@ -135,4 +132,7 @@
<data
name=
"Statistic"
xml:space=
"preserve"
>
<value>
數據統計
</value>
</data>
<data
name=
"Total number of Token Vault Entry"
xml:space=
"preserve"
>
<value>
代碼化保險庫入口總數量
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/Key/ListKeys.zh.resx
0 → 100644
View file @
4eecaac7
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<data
name=
"Add User"
xml:space=
"preserve"
>
<value>
新增使用者
</value>
</data>
<data
name=
"Allow decryption"
xml:space=
"preserve"
>
<value>
允許解密
</value>
</data>
<data
name=
"Allow delete"
xml:space=
"preserve"
>
<value>
允許刪除
</value>
</data>
<data
name=
"Allow to add"
xml:space=
"preserve"
>
<value>
允許新增
</value>
</data>
<data
name=
"Allow update"
xml:space=
"preserve"
>
<value>
允許更新
</value>
</data>
<data
name=
"Choose department"
xml:space=
"preserve"
>
<value>
選擇部門
</value>
</data>
<data
name=
"Confirm"
xml:space=
"preserve"
>
<value>
確認
</value>
</data>
<data
name=
"Create"
xml:space=
"preserve"
>
<value>
新增欄位
</value>
</data>
<data
name=
"Create Department"
xml:space=
"preserve"
>
<value>
新增部門
</value>
</data>
<data
name=
"Creation Date"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Data Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Data Token Vault"
xml:space=
"preserve"
>
<value>
資料代碼保險庫
</value>
</data>
<data
name=
"Default Mask ID"
xml:space=
"preserve"
>
<value>
預設遮罩ID
</value>
</data>
<data
name=
"Delete"
xml:space=
"preserve"
>
<value>
刪除
</value>
</data>
<data
name=
"Delete key"
xml:space=
"preserve"
>
<value>
刪除鑰匙
</value>
</data>
<data
name=
"Description"
xml:space=
"preserve"
>
<value>
描述
</value>
</data>
<data
name=
"Enable"
xml:space=
"preserve"
>
<value>
啟用
</value>
</data>
<data
name=
"Encryption"
xml:space=
"preserve"
>
<value>
加密
</value>
</data>
<data
name=
"Expiration"
xml:space=
"preserve"
>
<value>
到期日期
</value>
</data>
<data
name=
"Field List Management"
xml:space=
"preserve"
>
<value>
欄位列表管理
</value>
</data>
<data
name=
"Format"
xml:space=
"preserve"
>
<value>
格式
</value>
</data>
<data
name=
"Keys List"
xml:space=
"preserve"
>
<value>
鑰匙列表
</value>
</data>
<data
name=
"Last Update"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Manage"
xml:space=
"preserve"
>
<value>
管理
</value>
</data>
<data
name=
"Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"Number of codes"
xml:space=
"preserve"
>
<value>
代碼數量
</value>
</data>
<data
name=
"Number of users"
xml:space=
"preserve"
>
<value>
使用者數量
</value>
</data>
<data
name=
"Remove User"
xml:space=
"preserve"
>
<value>
移除使用者
</value>
</data>
<data
name=
"Revise"
xml:space=
"preserve"
>
<value>
修改
</value>
</data>
<data
name=
"Select user"
xml:space=
"preserve"
>
<value>
新增用戶
</value>
</data>
<data
name=
"Serial number"
xml:space=
"preserve"
>
<value>
編號
</value>
</data>
<data
name=
"Set up"
xml:space=
"preserve"
>
<value>
設定
</value>
</data>
<data
name=
"Status"
xml:space=
"preserve"
>
<value>
狀態
</value>
</data>
<data
name=
"Token Vault List"
xml:space=
"preserve"
>
<value>
代碼化保險庫列管理
</value>
</data>
<data
name=
"Tpye"
xml:space=
"preserve"
>
<value>
種類
</value>
</data>
<data
name=
"Username"
xml:space=
"preserve"
>
<value>
用戶名
</value>
</data>
<data
name=
"Users"
xml:space=
"preserve"
>
<value>
使用者
</value>
</data>
<data
name=
"Vault"
xml:space=
"preserve"
>
<value>
保險庫
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/TokenVault/List.zh.resx
View file @
4eecaac7
...
...
@@ -126,28 +126,34 @@
<data
name=
"Creation Date"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Data Token Vault"
xml:space=
"preserve"
>
<value>
資料代碼保險庫
</value>
</data>
<data
name=
"Description"
xml:space=
"preserve"
>
<value>
描述
</value>
</data>
<data
name=
"Manage
ment
"
xml:space=
"preserve"
>
<data
name=
"Manage"
xml:space=
"preserve"
>
<value>
管理
</value>
</data>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"Number of
data
"
xml:space=
"preserve"
>
<value>
資料
數量
</value>
<data
name=
"Number of
codes
"
xml:space=
"preserve"
>
<value>
代碼
數量
</value>
</data>
<data
name=
"Number of users"
xml:space=
"preserve"
>
<value>
使用者數量
</value>
</data>
<data
name=
"Serial number"
xml:space=
"preserve"
>
<value>
編號
</value>
</data>
<data
name=
"Status"
xml:space=
"preserve"
>
<value>
狀態
</value>
</data>
<data
name=
"Token Vault List"
xml:space=
"preserve"
>
<value>
Token Vault列表
管理
</value>
<value>
代碼化保險庫列
管理
</value>
</data>
<data
name=
"Tpye
s
"
xml:space=
"preserve"
>
<data
name=
"Tpye"
xml:space=
"preserve"
>
<value>
種類
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/TokenVault/ListFields.zh.resx
0 → 100644
View file @
4eecaac7
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<data
name=
"Choose department"
xml:space=
"preserve"
>
<value>
選擇部門
</value>
</data>
<data
name=
"Create"
xml:space=
"preserve"
>
<value>
新增欄位
</value>
</data>
<data
name=
"Create Department"
xml:space=
"preserve"
>
<value>
新增部門
</value>
</data>
<data
name=
"Creation Date"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Data Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Data Token Vault"
xml:space=
"preserve"
>
<value>
資料代碼保險庫
</value>
</data>
<data
name=
"Delete"
xml:space=
"preserve"
>
<value>
刪除
</value>
</data>
<data
name=
"Description"
xml:space=
"preserve"
>
<value>
描述
</value>
</data>
<data
name=
"Enable"
xml:space=
"preserve"
>
<value>
啟用
</value>
</data>
<data
name=
"Field List Management"
xml:space=
"preserve"
>
<value>
欄位列表管理
</value>
</data>
<data
name=
"Format"
xml:space=
"preserve"
>
<value>
格式
</value>
</data>
<data
name=
"Manage"
xml:space=
"preserve"
>
<value>
管理
</value>
</data>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"Number of codes"
xml:space=
"preserve"
>
<value>
代碼數量
</value>
</data>
<data
name=
"Number of users"
xml:space=
"preserve"
>
<value>
使用者數量
</value>
</data>
<data
name=
"Revise"
xml:space=
"preserve"
>
<value>
修改
</value>
</data>
<data
name=
"Serial number"
xml:space=
"preserve"
>
<value>
編號
</value>
</data>
<data
name=
"Set up"
xml:space=
"preserve"
>
<value>
設定
</value>
</data>
<data
name=
"Status"
xml:space=
"preserve"
>
<value>
狀態
</value>
</data>
<data
name=
"Token Vault List"
xml:space=
"preserve"
>
<value>
代碼化保險庫列管理
</value>
</data>
<data
name=
"Tpye"
xml:space=
"preserve"
>
<value>
種類
</value>
</data>
<data
name=
"Users"
xml:space=
"preserve"
>
<value>
使用者
</value>
</data>
<data
name=
"Vault"
xml:space=
"preserve"
>
<value>
保險庫
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/TokenVault/ListMasks.zh.resx
0 → 100644
View file @
4eecaac7
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<data
name=
"Add mask"
xml:space=
"preserve"
>
<value>
新增遮罩
</value>
</data>
<data
name=
"Add User"
xml:space=
"preserve"
>
<value>
新增使用者
</value>
</data>
<data
name=
"Allow decryption"
xml:space=
"preserve"
>
<value>
允許解密
</value>
</data>
<data
name=
"Allow delete"
xml:space=
"preserve"
>
<value>
允許刪除
</value>
</data>
<data
name=
"Allow to add"
xml:space=
"preserve"
>
<value>
允許新增
</value>
</data>
<data
name=
"Allow update"
xml:space=
"preserve"
>
<value>
允許更新
</value>
</data>
<data
name=
"Choose department"
xml:space=
"preserve"
>
<value>
選擇部門
</value>
</data>
<data
name=
"Confirm"
xml:space=
"preserve"
>
<value>
確認
</value>
</data>
<data
name=
"Create"
xml:space=
"preserve"
>
<value>
新增欄位
</value>
</data>
<data
name=
"Create Department"
xml:space=
"preserve"
>
<value>
新增部門
</value>
</data>
<data
name=
"Creation Date"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Data Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Data Token Vault"
xml:space=
"preserve"
>
<value>
資料代碼保險庫
</value>
</data>
<data
name=
"Default Mask ID"
xml:space=
"preserve"
>
<value>
預設遮罩ID
</value>
</data>
<data
name=
"Delete"
xml:space=
"preserve"
>
<value>
刪除
</value>
</data>
<data
name=
"Description"
xml:space=
"preserve"
>
<value>
描述
</value>
</data>
<data
name=
"Enable"
xml:space=
"preserve"
>
<value>
啟用
</value>
</data>
<data
name=
"Field"
xml:space=
"preserve"
>
<value>
欄位
</value>
</data>
<data
name=
"Field List Management"
xml:space=
"preserve"
>
<value>
欄位列表管理
</value>
</data>
<data
name=
"Format"
xml:space=
"preserve"
>
<value>
格式
</value>
</data>
<data
name=
"Is it a unique value"
xml:space=
"preserve"
>
<value>
是否為唯一值
</value>
</data>
<data
name=
"Manage"
xml:space=
"preserve"
>
<value>
管理
</value>
</data>
<data
name=
"Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"Number of codes"
xml:space=
"preserve"
>
<value>
代碼數量
</value>
</data>
<data
name=
"Number of users"
xml:space=
"preserve"
>
<value>
使用者數量
</value>
</data>
<data
name=
"Remove User"
xml:space=
"preserve"
>
<value>
移除使用者
</value>
</data>
<data
name=
"Revise"
xml:space=
"preserve"
>
<value>
修改
</value>
</data>
<data
name=
"Select user"
xml:space=
"preserve"
>
<value>
新增用戶
</value>
</data>
<data
name=
"Serial number"
xml:space=
"preserve"
>
<value>
編號
</value>
</data>
<data
name=
"Set up"
xml:space=
"preserve"
>
<value>
設定
</value>
</data>
<data
name=
"Status"
xml:space=
"preserve"
>
<value>
狀態
</value>
</data>
<data
name=
"Token Vault List"
xml:space=
"preserve"
>
<value>
代碼化保險庫列管理
</value>
</data>
<data
name=
"Tpye"
xml:space=
"preserve"
>
<value>
種類
</value>
</data>
<data
name=
"Username"
xml:space=
"preserve"
>
<value>
用戶名
</value>
</data>
<data
name=
"Users"
xml:space=
"preserve"
>
<value>
使用者
</value>
</data>
<data
name=
"Vault"
xml:space=
"preserve"
>
<value>
保險庫
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/TokenVault/ListUsers.zh.resx
0 → 100644
View file @
4eecaac7
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<data
name=
"Add User"
xml:space=
"preserve"
>
<value>
新增使用者
</value>
</data>
<data
name=
"Allow decryption"
xml:space=
"preserve"
>
<value>
允許解密
</value>
</data>
<data
name=
"Allow delete"
xml:space=
"preserve"
>
<value>
允許刪除
</value>
</data>
<data
name=
"Allow to add"
xml:space=
"preserve"
>
<value>
允許新增
</value>
</data>
<data
name=
"Allow update"
xml:space=
"preserve"
>
<value>
允許更新
</value>
</data>
<data
name=
"Choose department"
xml:space=
"preserve"
>
<value>
選擇部門
</value>
</data>
<data
name=
"Confirm"
xml:space=
"preserve"
>
<value>
確認
</value>
</data>
<data
name=
"Create"
xml:space=
"preserve"
>
<value>
新增欄位
</value>
</data>
<data
name=
"Create Department"
xml:space=
"preserve"
>
<value>
新增部門
</value>
</data>
<data
name=
"Creation Date"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Data Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Data Token Vault"
xml:space=
"preserve"
>
<value>
資料代碼保險庫
</value>
</data>
<data
name=
"Default Mask ID"
xml:space=
"preserve"
>
<value>
預設遮罩ID
</value>
</data>
<data
name=
"Delete"
xml:space=
"preserve"
>
<value>
刪除
</value>
</data>
<data
name=
"Description"
xml:space=
"preserve"
>
<value>
描述
</value>
</data>
<data
name=
"Enable"
xml:space=
"preserve"
>
<value>
啟用
</value>
</data>
<data
name=
"Field List Management"
xml:space=
"preserve"
>
<value>
欄位列表管理
</value>
</data>
<data
name=
"Format"
xml:space=
"preserve"
>
<value>
格式
</value>
</data>
<data
name=
"Manage"
xml:space=
"preserve"
>
<value>
管理
</value>
</data>
<data
name=
"Mask"
xml:space=
"preserve"
>
<value>
遮罩
</value>
</data>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"Number of codes"
xml:space=
"preserve"
>
<value>
代碼數量
</value>
</data>
<data
name=
"Number of users"
xml:space=
"preserve"
>
<value>
使用者數量
</value>
</data>
<data
name=
"Remove User"
xml:space=
"preserve"
>
<value>
移除使用者
</value>
</data>
<data
name=
"Revise"
xml:space=
"preserve"
>
<value>
修改
</value>
</data>
<data
name=
"Select user"
xml:space=
"preserve"
>
<value>
新增用戶
</value>
</data>
<data
name=
"Serial number"
xml:space=
"preserve"
>
<value>
編號
</value>
</data>
<data
name=
"Set up"
xml:space=
"preserve"
>
<value>
設定
</value>
</data>
<data
name=
"Status"
xml:space=
"preserve"
>
<value>
狀態
</value>
</data>
<data
name=
"Token Vault List"
xml:space=
"preserve"
>
<value>
代碼化保險庫列管理
</value>
</data>
<data
name=
"Tpye"
xml:space=
"preserve"
>
<value>
種類
</value>
</data>
<data
name=
"Username"
xml:space=
"preserve"
>
<value>
用戶名
</value>
</data>
<data
name=
"Users"
xml:space=
"preserve"
>
<value>
使用者
</value>
</data>
<data
name=
"Vault"
xml:space=
"preserve"
>
<value>
保險庫
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/User/CreateDepartment.zh.resx
View file @
4eecaac7
...
...
@@ -126,25 +126,25 @@
<data
name=
"Create Department"
xml:space=
"preserve"
>
<value>
新增部門
</value>
</data>
<data
name=
"
creation_d
ate"
xml:space=
"preserve"
>
<data
name=
"
Creation D
ate"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Department ID"
xml:space=
"preserve"
>
<value>
部門ID
</value>
</data>
<data
name=
"Department List"
xml:space=
"preserve"
>
<value>
部門列表
</value>
</data>
<data
name=
"merchant_id"
xml:space=
"preserve"
>
<value>
部門ID
</value>
</data>
<data
name=
"name"
xml:space=
"preserve"
>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"
p
hone"
xml:space=
"preserve"
>
<data
name=
"
P
hone"
xml:space=
"preserve"
>
<value>
電話
</value>
</data>
<data
name=
"
s
ubmit"
xml:space=
"preserve"
>
<data
name=
"
S
ubmit"
xml:space=
"preserve"
>
<value>
送出
</value>
</data>
<data
name=
"
u
sername"
xml:space=
"preserve"
>
<data
name=
"
U
sername"
xml:space=
"preserve"
>
<value>
使用者名稱
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/User/ListDepartments.zh.resx
View file @
4eecaac7
...
...
@@ -123,22 +123,22 @@
<data
name=
"Create"
xml:space=
"preserve"
>
<value>
新增部門
</value>
</data>
<data
name=
"
creation_d
ate"
xml:space=
"preserve"
>
<data
name=
"
Creation D
ate"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Department ID"
xml:space=
"preserve"
>
<value>
部門ID
</value>
</data>
<data
name=
"Department List"
xml:space=
"preserve"
>
<value>
部門列表
</value>
</data>
<data
name=
"merchant_id"
xml:space=
"preserve"
>
<value>
部門ID
</value>
</data>
<data
name=
"name"
xml:space=
"preserve"
>
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"
p
hone"
xml:space=
"preserve"
>
<data
name=
"
P
hone"
xml:space=
"preserve"
>
<value>
電話
</value>
</data>
<data
name=
"
u
sername"
xml:space=
"preserve"
>
<data
name=
"
U
sername"
xml:space=
"preserve"
>
<value>
使用者名稱
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Resources/Views/User/ListUsers.zh.resx
View file @
4eecaac7
...
...
@@ -124,13 +124,13 @@
<value>
Admin數量
</value>
</data>
<data
name=
"Create"
xml:space=
"preserve"
>
<value>
新增
</value>
<value>
新增
使用者
</value>
</data>
<data
name=
"creation_date"
xml:space=
"preserve"
>
<value>
建立日期
</value>
</data>
<data
name=
"Email"
xml:space=
"preserve"
>
<value>
電子
郵件
</value>
<value>
電子
信箱
</value>
</data>
<data
name=
"enabled"
xml:space=
"preserve"
>
<value>
啟用
</value>
...
...
Merchant Token Vault Management/backstage/Views/Home/Index.cshtml
View file @
4eecaac7
...
...
@@ -44,7 +44,7 @@
<div class="col-lg-4 col-md-6 grid-margin stretch-card dashboard-card">
<div class="card">
<div class="card-body">
<h4 class="card-title">Token Vault Entry <br>@Localizer["
Number of data
"]</h4>
<h4 class="card-title">Token Vault Entry <br>@Localizer["
Total number of Token Vault Entry
"]</h4>
<div class="card-content text-center">
<img src="~/images/admin-vault-data.svg" class="img-fuild">
<p class="number text-center">200</p>
...
...
@@ -56,7 +56,7 @@
<div class="col-lg-4 col-md-6 grid-margin stretch-card dashboard-card">
<div class="card">
<div class="card-body">
<h4 class="card-title">Token Vualt Entry<br />@Localizer["Number of new
data
this month"]</h4>
<h4 class="card-title">Token Vualt Entry<br />@Localizer["Number of new
Token Vault Entry added
this month"]</h4>
<div class="card-content text-center">
<img src="~/images/admin-vault-add.svg" class="img-fuild">
<p class="number text-center">10</p>
...
...
@@ -68,7 +68,7 @@
<div class="col-lg-4 col-md-6 grid-margin stretch-card dashboard-card">
<div class="card">
<div class="card-body">
<h4 class="card-title">Token Vualt Entry<br />@Localizer["
Number of data modifications
this month"]</h4>
<h4 class="card-title">Token Vualt Entry<br />@Localizer["
Modify the number of Token Vault Entry
this month"]</h4>
<div class="card-content text-center">
<img src="~/images/admin-vault-edit.svg" class="img-fuild">
<p class="number text-center">7</p>
...
...
Merchant Token Vault Management/backstage/Views/Key/ListKeys.cshtml
View file @
4eecaac7
@model List<backstage.Models.Keys.Key>
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@model List<backstage.Models.Keys.Key>
@{
ViewData["Title"] = "Keys List";
}
...
...
@@ -15,7 +17,7 @@
}
<div class="page-header">
<h3 class="page-title">
Keys List
</h3>
<h3 class="page-title">
@Localizer["Keys List"]
</h3>
<input id="msg" hidden value="@TempData["msg"]" />
@if (TempData["isSuccess"] != null)
{
...
...
@@ -33,8 +35,8 @@
<div class="col-md-12">
<ul class="breadcrumb breadcrumb_memberGo">
@*<li class="breadcrumb-item active"><a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">資料代碼保險庫</a></li>
<li class="breadcrumb-item active"><a asp-action="ListFields" asp-route-merchant_id="@ViewBag.Merchant_id" asp-route-vault_id="@ViewBag.vault_id">欄位資料</a></li>*@
<li class="breadcrumb-item active">
Keys List
</li>
<li class="breadcrumb-item active"><a asp-action="ListFields" asp-route-merchant_id="@ViewBag.Merchant_id" asp-route-vault_id="@ViewBag.vault_id">欄位資料</a></li>*@
<li class="breadcrumb-item active">
@Localizer["Keys List"]
</li>
</ul>
</div>
</div>
...
...
@@ -44,86 +46,101 @@
<table class="table table-striped">
<thead>
<tr>
<th style=" border-left: solid 0.1px #d9d9d9;">
ID
</th>
<th>
Name
</th>
<th>
Encryption
</th>
<th>
Last Update
</th>
<th>
Status
</th>
<th>
Expiration
</th>
<th>
Modify
</th>
<th style=" border-right: solid 0.1px #d9d9d9;">
Delete
</th>
<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)
@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
">
<i class="fa-solid fa-pen-to-square"></i>
</a>
</td>
<td>
<a
data-toggle="modal" data-target="#deleteProject" title="Delete">
<i class="fa-solid fa-trash-can"></i>
</a>
</td>
</tr>
<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 class="reviseKeyBtn" data-keyId="@k.id" data-toggle="modal" data-target="#editProject" title="Revise
">
<i class="fa-solid fa-pen-to-square"></i>
</a>
</td>
<td>
<a class="deleteKeyBtn" data-keyId="@k.id"
data-toggle="modal" data-target="#deleteProject" title="Delete">
<i class="fa-solid fa-trash-can"></i>
</a>
</td>
</tr>
}
}
</tbody>
</table>
<!--End of APIKey管理 table-->
</tbody>
</table>
<!--End of APIKey管理 table-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade " id="deleteProject" role="dialog" tabindex="-1" aria-modal="true" >
<div class="modal-dialog modal-sm modalforMemberGo">
<!-- MODAL -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<!-- Modal content-->
<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">×</span>
</button>
</div>
<div class="modal-body">
<select id="selectUser" class="form-control" asp-items="ViewBag.users">
<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 id="confirmBtn" class="btn btn-mainblue-solid" style="margin-right: 10px; width: 80px">@Localizer["Submit"]</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"-->
<!-- 其他用户选项 -->
</select>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="confirmBtn" data-dismiss="modal">確認</button>
</div>
</div>
</div>
<!--
<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{
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script nonce="KUY8VewuvyUYVEIvEFue4vwyiuf">
@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"]';
...
...
@@ -139,33 +156,50 @@
tooltipClass: "custom-tooltip-width"
});
$("#confirmBtn").on("click", function () {
// 確認按鈕被點擊時的處理程式碼
// 在這裡呼叫您的 API
var merchant_id = parseInt('@ViewBag.Merchant_id');
var vault_id = parseInt('@ViewBag.vault_id'
);
var field_id = parseInt('@ViewBag.field_id'
);
var selectedUser = parseInt($("#selectUser").val()); // 替換為您實際使用的選取元素的 ID
var selectKeyId;
$('.deleteKeyBtn').click(function (e) {
selectKeyId = parseInt( $(this).data('keyid')
);
console.log('selectKeyId=' + selectKeyId
);
});
$("#confirmBtn").on("click", function (e) {
// 確認按鈕被點擊時的處理程式碼
e.preventDefault(); // 防止點擊後刷新頁面(如果該鏈接是 <a> 標籤)
var data = {
keyId: selectKeyId
};
console.log('data.keyId=' + data.keyId);
$.ajax({
url: "/
TokenVault/Addusers
",
method: "POST",
contentType: "application/json"
,
data: JSON.stringify({ Merchant_id: merchant_id, vault_id: vault_id, field_id: field_id, user_id: selectedUser}),
url: "/
Key/DeleteKey
",
type: 'POST', // 或 'GET',根據實際需求
data: data
,
success: function (response) {
// API 呼叫成功的處理程式碼
showAlert(response.isSuccess, response.message)
if (response.isSuccess) {
setTimeout(function () {
location.reload();
}, 2000);
}
},
error: function (xhr, status, error) {
// API 呼叫失敗的處理程式碼
showAlert(false, error.responseText)
}
});
});
})
</script>
}
\ No newline at end of file
</script>
}
\ No newline at end of file
Merchant Token Vault Management/backstage/Views/Shared/_Layout.cshtml
View file @
4eecaac7
...
...
@@ -141,7 +141,7 @@
<i
class=
"mdi mdi-earth"
></i>
</a>
<div
class=
"dropdown-menu dropdown-menu-right navbar-dropdown preview-list"
aria-labelledby=
"languageDropdown"
>
<a
class=
"dropdown-item preview-item"
asp-action=
"ChangeLanguage"
asp-controller=
"Home"
asp-route-lang=
"en"
asp-route-returnUrl=
"@Context.Request.Path.Value
"
>
<a
class=
"dropdown-item preview-item"
asp-action=
"ChangeLanguage"
asp-controller=
"Home"
asp-route-lang=
"en"
asp-route-returnUrl=
"@($"
{
Context
.
Request
.
Path
.
Value
}{
Context
.
Request
.
QueryString
}")
"
>
<div
class=
"preview-thumbnail"
>
<div
class=
"preview-icon languageIcon"
>
<img
src=
"/images/icon-lan-en-80.jpg"
>
...
...
@@ -152,7 +152,7 @@
</div>
</a>
<div
class=
"dropdown-divider"
></div>
<a
class=
"dropdown-item preview-item"
asp-action=
"ChangeLanguage"
asp-controller=
"Home"
asp-route-lang=
"zh"
asp-route-returnUrl=
"@
Context.Request.Path.Value
"
>
<a
class=
"dropdown-item preview-item"
asp-action=
"ChangeLanguage"
asp-controller=
"Home"
asp-route-lang=
"zh"
asp-route-returnUrl=
"@
($"
{
Context
.
Request
.
Path
.
Value
}{
Context
.
Request
.
QueryString
}")
"
>
<div
class=
"preview-thumbnail"
>
<div
class=
"preview-icon languageIcon"
>
...
...
Merchant Token Vault Management/backstage/Views/TokenVault/List.cshtml
View file @
4eecaac7
...
...
@@ -58,14 +58,14 @@
<table class="table table-striped ">
<thead>
<tr class="">
<th>
Id
</th>
<th>
@Localizer["Serial number"]
</th>
<th> @Localizer["Name"]</th>
<th> @Localizer["Description"]</th>
<th> @Localizer["Tpye
s
"]</th>
<th> @Localizer["Tpye"]</th>
<th> @Localizer["Creation Date"]</th>
<th> @Localizer["Status"]</th>
<th> @Localizer["Manage
ment
"]</th>
<th> @Localizer["Number of
data
"]</th>
<th> @Localizer["Manage"]</th>
<th> @Localizer["Number of
codes
"]</th>
<th> @Localizer["Number of users"]</th>
</tr>
...
...
@@ -162,7 +162,7 @@
$.ajax({
url: '/TokenVault/ListTokenVaultAjax', // 替換為適當的控制器方法路徑
type: 'POST', // 或 'GET',根據實際需求
data:
{ merchantId: selectedOption }
,
data:
JSON.stringify({ merchantId: selectedOption })
,
success: function (response) {
$('#tbody').empty();
$('#tbody').append(response);
...
...
Merchant Token Vault Management/backstage/Views/TokenVault/ListFields.cshtml
View file @
4eecaac7
@model backstage.Models.TokenVault.FieldsResponse
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@model backstage.Models.TokenVault.FieldsResponse
@{
ViewData["Title"] =
"Fields列表管理"
;
ViewData["Title"] =
@Localizer["Field List Management"]
;
}
@{
bool isAdmin = User.IsInRole("Admin");
...
...
@@ -36,7 +38,7 @@
</script>
}}
<div class="page-header">
<h3 class="page-title">
Fields列表管理列表管理
</h3>
<h3 class="page-title">
@Localizer["Field List Management"]
</h3>
<input id="msg" hidden value="@TempData["msg"]" />
@if (TempData["isSuccess"] != null)
{
...
...
@@ -50,27 +52,32 @@
<div class="col-lg-12 grid-margin stretch-card">
<div class="card">
<div class="card-body">
@*路徑列*@
<div class="row">
<div class="col-md-12">
<ul class="breadcrumb breadcrumb_memberGo">
<li class="breadcrumb-item active"><a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">Token Vault</a></li>
<li class="breadcrumb-item ">Fields Data</li>
<li class="breadcrumb-item active">
<a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">
@Localizer["Token Vault List"]
</a>
</li>
<li class="breadcrumb-item ">@Localizer["Field List Management"]</li>
</ul>
</div>
</div>
<div style="display: flex; justify-content: space-between;">
<div style="float: left; width: 50%;">
<div class="table-responsive">
<table class="table table-striped table-hover0 table-bordered0" id="memberGoTbl_dataDetail">
<tbody>
<tr>
<th>
Token Vault
</th>
<td class="item">
ID
</td>
<th>
@Localizer["Token Vault"]
</th>
<td class="item">
@Localizer["Serial number"]
</td>
<td class="content">@ViewBag.VaultInfo.vault_id</td>
<td class="item">
Name
</td>
<td class="item">
@Localizer["Name"]
</td>
<td class="content">@ViewBag.VaultInfo.name</td>
</tr>
</tbody>
...
...
@@ -78,7 +85,7 @@
</div>
</div>
<div style="float: right;">
<a type="button" class="btn btn-info float-right mb-2 @disabledClass"
data-toggle="modal" data-target="#myModal">Create
</a>
<a type="button" class="btn btn-info float-right mb-2 @disabledClass"
data-toggle="modal" data-target="#myModal">@Localizer["Create"]
</a>
</div>
</div>
<div>
...
...
@@ -87,12 +94,12 @@
<table class="table table-striped expense-color">
<thead>
<tr class="expense-color">
<th>
ID
</th>
<th>
Name
</th>
<th>
Descryption
</th>
<th>
Format
</th>
<th>
Enable
</th>
<th>
Management
</th>
<th>
@Localizer["Serial number"]
</th>
<th>
@Localizer["Name"]
</th>
<th>
@Localizer["Description"]
</th>
<th>
@Localizer["Format"]
</th>
<th>
@Localizer["Enable"]
</th>
<th>
@Localizer["Manage"]
</th>
</tr>
</thead>
...
...
@@ -111,8 +118,8 @@
<td>
<!-- <button class="btn btnPermission btn-sm" data-toggle="modal" data-target="#permission">資料遮罩</button> -->
<a class="btn btnPermission btn-sm masksBtn">
Data Mask
</a>
<a class="btn btnPermission btn-sm usersBtn">
Users
</a>
<a class="btn btnPermission btn-sm masksBtn">
@Localizer["Data Mask"]
</a>
<a class="btn btnPermission btn-sm usersBtn">
@Localizer["Users"]
</a>
</td>
</tr>
}
...
...
@@ -139,34 +146,34 @@
<div class="modal-content">
<form class="forms-sample" method="post" asp-action="CreateField" autocomplete="off">
<div id="errorMsg" asp-validation-summary="All" class="text-danger"></div>
<h4 class="modal-title">基本資料</h4>
<div class="modal-body">
<div class="form-group">
<input name="merchant_id" value=@ViewBag.Merchant_id hidden />
<input name="vault_id" value=@ViewBag.vault_id hidden />
</div>
<div class="form-group required">
<label class="control-label">
name
</label>
<label class="control-label">
@Localizer["Name"]
</label>
<input name="name" type="text" class="form-control" oninput="validateForm()">
<div id="nameError" class="text-danger"></div>
</div>
<div class="form-group required">
<label class="control-label">
desc
</label>
<label class="control-label">
@Localizer["Description"]
</label>
<input name="desc" type="text" class="form-control">
</div>
<div class="form-group required">
<label class="control-label">
format_exp
</label>
<label class="control-label">
@Localizer["Format"]
</label>
<input name="format_exp" type="text" class="form-control">
</div>
<div class="form-group required">
<label class="control-label">
Enabled
</label>
<label class="control-label">
@Localizer["Enable"]
</label>
<input name="enabled" type="checkbox" class="form-check-input" checked>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" id="createFieldBtn" disabled>
送出
</button>
<button type="button" class="btn btn-light" data-dismiss="modal">
取消
</button>
<button type="submit" class="btn btn-primary" id="createFieldBtn" disabled>
@Localizer["Submit"]
</button>
<button type="button" class="btn btn-light" data-dismiss="modal">
@Localizer["Cancel"]
</button>
</div>
</form>
</div>
...
...
Merchant Token Vault Management/backstage/Views/TokenVault/ListMasks.cshtml
View file @
4eecaac7
@model List<backstage.Models.TokenVault.Mask>
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@model List<backstage.Models.TokenVault.Mask>
@{
ViewData["Title"] = "Mask列表管理";
}
...
...
@@ -25,9 +28,9 @@
@*路徑列*@
<div class="col-md-12">
<ul class="breadcrumb breadcrumb_memberGo">
<li class="breadcrumb-item active"><a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">
資料代碼保險庫
</a></li>
<li class="breadcrumb-item active"><a asp-action="ListFields" asp-route-merchant_id="@ViewBag.Merchant_id" asp-route-vault_id="@ViewBag.vault_id">
欄位資料
</a></li>
<li class="breadcrumb-item ">
資料遮罩
</li>
<li class="breadcrumb-item active"><a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">
@Localizer["Token Vault List"]
</a></li>
<li class="breadcrumb-item active"><a asp-action="ListFields" asp-route-merchant_id="@ViewBag.Merchant_id" asp-route-vault_id="@ViewBag.vault_id">
@Localizer["Field List Management"]
</a></li>
<li class="breadcrumb-item ">
@Localizer["Data mask"]
</li>
</ul>
</div>
</div>
...
...
@@ -40,17 +43,17 @@
</thead> -->
<tbody>
<tr>
<th>
保險庫
</th>
<td class="item">
ID
</td>
<th>
@Localizer["Vault"]
</th>
<td class="item">
@Localizer["Serial number"]
</td>
<td class="content">@ViewBag.vault_id</td>
<td class="item">
名稱
</td>
<td class="item">
@Localizer["Name"]
</td>
<td class="content">@ViewBag.VaultName</td>
</tr>
<tr>
<th>
欄位
</th>
<td class="item">
ID
</td>
<th>
@Localizer["Field"]
</th>
<td class="item">
@Localizer["Serial number"]
</td>
<td class="content">@ViewBag.field_id</td>
<td class="item">
名稱
</td>
<td class="item">
@Localizer["Name"]
</td>
<td class="content">@ViewBag.FieldName</td>
</tr>
...
...
@@ -60,27 +63,27 @@
</table>
<div class="newBlock">
@*<button type="button" class="btn btn-mainblue-hollow" onclick="window.location.href='tokenVault_fields.html'"><img src="images/memberGo/apiKey/back_o_icons8-undo-90.png">返回</button>*@
<button id="NewMaskBtn" type="button" class="btn btn-mainblue-solid @disabledClass" data-toggle="modal" data-target="#new-field-mask"><img src="~/images/memberGo/add.png">
新增遮罩
</button>
<button id="NewMaskBtn" type="button" class="btn btn-mainblue-solid @disabledClass" data-toggle="modal" data-target="#new-field-mask"><img src="~/images/memberGo/add.png">
@Localizer["Add mask"]
</button>
</div>
<div class="table-responsive">
<table class="table table-striped table-hover0 table-bordered" id="memberGoTbl_masksList">
<thead>
<tr>
<th colspan="9">資料遮罩列表</th>
<th colspan="9">
@Localizer["Name"]
資料遮罩列表</th>
</tr>
</thead>
<tbody>
<tr>
<th style=" border-left: solid 1px #d9d9d9;">ID</th>
<th>
名稱
</th>
<th>
種類
</th>
<th>
遮罩
</th>
<th>
唯一值
</th>
<th>
設定
</th>
<th>
修改
</th>
<th style=" border-right: solid 0.1px #d9d9d9;">
刪除
</th>
<th>
@Localizer["Name"]
</th>
<th>
@Localizer["Type"]
</th>
<th>
@Localizer["Mask"]
</th>
<th>
@Localizer["Is it a unique value"]
</th>
<th>
@Localizer["Set up"]
</th>
<th>
@Localizer["Revise"]
</th>
<th style=" border-right: solid 0.1px #d9d9d9;">
@Localizer["Delete"]
</th>
</tr>
@if (Model.Count > 0)
...
...
Merchant Token Vault Management/backstage/Views/TokenVault/ListUsers.cshtml
View file @
4eecaac7
@model List<backstage.Models.Users.User>
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@model List<backstage.Models.Users.User>
@{
ViewData["Title"] = "欄位Users列表管理";
}
...
...
@@ -10,7 +12,7 @@
@section header{
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<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>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
}
...
...
@@ -28,35 +30,35 @@
<div class="col-lg-12 grid-margin stretch-card">
<div class="card">
<div class="card-body">
@*路徑列*@
<div class="row">
<div class="col-md-12">
<ul class="breadcrumb breadcrumb_memberGo">
<li class="breadcrumb-item active"><a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">
資料代碼保險庫
</a></li>
<li class="breadcrumb-item active"><a asp-action="ListFields" asp-route-merchant_id="@ViewBag.Merchant_id" asp-route-vault_id="@ViewBag.vault_id">
欄位資料
</a></li>
<li class="breadcrumb-item active">
使用者
</li>
<li class="breadcrumb-item active"><a asp-action="List" asp-route-merchantId="@ViewBag.Merchant_id">
@Localizer["Token Vault List"]
</a></li>
<li class="breadcrumb-item active"><a asp-action="ListFields" asp-route-merchant_id="@ViewBag.Merchant_id" asp-route-vault_id="@ViewBag.vault_id">
@Localizer["Field List Management"]
</a></li>
<li class="breadcrumb-item active">
@Localizer["Users"]
</li>
</ul>
</div>
</div>
<div>
<a type="button" class="btn btn-info float-right mb-2 @disabledClass" data-toggle="modal" data-target="#myModal">
Add User
</a>
<a type="button" class="btn btn-info float-right mb-2 @disabledClass" data-toggle="modal" data-target="#myModal">
@Localizer["Add User"]
</a>
<div class="rank-table">
<div class="table-responsive">
<table class="table table-striped expense-color">
<thead>
<tr class="expense-color">
<th>
編號
</th>
<th>
名稱
</th>
<th>
username
</th>
<th>
遮罩
</th>
<th>
允許解密
</th>
<th>
允許新增
</th>
<th>
允許更新
</th>
<th>
允許刪除
</th>
<th>
預設遮罩ID
</th>
<th>
管理
</th>
<th>
@Localizer["Serial number"]
</th>
<th>
@Localizer["Name"]
</th>
<th>
@Localizer["Username"]
</th>
<th>
@Localizer["Mask"]
</th>
<th>
@Localizer["Allow decryption"]
</th>
<th>
@Localizer["Allow to add"]
</th>
<th>
@Localizer["Allow update"]
</th>
<th>
@Localizer["Allow delete"]
</th>
<th>
@Localizer["Default Mask ID"]
</th>
<th>
@Localizer["Manage"]
</th>
</tr>
</thead>
<tbody id="tbody">
...
...
@@ -64,36 +66,36 @@
{
@foreach (var i in Model)
{
<tr id="@i.id" class="expense-color">
<td>@i.id</td>
<td>@i.name</td>
<td>@i.username</td>
<td class="custom-tooltip" data-tooltip="@i.masksSettingText">@i.masksText</td>
<td>
@if (i.allow_decrypt == 1)
{<span>✔</span>}
</td>
<td>
@if (i.allow_new == 1)
{<span>✔</span>}
</td>
<td>
@if (i.allow_update == 1)
{<span>✔</span>}
</td>
<td>
@if (i.allow_del == 1)
{<span>✔</span>}
</td>
<td>@i.default_mask_id</td>
<td>
<a class="btn btnPermission btn-sm">移除使用者
</a>
</td>
</tr>
<tr id="@i.id" class="expense-color">
<td>@i.id</td>
<td>@i.name</td>
<td>@i.username</td>
<td class="custom-tooltip" data-tooltip="@i.masksSettingText">@i.masksText</td>
<td>
@if (i.allow_decrypt == 1)
{<span>✔</span>}
</td>
<td>
@if (i.allow_new == 1)
{<span>✔</span>}
</td>
<td>
@if (i.allow_update == 1)
{<span>✔</span>}
</td>
<td>
@if (i.allow_del == 1)
{<span>✔</span>}
</td>
<td>@i.default_mask_id</td>
<td>
<a class="btn btnPermission btn-sm">@Localizer["Remove User"]
</a>
</td>
</tr>
}
}
...
...
@@ -117,7 +119,7 @@
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">
選擇使用者
</h5>
<h5 class="modal-title" id="myModalLabel">
@Localizer["Select user"]
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
...
...
@@ -129,7 +131,7 @@
</select>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="confirmBtn" data-dismiss="modal">
確認
</button>
<button type="button" class="btn btn-primary" id="confirmBtn" data-dismiss="modal">
@Localizer["Confirm"]
</button>
</div>
</div>
</div>
...
...
@@ -169,7 +171,7 @@
success: function (response) {
showAlert(response.isSuccess, response.message);
if (response.isSuccess) {
setTimeout(function () {
location.reload();
}, 2000);
...
...
Merchant Token Vault Management/backstage/Views/User/CreateDepartment.cshtml
View file @
4eecaac7
...
...
@@ -21,19 +21,19 @@
<div class="col-12 grid-margin stretch-card">
<div class="card">
<div class="card-body">
<h4 class="card-title"> @Localizer["Create Department"]</h4>
<form class="forms-sample" method="post" asp-action="CreateDepartment" autocomplete="off">
<div id="errorMsg" asp-validation-summary="All" class="text-danger"></div>
<p class="form-title card-description">@Localizer["Basic"]</p>
<div class="row">
<div class="col-md-4 form-group required">
<label asp-for="name" class="col-form-label" for="">@Localizer["
n
ame"]</label>
<label asp-for="name" class="col-form-label" for="">@Localizer["
N
ame"]</label>
<input asp-for="name" type="text" class="form-control" id="">
<span asp-validation-for="name" class="text-danger"></span>
</div>
<div class="col-md-4 form-group ">
<label asp-for="phone" class="col-form-label" for="phone">@Localizer["
p
hone"]</label>
<label asp-for="phone" class="col-form-label" for="phone">@Localizer["
P
hone"]</label>
<input asp-for="phone" class="form-control" id="phone">
<span asp-validation-for="phone" class="text-danger"></span>
</div>
...
...
Merchant Token Vault Management/backstage/Views/User/ListDepartments.cshtml
View file @
4eecaac7
...
...
@@ -26,17 +26,17 @@
<table class="table table-striped ">
<thead>
<tr>
<th>@Localizer["
merchant_id
"]</th>
<th>@Localizer["
n
ame"]</th>
<th>@Localizer["
Department ID
"]</th>
<th>@Localizer["
N
ame"]</th>
@*<th>address</th>
<th>country_id</th>
<th>postcode</th>*@
<th>@Localizer["
p
hone"]</th>
<th>@Localizer["
P
hone"]</th>
@*<th>fax</th>*@
@*<th>vatid</th>*@
@*<th>enabled</th>*@
<th>@Localizer["
creation_d
ate"]</th>
<th>@Localizer["
Creation D
ate"]</th>
@*<th>vatid_verify</th>
<th>deposit_book_verify</th>
<th>user_natid_verify</th>
...
...
Merchant Token Vault Management/backstage/wwwroot/css/style.css
View file @
4eecaac7
...
...
@@ -19338,4 +19338,7 @@ tbody {
}
.custom-tooltip
{
cursor
:
pointer
!important
;
}
.deleteKeyBtn
,
.reviseKeyBtn
{
cursor
:
pointer
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment