Revert "Rework for Tabstrip regression issue"
This commit is contained in:
parent
a499cfb98f
commit
4a74549c1b
|
@ -242,6 +242,7 @@
|
||||||
|
|
||||||
private async Task SaveModule()
|
private async Task SaveModule()
|
||||||
{
|
{
|
||||||
|
|
||||||
validated = true;
|
validated = true;
|
||||||
var interop = new Interop(JSRuntime);
|
var interop = new Interop(JSRuntime);
|
||||||
if (await interop.FormValid(form))
|
if (await interop.FormValid(form))
|
||||||
|
|
|
@ -469,7 +469,6 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_activetab = "Settings";
|
|
||||||
AddModuleMessage(Localizer["Message.Required.PageInfo"], MessageType.Warning);
|
AddModuleMessage(Localizer["Message.Required.PageInfo"], MessageType.Warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -477,13 +476,11 @@
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
await logger.LogError(ex, "Error Saving Page {Page} {Error}", page, ex.Message);
|
await logger.LogError(ex, "Error Saving Page {Page} {Error}", page, ex.Message);
|
||||||
_activetab = "Settings";
|
|
||||||
AddModuleMessage(Localizer["Error.Page.Save"], MessageType.Error);
|
AddModuleMessage(Localizer["Error.Page.Save"], MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_activetab = "Settings";
|
|
||||||
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -523,7 +523,7 @@
|
||||||
|
|
||||||
private async Task SavePage()
|
private async Task SavePage()
|
||||||
{
|
{
|
||||||
//_activetab = "Settings";
|
_activetab = "Settings";
|
||||||
validated = true;
|
validated = true;
|
||||||
var interop = new Interop(JSRuntime);
|
var interop = new Interop(JSRuntime);
|
||||||
if (await interop.FormValid(form))
|
if (await interop.FormValid(form))
|
||||||
|
@ -672,20 +672,17 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_activetab = "Settings";
|
|
||||||
AddModuleMessage(Localizer["Message.Required.PageInfo"], MessageType.Warning);
|
AddModuleMessage(Localizer["Message.Required.PageInfo"], MessageType.Warning);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
await logger.LogError(ex, "Error Saving Page {Page} {Error}", _page, ex.Message);
|
await logger.LogError(ex, "Error Saving Page {Page} {Error}", _page, ex.Message);
|
||||||
_activetab = "Settings";
|
|
||||||
AddModuleMessage(Localizer["Error.Page.Save"], MessageType.Error);
|
AddModuleMessage(Localizer["Error.Page.Save"], MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_activetab = "Settings";
|
|
||||||
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
||||||
|
|
||||||
<div class="quill-text-editor">
|
<div class="quill-text-editor">
|
||||||
<TabStrip ActiveTab="@_activetab" TabChangeEvent=false>
|
<TabStrip ActiveTab="@_activetab">
|
||||||
@if (_allowRichText)
|
@if (_allowRichText)
|
||||||
{
|
{
|
||||||
<TabPanel Name="Rich" Heading="Rich Text Editor" ResourceKey="RichTextEditor">
|
<TabPanel Name="Rich" Heading="Rich Text Editor" ResourceKey="RichTextEditor">
|
||||||
|
@ -254,11 +254,11 @@
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_interop = new QuillEditorInterop(JSRuntime);
|
_interop = new QuillEditorInterop(JSRuntime);
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(Placeholder))
|
if (string.IsNullOrEmpty(Placeholder))
|
||||||
{
|
{
|
||||||
Placeholder = Localizer["Placeholder"];
|
Placeholder = Localizer["Placeholder"];
|
||||||
}
|
}
|
||||||
// _activetab = "Rich";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
|
@ -269,10 +269,6 @@
|
||||||
{
|
{
|
||||||
_activetab = "Raw";
|
_activetab = "Raw";
|
||||||
}
|
}
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// _activetab = "Rich";
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||||
|
|
|
@ -30,20 +30,15 @@ else
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public SecurityAccessLevel? Security { get; set; } // optional - can be used to specify SecurityAccessLevel
|
public SecurityAccessLevel? Security { get; set; } // optional - can be used to specify SecurityAccessLevel
|
||||||
|
|
||||||
|
public bool IsActive { get; set; }
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
base.OnParametersSet();
|
base.OnParametersSet();
|
||||||
|
|
||||||
Parent.AddTabPanel((TabPanel)this);
|
Parent.AddTabPanel((TabPanel)this);
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(Heading))
|
Heading = string.IsNullOrEmpty(Heading) ? Localize(nameof(Name), Name) : Localize(nameof(Heading), Heading);
|
||||||
{
|
|
||||||
Heading = Localize(nameof(Name), Name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Heading = Localize(nameof(Heading), Heading);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string DisplayHeading()
|
public string DisplayHeading()
|
||||||
|
|
|
@ -8,18 +8,9 @@
|
||||||
@foreach (TabPanel tabPanel in _tabPanels)
|
@foreach (TabPanel tabPanel in _tabPanels)
|
||||||
{
|
{
|
||||||
<li class="nav-item" @key="tabPanel.Name">
|
<li class="nav-item" @key="tabPanel.Name">
|
||||||
@if (tabPanel.Name.ToLower() == ActiveTab.ToLower())
|
<a class="nav-link @(tabPanel.IsActive ? "active" : "")" data-bs-toggle="tab" href="#@(Id + tabPanel.Name)" role="tab" @onclick:preventDefault="true" @onclick="() => SetActiveTab(tabPanel.Name)">
|
||||||
{
|
|
||||||
<a class="nav-link active" data-bs-toggle="tab" href="#@(Id + tabPanel.Name)" role="tab" @onclick="() => { if (TabChangeEvent) ChangeTab(tabPanel.Name); }">
|
|
||||||
@tabPanel.DisplayHeading()
|
@tabPanel.DisplayHeading()
|
||||||
</a>
|
</a>
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<a class="nav-link" data-bs-toggle="tab" href="#@(Id + tabPanel.Name)" role="tab" @onclick="() => { if (TabChangeEvent) ChangeTab(tabPanel.Name); }">
|
|
||||||
@tabPanel.DisplayHeading()
|
|
||||||
</a>
|
|
||||||
}
|
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -38,9 +29,6 @@
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public RenderFragment ChildContent { get; set; } // contains the TabPanels
|
public RenderFragment ChildContent { get; set; } // contains the TabPanels
|
||||||
|
|
||||||
[Parameter]
|
|
||||||
public bool TabChangeEvent { get; set; } = true;
|
|
||||||
|
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public string ActiveTab { get; set; } // optional - defaults to first TabPanel if not specified. Can also be set using a "tab=" querystring parameter.
|
public string ActiveTab { get; set; } // optional - defaults to first TabPanel if not specified. Can also be set using a "tab=" querystring parameter.
|
||||||
|
|
||||||
|
@ -64,15 +52,41 @@
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
|
base.OnParametersSet();
|
||||||
|
|
||||||
if (PageState.QueryString.ContainsKey("tab"))
|
if (PageState.QueryString.ContainsKey("tab"))
|
||||||
{
|
{
|
||||||
ActiveTab = PageState.QueryString["tab"];
|
ActiveTab = PageState.QueryString["tab"];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_tabPanels == null || Refresh)
|
if (_tabPanels == null || Refresh)
|
||||||
{
|
{
|
||||||
_tabPanels = new List<TabPanel>();
|
_tabPanels = new List<TabPanel>();
|
||||||
}
|
}
|
||||||
StateHasChanged();
|
|
||||||
|
// Ensure the active tab is valid and exists
|
||||||
|
if (!string.IsNullOrEmpty(ActiveTab) && _tabPanels.Any())
|
||||||
|
{
|
||||||
|
var activeTabExists = _tabPanels.Any(tp => tp.Name.Equals(ActiveTab, StringComparison.OrdinalIgnoreCase));
|
||||||
|
if (!activeTabExists)
|
||||||
|
{
|
||||||
|
ActiveTab = _tabPanels[0].Name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the active tab in the UI
|
||||||
|
UpdateActiveTab();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateActiveTab()
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(ActiveTab) && _tabPanels != null)
|
||||||
|
{
|
||||||
|
foreach (var tabPanel in _tabPanels)
|
||||||
|
{
|
||||||
|
tabPanel.IsActive = tabPanel.Name.Equals(ActiveTab, StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void AddTabPanel(TabPanel tabPanel)
|
internal void AddTabPanel(TabPanel tabPanel)
|
||||||
|
@ -80,12 +94,20 @@
|
||||||
if (!_tabPanels.Exists(item => item.Name == tabPanel.Name) && IsAuthorized(tabPanel))
|
if (!_tabPanels.Exists(item => item.Name == tabPanel.Name) && IsAuthorized(tabPanel))
|
||||||
{
|
{
|
||||||
_tabPanels.Add(tabPanel);
|
_tabPanels.Add(tabPanel);
|
||||||
StateHasChanged();
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(ActiveTab))
|
if (string.IsNullOrEmpty(ActiveTab))
|
||||||
{
|
{
|
||||||
ActiveTab = tabPanel.Name;
|
ActiveTab = tabPanel.Name;
|
||||||
}
|
}
|
||||||
|
UpdateActiveTab();
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetActiveTab(string tabName)
|
||||||
|
{
|
||||||
|
ActiveTab = tabName;
|
||||||
|
UpdateActiveTab();
|
||||||
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsAuthorized(TabPanel tabPanel)
|
private bool IsAuthorized(TabPanel tabPanel)
|
||||||
|
@ -114,13 +136,4 @@
|
||||||
}
|
}
|
||||||
return authorized;
|
return authorized;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChangeTab(string tabName)
|
|
||||||
{
|
|
||||||
if (ActiveTab != tabName)
|
|
||||||
{
|
|
||||||
ActiveTab = tabName;
|
|
||||||
StateHasChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user