diff --git a/Oqtane.Client/Modules/Admin/Pages/Add.razor b/Oqtane.Client/Modules/Admin/Pages/Add.razor
index bb6a93e3..7dbaac95 100644
--- a/Oqtane.Client/Modules/Admin/Pages/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Pages/Add.razor
@@ -170,7 +170,6 @@
p.ViewPermissions = viewpermissions;
p.EditPermissions = editpermissions;
await PageService.AddPageAsync(p);
- StateHasChanged();
UriHelper.NavigateTo(NavigateUrl(path, true));
}
}
diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor
index dbd821af..b3e9489e 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor
@@ -2,12 +2,34 @@
@using Oqtane.Models
@using Oqtane.Services
@using Oqtane.Modules
-@using Oqtane.Client.Modules.Controls
@inherits ModuleBase
@inject IUriHelper UriHelper
+@inject ITenantService TenantService
+@inject IAliasService AliasService
@inject ISiteService SiteService
+@inject IPageService PageService
+@if (tenants == null)
+{
+
Loading...
+}
+else
+{
Cancel
+}
@functions {
public override SecurityAccessLevelEnum SecurityAccessLevel { get { return SecurityAccessLevelEnum.Host; } }
+ List tenants;
+ string tenantid;
string name;
- string alias;
+ string url;
+ string logo;
+
+ protected override async Task OnInitAsync()
+ {
+ tenants = await TenantService.GetTenantsAsync();
+ }
private async Task SaveSite()
{
Site site = new Site();
site.Name = name;
- site.Logo = "";
+ site.Logo = (logo == null ? "" : logo);
await SiteService.AddSiteAsync(site);
- StateHasChanged();
- UriHelper.NavigateTo(NavigateUrl());
+ List sites = await SiteService.GetSitesAsync();
+ site = sites.Where(item => item.Name == name).FirstOrDefault();
+
+ Alias alias = new Alias();
+ alias.Name = url;
+ alias.TenantId = int.Parse(tenantid);
+ alias.SiteId = site.SiteId;
+ await AliasService.AddAliasAsync(alias);
+
+ // need to add a home page and admin pages
+ Page p = new Page();
+ p.SiteId = site.SiteId;
+ p.ParentId = null;
+ p.Name = "Home";
+ p.Path = "";
+ p.Order = 1;
+ p.IsNavigation = true;
+ p.ThemeType = "Oqtane.Client.Themes.Theme1.Theme1, Oqtane.Client";
+ p.LayoutType = "";
+ p.Icon = "";
+ Type type = Type.GetType(p.ThemeType);
+ System.Reflection.PropertyInfo property = type.GetProperty("Panes");
+ p.Panes = (string)property.GetValue(Activator.CreateInstance(type), null);
+ p.ViewPermissions = "All Users";
+ p.EditPermissions = "Administrators";
+ await PageService.AddPageAsync(p);
+
+ UriHelper.NavigateTo(url, true);
}
}
diff --git a/Oqtane.Client/Services/ITenantService.cs b/Oqtane.Client/Services/ITenantService.cs
index 1fb45966..bf6b5c08 100644
--- a/Oqtane.Client/Services/ITenantService.cs
+++ b/Oqtane.Client/Services/ITenantService.cs
@@ -1,10 +1,13 @@
using Oqtane.Models;
+using System.Collections.Generic;
using System.Threading.Tasks;
namespace Oqtane.Services
{
public interface ITenantService
{
+ Task> GetTenantsAsync();
+
Task GetTenantAsync();
}
}
diff --git a/Oqtane.Client/Services/TenantService.cs b/Oqtane.Client/Services/TenantService.cs
index 9904f6aa..27054504 100644
--- a/Oqtane.Client/Services/TenantService.cs
+++ b/Oqtane.Client/Services/TenantService.cs
@@ -3,6 +3,8 @@ using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components;
using Oqtane.Shared;
+using System.Collections.Generic;
+using System.Linq;
namespace Oqtane.Services
{
@@ -22,6 +24,12 @@ namespace Oqtane.Services
get { return CreateApiUrl(sitestate.Alias, "Tenant"); }
}
+ public async Task> GetTenantsAsync()
+ {
+ List tenants = await http.GetJsonAsync>(apiurl);
+ return tenants.OrderBy(item => item.Name).ToList();
+ }
+
public async Task GetTenantAsync()
{
return await http.GetJsonAsync(apiurl);
diff --git a/Oqtane.Client/Shared/Container.razor b/Oqtane.Client/Shared/Container.razor
index 7faa800e..9adfd0df 100644
--- a/Oqtane.Client/Shared/Container.razor
+++ b/Oqtane.Client/Shared/Container.razor
@@ -10,8 +10,9 @@
protected PageState PageState { get; set; }
[Parameter]
- private Module ModuleState { get; set; }
+ private Module Module { get; set; }
+ Module ModuleState;
string container;
RenderFragment DynamicComponent { get; set; }
@@ -35,6 +36,7 @@
protected override Task OnParametersSetAsync()
{
+ ModuleState = Module; // passed in from Pane component
container = ModuleState.ContainerType;
if (PageState.ModuleId != -1 && PageState.Control != "")
{
diff --git a/Oqtane.Client/Shared/Pane.razor b/Oqtane.Client/Shared/Pane.razor
index 549e353e..4a0c0c9a 100644
--- a/Oqtane.Client/Shared/Pane.razor
+++ b/Oqtane.Client/Shared/Pane.razor
@@ -84,7 +84,7 @@
}
}
builder.OpenComponent(0, Type.GetType(Constants.DefaultContainer));
- builder.AddAttribute(1, "ModuleState", module);
+ builder.AddAttribute(1, "Module", module);
builder.CloseComponent();
}
}
@@ -106,7 +106,7 @@
if (UserService.IsAuthorized(PageState.User, module.ViewPermissions))
{
builder.OpenComponent(0, Type.GetType(Constants.DefaultContainer));
- builder.AddAttribute(1, "ModuleState", module);
+ builder.AddAttribute(1, "Module", module);
builder.CloseComponent();
}
}
@@ -119,7 +119,7 @@
if (UserService.IsAuthorized(PageState.User, module.ViewPermissions))
{
builder.OpenComponent(0, Type.GetType(Constants.DefaultContainer));
- builder.AddAttribute(1, "ModuleState", module);
+ builder.AddAttribute(1, "Module", module);
builder.CloseComponent();
}
}
diff --git a/Oqtane.Client/Shared/SiteRouter.razor b/Oqtane.Client/Shared/SiteRouter.razor
index 89621362..f313026a 100644
--- a/Oqtane.Client/Shared/SiteRouter.razor
+++ b/Oqtane.Client/Shared/SiteRouter.razor
@@ -234,7 +234,6 @@
{
// site does not exist
}
- StateHasChanged();
}
private async void OnLocationChanged(object sender, string AbsoluteUri)
diff --git a/Oqtane.Client/Themes/Controls/Logo.razor b/Oqtane.Client/Themes/Controls/Logo.razor
index 2c42061f..5356a3c1 100644
--- a/Oqtane.Client/Themes/Controls/Logo.razor
+++ b/Oqtane.Client/Themes/Controls/Logo.razor
@@ -1,5 +1,16 @@
@using Oqtane.Themes
@inherits ThemeObjectBase
-
+@((MarkupString)logo)
+@functions {
+ string logo = "";
+
+ protected override void OnInit()
+ {
+ if (PageState.Site.Logo != "")
+ {
+ logo = "
";
+ }
+ }
+}
\ No newline at end of file
diff --git a/Oqtane.Server/Controllers/AliasController.cs b/Oqtane.Server/Controllers/AliasController.cs
index cd8296e3..772bb974 100644
--- a/Oqtane.Server/Controllers/AliasController.cs
+++ b/Oqtane.Server/Controllers/AliasController.cs
@@ -31,18 +31,18 @@ namespace Oqtane.Controllers
// POST api/
[HttpPost]
- public void Post([FromBody] Alias site)
+ public void Post([FromBody] Alias alias)
{
if (ModelState.IsValid)
- aliases.AddAlias(site);
+ aliases.AddAlias(alias);
}
// PUT api//5
[HttpPut("{id}")]
- public void Put(int id, [FromBody] Alias site)
+ public void Put(int id, [FromBody] Alias alias)
{
if (ModelState.IsValid)
- aliases.UpdateAlias(site);
+ aliases.UpdateAlias(alias);
}
// DELETE api//5
diff --git a/Oqtane.Server/Properties/launchSettings.json b/Oqtane.Server/Properties/launchSettings.json
index dc8b0c09..55612d8c 100644
--- a/Oqtane.Server/Properties/launchSettings.json
+++ b/Oqtane.Server/Properties/launchSettings.json
@@ -21,7 +21,7 @@
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
- "applicationUrl": "http://localhost:14245/"
+ "applicationUrl": "http://localhost:44357/"
}
}
}
\ No newline at end of file