Commit 27e1abca authored by nickchen's avatar nickchen 🎨

up: license命名

parent c86951d9
...@@ -1874,7 +1874,7 @@ namespace backstage.Controllers ...@@ -1874,7 +1874,7 @@ namespace backstage.Controllers
[Authorize(Policy = "AdminOnly")] [Authorize(Policy = "AdminOnly")]
[HttpGet] [HttpGet]
public async Task<IActionResult> UploadLicense() public async Task<IActionResult> LicenseInfo()
{ {
var url = _config["IP"] + "/license/get"; var url = _config["IP"] + "/license/get";
var httpMethod = HttpMethod.Post; var httpMethod = HttpMethod.Post;
......
...@@ -126,6 +126,9 @@ ...@@ -126,6 +126,9 @@
<data name="Keys" xml:space="preserve"> <data name="Keys" xml:space="preserve">
<value>金鑰管理</value> <value>金鑰管理</value>
</data> </data>
<data name="License Information" xml:space="preserve">
<value>授權資訊</value>
</data>
<data name="Login" xml:space="preserve"> <data name="Login" xml:space="preserve">
<value>登入</value> <value>登入</value>
</data> </data>
......
<?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="string" xml:space="preserve">
<value />
</data>
</root>
\ No newline at end of file
...@@ -178,6 +178,12 @@ ...@@ -178,6 +178,12 @@
<Folder Include="wwwroot\lib\fonts\bootstrap\" /> <Folder Include="wwwroot\lib\fonts\bootstrap\" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources\Views\User\ListDepartments.zh.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
</EmbeddedResource>
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" appsettings_1production_1json__JsonSchema="" properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions> <ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" appsettings_1production_1json__JsonSchema="" properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project> </Project>
...@@ -77,10 +77,8 @@ ...@@ -77,10 +77,8 @@
</div> </div>
</a> </a>
<div class="dropdown-menu navbar-dropdown" aria-labelledby="profileDropdown"> <div class="dropdown-menu navbar-dropdown" aria-labelledby="profileDropdown">
<a class="dropdown-item" asp-controller="User" asp-action="UploadLicense">
<i class="mdi mdi-folder-upload mr-2"></i>@Localizer["Upload New License File"]
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" asp-controller="User" asp-action="ChangePassword" asp-route-username="@Context.User.Claims.FirstOrDefault(m => m.Type == "username").Value" asp-route-returnUrl="@Context.Request.Path.Value"> <a class="dropdown-item" asp-controller="User" asp-action="ChangePassword" asp-route-username="@Context.User.Claims.FirstOrDefault(m => m.Type == "username").Value" asp-route-returnUrl="@Context.Request.Path.Value">
<i class="mdi mdi-lock-open mr-2"></i>@Localizer["Change Password"] <i class="mdi mdi-lock-open mr-2"></i>@Localizer["Change Password"]
</a> </a>
...@@ -96,6 +94,10 @@ ...@@ -96,6 +94,10 @@
<i class="mdi mdi-logout mr-2 text-danger"></i>@Localizer["Logout"] <i class="mdi mdi-logout mr-2 text-danger"></i>@Localizer["Logout"]
</a> </a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item" asp-controller="User" asp-action="LicenseInfo">
<i class="mdi mdi-folder-upload mr-2"></i>@Localizer["License Information"]
</a>
<div class="dropdown-divider"></div>
<div class="versionNo"> <div class="versionNo">
@Localizer["version"]: v2.39 @Localizer["version"]: v2.39
</div> </div>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
} }
<div class="page-header"> <div class="page-header">
<h3 class="page-title">@Localizer["Upload New License File"]</h3> <h3 class="page-title">@Localizer["License Information"]</h3>
<input id="msg" hidden value="@TempData["msg"]" /> <input id="msg" hidden value="@TempData["msg"]" />
@if (TempData["isSuccess"] != null) @if (TempData["isSuccess"] != null)
{ {
...@@ -29,57 +29,57 @@ ...@@ -29,57 +29,57 @@
<div class="col-lg-12 grid-margin stretch-card"> <div class="col-lg-12 grid-margin stretch-card">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<p class="form-title card-description">Upload File</p> <p class="form-title card-description">@Localizer["Upload File"]</p>
<form class="forms-sample"> <form class="forms-sample">
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-md-8 col-lg-6 form-group0 mt-1 mb-1"> <div class="col-md-8 col-lg-6 form-group0 mt-1 mb-1">
<div class="input-group input-group-lg"> <div class="input-group input-group-lg">
<div class="custom-file"> <div class="custom-file">
<input type="file" class="form-control custom-file-input" id="uploadLicenseFile" accept=""> <input type="file" class="form-control custom-file-input" id="uploadLicenseFile" accept="">
<label class="custom-file-label" id="uploadLicenseFileLabel" for="uploadLicenseFile">Choose file</label> <label class="custom-file-label" id="uploadLicenseFileLabel" for="uploadLicenseFile">@Localizer["Choose file"]</label>
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-4 col-lg-6 form-group0"> <div class="col-md-4 col-lg-6 form-group0">
<div class="SubmitBlock0 SubmitBlock_sm0"> <div class="SubmitBlock0 SubmitBlock_sm0">
<button type="button" id="Upload" class="btn btn-primary">Upload</button> <button type="button" id="Upload" class="btn btn-primary">@Localizer["Upload"]</button>
</div> </div>
</div> </div>
</div> </div>
</form> </form>
<p class="form-title card-description mt-5">License Info</p> <p class="form-title card-description mt-5">@Localizer["License Information"]</p>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-hover0 table-bordered TBL_licenseInfo"> <table class="table table-striped table-hover0 table-bordered TBL_licenseInfo">
<tbody> <tbody>
<tr> <tr>
<th style=" border-left: solid 1px #d9d9d9;">Product Name</th> <th style=" border-left: solid 1px #d9d9d9;">@Localizer["Product Name"]</th>
<td>@Model.Product_name</td> <td>@Model.Product_name</td>
</tr> </tr>
<tr> <tr>
<th>Expireation Date</th> <th>@Localizer["Expireation Date"]</th>
<td>@Model.Expiration_date</td> <td>@Model.Expiration_date</td>
</tr> </tr>
<tr> <tr>
<th>Product Max Version</th> <th>@Localizer["Product Max Version"]</th>
<td>@Model.Product_max_version</td> <td>@Model.Product_max_version</td>
</tr> </tr>
<tr> <tr>
<th>Department</th> <th>@Localizer["Customer"]</th>
<td>@Model.Department</td> <td>@Model.Department</td>
</tr> </tr>
<tr> <tr>
<th>Creation Date</th> <th>@Localizer["Creation Date"]</th>
<td>@Model.Creation_date</td> <td>@Model.Creation_date</td>
</tr> </tr>
<tr> <tr>
<th>Name</th> <th>@Localizer["Name"]</th>
<td>@Model.Name</td> <td>@Model.Name</td>
</tr> </tr>
<tr> <!--<tr>
<th style=" border-right: solid 0.1px #d9d9d9;">Other</th> <th style=" border-right: solid 0.1px #d9d9d9;">Other</th>
<td>@Model.Other</td> <td>@Model.Other</td>
</tr> </tr>-->
</tbody> </tbody>
</table> </table>
</div> </div>
......
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