CSS separation, multi-tenancy fixes

This commit is contained in:
Shaun Walker
2019-10-12 16:32:47 -04:00
parent 7f69f76263
commit c029e70783
82 changed files with 957 additions and 811 deletions

View File

@ -16,7 +16,6 @@
<button type="button" class="btn btn-primary" @onclick="UploadFile">Upload</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
@ -29,23 +28,25 @@
{
try
{
ShowProgressIndicator();
if (await FileService.UploadFilesAsync(PageState.Site.SiteRootPath, files, ""))
{
ModuleInstance.AddModuleMessage("Files Uploaded Successfully", MessageType.Success);
AddModuleMessage("Files Uploaded Successfully", MessageType.Success);
}
else
{
ModuleInstance.AddModuleMessage("Upload Failed", MessageType.Error);
AddModuleMessage("Upload Failed", MessageType.Error);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage("Upload Failed. " + ex.Message, MessageType.Error);
AddModuleMessage("Upload Failed. " + ex.Message, MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("You Must Select Some Files To Upload", MessageType.Warning);
AddModuleMessage("You Must Select Some Files To Upload", MessageType.Warning);
}
}
}

View File

@ -39,6 +39,6 @@ else
{
await FileService.DeleteFileAsync(PageState.Site.SiteRootPath, filename);
Files = await FileService.GetFilesAsync(PageState.Site.SiteRootPath);
ModuleInstance.AddModuleMessage("File Deleted", MessageType.Success);
AddModuleMessage("File Deleted", MessageType.Success);
}
}

View File

@ -64,7 +64,7 @@
}
else
{
ModuleInstance.AddModuleMessage("Login Failed. Please Remember That Passwords Are Case Sensitive.", MessageType.Error);
AddModuleMessage("Login Failed. Please Remember That Passwords Are Case Sensitive.", MessageType.Error);
}
}
else
@ -82,7 +82,7 @@
}
else
{
ModuleInstance.AddModuleMessage("Login Failed. Please Remember That Passwords Are Case Sensitive.", MessageType.Error);
AddModuleMessage("Login Failed. Please Remember That Passwords Are Case Sensitive.", MessageType.Error);
}
}
}

View File

