Enhance Settings API for public Site Settings. Added Settings to Site model by default. Added new parameters to Login and UserProfile components. Enhanced Oqtane Theme settings to use new component parameters. Enhanced image download and resizing logic.
This commit is contained in:
@ -67,9 +67,9 @@ namespace Oqtane.Services
|
||||
await DeleteAsync($"{Apiurl}/{fileId}");
|
||||
}
|
||||
|
||||
public async Task<File> UploadFileAsync(string url, int folderId)
|
||||
public async Task<File> UploadFileAsync(string url, int folderId, string name)
|
||||
{
|
||||
return await GetJsonAsync<File>($"{Apiurl}/upload?url={WebUtility.UrlEncode(url)}&folderid={folderId}");
|
||||
return await GetJsonAsync<File>($"{Apiurl}/upload?url={WebUtility.UrlEncode(url)}&folderid={folderId}&name={name}");
|
||||
}
|
||||
|
||||
public async Task<string> UploadFilesAsync(int folderId, string[] files, string id)
|
||||
|
@ -62,8 +62,9 @@ namespace Oqtane.Services
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="folderId"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
Task<File> UploadFileAsync(string url, int folderId);
|
||||
Task<File> UploadFileAsync(string url, int folderId, string name);
|
||||
|
||||
/// <summary>
|
||||
/// Upload one or more files.
|
||||
|
@ -1,4 +1,4 @@
|
||||
using Oqtane.Models;
|
||||
using Oqtane.Models;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@ -51,5 +51,9 @@ namespace Oqtane.Services
|
||||
string GetSetting(Dictionary<string, string> settings, string settingName, string defaultValue);
|
||||
|
||||
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> MergeSettings(Dictionary<string, string> settings1, Dictionary<string, string> settings2);
|
||||
}
|
||||
}
|
||||
|
@ -109,21 +109,31 @@ namespace Oqtane.Services
|
||||
|
||||
foreach (KeyValuePair<string, string> kvp in settings)
|
||||
{
|
||||
Setting setting = settingsList.FirstOrDefault(item => item.SettingName.Equals(kvp.Key,StringComparison.OrdinalIgnoreCase));
|
||||
string value = kvp.Value;
|
||||
bool ispublic = false;
|
||||
if (value.StartsWith("[Public]"))
|
||||
{
|
||||
value = value.Substring(8); // remove [Public]
|
||||
ispublic = true;
|
||||
}
|
||||
|
||||
Setting setting = settingsList.FirstOrDefault(item => item.SettingName.Equals(kvp.Key, StringComparison.OrdinalIgnoreCase));
|
||||
if (setting == null)
|
||||
{
|
||||
setting = new Setting();
|
||||
setting.EntityName = entityName;
|
||||
setting.EntityId = entityId;
|
||||
setting.SettingName = kvp.Key;
|
||||
setting.SettingValue = kvp.Value;
|
||||
setting.SettingValue = value;
|
||||
setting.IsPublic = ispublic;
|
||||
setting = await AddSettingAsync(setting);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (setting.SettingValue != kvp.Value)
|
||||
{
|
||||
setting.SettingValue = kvp.Value;
|
||||
setting.SettingValue = value;
|
||||
setting.IsPublic = ispublic;
|
||||
setting = await UpdateSettingAsync(setting);
|
||||
}
|
||||
}
|
||||
@ -163,13 +173,19 @@ namespace Oqtane.Services
|
||||
}
|
||||
|
||||
public Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue)
|
||||
{
|
||||
return SetSetting(settings, settingName, settingValue, false);
|
||||
}
|
||||
|
||||
public Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPublic)
|
||||
{
|
||||
if (settings == null)
|
||||
{
|
||||
settings = new Dictionary<string, string>();
|
||||
}
|
||||
settingValue = (isPublic) ? "[Public]" + settingValue : settingValue;
|
||||
if (settings.ContainsKey(settingName))
|
||||
{
|
||||
{
|
||||
settings[settingName] = settingValue;
|
||||
}
|
||||
else
|
||||
@ -178,5 +194,28 @@ namespace Oqtane.Services
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
|
||||
public Dictionary<string, string> MergeSettings(Dictionary<string, string> settings1, Dictionary<string, string> settings2)
|
||||
{
|
||||
if (settings1 == null)
|
||||
{
|
||||
settings1 = new Dictionary<string, string>();
|
||||
}
|
||||
if (settings2 != null)
|
||||
{
|
||||
foreach (var setting in settings2)
|
||||
{
|
||||
if (settings1.ContainsKey(setting.Key))
|
||||
{
|
||||
settings1[setting.Key] = setting.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
settings1.Add(setting.Key, setting.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return settings1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user