allow page themes to be different from site theme - display warning message
This commit is contained in:
		| @ -137,7 +137,7 @@ | ||||
|                         <div class="row mb-1 align-items-center"> | ||||
|                             <Label Class="col-sm-3" For="theme" HelpText="Select the theme for this page" ResourceKey="Theme">Theme: </Label> | ||||
|                             <div class="col-sm-9"> | ||||
|                                 <select id="theme" class="form-select" @bind="@_themetype" required> | ||||
|                                 <select id="theme" class="form-select" value="@_themetype" @onchange="(e => ThemeChanged(e))" required> | ||||
|                                     @foreach (var theme in _themes) | ||||
|                                     { | ||||
|                                         <option value="@theme.TypeName">@theme.Name</option> | ||||
| @ -301,6 +301,19 @@ | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|     private void ThemeChanged(ChangeEventArgs e) | ||||
|     { | ||||
|         _themetype = (string)e.Value; | ||||
|         if (ThemeService.GetTheme(PageState.Site.Themes, _themetype)?.ThemeName != ThemeService.GetTheme(PageState.Site.Themes, PageState.Site.DefaultThemeType)?.ThemeName) | ||||
|         { | ||||
|             AddModuleMessage(Localizer["ThemeChanged.Message"], MessageType.Warning); | ||||
|             _containers = ThemeService.GetContainerControls(PageState.Site.Themes, _themetype); | ||||
|             _containertype = _containers.First().TypeName; | ||||
|             ThemeSettings(); | ||||
|             StateHasChanged(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| 	private void ThemeSettings() | ||||
| 	{ | ||||
| 		_themeSettingsType = null; | ||||
|  | ||||
| @ -148,7 +148,7 @@ | ||||
|                             <div class="row mb-1 align-items-center"> | ||||
|                                 <Label Class="col-sm-3" For="theme" HelpText="Select the theme for this page" ResourceKey="Theme">Theme: </Label> | ||||
|                                 <div class="col-sm-9"> | ||||
|                                     <select id="theme" class="form-select" @bind="@_themetype" required> | ||||
|                                     <select id="theme" class="form-select" value="@_themetype" @onchange="(e => ThemeChanged(e))" required> | ||||
|                                         @foreach (var theme in _themes) | ||||
|                                         { | ||||
|                                             <option value="@theme.TypeName">@theme.Name</option> | ||||
| @ -401,25 +401,6 @@ | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private async Task DeleteModule(Module module) | ||||
|     { | ||||
|         try | ||||
|         { | ||||
|             PageModule pagemodule = await PageModuleService.GetPageModuleAsync(_page.PageId, module.ModuleId); | ||||
|             pagemodule.IsDeleted = true; | ||||
|             await PageModuleService.UpdatePageModuleAsync(pagemodule); | ||||
|             await logger.LogInformation(LogFunction.Update,"Module Deleted {Title}", module.Title); | ||||
|             _pageModules.RemoveAll(item => item.PageModuleId == pagemodule.PageModuleId); | ||||
|             StateHasChanged(); | ||||
|             NavigationManager.NavigateTo(NavigationManager.Uri + "&tab=PageModules"); | ||||
|         } | ||||
|         catch (Exception ex) | ||||
|         { | ||||
|             await logger.LogError(ex, "Error Deleting Module {Title} {Error}", module.Title, ex.Message); | ||||
|             AddModuleMessage(Localizer["Error.Module.Delete"], MessageType.Error); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private async void ParentChanged(ChangeEventArgs e) | ||||
|     { | ||||
|         try | ||||
| @ -463,6 +444,19 @@ | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void ThemeChanged(ChangeEventArgs e) | ||||
|     { | ||||
|         _themetype = (string)e.Value; | ||||
|         if (ThemeService.GetTheme(PageState.Site.Themes, _themetype)?.ThemeName != ThemeService.GetTheme(PageState.Site.Themes, PageState.Site.DefaultThemeType)?.ThemeName) | ||||
|         { | ||||
|             AddModuleMessage(Localizer["ThemeChanged.Message"], MessageType.Warning); | ||||
|             _containers = ThemeService.GetContainerControls(PageState.Site.Themes, _themetype); | ||||
|             _containertype = _containers.First().TypeName; | ||||
|             ThemeSettings(); | ||||
|             StateHasChanged(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void ThemeSettings() | ||||
|     { | ||||
|         _themeSettingsType = null; | ||||
| @ -646,4 +640,24 @@ | ||||
|             NavigationManager.NavigateTo(NavigateUrl()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private async Task DeleteModule(Module module) | ||||
|     { | ||||
|         try | ||||
|         { | ||||
|             PageModule pagemodule = await PageModuleService.GetPageModuleAsync(_page.PageId, module.ModuleId); | ||||
|             pagemodule.IsDeleted = true; | ||||
|             await PageModuleService.UpdatePageModuleAsync(pagemodule); | ||||
|             await logger.LogInformation(LogFunction.Update, "Module Deleted {Title}", module.Title); | ||||
|             _pageModules.RemoveAll(item => item.PageModuleId == pagemodule.PageModuleId); | ||||
|             StateHasChanged(); | ||||
|             NavigationManager.NavigateTo(NavigationManager.Uri + "&tab=PageModules"); | ||||
|         } | ||||
|         catch (Exception ex) | ||||
|         { | ||||
|             await logger.LogError(ex, "Error Deleting Module {Title} {Error}", module.Title, ex.Message); | ||||
|             AddModuleMessage(Localizer["Error.Module.Delete"], MessageType.Error); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| @ -288,12 +288,13 @@ else | ||||
| 			if (_themetype != "-") | ||||
| 			{ | ||||
| 				_containers = ThemeService.GetContainerControls(_themeList, _themetype); | ||||
| 			} | ||||
|                 _containertype = _containers.First().TypeName; | ||||
|             } | ||||
| 			else | ||||
| 			{ | ||||
| 				_containers = new List<ThemeControl>(); | ||||
| 			} | ||||
| 			_containertype = "-"; | ||||
|                 _containertype = "-"; | ||||
|             } | ||||
| 			_admincontainertype = ""; | ||||
| 			StateHasChanged(); | ||||
| 		} | ||||
|  | ||||
| @ -246,4 +246,7 @@ | ||||
|   <data name="PageContent.Heading" xml:space="preserve"> | ||||
|     <value>Page Content</value> | ||||
|   </data> | ||||
|   <data name="ThemeChanged.Message" xml:space="preserve"> | ||||
|     <value>Please Note That Overriding The Default Site Theme With An Unrelated Page Theme May Result In Compatibility Issues For Your Site</value> | ||||
|   </data> | ||||
| </root> | ||||
| @ -282,4 +282,7 @@ | ||||
|   <data name="PageContent.Heading" xml:space="preserve"> | ||||
|     <value>Page Content</value> | ||||
|   </data> | ||||
|   <data name="ThemeChanged.Message" xml:space="preserve"> | ||||
|     <value>Please Note That Overriding The Default Site Theme With An Unrelated Page Theme May Result In Compatibility Issues For Your Site</value> | ||||
|   </data> | ||||
| </root> | ||||
		Reference in New Issue
	
	Block a user
	 sbwalker
					sbwalker