@ -76,28 +76,28 @@
{
if (await FileService.UploadFilesAsync("Modules", files, ""))
{
ModuleInstance.AddModuleMessage("Module Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success);
AddModuleMessage("Module Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success);
uploaded = true;
StateHasChanged();
}
else
{
ModuleInstance.AddModuleMessage("Module Upload Failed.", MessageType.Error);
AddModuleMessage("Module Upload Failed.", MessageType.Error);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage("Module Upload Failed. " + ex.Message, MessageType.Error);
AddModuleMessage("Module Upload Failed. " + ex.Message, MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("Invalid Module Package", MessageType.Error);
AddModuleMessage("Invalid Module Package", MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("You Must Select A Module To Upload", MessageType.Warning);
AddModuleMessage("You Must Select A Module To Upload", MessageType.Warning);
}
}
@ -110,7 +110,7 @@
private async Task DownloadModule(string moduledefinitionname, string version)
{
await PackageService.DownloadPackageAsync(moduledefinitionname, version, "Modules");
ModuleInstance.AddModuleMessage("Module Downloaded Successfully. Click Install To Complete Installation.", MessageType.Success);
AddModuleMessage("Module Downloaded Successfully. Click Install To Complete Installation.", MessageType.Success);
uploaded = true;
StateHasChanged();
}

View File

@ -58,7 +58,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -73,7 +73,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -35,7 +35,7 @@
}
else
{
ModuleInstance.AddModuleMessage("You Must Enter Some Content To Import", MessageType.Warning);
AddModuleMessage("You Must Enter Some Content To Import", MessageType.Warning);
}
}
}

View File

@ -173,7 +173,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -194,7 +194,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -273,7 +273,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -165,7 +165,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -178,7 +178,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -233,7 +233,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -262,7 +262,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -365,7 +365,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -94,12 +94,12 @@
}
else
{
ModuleInstance.AddModuleMessage("Current User Is Not Logged In", MessageType.Warning);
AddModuleMessage("Current User Is Not Logged In", MessageType.Warning);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -124,7 +124,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -39,17 +39,25 @@
user.DisplayName = Username;
user.Email = Email;
user.Password = Password;
await UserService.AddUserAsync(user);
NavigationManager.NavigateTo(NavigateUrl(""));
user = await UserService.AddUserAsync(user);
if (user != null)
{
NavigationManager.NavigateTo(NavigateUrl(""));
}
else
{
AddModuleMessage("Error Adding User. Please Ensure Password Meets Complexity Requirements And Username Is Not Already In Use.", MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("You Must Provide A Username, Password, and Email Address", MessageType.Warning);
AddModuleMessage("You Must Provide A Username, Password, and Email Address", MessageType.Warning);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -70,7 +70,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -71,7 +71,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -84,7 +84,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -71,7 +71,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -92,7 +92,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -5,6 +5,7 @@
@inject IAliasService AliasService
@inject ISiteService SiteService
@inject IThemeService ThemeService
@inject IUserService UserService
@if (tenants == null)
{
@ -12,74 +13,93 @@
}
else
{
<table class="table table-borderless">
<table class="table table-borderless">
<tr>
<td>
<label for="Name" class="control-label">Tenant: </label>
</td>
<td>
<select class="form-control" @onchange="(e => TenantChanged(e))">
<option value="-1">&lt;Select Tenant&gt;</option>
@foreach (Tenant tenant in tenants)
{
<option value="@tenant.TenantId">@tenant.Name</option>
}
</select>
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Name: </label>
</td>
<td>
<input class="form-control" @bind="@name" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Aliases: </label>
</td>
<td>
<textarea class="form-control" @bind="@urls" rows="3" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Logo: </label>
</td>
<td>
<input class="form-control" @bind="@logo" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Default Theme: </label>
</td>
<td>
<select class="form-control" @bind="@themetype">
<option value="">&lt;Select Theme&gt;</option>
@foreach (KeyValuePair<string, string> item in themes)
{
<option value="@item.Key">@item.Value</option>
}
</select>
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Default Layout: </label>
</td>
<td>
<select class="form-control" @bind="@layouttype">
<option value="">&lt;Select Layout&gt;</option>
@foreach (KeyValuePair<string, string> panelayout in panelayouts)
{
<option value="@panelayout.Key">@panelayout.Value</option>
}
</select>
</td>
</tr>
@if (!isinitialized)
{
<tr>
<td>
<label for="Name" class="control-label">Tenant: </label>
<label for="Name" class="control-label">Host Username:</label>
</td>
<td>
<select class="form-control" @bind="@tenantid">
<option value="-1">&lt;Select Tenant&gt;</option>
@foreach (Tenant tenant in tenants)
{
<option value="@tenant.TenantId">@tenant.Name</option>
}
</select>
<input class="form-control" @bind="@username" disabled />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Name: </label>
<label for="Name" class="control-label">Host Password:</label>
</td>
<td>
<input class="form-control" @bind="@name" />
<input type="password" class="form-control" @bind="@password" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Aliases: </label>
</td>
<td>
<textarea class="form-control" @bind="@urls" rows="3" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Logo: </label>
</td>
<td>
<input class="form-control" @bind="@logo" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Default Theme: </label>
</td>
<td>
<select class="form-control" @bind="@themetype">
<option value="">&lt;Select Theme&gt;</option>
@foreach (KeyValuePair<string, string> item in themes)
{
<option value="@item.Key">@item.Value</option>
}
</select>
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Default Layout: </label>
</td>
<td>
<select class="form-control" @bind="@layouttype">
<option value="">&lt;Select Layout&gt;</option>
@foreach (KeyValuePair<string, string> panelayout in panelayouts)
{
<option value="@panelayout.Key">@panelayout.Value</option>
}
</select>
</td>
</tr>
</table>
}
</table>
<button type="button" class="btn btn-success" @onclick="SaveSite">Save</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
}
@ -97,6 +117,9 @@ else
string logo = "";
string themetype = "";
string layouttype = "";
bool isinitialized = true;
string username = "";
string password = "";
protected override async Task OnInitializedAsync()
{
@ -104,35 +127,103 @@ else
urls = PageState.Alias.Name;
themes = ThemeService.GetThemeTypes(PageState.Themes);
panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
username = PageState.User.Username;
}
private void TenantChanged(ChangeEventArgs e)
{
try
{
tenantid = (string)e.Value;
if (tenantid != "-1")
{
Tenant tenant = tenants.Where(item => item.TenantId == int.Parse(tenantid)).FirstOrDefault();
if (tenant != null)
{
isinitialized = tenant.IsInitialized;
StateHasChanged();
}
}
}
catch (Exception ex)
{
AddModuleMessage(ex.Message, MessageType.Error);
}
}
private async Task SaveSite()
{
if (tenantid != "-1" && name != "" && urls != "" && themetype != "")
{
Site site = new Site();
site.TenantId = int.Parse(tenantid);
site.Name = name;
site.Logo = (logo == null ? "" : logo);
site.DefaultThemeType = themetype;
site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
site = await SiteService.AddSiteAsync(site);
bool isvalid = true;
urls = urls.Replace("\n", ",");
foreach(string name in urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
if (!isinitialized)
{
Alias alias = new Alias();
alias.Name = name;
alias.TenantId = int.Parse(tenantid);
alias.SiteId = site.SiteId;
await AliasService.AddAliasAsync(alias);
User user = new User();
user.SiteId = PageState.Site.SiteId;
user.Username = username;
user.Password = password;
user = await UserService.LoginUserAsync(user, false, false);
isvalid = user.IsAuthenticated;
}
NavigationManager.NavigateTo("http://" + urls.Split(',')[0], true);
if (isvalid)
{
List<Alias> aliases = new List<Alias>();
urls = urls.Replace("\n", ",");
foreach (string name in urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
Alias alias = new Alias();
alias.Name = name;
alias.TenantId = int.Parse(tenantid);
alias.SiteId = -1;
alias = await AliasService.AddAliasAsync(alias);
aliases.Add(alias);
}
Site site = new Site();
site.TenantId = int.Parse(tenantid);
site.Name = name;
site.Logo = (logo == null ? "" : logo);
site.DefaultThemeType = themetype;
site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
site = await SiteService.AddSiteAsync(site, aliases[0]);
foreach(Alias alias in aliases)
{
alias.SiteId = site.SiteId;
await AliasService.UpdateAliasAsync(alias);
}
if (!isinitialized)
{
User user = new User();
user.SiteId = site.SiteId;
user.Username = username;
user.Password = password;
user.Email = PageState.User.Email;
user.DisplayName = PageState.User.DisplayName;
user = await UserService.AddUserAsync(user, aliases[0]);
if (user != null)
{
Tenant tenant = tenants.Where(item => item.TenantId == int.Parse(tenantid)).FirstOrDefault();
tenant.IsInitialized = true;
await TenantService.UpdateTenantAsync(tenant);
}
}
Uri uri = new Uri(NavigationManager.Uri);
NavigationManager.NavigateTo(uri.Scheme + "://" + aliases[0].Name, true);
}
else
{
AddModuleMessage("Invalid Host Password", MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("You Must Provide A Tenant, Site Name, Alias, And Default Theme", MessageType.Warning);
AddModuleMessage("You Must Provide A Tenant, Site Name, Alias, And Default Theme", MessageType.Warning);
}
}

View File

@ -88,6 +88,7 @@ else
Dictionary<string, string> themes = new Dictionary<string, string>();
Dictionary<string, string> panelayouts = new Dictionary<string, string>();
Alias Alias;
int siteid;
string name = "";
List<Alias> aliases;
@ -109,9 +110,10 @@ else
{
themes = ThemeService.GetThemeTypes(PageState.Themes);
panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
Alias = PageState.Aliases.Where(item => item.AliasId == Int32.Parse(PageState.QueryString["id"])).FirstOrDefault();
siteid = Int32.Parse(PageState.QueryString["id"]);
Site site = await SiteService.GetSiteAsync(siteid);
siteid = Alias.SiteId;
Site site = await SiteService.GetSiteAsync(siteid, Alias);
if (site != null)
{
name = site.Name;
@ -135,7 +137,7 @@ else
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -143,12 +145,12 @@ else
{
try
{
await SiteService.DeleteSiteAsync(PageState.Site.SiteId);
await SiteService.DeleteSiteAsync(siteid, Alias);
NavigationManager.NavigateTo(NavigateUrl());
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -89,6 +89,7 @@ else
Dictionary<string, string> themes = new Dictionary<string, string>();
Dictionary<string, string> panelayouts = new Dictionary<string, string>();
Alias Alias;
int siteid;
string name = "";
List<Alias> aliases;
@ -111,9 +112,10 @@ else
{
themes = ThemeService.GetThemeTypes(PageState.Themes);
panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
Alias = PageState.Aliases.Where(item => item.AliasId == Int32.Parse(PageState.QueryString["id"])).FirstOrDefault();
siteid = Int32.Parse(PageState.QueryString["id"]);
Site site = await SiteService.GetSiteAsync(siteid);
siteid = Alias.SiteId;
Site site = await SiteService.GetSiteAsync(siteid, Alias);
if (site != null)
{
name = site.Name;
@ -137,7 +139,7 @@ else
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -147,7 +149,7 @@ else
{
if (name != "" && urls != "" && themetype != "")
{
Site site = await SiteService.GetSiteAsync(siteid);
Site site = await SiteService.GetSiteAsync(siteid, Alias);
if (site != null)
{
site.Name = name;
@ -156,7 +158,7 @@ else
site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
site.IsDeleted = (isdeleted == null ? true : Boolean.Parse(isdeleted));
site = await SiteService.UpdateSiteAsync(site);
site = await SiteService.UpdateSiteAsync(site, Alias);
urls = urls.Replace("\n", ",");
string[] names = urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
@ -184,12 +186,12 @@ else
}
else
{
ModuleInstance.AddModuleMessage("You Must Provide A Site Name, Alias, And Default Theme", MessageType.Warning);
AddModuleMessage("You Must Provide A Site Name, Alias, And Default Theme", MessageType.Warning);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -1,7 +1,7 @@
@namespace Oqtane.Modules.Admin.Sites
@inherits ModuleBase
@inject ISiteService SiteService
@inject NavigationManager NavigationManager
@inject IAliasService AliasService
@if (sites == null)
{
@ -18,9 +18,9 @@ else
<th>&nbsp;</th>
</Header>
<Row>
<td>@context.Name</td>
<td><ActionLink Action="Edit" Parameters="@($"id=" + context.SiteId.ToString())" /></td>
<td><ActionLink Action="Delete" Parameters="@($"id=" + context.SiteId.ToString())" Class="btn btn-danger" /></td>
<td><a href="@(scheme + context.Name)">@context.Name</a></td>
<td><ActionLink Action="Edit" Parameters="@($"id=" + context.AliasId.ToString())" /></td>
<td><ActionLink Action="Delete" Parameters="@($"id=" + context.AliasId.ToString())" Class="btn btn-danger" /></td>
</Row>
</Pager>
}
@ -28,10 +28,21 @@ else
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
List<Site> sites;
List<Alias> sites;
string scheme;
protected override async Task OnInitializedAsync()
protected override void OnInitialized()
{
sites = await SiteService.GetSitesAsync();
Uri uri = new Uri(NavigationManager.Uri);
scheme = uri.Scheme + "://";
sites = new List<Alias>();
foreach (Alias alias in PageState.Aliases.OrderBy(item => item.Name))
{
if (!sites.Exists(item => item.TenantId == alias.TenantId && item.SiteId == alias.SiteId))
{
sites.Add(alias);
}
}
}
}

View File

@ -42,6 +42,8 @@
private async Task SaveTenant()
{
ShowProgressIndicator();
connectionstring = connectionstring.Replace("\\\\", "\\");
GenericResponse response = await InstallationService.Install(connectionstring);
if (response.Success)
@ -50,13 +52,14 @@
tenant.Name = name;
tenant.DBConnectionString = connectionstring;
tenant.DBSchema = schema;
tenant.IsInitialized = false;
await TenantService.AddTenantAsync(tenant);
NavigationManager.NavigateTo(NavigateUrl());
}
else
{
ModuleInstance.AddModuleMessage(response.Message, MessageType.Error);
AddModuleMessage(response.Message, MessageType.Error);
}
}
}

View File

@ -55,7 +55,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
private async Task DeleteTenant()

View File

@ -55,7 +55,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
private async Task SaveTenant()

View File

@ -75,28 +75,28 @@
{
if (await FileService.UploadFilesAsync("Themes", files, ""))
{
ModuleInstance.AddModuleMessage("Theme Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success);
AddModuleMessage("Theme Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success);
uploaded = true;
StateHasChanged();
}
else
{
ModuleInstance.AddModuleMessage("Theme Upload Failed.", MessageType.Error);
AddModuleMessage("Theme Upload Failed.", MessageType.Error);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage("Theme Upload Failed. " + ex.Message, MessageType.Error);
AddModuleMessage("Theme Upload Failed. " + ex.Message, MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("Invalid Theme Package", MessageType.Error);
AddModuleMessage("Invalid Theme Package", MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("You Must Select A Theme To Upload", MessageType.Warning);
AddModuleMessage("You Must Select A Theme To Upload", MessageType.Warning);
}
}
@ -109,7 +109,7 @@
private async Task DownloadTheme(string packageid, string version)
{
await PackageService.DownloadPackageAsync(packageid, version, "Themes");
ModuleInstance.AddModuleMessage("Theme Downloaded Successfully. Click Install To Complete Installation.", MessageType.Success);
AddModuleMessage("Theme Downloaded Successfully. Click Install To Complete Installation.", MessageType.Success);
uploaded = true;
StateHasChanged();
}

View File

@ -49,7 +49,7 @@ else
}
if (!upgradeavailable)
{
ModuleInstance.AddModuleMessage("Framework Is Up To Date", MessageType.Info);
AddModuleMessage("Framework Is Up To Date", MessageType.Info);
}
}
@ -64,28 +64,28 @@ else
{
if (await FileService.UploadFilesAsync("Framework", files, ""))
{
ModuleInstance.AddModuleMessage("Framework Uploaded Successfully. Click Upgrade To Complete Installation.", MessageType.Success);
AddModuleMessage("Framework Uploaded Successfully. Click Upgrade To Complete Installation.", MessageType.Success);
uploaded = true;
StateHasChanged();
}
else
{
ModuleInstance.AddModuleMessage("Framework Upload Failed.", MessageType.Error);
AddModuleMessage("Framework Upload Failed.", MessageType.Error);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage("Framework Upload Failed. " + ex.Message, MessageType.Error);
AddModuleMessage("Framework Upload Failed. " + ex.Message, MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("Invalid Framework Package", MessageType.Error);
AddModuleMessage("Invalid Framework Package", MessageType.Error);
}
}
else
{
ModuleInstance.AddModuleMessage("You Must Select A Framework Package To Upload", MessageType.Warning);
AddModuleMessage("You Must Select A Framework Package To Upload", MessageType.Warning);
}
}

View File

@ -87,7 +87,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -111,12 +111,12 @@
}
else
{
ModuleInstance.AddModuleMessage("Error Adding User. Please Ensure Password Meets Complexity Requirements And Username Is Not Already In Use.", MessageType.Error);
AddModuleMessage("Error Adding User. Please Ensure Password Meets Complexity Requirements And Username Is Not Already In Use.", MessageType.Error);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -88,7 +88,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -106,7 +106,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -125,7 +125,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -153,7 +153,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}

View File

@ -84,7 +84,7 @@ else
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -145,16 +145,16 @@ else
await UserRoleService.AddUserRoleAsync(userrole);
}
await GetUserRoles();
ModuleInstance.AddModuleMessage("User Assigned To Role", MessageType.Success);
AddModuleMessage("User Assigned To Role", MessageType.Success);
}
else
{
ModuleInstance.AddModuleMessage("You Must Select A Role", MessageType.Warning);
AddModuleMessage("You Must Select A Role", MessageType.Warning);
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -162,7 +162,7 @@ else
{
await UserRoleService.DeleteUserRoleAsync(UserRoleId);
await GetUserRoles();
ModuleInstance.AddModuleMessage("User Removed From Role", MessageType.Success);
AddModuleMessage("User Removed From Role", MessageType.Success);
}
}

View File

@ -49,7 +49,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
@ -75,7 +75,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -28,7 +28,7 @@
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
AddModuleMessage(ex.Message, MessageType.Error);
}
}
}

View File

@ -42,16 +42,6 @@ namespace Oqtane.Modules
return "Modules/" + this.GetType().Namespace + "/";
}
public async Task AddCSS(string Url)
{
if (!Url.StartsWith("http"))
{
Url = ModulePath() + Url;
}
var interop = new Interop(JSRuntime);
await interop.AddCSS("Module:" + Utilities.CreateIdFromUrl(Url), Url);
}
public string NavigateUrl()
{
return NavigateUrl(PageState.Page.Path);
@ -106,5 +96,20 @@ namespace Oqtane.Modules
{
return Utilities.EditUrl(PageState.Alias.Path, path, moduleid, action, parameters);
}
public void AddModuleMessage(string message, MessageType type)
{
AddModuleMessage(message, type);
}
public void ShowProgressIndicator()
{
ModuleInstance.ShowProgressIndicator();
}
public void HideProgressIndicator()
{
ModuleInstance.HideProgressIndicator();
}
}
}