improve BaseUrl handling for MAUI, replace ContentUrl with FileUrl and improve file server
This commit is contained in:
@ -16,17 +16,12 @@ namespace Oqtane.Shared
|
||||
public const string ContainerComponent = "Oqtane.UI.ContainerBuilder, Oqtane.Client";
|
||||
|
||||
public const string DefaultTheme = "Oqtane.Themes.OqtaneTheme.Default, Oqtane.Client";
|
||||
[Obsolete("DefaultLayout is deprecated")]
|
||||
public const string DefaultLayout = "";
|
||||
public const string DefaultContainer = "Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client";
|
||||
public const string DefaultAdminContainer = "Oqtane.Themes.AdminContainer, Oqtane.Client";
|
||||
|
||||
public const string ActionToken = "{Action}";
|
||||
public const string DefaultAction = "Index";
|
||||
|
||||
[Obsolete("Use PaneNames.Admin")]
|
||||
public const string AdminPane = PaneNames.Admin;
|
||||
|
||||
public static readonly string[] ReservedRoutes = { "api", "pages", "files" };
|
||||
public const string ModuleDelimiter = "*";
|
||||
public const string UrlParametersDelimiter = "!";
|
||||
@ -42,29 +37,13 @@ namespace Oqtane.Shared
|
||||
|
||||
public const string DefaultSiteTemplate = "Oqtane.SiteTemplates.DefaultSiteTemplate, Oqtane.Server";
|
||||
|
||||
public const string ContentUrl = "/api/file/download/";
|
||||
public const string FileUrl = "/files/";
|
||||
public const string ImageUrl = "/api/file/image/";
|
||||
public const int UserFolderCapacity = 20; // megabytes
|
||||
public const string PackagesFolder = "Packages";
|
||||
|
||||
[Obsolete("Use UserNames.Host instead.")]
|
||||
public const string HostUser = UserNames.Host;
|
||||
|
||||
[Obsolete("Use TenantNames.Master instead")]
|
||||
public const string MasterTenant = TenantNames.Master;
|
||||
public const string DefaultSite = "Default Site";
|
||||
|
||||
const string RoleObsoleteMessage = "Use the corresponding member from Oqtane.Shared.RoleNames";
|
||||
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string AllUsersRole = RoleNames.Everyone;
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string HostRole = RoleNames.Host;
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string AdminRole = RoleNames.Admin;
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string RegisteredRole = RoleNames.Registered;
|
||||
|
||||
public const string ImageFiles = "jpg,jpeg,jpe,gif,bmp,png,ico,webp";
|
||||
public const string UploadableFiles = ImageFiles + ",mov,wmv,avi,mp4,mp3,doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,nupkg,csv,json,xml,xslt,rss,html,htm,css";
|
||||
public const string ReservedDevices = "CON,NUL,PRN,COM0,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT0,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8,LPT9,CONIN$,CONOUT$";
|
||||
@ -93,5 +72,33 @@ namespace Oqtane.Shared
|
||||
public static readonly string HttpContextSiteSettingsKey = "SiteSettings";
|
||||
|
||||
public static readonly string MauiUserAgent = "MAUI";
|
||||
|
||||
// Obsolete constants
|
||||
|
||||
const string RoleObsoleteMessage = "Use the corresponding member from Oqtane.Shared.RoleNames";
|
||||
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string AllUsersRole = RoleNames.Everyone;
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string HostRole = RoleNames.Host;
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string AdminRole = RoleNames.Admin;
|
||||
[Obsolete(RoleObsoleteMessage)]
|
||||
public const string RegisteredRole = RoleNames.Registered;
|
||||
|
||||
[Obsolete("DefaultLayout is deprecated")]
|
||||
public const string DefaultLayout = "";
|
||||
|
||||
[Obsolete("Use PaneNames.Admin")]
|
||||
public const string AdminPane = PaneNames.Admin;
|
||||
|
||||
[Obsolete("Use UserNames.Host instead.")]
|
||||
public const string HostUser = UserNames.Host;
|
||||
|
||||
[Obsolete("Use TenantNames.Master instead")]
|
||||
public const string MasterTenant = TenantNames.Master;
|
||||
|
||||
// [Obsolete("Use FileUrl instead")]
|
||||
public const string ContentUrl = "/api/file/download/";
|
||||
}
|
||||
}
|
||||
|
@ -98,23 +98,28 @@ namespace Oqtane.Shared
|
||||
return NavigateUrl(alias, path, parameters);
|
||||
}
|
||||
|
||||
public static string ContentUrl(Alias alias, int fileId)
|
||||
{
|
||||
return ContentUrl(alias, fileId, false);
|
||||
}
|
||||
|
||||
public static string ContentUrl(Alias alias, int fileId, bool asAttachment)
|
||||
{
|
||||
var aliasUrl = (alias != null && !string.IsNullOrEmpty(alias.Path)) ? "/" + alias.Path : "";
|
||||
var method = asAttachment ? "/attach" : "";
|
||||
|
||||
return $"{alias.BaseUrl}{aliasUrl}{Constants.ContentUrl}{fileId}{method}";
|
||||
}
|
||||
|
||||
public static string FileUrl(Alias alias, string folderpath, string filename)
|
||||
{
|
||||
return FileUrl(alias, folderpath, filename, false);
|
||||
}
|
||||
|
||||
public static string FileUrl(Alias alias, string folderpath, string filename, bool download)
|
||||
{
|
||||
var aliasUrl = (alias != null && !string.IsNullOrEmpty(alias.Path)) ? "/" + alias.Path : "";
|
||||
return $"{alias.BaseUrl}{aliasUrl}/files/{folderpath.Replace("\\", "/")}{filename}";
|
||||
var querystring = (download) ? "?download" : "";
|
||||
return $"{alias?.BaseUrl}{aliasUrl}{Constants.FileUrl}{folderpath.Replace("\\", "/")}{filename}{querystring}";
|
||||
}
|
||||
|
||||
public static string FileUrl(Alias alias, int fileid)
|
||||
{
|
||||
return FileUrl(alias, fileid, false);
|
||||
}
|
||||
|
||||
public static string FileUrl(Alias alias, int fileid, bool download)
|
||||
{
|
||||
var aliasUrl = (alias != null && !string.IsNullOrEmpty(alias.Path)) ? "/" + alias.Path : "";
|
||||
var querystring = (download) ? "?download" : "";
|
||||
return $"{alias?.BaseUrl}{aliasUrl}{Constants.FileUrl}id/{fileid}{querystring}";
|
||||
}
|
||||
|
||||
public static string ImageUrl(Alias alias, int fileId, int width, int height, string mode)
|
||||
@ -128,25 +133,30 @@ namespace Oqtane.Shared
|
||||
mode = string.IsNullOrEmpty(mode) ? "crop" : mode;
|
||||
position = string.IsNullOrEmpty(position) ? "center" : position;
|
||||
background = string.IsNullOrEmpty(background) ? "000000" : background;
|
||||
return $"{alias.BaseUrl}{url}{Constants.ImageUrl}{fileId}/{width}/{height}/{mode}/{position}/{background}/{rotate}/{recreate}";
|
||||
return $"{alias?.BaseUrl}{url}{Constants.ImageUrl}{fileId}/{width}/{height}/{mode}/{position}/{background}/{rotate}/{recreate}";
|
||||
}
|
||||
|
||||
public static string TenantUrl(Alias alias, string url)
|
||||
{
|
||||
url = (!url.StartsWith("/")) ? "/" + url : url;
|
||||
url = (alias != null && !string.IsNullOrEmpty(alias.Path)) ? "/" + alias.Path + url : url;
|
||||
return $"{alias.BaseUrl}{url}";
|
||||
return $"{alias?.BaseUrl}{url}";
|
||||
}
|
||||
|
||||
public static string FormatContent(string content, Alias alias, string operation)
|
||||
{
|
||||
var aliasUrl = (alias != null && !string.IsNullOrEmpty(alias.Path)) ? "/" + alias.Path : "";
|
||||
switch (operation)
|
||||
{
|
||||
case "save":
|
||||
content = content.Replace(alias?.BaseUrl + aliasUrl + Constants.FileUrl, Constants.FileUrl);
|
||||
// legacy
|
||||
content = content.Replace(UrlCombine("Content", "Tenants", alias.TenantId.ToString(), "Sites", alias.SiteId.ToString()), "[siteroot]");
|
||||
content = content.Replace(alias.Path + Constants.ContentUrl, Constants.ContentUrl);
|
||||
break;
|
||||
case "render":
|
||||
content = content.Replace(Constants.FileUrl, alias?.BaseUrl + aliasUrl + Constants.FileUrl);
|
||||
// legacy
|
||||
content = content.Replace("[siteroot]", UrlCombine("Content", "Tenants", alias.TenantId.ToString(), "Sites", alias.SiteId.ToString()));
|
||||
content = content.Replace(Constants.ContentUrl, alias.Path + Constants.ContentUrl);
|
||||
break;
|
||||
@ -491,5 +501,19 @@ namespace Oqtane.Shared
|
||||
return (localDateTime?.Date, localTime);
|
||||
}
|
||||
|
||||
[Obsolete("ContentUrl(Alias alias, int fileId) is deprecated. Use FileUrl(Alias alias, int fileId) instead.", false)]
|
||||
public static string ContentUrl(Alias alias, int fileId)
|
||||
{
|
||||
return ContentUrl(alias, fileId, false);
|
||||
}
|
||||
|
||||
[Obsolete("ContentUrl(Alias alias, int fileId, bool asAttachment) is deprecated. Use FileUrl(Alias alias, int fileId, bool download) instead.", false)]
|
||||
public static string ContentUrl(Alias alias, int fileId, bool asAttachment)
|
||||
{
|
||||
var aliasUrl = (alias != null && !string.IsNullOrEmpty(alias.Path)) ? "/" + alias.Path : "";
|
||||
var method = asAttachment ? "/attach" : "";
|
||||
|
||||
return $"{alias?.BaseUrl}{aliasUrl}{Constants.ContentUrl}{fileId}{method}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user