refactor #4198 - copy existing module
This commit is contained in:
		| @ -154,7 +154,7 @@ | ||||
|     <value>Not Authorized</value> | ||||
|   </data> | ||||
|   <data name="Message.Require.ModuleSelect" xml:space="preserve"> | ||||
|     <value>You Must Select A Module.</value> | ||||
|     <value>You Must Select A Module</value> | ||||
|   </data> | ||||
|   <data name="Module.Manage" xml:space="preserve"> | ||||
|     <value>Module Management:</value> | ||||
| @ -162,15 +162,6 @@ | ||||
|   <data name="Module.Select" xml:space="preserve"> | ||||
|     <value>Select Module</value> | ||||
|   </data> | ||||
|   <data name="CopyMode.Select" xml:space="preserve"> | ||||
|     <value>Select Copy Mode</value> | ||||
|   </data> | ||||
|   <data name="CopyMode.Sync" xml:space="preserve"> | ||||
|     <value>Sync</value> | ||||
|   </data> | ||||
|   <data name="CopyMode.Copy" xml:space="preserve"> | ||||
|     <value>Copy</value> | ||||
|   </data> | ||||
|   <data name="Page.Manage" xml:space="preserve"> | ||||
|     <value>Page Management:</value> | ||||
|   </data> | ||||
| @ -207,13 +198,7 @@ | ||||
|   <data name="LocationTop" xml:space="preserve"> | ||||
|     <value>Top</value> | ||||
|   </data> | ||||
|   <data name="Message.Require.ModuleAndCopyModeSelect" xml:space="preserve"> | ||||
|     <value>You Must Select A Module And The Copy Mode.</value> | ||||
|   </data> | ||||
|   <data name="Message.Module.NotPortable" xml:space="preserve"> | ||||
|     <value>The Module's Content Will Not Be Synchronized.</value> | ||||
|   </data> | ||||
|   <data name="Module.CopyExisting" xml:space="preserve"> | ||||
|     <value>Copy Existing Module</value> | ||||
|   </data> | ||||
|   </data>   | ||||
| </root> | ||||
| @ -94,12 +94,12 @@ | ||||
|                 <div class="row"> | ||||
|                     <div class="col text-center"> | ||||
|                         <label for="Module" class="control-label">@Localizer["Module.Manage"]</label> | ||||
|                         <select class="form-select" @bind="@_moduleType"> | ||||
|                         <select class="form-select" @onchange="(e => ModuleTypeChanged(e))"> | ||||
|                             <option value="new">@Localizer["Module.AddNew"]</option> | ||||
|                             @if (PageState.Page.UserId == null) | ||||
|                             { | ||||
|                                 <option value="existing.add">@Localizer["Module.AddExisting"]</option> | ||||
|                                 <option value="existing.copy">@Localizer["Module.CopyExisting"]</option> | ||||
|                                 <option value="add">@Localizer["Module.AddExisting"]</option> | ||||
|                                 <option value="copy">@Localizer["Module.CopyExisting"]</option> | ||||
|                             } | ||||
|                         </select> | ||||
|                         @if (_moduleType == "new") | ||||
| @ -143,21 +143,20 @@ | ||||
|                         } | ||||
|                         else | ||||
|                         { | ||||
|                             <select class="form-select mt-1" @onchange="(e => PageChanged(e))"> | ||||
|                             <select class="form-select mt-1" value="@_pageId" @onchange="(e => PageChanged(e))"> | ||||
|                                 <option value="-"><@Localizer["Page.Select"]></option> | ||||
|                                 @foreach (Page p in _pages) | ||||
|                                 { | ||||
|                                     <option value="@p.PageId">@p.Name</option> | ||||
|                                 } | ||||
|                             </select> | ||||
|                             <select class="form-select mt-1" @bind="@_moduleId" @bind:after="() => ModuleIdChanged()"> | ||||
|                             <select class="form-select mt-1" @bind="@_moduleId"> | ||||
|                                 <option value="-"><@Localizer["Module.Select"]></option> | ||||
|                                 @foreach (Module module in _modules) | ||||
|                                 { | ||||
|                                     <option value="@module.ModuleId">@module.Title</option> | ||||
|                                 } | ||||
|                             </select> | ||||
|                             @((MarkupString)_copyModuleMessage) | ||||
|                         } | ||||
|                     </div> | ||||
|                 </div> | ||||
| @ -270,7 +269,6 @@ | ||||
|     protected int _location { get; private set; } = int.MaxValue; | ||||
|     protected string _visibility { get; private set; } = "view"; | ||||
|     protected string _message { get; private set; } = ""; | ||||
|     protected string _copyModuleMessage { get; private set; } = ""; | ||||
|  | ||||
|     private string settingCategory = "CP-category"; | ||||
|     private string settingPane = "CP-pane"; | ||||
| @ -341,6 +339,13 @@ | ||||
|         StateHasChanged(); | ||||
|     } | ||||
|  | ||||
|     private void ModuleTypeChanged(ChangeEventArgs e) | ||||
|     { | ||||
|         _moduleType = (string)e.Value; | ||||
|         _pageId = "-"; | ||||
|         _moduleId = "-"; | ||||
|     } | ||||
|  | ||||
|     private void PageChanged(ChangeEventArgs e) | ||||
|     { | ||||
|         _pageId = (string)e.Value; | ||||
| @ -348,26 +353,14 @@ | ||||
|         { | ||||
|             _modules = PageState.Modules | ||||
|                 .Where(module => module.PageId == int.Parse(_pageId) && | ||||
|                 UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, module.PermissionList)) | ||||
|                 UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, module.PermissionList) && | ||||
|                 (_moduleType == "add" || module.ModuleDefinition.IsPortable)) | ||||
|                 .ToList(); | ||||
|         } | ||||
|         _moduleId = "-"; | ||||
|         StateHasChanged(); | ||||
|     } | ||||
|  | ||||
|     private void ModuleIdChanged() | ||||
|     { | ||||
|         _copyModuleMessage = string.Empty; | ||||
|         if(_moduleId != "-") | ||||
|         { | ||||
|             var module = _modules.FirstOrDefault(item => item.ModuleId == int.Parse(_moduleId)); | ||||
|             if (module != null && !module.ModuleDefinition.IsPortable) | ||||
|             { | ||||
|                 _copyModuleMessage = $"<div class=\"alert alert-warning mt-2 text-center\" role=\"alert\">{Localizer["Message.Module.NotPortable"]}</div>"; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private async Task AddModule() | ||||
|     { | ||||
|         if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, PageState.Page.PermissionList)) | ||||
| @ -387,7 +380,7 @@ | ||||
|                     module = await ModuleService.AddModuleAsync(module); | ||||
|                     newModuleId = module.ModuleId; | ||||
|                 } | ||||
|                 else if (_moduleType == "exsiting.copy") | ||||
|                 else if (_moduleType == "copy") | ||||
|                 { | ||||
|                     var module = await ModuleService.GetModuleAsync(int.Parse(_moduleId)); | ||||
|                     module.ModuleId = 0; | ||||
|  | ||||
| @ -7,6 +7,7 @@ using Oqtane.Repository; | ||||
| using Oqtane.Shared; | ||||
| using Oqtane.Migrations.Framework; | ||||
| using Oqtane.Documentation; | ||||
| using System.Linq; | ||||
|  | ||||
| // ReSharper disable ConvertToUsingDeclaration | ||||
|  | ||||
| @ -29,10 +30,11 @@ namespace Oqtane.Modules.HtmlText.Manager | ||||
|         public string ExportModule(Module module) | ||||
|         { | ||||
|             string content = ""; | ||||
|             var htmlText = _htmlText.GetHtmlText(module.ModuleId); | ||||
|             if (htmlText != null) | ||||
|             var htmltexts = _htmlText.GetHtmlTexts(module.ModuleId); | ||||
|             if (htmltexts != null && htmltexts.Any()) | ||||
|             { | ||||
|                 content = WebUtility.HtmlEncode(htmlText.Content); | ||||
|                 var htmltext = htmltexts.OrderByDescending(item => item.CreatedOn).First(); | ||||
|                 content = WebUtility.HtmlEncode(htmltext.Content); | ||||
|             } | ||||
|             return content; | ||||
|         } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 sbwalker
					sbwalker