hide deleted pages in Admin Dashboard, impove Settings API by replacing IsPublic with IsPrivate, isolate Setting updates to not affect PageState, make Pager horizintally scrollable on narrow viewports, improve LocalizableComponent to support embedded controls

This commit is contained in:
Shaun Walker
2022-01-14 13:26:24 -05:00
parent 9e04230d99
commit 11002efc02
22 changed files with 260 additions and 219 deletions

View File

@ -206,7 +206,7 @@ namespace Oqtane.Services
/// <returns></returns>
Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue);
Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPublic);
Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPrivate);
Dictionary<string, string> MergeSettings(Dictionary<string, string> settings1, Dictionary<string, string> settings2);

View File

@ -131,12 +131,12 @@ namespace Oqtane.Services
foreach (KeyValuePair<string, string> kvp in settings)
{
string value = kvp.Value;
bool ispublic = true;
bool isprivate = false;
if (value.StartsWith("[Private]"))
{
value = value.Substring(9); // remove [Private]
ispublic = false;
isprivate = true;
}
Setting setting = settingsList.FirstOrDefault(item => item.SettingName.Equals(kvp.Key, StringComparison.OrdinalIgnoreCase));
@ -147,22 +147,21 @@ namespace Oqtane.Services
setting.EntityId = entityId;
setting.SettingName = kvp.Key;
setting.SettingValue = value;
setting.IsPublic = ispublic;
setting.IsPrivate = isprivate;
setting = await AddSettingAsync(setting);
}
else
{
if (setting.SettingValue != value || setting.IsPublic != ispublic)
if (setting.SettingValue != value)
{
setting.SettingValue = value;
setting.IsPublic = ispublic;
setting.IsPrivate = isprivate;
setting = await UpdateSettingAsync(setting);
}
}
}
}
public async Task<Setting> GetSettingAsync(string entityName, int settingId)
{
return await GetJsonAsync<Setting>($"{Apiurl}/{settingId}/{entityName}");
@ -196,16 +195,16 @@ namespace Oqtane.Services
public Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue)
{
return SetSetting(settings, settingName, settingValue, true);
return SetSetting(settings, settingName, settingValue, false);
}
public Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPublic)
public Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPrivate)
{
if (settings == null)
{
settings = new Dictionary<string, string>();
}
settingValue = (isPublic) ? settingValue : "[Private]" + settingValue;
settingValue = (isPrivate) ? "[Private]" + settingValue : settingValue;
if (settings.ContainsKey(settingName))
{
settings[settingName] = settingValue;