Merge pull request #32 from oqtane/master

sync
This commit is contained in:
Shaun Walker 2020-06-01 14:58:41 -04:00 committed by GitHub
commit ec11587b28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 53 additions and 57 deletions

View File

@ -6,7 +6,7 @@ using Oqtane.UI;
namespace Oqtane.Themes
{
public class ContainerBase : ComponentBase, IContainerControl
public abstract class ContainerBase : ComponentBase, IContainerControl
{
[Inject]
protected IJSRuntime JSRuntime { get; set; }

View File

@ -145,11 +145,12 @@
<input type="text" name="Title" class="form-control" @bind="@Title"/>
</div>
</div>
@if (_pane.Length > 1)
{
<div class="row">
<div class="col text-center">
<label for="Pane" class="control-label">Pane: </label>
<select class="form-control" @bind="@Pane">
<option value="">&lt;Select Pane&gt;</option>
@foreach (string pane in PageState.Page.Panes)
{
<option value="@pane">@pane Pane</option>
@ -157,6 +158,7 @@
</select>
</div>
</div>
}
<div class="row">
<div class="col text-center">
<label for="Container" class="control-label">Container: </label>
@ -244,47 +246,41 @@
}
}
protected string Pane
{
get => _pane;
private set
{
if (_pane != value)
{
_pane = value;
_ = UpdateSettingsAsync();
}
}
}
protected string Description { get; private set; } = "";
protected string Pane { get; private set; } = "";
protected string Title { get; private set; } = "";
protected string ContainerType { get; private set; } = "";
protected string Message { get; private set; } = "";
[Parameter]
public string ButtonClass { get; set; }
public string ButtonClass { get; set; } = "btn-outline-secondary";
[Parameter]
public string CardClass { get; set; }
public string CardClass { get; set; } = "card border-secondary mb-3";
[Parameter]
public string HeaderClass { get; set; }
public string HeaderClass { get; set; } = "card-header";
[Parameter]
public string BodyClass { get; set; }
public string BodyClass { get; set; } = "card-body";
protected override async Task OnInitializedAsync()
{
if (string.IsNullOrEmpty(ButtonClass))
{
ButtonClass = "btn-outline-secondary";
}
if (string.IsNullOrEmpty(CardClass))
{
CardClass = "card border-secondary mb-3";
}
if (string.IsNullOrEmpty(HeaderClass))
{
HeaderClass = "card-header";
}
if (string.IsNullOrEmpty(BodyClass))
{
BodyClass = "card-body";
}
if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, PageState.Page.Permissions))
{
_pages?.Clear();
@ -298,15 +294,11 @@
}
await LoadSettingsAsync();
var panes = PageState.Page.Panes;
Pane = panes.Count() == 1 ? panes.SingleOrDefault() : "";
var themes = await ThemeService.GetThemesAsync();
_containers = ThemeService.GetContainerControls(themes, PageState.Page.ThemeType);
ContainerType = PageState.Site.DefaultContainerType;
_allModuleDefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
_moduleDefinitions = _allModuleDefinitions.Where(item => item.Categories.Contains(Category)).ToList();
_categories = _allModuleDefinitions.SelectMany(m => m.Categories.Split(',')).Distinct().ToList();
}
}
@ -526,18 +518,24 @@
}
}
private string settingName = "CP-category";
private string settingCategory = "CP-category";
private string settingPane = "CP-pane";
private string _pane = "";
private async Task LoadSettingsAsync()
{
Dictionary<string, string> settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId);
_category = SettingService.GetSetting(settings, settingName, "Common");
_category = SettingService.GetSetting(settings, settingCategory, "Common");
var pane = SettingService.GetSetting(settings, settingPane, "");
_pane = PageState.Page.Panes.Contains(pane) ? pane : PageState.Page.Panes.FirstOrDefault();
}
private async Task UpdateSettingsAsync()
{
Dictionary<string, string> settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId);
SettingService.SetSetting(settings, settingName, _category);
SettingService.SetSetting(settings, settingCategory, _category);
SettingService.SetSetting(settings, settingPane, _pane);
await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId);
}
}

View File

@ -4,7 +4,7 @@ using Oqtane.UI;
namespace Oqtane.Themes
{
public class LayoutBase : ComponentBase, ILayoutControl
public abstract class LayoutBase : ComponentBase, ILayoutControl
{
[CascadingParameter]
protected PageState PageState { get; set; }

View File

@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace Oqtane.Themes
{
public class ThemeBase : ComponentBase, IThemeControl
public abstract class ThemeBase : ComponentBase, IThemeControl
{
[Inject]
protected IJSRuntime JSRuntime { get; set; }

View File

@ -4,7 +4,7 @@ using Oqtane.UI;
namespace Oqtane.Themes
{
public class ThemeControlBase : ComponentBase
public abstract class ThemeControlBase : ComponentBase
{
[CascadingParameter]
protected PageState PageState { get; set; }

View File

@ -193,11 +193,7 @@ namespace Oqtane.Repository
foreach (Type modulecontroltype in modulecontroltypes)
{
// Check if type should be ignored
if (modulecontroltype.Name == "ModuleBase"
|| modulecontroltype.IsGenericType
|| modulecontroltype.IsAbstract
|| modulecontroltype.IsOqtaneIgnore()
) continue;
if (modulecontroltype.IsOqtaneIgnore()) continue;
// create namespace root typename
string qualifiedModuleType = modulecontroltype.Namespace + ", " + modulecontroltype.Assembly.GetName().Name;

View File

@ -50,10 +50,7 @@ namespace Oqtane.Repository
foreach (Type themeControlType in themeControlTypes)
{
// Check if type should be ignored
if (themeControlType.Name == "ThemeBase"
|| themeControlType.IsGenericType
|| themeControlType.IsAbstract
|| themeControlType.IsOqtaneIgnore()
if (themeControlType.IsOqtaneIgnore()
) continue;
// create namespace root typename

View File

@ -80,9 +80,14 @@ namespace System.Reflection
.Where(a => Utilities.GetFullTypeName(a.GetName().Name) != "Oqtane.Client");
}
/// <summary>
/// Checks if type should be ignored by oqtane dynamic loader
/// </summary>
/// <param name="type">Checked type</param>
/// <returns></returns>
public static bool IsOqtaneIgnore(this Type type)
{
return Attribute.IsDefined(type, typeof(OqtaneIgnoreAttribute));
return Attribute.IsDefined(type, typeof(OqtaneIgnoreAttribute)) || type.IsAbstract || type.IsGenericType;
}
}
}