CSS separation, multi-tenancy fixes
This commit is contained in:
@ -114,7 +114,7 @@
|
||||
<button type="button" class="btn btn-success" @onclick="Install">Install Now</button><br /><br />
|
||||
@((MarkupString)@Message)
|
||||
</div>
|
||||
<div class="loading" style="@LoadingDisplay"></div>
|
||||
<div class="app-progress-indicator" style="@LoadingDisplay"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -177,7 +177,7 @@
|
||||
site.TenantId = tenants.FirstOrDefault().TenantId;
|
||||
site.Name = "Default Site";
|
||||
site.Logo = "oqtane.png";
|
||||
site.DefaultThemeType = "Oqtane.Themes.Theme2.Theme2, Oqtane.Client";
|
||||
site.DefaultThemeType = Constants.DefaultTheme;
|
||||
site.DefaultLayoutType = "";
|
||||
site = await SiteService.AddSiteAsync(site);
|
||||
|
||||
|
@ -41,12 +41,12 @@ namespace Oqtane.Shared
|
||||
}
|
||||
}
|
||||
|
||||
public Task AddCSS(string id, string url)
|
||||
public Task IncludeCSS(string id, string url)
|
||||
{
|
||||
try
|
||||
{
|
||||
jsRuntime.InvokeAsync<string>(
|
||||
"interop.addCSS",
|
||||
"interop.includeCSS",
|
||||
id, url);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
@ -56,21 +56,6 @@ namespace Oqtane.Shared
|
||||
}
|
||||
}
|
||||
|
||||
public Task RemoveCSS(string pattern)
|
||||
{
|
||||
try
|
||||
{
|
||||
jsRuntime.InvokeAsync<string>(
|
||||
"interop.removeCSS",
|
||||
pattern);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
public ValueTask<string> GetElementByName(string name)
|
||||
{
|
||||
try
|
||||
|
@ -1,9 +1,14 @@
|
||||
@namespace Oqtane.Shared
|
||||
|
||||
<ModuleMessage Message="@message" Type="MessageType.Error" />
|
||||
<CascadingValue Value="this">
|
||||
<ModuleMessage @ref="modulemessage" />
|
||||
@DynamicComponent
|
||||
</CascadingValue>
|
||||
@if (progressindicator)
|
||||
{
|
||||
<div class="app-progress-indicator"></div>
|
||||
}
|
||||
|
||||
@code {
|
||||
[CascadingParameter]
|
||||
@ -13,16 +18,19 @@
|
||||
private Module ModuleState { get; set; }
|
||||
|
||||
private ModuleMessage modulemessage { get; set; }
|
||||
string message;
|
||||
|
||||
RenderFragment DynamicComponent { get; set; }
|
||||
|
||||
bool progressindicator = false;
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
DynamicComponent = builder =>
|
||||
{
|
||||
string typename = ModuleState.ModuleType;
|
||||
// check for core module actions component
|
||||
if (Constants.DefaultModuleActions.Contains(PageState.Control))
|
||||
if (Constants.DefaultModuleActions.Contains(PageState.Control))
|
||||
{
|
||||
typename = Constants.DefaultModuleActionsTemplate.Replace("{Control}", PageState.Control);
|
||||
}
|
||||
@ -40,13 +48,26 @@
|
||||
else
|
||||
{
|
||||
// module does not exist with typename specified
|
||||
modulemessage.SetModuleMessage("Error Loading Component For Module " + ModuleState.ModuleDefinitionName, MessageType.Error);
|
||||
message = "Module Does Not Have A Component Named " + Utilities.GetTypeNameClass(typename) + ".razor";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void AddModuleMessage(string message, MessageType type)
|
||||
{
|
||||
progressindicator = false;
|
||||
modulemessage.SetModuleMessage(message, type);
|
||||
}
|
||||
|
||||
public void ShowProgressIndicator()
|
||||
{
|
||||
progressindicator = true;
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
public void HideProgressIndicator()
|
||||
{
|
||||
progressindicator = true;
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
|
@ -27,8 +27,8 @@
|
||||
{
|
||||
if (PageState.DesignMode && UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions) && Name != Constants.AdminPane)
|
||||
{
|
||||
paneadminborder = "pane-admin-border";
|
||||
panetitle = "<div class=\"pane-admin-title\">" + Name + " Pane</div>";
|
||||
paneadminborder = "app-pane-admin-border";
|
||||
panetitle = "<div class=\"app-pane-admin-title\">" + Name + " Pane</div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -87,7 +87,7 @@
|
||||
{
|
||||
module.Title = module.ControlTitle;
|
||||
}
|
||||
builder.OpenComponent(0, Type.GetType(Constants.DefaultContainer));
|
||||
builder.OpenComponent(0, Type.GetType(Constants.ContainerComponent));
|
||||
builder.AddAttribute(1, "Module", module);
|
||||
builder.CloseComponent();
|
||||
}
|
||||
@ -109,7 +109,7 @@
|
||||
// check if user is authorized to view module
|
||||
if (UserSecurity.IsAuthorized(PageState.User, "View", module.Permissions))
|
||||
{
|
||||
builder.OpenComponent(0, Type.GetType(Constants.DefaultContainer));
|
||||
builder.OpenComponent(0, Type.GetType(Constants.ContainerComponent));
|
||||
builder.AddAttribute(1, "Module", module);
|
||||
builder.CloseComponent();
|
||||
}
|
||||
@ -122,7 +122,7 @@
|
||||
// check if user is authorized to view module
|
||||
if (UserSecurity.IsAuthorized(PageState.User, "View", module.Permissions))
|
||||
{
|
||||
builder.OpenComponent(0, Type.GetType(Constants.DefaultContainer));
|
||||
builder.OpenComponent(0, Type.GetType(Constants.ContainerComponent));
|
||||
builder.AddAttribute(1, "Module", module);
|
||||
builder.SetKey(module.PageModuleId);
|
||||
builder.CloseComponent();
|
||||
|
@ -20,8 +20,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
// layout does not exist with type specified
|
||||
}
|
||||
// layout does not exist with type specified
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
@ -38,7 +38,7 @@
|
||||
{
|
||||
if (PageState != null)
|
||||
{
|
||||
builder.OpenComponent(0, Type.GetType(Constants.DefaultPage));
|
||||
builder.OpenComponent(0, Type.GetType(Constants.PageComponent));
|
||||
builder.CloseComponent();
|
||||
}
|
||||
};
|
||||
@ -343,7 +343,7 @@
|
||||
// get IModuleControl properties
|
||||
typename = module.ModuleType;
|
||||
// check for core module actions component
|
||||
if (Constants.DefaultModuleActions.Contains(control))
|
||||
if (Constants.DefaultModuleActions.Contains(control))
|
||||
{
|
||||
typename = Constants.DefaultModuleActionsTemplate.Replace("{Control}", control);
|
||||
}
|
||||
@ -407,7 +407,6 @@
|
||||
// use first alias if Uri does not exist
|
||||
alias = aliases.FirstOrDefault();
|
||||
}
|
||||
alias.Scheme = uri.Scheme;
|
||||
return alias;
|
||||
}
|
||||
|
||||
|
@ -20,19 +20,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
// theme does not exist with type specified
|
||||
builder.OpenComponent(0, Type.GetType(Constants.ModuleMessageControl));
|
||||
// theme does not exist with type specified
|
||||
builder.OpenComponent(0, Type.GetType(Constants.ModuleMessageControl));
|
||||
builder.AddAttribute(1, "Message", "Error Loading Page Theme " + PageState.Page.ThemeType);
|
||||
builder.CloseComponent();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
// remove any custom CSS
|
||||
var interop = new Interop(jsRuntime);
|
||||
await interop.RemoveCSS("Theme:");
|
||||
await interop.RemoveCSS("Module:");
|
||||
}
|
||||
}
|
||||
|
@ -203,10 +203,5 @@ namespace Oqtane.Shared
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static string CreateIdFromUrl(string value)
|
||||
{
|
||||
return value.Replace("/", "_").Replace("\\", "_").Replace(".", "_");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user