UpdateSettings bugfix

ISettingControl introduction
This commit is contained in:
Pavel Vesely 2021-01-05 19:52:14 +01:00
parent a9a66155e2
commit 91c5ff7b00
2 changed files with 19 additions and 8 deletions

View File

@ -1,4 +1,5 @@
@namespace Oqtane.Modules.Admin.Modules
@using Oqtane.Interfaces
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject IThemeService ThemeService
@ -137,7 +138,7 @@
builder.AddComponentReferenceCapture(1, inst => { _settings = Convert.ChangeType(inst, _settingsModuleType); });
builder.CloseComponent();
};
}
}
}
private async Task SaveModule()
@ -162,15 +163,16 @@
module.Permissions = _permissionGrid.GetPermissions();
await ModuleService.UpdateModuleAsync(module);
if (_settingsModuleType != null)
if (_settings is ISettingsControl control)
{
var moduleType = Type.GetType(ModuleState.ModuleType);
if (moduleType != null)
{
moduleType.GetMethod("UpdateSettings")?.Invoke(_settings, null); // method must be public in settings component
}
await control.UpdateSettings();
}
else
{
// Compatibility 2.0 fallback
_settings?.GetType().GetMethod("UpdateSettings")?.Invoke(_settings, null); // method must be public in settings component
}
NavigationManager.NavigateTo(NavigateUrl());
}

View File

@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace Oqtane.Interfaces
{
public interface ISettingsControl
{
Task UpdateSettings();
}
}