Fix #4025: add user setting to keep the view mode.

This commit is contained in:
Ben
2024-03-20 15:46:32 +08:00
parent 854f3b5257
commit 7b67c9aa8d
4 changed files with 99 additions and 24 deletions

View File

@ -2,6 +2,7 @@
@inherits ThemeControlBase
@inject NavigationManager NavigationManager
@inject IPageService PageService
@inject ISettingService SettingService
@if (ShowLanguageSwitcher)
{
@ -99,7 +100,7 @@
return false;
}
private async Task ToggleEditMode(bool EditMode)
private async Task ToggleEditMode(bool editMode)
{
Page page = null;
if (PageState.Page.IsPersonalizable && PageState.User != null && UserSecurity.IsAuthorized(PageState.User, RoleNames.Registered))
@ -109,13 +110,18 @@
if (_showEditMode)
{
if (EditMode)
PageState.EditMode = !editMode;
if(PageState.User != null) //keep edit mode for authenticated users.
{
PageState.EditMode = false;
}
else
{
PageState.EditMode = true;
var viewMode = PageState.EditMode ? ViewMode.Edit.ToString() : ViewMode.View.ToString();
var userSettings = new Dictionary<string, string>
{
{ UserSetting.ViewMode, viewMode }
};
await SettingService.UpdateUserSettingsAsync(userSettings, PageState.User.UserId);
}
// preserve other querystring parameters