From 9552b7c6f95e43216ecfc4242bd80dbc6cb6026a Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 9 Aug 2023 08:34:13 -0400 Subject: [PATCH 01/59] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de6ac3a0..e92c7749 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Latest Release -[4.0.1](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.1) was released on July 18, 2023 and is primary focused on stabilization. This release includes 68 pull requests by 8 different contributors, pushing the total number of project commits all-time over 3800. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. +[4.0.2](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.2) was released on Aug 9, 2023 and is primary focused on stabilization. This release includes 68 pull requests by 8 different contributors, pushing the total number of project commits all-time over 3900. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. [![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Foqtane%2Foqtane.framework%2Fmaster%2Fazuredeploy.json) @@ -53,7 +53,7 @@ Backlog (TBD) 5.0.0 (Q4 2023) - [ ] Migration to .NET 8 -4.0.2 ( Aug 2023 ) +[4.0.2](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.2) ( Aug 9, 2023 ) - [x] Stabilization improvements [4.0.1](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.1) ( Jul 18, 2023 ) From 25d09186fefb415ccb8ac5497dbf0a3b68f99d81 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 9 Aug 2023 08:34:35 -0400 Subject: [PATCH 02/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e92c7749..a518cf64 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Latest Release -[4.0.2](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.2) was released on Aug 9, 2023 and is primary focused on stabilization. This release includes 68 pull requests by 8 different contributors, pushing the total number of project commits all-time over 3900. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. +[4.0.2](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.2) was released on Aug 9, 2023 and is primary focused on stabilization. This release includes 50 pull requests by 8 different contributors, pushing the total number of project commits all-time over 3900. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. [![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Foqtane%2Foqtane.framework%2Fmaster%2Fazuredeploy.json) From 1de8bb850fdb9923bcfe02c8b1d0e5894a629e1a Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 9 Aug 2023 08:54:45 -0400 Subject: [PATCH 03/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a518cf64..b2370579 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Latest Release -[4.0.2](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.2) was released on Aug 9, 2023 and is primary focused on stabilization. This release includes 50 pull requests by 8 different contributors, pushing the total number of project commits all-time over 3900. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. +[4.0.2](https://github.com/oqtane/oqtane.framework/releases/tag/v4.0.2) was released on Aug 9, 2023 and is primary focused on stabilization. This release includes 50 pull requests by 9 different contributors, pushing the total number of project commits all-time over 3900. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. [![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Foqtane%2Foqtane.framework%2Fmaster%2Fazuredeploy.json) From 8fbbbce4ec2d39f99e1c3183435da13d9be1d61a Mon Sep 17 00:00:00 2001 From: alikoli Date: Thu, 10 Aug 2023 01:52:46 +0200 Subject: [PATCH 04/59] Fix missing translations part 2 --- .../Modules/Admin/ModuleDefinitions/Add.razor | 2 +- .../Admin/ModuleDefinitions/Edit.razor | 6 +++--- Oqtane.Client/Modules/Admin/Site/Index.razor | 2 +- Oqtane.Client/Modules/Admin/Themes/Add.razor | 2 +- Oqtane.Client/Properties/launchSettings.json | 16 +++++++------- .../Modules/Admin/ModuleDefinitions/Add.resx | 2 +- .../Resources/Modules/Admin/Site/Index.resx | 9 ++++++++ .../Resources/Modules/Admin/Themes/Add.resx | 3 +++ .../Modules/Controls/PermissionGrid.resx | 21 +++++++++++++++++++ 9 files changed, 48 insertions(+), 15 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor index 6e2992ec..25e0c6a4 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor @@ -8,7 +8,7 @@ @inject IStringLocalizer SharedLocalizer - +
diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index 6a2c6e5a..76240c07 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -12,7 +12,7 @@ @if (_initialized) { - +
@@ -103,7 +103,7 @@
- +
@@ -113,7 +113,7 @@ @SharedLocalizer["Cancel"] - + @if (_languages != null && _languages.Count > 0) { diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index e237bd74..ce8a4fc4 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -257,7 +257,7 @@ @if (_aliasid == -1) { - + } @context.Name diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor index df48d6a0..c56f7f69 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Add.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor @@ -24,7 +24,7 @@
- Product + @Localizer["Product"] diff --git a/Oqtane.Client/Properties/launchSettings.json b/Oqtane.Client/Properties/launchSettings.json index 4899842e..8bef83e7 100644 --- a/Oqtane.Client/Properties/launchSettings.json +++ b/Oqtane.Client/Properties/launchSettings.json @@ -1,12 +1,4 @@ { - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:44358/", - "sslPort": 0 - } - }, "profiles": { "IIS Express": { "commandName": "IISExpress", @@ -23,5 +15,13 @@ }, "applicationUrl": "http://localhost:44358/" } + }, + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:65367/", + "sslPort": 44327 + } } } \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx index 037e700c..1f28095e 100644 --- a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx +++ b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx @@ -141,7 +141,7 @@ Upload - + Product \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx index 5f66f8b9..3f3ef7d6 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx @@ -312,6 +312,9 @@ The type of database + + Delete Site + Delete Site @@ -381,4 +384,10 @@ Version: + + Delete + + + Delete Alias + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx b/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx index 9ceeae29..08723fba 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx @@ -141,4 +141,7 @@ Upload + + Product + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Controls/PermissionGrid.resx b/Oqtane.Client/Resources/Modules/Controls/PermissionGrid.resx index 194c7267..05bac8f7 100644 --- a/Oqtane.Client/Resources/Modules/Controls/PermissionGrid.resx +++ b/Oqtane.Client/Resources/Modules/Controls/PermissionGrid.resx @@ -129,4 +129,25 @@ User Does Not Exist With Name Specified + + Module + + + Page + + + Folder + + + View + + + Edit + + + Utilize + + + Browse + \ No newline at end of file From 101a3c8af5a2980b34581605ad9731c6f9bd45da Mon Sep 17 00:00:00 2001 From: alikoli Date: Thu, 10 Aug 2023 02:03:46 +0200 Subject: [PATCH 05/59] Revert launchSettings --- Oqtane.Client/Properties/launchSettings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Oqtane.Client/Properties/launchSettings.json b/Oqtane.Client/Properties/launchSettings.json index 8bef83e7..4899842e 100644 --- a/Oqtane.Client/Properties/launchSettings.json +++ b/Oqtane.Client/Properties/launchSettings.json @@ -1,4 +1,12 @@ { + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:44358/", + "sslPort": 0 + } + }, "profiles": { "IIS Express": { "commandName": "IISExpress", @@ -15,13 +23,5 @@ }, "applicationUrl": "http://localhost:44358/" } - }, - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:65367/", - "sslPort": 44327 - } } } \ No newline at end of file From e44855493eb9a623f54b71fbd78de5d13234e04a Mon Sep 17 00:00:00 2001 From: alikoli Date: Thu, 10 Aug 2023 02:12:36 +0200 Subject: [PATCH 06/59] fix heading --- Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index 76240c07..5a2899ac 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -113,7 +113,7 @@ @SharedLocalizer["Cancel"] - + @if (_languages != null && _languages.Count > 0) { From 6ef21795bad438fffbd5db5ad15fcd647a9484db Mon Sep 17 00:00:00 2001 From: alikoli Date: Thu, 10 Aug 2023 02:13:31 +0200 Subject: [PATCH 07/59] fix heading --- Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index 5a2899ac..580e269c 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -113,7 +113,7 @@ @SharedLocalizer["Cancel"] - + @if (_languages != null && _languages.Count > 0) { From 316e0f5a68f393147647dbfe1f1088a8b456afad Mon Sep 17 00:00:00 2001 From: sbwalker Date: Fri, 11 Aug 2023 15:53:32 -0400 Subject: [PATCH 08/59] fix #3134 improve parsing of headcontent to handle space delimiters --- .../Modules/Admin/ModuleDefinitions/Add.razor | 2 +- Oqtane.Client/Modules/Admin/Themes/Add.razor | 2 +- Oqtane.Client/UI/ThemeBuilder.razor | 13 ++++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor index 6e2992ec..955a0f96 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor @@ -96,7 +96,7 @@ { } - @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl)) + @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl) && string.IsNullOrEmpty(context.PackageUrl)) { @SharedLocalizer["Buy"] } diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor index df48d6a0..5c3ba079 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Add.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor @@ -98,7 +98,7 @@ { } - @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl)) + @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl) && string.IsNullOrEmpty(context.PackageUrl)) { @SharedLocalizer["Buy"] } diff --git a/Oqtane.Client/UI/ThemeBuilder.razor b/Oqtane.Client/UI/ThemeBuilder.razor index cae90f09..769add2e 100644 --- a/Oqtane.Client/UI/ThemeBuilder.razor +++ b/Oqtane.Client/UI/ThemeBuilder.razor @@ -67,16 +67,19 @@ if (!string.IsNullOrEmpty(content)) { // format head content, remove scripts, and filter duplicate elements - var elements = (">" + content.Replace("\n", "") + "<").Split("><"); - foreach (var element in elements) + content = content.Replace("\n", ""); + var index = content.IndexOf("<"); + while (index >= 0) { - if (!string.IsNullOrEmpty(element) && !element.ToLower().StartsWith("script")) + var element = content.Substring(index, content.IndexOf(">", index) - index + 1); + if (!string.IsNullOrEmpty(element) && !element.ToLower().StartsWith("")) + if (!headcontent.Contains(element)) { - headcontent += "<" + element + ">" + "\n"; + headcontent += element + "\n"; } } + index = content.IndexOf("<", index + 1); } } return headcontent; From c344eedb12586e5c8e23546461541299b276d66d Mon Sep 17 00:00:00 2001 From: sbwalker Date: Sat, 12 Aug 2023 10:31:44 -0400 Subject: [PATCH 09/59] change "price" to "from" to reflect multiple options --- Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor | 2 +- Oqtane.Client/Modules/Admin/Themes/Add.razor | 2 +- Oqtane.Client/Resources/SharedResources.resx | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor index 955a0f96..ccb294eb 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor @@ -88,7 +88,7 @@ @(context.Description.Length > 400 ? (context.Description.Substring(0, 400) + "...") : context.Description)
@if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl)) { - @SharedLocalizer["Search.Price"]: @context.Price.Value.ToString("$#,##0.00") + @SharedLocalizer["From"]: @context.Price.Value.ToString("$#,##0.00") @((MarkupString)(context.TrialPeriod > 0 ? " (" + context.TrialPeriod + " Day Trial)" : "")) }
diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor index 5c3ba079..d98ffb0b 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Add.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor @@ -90,7 +90,7 @@ @(context.Description.Length > 400 ? (context.Description.Substring(0, 400) + "...") : context.Description)
@if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl)) { - @SharedLocalizer["Search.Price"]: @context.Price.Value.ToString("$#,##0.00") + @SharedLocalizer["From"]: @context.Price.Value.ToString("$#,##0.00") @((MarkupString)(context.TrialPeriod > 0 ? " (" + context.TrialPeriod + " Day Trial)" : "")) }
diff --git a/Oqtane.Client/Resources/SharedResources.resx b/Oqtane.Client/Resources/SharedResources.resx index 3c1426b2..888afd89 100644 --- a/Oqtane.Client/Resources/SharedResources.resx +++ b/Oqtane.Client/Resources/SharedResources.resx @@ -405,4 +405,10 @@ Recently Released + + From + + + To + \ No newline at end of file From 4a8bcc6f716e06d47ad600e5d842cc52324d2247 Mon Sep 17 00:00:00 2001 From: HonesDK <51191152+HonesDK@users.noreply.github.com> Date: Sun, 13 Aug 2023 10:11:29 +0200 Subject: [PATCH 10/59] Fixed modified by localization, and added DateTimeFormat to localization --- Oqtane.Client/Modules/Controls/AuditInfo.razor | 6 ++++-- Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/AuditInfo.razor b/Oqtane.Client/Modules/Controls/AuditInfo.razor index d36e7f9a..21d6eb12 100644 --- a/Oqtane.Client/Modules/Controls/AuditInfo.razor +++ b/Oqtane.Client/Modules/Controls/AuditInfo.razor @@ -40,6 +40,8 @@ protected override void OnParametersSet() { + DateTimeFormat = Localizer["DateTimeFormat"]; + _text = string.Empty; if (!String.IsNullOrEmpty(CreatedBy) || CreatedOn.HasValue) { @@ -64,12 +66,12 @@ if (!String.IsNullOrEmpty(ModifiedBy)) { - _text += $" {Localizer["by"]} {ModifiedBy}"; + _text += $" {Localizer["By"]} {ModifiedBy}"; } if (ModifiedOn != null) { - _text += $" {Localizer["on"]} {ModifiedOn.Value.ToString(DateTimeFormat)}"; + _text += $" {Localizer["On"]} {ModifiedOn.Value.ToString(DateTimeFormat)}"; } _text += "

"; diff --git a/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx b/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx index eabb94a1..557ad302 100644 --- a/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx +++ b/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx @@ -132,4 +132,7 @@ Deleted + + MMM dd yyyy HH:mm:ss + \ No newline at end of file From c2acd010ce3786b4cd1c2999163f222b1783e540 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Sun, 13 Aug 2023 08:35:03 -0400 Subject: [PATCH 11/59] add ability to get user based on username or email address --- .../Services/Interfaces/IUserService.cs | 10 +++++++++- Oqtane.Client/Services/UserService.cs | 8 +++++++- Oqtane.Server/Controllers/UserController.cs | 12 +++++++----- .../Managers/Interfaces/IUserManager.cs | 1 + Oqtane.Server/Managers/UserManager.cs | 7 ++++++- .../Repository/Interfaces/IUserRepository.cs | 1 + Oqtane.Server/Repository/UserRepository.cs | 16 +++++++++++++++- 7 files changed, 46 insertions(+), 9 deletions(-) diff --git a/Oqtane.Client/Services/Interfaces/IUserService.cs b/Oqtane.Client/Services/Interfaces/IUserService.cs index 00102a5e..1a5323e9 100644 --- a/Oqtane.Client/Services/Interfaces/IUserService.cs +++ b/Oqtane.Client/Services/Interfaces/IUserService.cs @@ -15,7 +15,6 @@ namespace Oqtane.Services /// ID of a /// Task GetUserAsync(int userId, int siteId); - /// /// Get a of a specific site @@ -25,6 +24,15 @@ namespace Oqtane.Services /// Task GetUserAsync(string username, int siteId); + /// + /// Get a of a specific site + /// + /// Username / login of a + /// email address of a + /// ID of a + /// + Task GetUserAsync(string username, string email, int siteId); + /// /// Save a user to the Database. /// The object contains all the information incl. what it belongs to. diff --git a/Oqtane.Client/Services/UserService.cs b/Oqtane.Client/Services/UserService.cs index 24440df5..b74f6e50 100644 --- a/Oqtane.Client/Services/UserService.cs +++ b/Oqtane.Client/Services/UserService.cs @@ -4,6 +4,7 @@ using System.Net.Http; using System.Threading.Tasks; using Oqtane.Documentation; using System.Net; +using System.ComponentModel.DataAnnotations; namespace Oqtane.Services { @@ -21,7 +22,12 @@ namespace Oqtane.Services public async Task GetUserAsync(string username, int siteId) { - return await GetJsonAsync($"{Apiurl}/name/{username}?siteid={siteId}"); + return await GetUserAsync(username, "", siteId); + } + + public async Task GetUserAsync(string username, string email, int siteId) + { + return await GetJsonAsync($"{Apiurl}/name/{(!string.IsNullOrEmpty(username) ? username : "-")}/{(!string.IsNullOrEmpty(email) ? email : "-")}/?siteid={siteId}"); } public async Task AddUserAsync(User user) diff --git a/Oqtane.Server/Controllers/UserController.cs b/Oqtane.Server/Controllers/UserController.cs index 11345d0e..b2de0340 100644 --- a/Oqtane.Server/Controllers/UserController.cs +++ b/Oqtane.Server/Controllers/UserController.cs @@ -61,13 +61,15 @@ namespace Oqtane.Controllers } } - // GET api//name/x?siteid=x - [HttpGet("name/{name}")] - public User Get(string name, string siteid) + // GET api//name/{name}/{email}?siteid=x + [HttpGet("name/{name}/{email}")] + public User Get(string name, string email, string siteid) { if (int.TryParse(siteid, out int SiteId) && SiteId == _tenantManager.GetAlias().SiteId) { - User user = _userManager.GetUser(name, SiteId); + name = (name == "-") ? "" : name; + email = (email == "-") ? "" : email; + User user = _userManager.GetUser(name, email, SiteId); if (user == null) { HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound; @@ -76,7 +78,7 @@ namespace Oqtane.Controllers } else { - _logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized User Get Attempt {Username} {SiteId}", name, siteid); + _logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized User Get Attempt {Username} {Email} {SiteId}", name, email, siteid); HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden; return null; } diff --git a/Oqtane.Server/Managers/Interfaces/IUserManager.cs b/Oqtane.Server/Managers/Interfaces/IUserManager.cs index ec58c091..82cf7090 100644 --- a/Oqtane.Server/Managers/Interfaces/IUserManager.cs +++ b/Oqtane.Server/Managers/Interfaces/IUserManager.cs @@ -7,6 +7,7 @@ namespace Oqtane.Managers { User GetUser(int userid, int siteid); User GetUser(string username, int siteid); + User GetUser(string username, string email, int siteid); Task AddUser(User user); Task UpdateUser(User user); Task DeleteUser(int userid, int siteid); diff --git a/Oqtane.Server/Managers/UserManager.cs b/Oqtane.Server/Managers/UserManager.cs index 5c2e607d..bd7a89c6 100644 --- a/Oqtane.Server/Managers/UserManager.cs +++ b/Oqtane.Server/Managers/UserManager.cs @@ -51,7 +51,12 @@ namespace Oqtane.Managers public User GetUser(string username, int siteid) { - User user = _users.GetUser(username); + return GetUser(username, "", siteid); + } + + public User GetUser(string username, string email, int siteid) + { + User user = _users.GetUser(username, email); if (user != null) { user.SiteId = siteid; diff --git a/Oqtane.Server/Repository/Interfaces/IUserRepository.cs b/Oqtane.Server/Repository/Interfaces/IUserRepository.cs index 89a25bca..89ed4204 100644 --- a/Oqtane.Server/Repository/Interfaces/IUserRepository.cs +++ b/Oqtane.Server/Repository/Interfaces/IUserRepository.cs @@ -11,6 +11,7 @@ namespace Oqtane.Repository User GetUser(int userId); User GetUser(int userId, bool tracking); User GetUser(string username); + User GetUser(string username, string email); void DeleteUser(int userId); } } diff --git a/Oqtane.Server/Repository/UserRepository.cs b/Oqtane.Server/Repository/UserRepository.cs index f5136c74..8320a748 100644 --- a/Oqtane.Server/Repository/UserRepository.cs +++ b/Oqtane.Server/Repository/UserRepository.cs @@ -105,7 +105,21 @@ namespace Oqtane.Repository public User GetUser(string username) { - return _db.User.Where(item => item.Username == username).FirstOrDefault(); + return GetUser(username, ""); + } + + public User GetUser(string username, string email) + { + User user = null; + if (!string.IsNullOrEmpty(username)) + { + user = _db.User.Where(item => item.Username == username).FirstOrDefault(); + } + if (user == null && !string.IsNullOrEmpty(email)) + { + user = _db.User.Where(item => item.Email == email).FirstOrDefault(); + } + return user; } public void DeleteUser(int userId) From dbb58541f2c4d70a4eb3182ce3c018b8b3f1cd39 Mon Sep 17 00:00:00 2001 From: HonesDK <51191152+HonesDK@users.noreply.github.com> Date: Mon, 14 Aug 2023 16:51:21 +0200 Subject: [PATCH 12/59] Revert "Fixed modified by localization, and added DateTimeFormat to localization" This reverts commit 4a8bcc6f716e06d47ad600e5d842cc52324d2247. --- Oqtane.Client/Modules/Controls/AuditInfo.razor | 6 ++---- Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx | 3 --- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/AuditInfo.razor b/Oqtane.Client/Modules/Controls/AuditInfo.razor index 21d6eb12..d36e7f9a 100644 --- a/Oqtane.Client/Modules/Controls/AuditInfo.razor +++ b/Oqtane.Client/Modules/Controls/AuditInfo.razor @@ -40,8 +40,6 @@ protected override void OnParametersSet() { - DateTimeFormat = Localizer["DateTimeFormat"]; - _text = string.Empty; if (!String.IsNullOrEmpty(CreatedBy) || CreatedOn.HasValue) { @@ -66,12 +64,12 @@ if (!String.IsNullOrEmpty(ModifiedBy)) { - _text += $" {Localizer["By"]} {ModifiedBy}"; + _text += $" {Localizer["by"]} {ModifiedBy}"; } if (ModifiedOn != null) { - _text += $" {Localizer["On"]} {ModifiedOn.Value.ToString(DateTimeFormat)}"; + _text += $" {Localizer["on"]} {ModifiedOn.Value.ToString(DateTimeFormat)}"; } _text += "

"; diff --git a/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx b/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx index 557ad302..eabb94a1 100644 --- a/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx +++ b/Oqtane.Client/Resources/Modules/Controls/AuditInfo.resx @@ -132,7 +132,4 @@ Deleted - - MMM dd yyyy HH:mm:ss - \ No newline at end of file From b567d02df2da6884a2a905b2afd6e75d13529395 Mon Sep 17 00:00:00 2001 From: HonesDK <51191152+HonesDK@users.noreply.github.com> Date: Mon, 14 Aug 2023 16:52:30 +0200 Subject: [PATCH 13/59] Fixed localization in AuditInfo --- Oqtane.Client/Modules/Controls/AuditInfo.razor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/AuditInfo.razor b/Oqtane.Client/Modules/Controls/AuditInfo.razor index d36e7f9a..acbb3dc6 100644 --- a/Oqtane.Client/Modules/Controls/AuditInfo.razor +++ b/Oqtane.Client/Modules/Controls/AuditInfo.razor @@ -64,12 +64,12 @@ if (!String.IsNullOrEmpty(ModifiedBy)) { - _text += $" {Localizer["by"]} {ModifiedBy}"; + _text += $" {Localizer["By"]} {ModifiedBy}"; } if (ModifiedOn != null) { - _text += $" {Localizer["on"]} {ModifiedOn.Value.ToString(DateTimeFormat)}"; + _text += $" {Localizer["On"]} {ModifiedOn.Value.ToString(DateTimeFormat)}"; } _text += "

"; From 7cbc21671b9ac37080b9abffff8c0307af189092 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Mon, 14 Aug 2023 17:03:21 -0400 Subject: [PATCH 14/59] Notification job must convert \n to
now that IsNodyHtml is set to True --- Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs | 2 +- Oqtane.Server/Managers/UserManager.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs b/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs index 04ebe920..777bb912 100644 --- a/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs +++ b/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs @@ -130,7 +130,7 @@ namespace Oqtane.Infrastructure mailMessage.Subject = notification.Subject; //body - mailMessage.Body = notification.Body; + mailMessage.Body = notification.Body.Replace("\n", "
"); // encoding mailMessage.SubjectEncoding = System.Text.Encoding.UTF8; diff --git a/Oqtane.Server/Managers/UserManager.cs b/Oqtane.Server/Managers/UserManager.cs index bd7a89c6..07304679 100644 --- a/Oqtane.Server/Managers/UserManager.cs +++ b/Oqtane.Server/Managers/UserManager.cs @@ -143,7 +143,7 @@ namespace Oqtane.Managers else { string url = alias.Protocol + alias.Name; - string body = "Dear " + user.DisplayName + ",\n\nA User Account Has Been Successfully Created For You. Please Use The Following Link To Access The Site:\n\n" + url + "\n\nThank You!"; + string body = "Dear " + user.DisplayName + ",\n\nA User Account Has Been Successfully Created For You With The Username " + user.Username + ". Please Visit " + url + " And Use The Login Option To Sign In. If You Do Not Know Your Password, Use The Forgot Password Option On The Login Page To Reset Your Account.\n\nThank You!"; var notification = new Notification(user.SiteId, User, "User Account Notification", body); _notifications.AddNotification(notification); } From 283a03a7ccd4ea169dddf27d64065d86b96be7af Mon Sep 17 00:00:00 2001 From: alikoli Date: Tue, 15 Aug 2023 16:09:59 +0200 Subject: [PATCH 15/59] Fix missing translations part 3 --- .../Modules/Admin/Themes/Index.razor | 2 +- .../Modules/Controls/ActionDialog.razor | 3 +- .../Modules/Controls/RichTextEditor.razor | 2 +- .../Resources/Modules/Admin/Themes/Index.resx | 6 + .../Modules/Admin/Themes/Index.resx.bak | 159 +++++++ .../Modules/Admin/UserProfile/Index.resx | 6 + .../Modules/Admin/UserProfile/Index.resx.bak | 237 ++++++++++ .../Resources/Modules/Admin/Users/Index.resx | 6 + .../Modules/Admin/Users/Index.resx.bak | 405 ++++++++++++++++++ .../Resources/Modules/HtmlText/Edit.resx | 14 +- .../Resources/Modules/HtmlText/Edit.resx.bak | 183 ++++++++ .../Resources/Modules/HtmlText/Index.resx | 5 +- .../Resources/Modules/HtmlText/Index.resx.bak | 128 ++++++ .../Themes/Controls/ControlPanel.resx | 5 +- .../Themes/Controls/ControlPanel.resx.bak | 192 +++++++++ .../Themes/Controls/Theme/ControlPanel.razor | 2 +- 16 files changed, 1348 insertions(+), 7 deletions(-) create mode 100644 Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx.bak create mode 100644 Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx.bak create mode 100644 Oqtane.Client/Resources/Modules/Admin/Users/Index.resx.bak create mode 100644 Oqtane.Client/Resources/Modules/HtmlText/Edit.resx.bak create mode 100644 Oqtane.Client/Resources/Modules/HtmlText/Index.resx.bak create mode 100644 Oqtane.Client/Resources/Themes/Controls/ControlPanel.resx.bak diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor index 198889fe..ebeef056 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Index.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor @@ -29,7 +29,7 @@ else   - + @if (context.AssemblyName != Constants.ClientId) { diff --git a/Oqtane.Client/Modules/Controls/ActionDialog.razor b/Oqtane.Client/Modules/Controls/ActionDialog.razor index aeda66ba..9cb5fd7f 100644 --- a/Oqtane.Client/Modules/Controls/ActionDialog.razor +++ b/Oqtane.Client/Modules/Controls/ActionDialog.razor @@ -1,6 +1,7 @@ @namespace Oqtane.Modules.Controls @using System.Text.Json @inherits LocalizableComponent +@inject IStringLocalizer SharedLocalizer @if (_visible) { @@ -20,7 +21,7 @@ { } - +
diff --git a/Oqtane.Client/Modules/Controls/RichTextEditor.razor b/Oqtane.Client/Modules/Controls/RichTextEditor.razor index 2231b02f..ca490d52 100644 --- a/Oqtane.Client/Modules/Controls/RichTextEditor.razor +++ b/Oqtane.Client/Modules/Controls/RichTextEditor.razor @@ -5,7 +5,7 @@
- + @if (_richfilemanager) { diff --git a/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx index 3c5074b4..e8e41589 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx @@ -138,6 +138,9 @@ Delete Theme + + Delete + Create Theme @@ -147,6 +150,9 @@ View + + Edit + Enabled? diff --git a/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx.bak b/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx.bak new file mode 100644 index 00000000..78f69fd8 --- /dev/null +++ b/Oqtane.Client/Resources/Modules/Admin/Themes/Index.resx.bak @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Theme Installed Successfully. You Must <a href={0}>Restart</a> Your Application To Apply These Changes. + + + Error Downloading Theme + + + Are You Sure You Wish To Delete The {0} Theme? + + + Error Loading Themes + + + Theme Deleted Successfully + + + Error Deleting Theme + + + Delete Theme + + + Delete2 + + + Create Theme + + + Install Theme + + + View + + + Edit2 + + + Enabled? + + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx index 3a9a097b..7021f4a8 100644 --- a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx @@ -228,4 +228,10 @@ Profile + + View + + + Delete + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx.bak b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx.bak new file mode 100644 index 00000000..78fbaaca --- /dev/null +++ b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx.bak @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Passwords Entered Do Not Match + + + Password Provided Does Not Meet The Complexity Policy + + + From + + + Subject + + + Received + + + To + + + Sent + + + Inbox + + + Sent Items + + + Current User Is Not Logged In + + + Error Loading User Profile + + + User Profile Updated Successfully + + + You Must Provide A Username and Email Address As Well As All Required Profile Information + + + Error Saving User Profile + + + Send Notification + + + Delete Notification + + + Are You Sure You Wish To Delete This Notification? + + + Identity + + + If you are changing your password you must enter it again to confirm it matches the value entered above + + + Confirmation: + + + Your full name + + + Full Name: + + + Your email address where you wish to receive notifications + + + Email: + + + If you wish to change your password you can enter it here. Please choose a sufficiently secure password. + + + Password: + + + A photo of yourself + + + Photo: + + + Your username. Note that this field can not be modified. + + + Username: + + + Indicates if you are using two factor authentication. Two factor authentication requires you to enter a verification code sent via email after you sign in. + + + Two Factor? + + + Clear Notifications + + + Are You Sure You Wish To Permanently Delete All Notifications? + + + Delete ALL Notifications + + + Notifications + + + Profile + + + View2 + + + Delete2 + + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx index 6b26fb12..a8ede28b 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx @@ -396,4 +396,10 @@ User Profile Claims: + + User Name + + + Name + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx.bak b/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx.bak new file mode 100644 index 00000000..ade3095a --- /dev/null +++ b/Oqtane.Client/Resources/Modules/Admin/Users/Index.resx.bak @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Are You Sure You Wish To Delete {0}? + + + Add User + + + Delete User + + + Do you want anonymous visitors to be able to register for an account on the site + + + Allow Registration? + + + Error Saving Settings + + + Settings + + + Settings Saved Successfully + + + Users + + + Delete + + + Edit + + + Roles + + + The number of minutes a user should be locked out + + + Lockout Duration: + + + The maximum number of sign in attempts before a user is locked out + + + Maximum Failures: + + + Indicate if passwords must contain a digit + + + Require Digit? + + + The minimum length for a password + + + Minimum Length: + + + Indicate if passwords must contain a lower case character + + + Require Lowercase? + + + Indicate if passwords must contain a non-alphanumeric character (ie. punctuation) + + + Require Punctuation? + + + Indicate if passwords must contain an upper case character + + + Require Uppercase? + + + Configuration Updated. Please Select Restart Application For These Changes To Be Activated. + + + The minimum number of unique characters which a password must contain + + + Unique Characters: + + + Do you want to allow users to sign in using a username and password that is managed locally on this site? Note that you should only disable this option if you have already sucessfully configured an external login provider, or else you may lock yourself out of the site. + + + Allow Login? + + + The authority url or issuer url associated with the identity provider + + + Authority: + + + The endpoint for obtaining an authorization code + + + Authorization Url: + + + The client id for the identity provider + + + Client ID: + + + The client secret for the identity provider + + + Client Secret: + + + Do you want new users to be created automatically? If you disable this option, users must already be registered on the site in order to sign in with their external login. + + + Create New Users? + + + Provide any email domain filter criteria (separated by commas). Domains to exclude should be prefixed with an exclamation point (!). For example 'microsoft.com,!hotmail.com' would include microsoft.com email addresses but not hotmail.com email addresses. + + + Domain Filter: + + + The name of the email address claim provided by the identity provider + + + Email Claim: + + + External Login Settings + + + Lockout Settings + + + The discovery endpoint for obtaining metadata for this identity provider. Only specify if the identity provider does not use the standard approach (ie. /.well-known/openid-configuration) + + + Metadata Url: + + + Password Settings + + + Indicate if the identity provider supports proof key for code exchange (PKCE) + + + Use PKCE? + + + The external login provider name which will be displayed on the login page + + + Provider Name: + + + Select the external login provider type + + + Provider Type: + + + The redirect url (or callback url) which usually needs to be registered with the identity provider + + + Redirect Url: + + + A list of scopes to request from the identity provider (separated by commas). If none are specified, standard Scopes will be used by default. + + + Scopes: + + + The endpoint for obtaining an auth token + + + Token Url: + + + The endpoint for obtaining user information. This should be an API endpoint or page url which contains the users email address. + + + User Info Url: + + + Optionally provide the audience for the token + + + Audience: + + + User Settings + + + You can choose to use a custom authentication cookie name for each site. However please be aware that if you want to share an authentication cookie between sites on the same domain they need to use a consistent cookie name. Also be aware that changing the authentication cookie name will logout all current users. + + + Cookie Name: + + + Create Token + + + Optionally provide the issuer of the token + + + Issuer: + + + The number of minutes for which a token should be valid + + + Lifetime: + + + If you want to want to provide API access, please specify a secret which will be used to encrypt your tokens. The secret should be 16 characters or more to ensure optimal security. Please note that if you change this secret, all existing tokens will become invalid and will need to be regenerated. + + + Secret: + + + Select the Create Token button to generate a long-lived access token (valid for 1 year). Be sure to store this token in a safe location as you will not be able to access it in the future. + + + Token: + + + Token Settings + + + Do you want users to use two factor authentication? Note that you should use the Disabled option until you have successfully verified that the Notification Job in Scheduled Jobs is enabled and your SMTP options in Site Settings are configured or else you will lock yourself out. + + + Two Factor? + + + Disabled + + + Optional + + + Required + + + Last Login + + + The name of the unique user identifier claim provided by the identity provider + + + Identifier Claim: + + + Optionally specify any additional parameters as name/value pairs to send to the identity provider (separated by commas if there are multiple). + + + Parameters: + + + Optionally provide the name of the role claim provided by the identity provider. These roles will be used in addition to any internal user roles assigned within the site. + + + Role Claim: + + + Optionally provide a comma delimited list of user profile claims provided by the identity provider, as well as mappings to your user profile definition. For example if the identity provider includes a 'given_name' claim and you have a 'FirstName' user profile definition you should specify 'given_name:FirstName'. + + + User Profile Claims: + + + User Name2 + + + Name2 + + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/HtmlText/Edit.resx b/Oqtane.Client/Resources/Modules/HtmlText/Edit.resx index c0e62bdc..08f56eb5 100644 --- a/Oqtane.Client/Resources/Modules/HtmlText/Edit.resx +++ b/Oqtane.Client/Resources/Modules/HtmlText/Edit.resx @@ -1,4 +1,4 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Are You Sure You Wish To Delete The {0} Version? + + + Are You Sure You Wish To Restore The {0} Version? + + + Created By + + + Created On + + + Delete Version + + + Delete + + + Error Deleting Version + + + An Error Occurred Loading Content + + + Error Restoring Version + + + An Error Occurred Saving Content + + + Error Viewing Version + + + Version Deleted + + + Version Restored + + + Edit Html/Text + + + Restore Version + + + Restore + + + View + + + Edit2 + + + Versions2 + + + Raw HTML Editor2 + + + Rich Text Editor 2 + + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/HtmlText/Index.resx b/Oqtane.Client/Resources/Modules/HtmlText/Index.resx index 1e0f92e6..8ea8db4a 100644 --- a/Oqtane.Client/Resources/Modules/HtmlText/Index.resx +++ b/Oqtane.Client/Resources/Modules/HtmlText/Index.resx @@ -1,4 +1,4 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Edit + + Edit2 + + + An Error Occurred Loading Content + + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Themes/Controls/ControlPanel.resx b/Oqtane.Client/Resources/Themes/Controls/ControlPanel.resx index 913e111d..92e68765 100644 --- a/Oqtane.Client/Resources/Themes/Controls/ControlPanel.resx +++ b/Oqtane.Client/Resources/Themes/Controls/ControlPanel.resx @@ -1,4 +1,4 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Control Panel + + + Admin Dashboard + + + Unpublish Page + + + Publish Page + + + Delete Page + + + Add New Module + + + Add Existing Module + + + Modules + + + Select Page + + + Add Module To Page + + + Container: + + + Not Authorized + + + You Must Select A Module + + + Module Management: + + + Select Module + + + Page Management: + + + Pane: + + + Module Added to Page + + + Title: + + + Check For System Updates + + + Visibility: + + + Page Editors Only + + + Same As Page + + + Are You Sure You Want To Delete This Page?2 + + \ No newline at end of file diff --git a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor index c7fb9b0c..2484526a 100644 --- a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor @@ -98,7 +98,7 @@