diff --git a/Oqtane.Client/Modules/Admin/Languages/Add.razor b/Oqtane.Client/Modules/Admin/Languages/Add.razor
index 5a667f16..00c1e0cc 100644
--- a/Oqtane.Client/Modules/Admin/Languages/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Languages/Add.razor
@@ -50,11 +50,10 @@ else
-
@SharedLocalizer["Cancel"]
@@ -125,18 +124,6 @@ else
}
}
- private async Task InstallTranslations()
- {
- try
- {
- AddModuleMessage(string.Format(Localizer["Success.Language.Install"], NavigateUrl("admin/system")), MessageType.Success);
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Installing Translations");
- }
- }
-
private async Task SetCultureAsync(string culture)
{
if (culture != CultureInfo.CurrentUICulture.Name)
@@ -148,4 +135,9 @@ else
NavigationManager.NavigateTo(NavigationManager.Uri, true);
}
}
+
+ private void OnUpload()
+ {
+ AddModuleMessage(string.Format(Localizer["Success.Language.Download"], NavigateUrl("admin/system")), MessageType.Success);
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor
index 0ac63c11..548a45f5 100644
--- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor
+++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor
@@ -65,13 +65,15 @@
}
}
+
+
@@ -112,137 +114,139 @@
}
@SharedLocalizer["Cancel"]
-
-
-
@code {
- private List _packages;
- private string _price = "free";
- private string _search = "";
- private string _productname = "";
- private string _packageid = "";
- private string _packagelicense = "";
- private string _packageversion = "";
+ private List _packages;
+ private string _price = "free";
+ private string _search = "";
+ private string _productname = "";
+ private string _packageid = "";
+ private string _packagelicense = "";
+ private string _packageversion = "";
- public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host;
+ public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host;
- protected override async Task OnInitializedAsync()
- {
- try
- {
- await LoadModuleDefinitions();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading Packages {Error}", ex.Message);
- AddModuleMessage(Localizer["Error.Package.Load"], MessageType.Error);
- }
- }
+ protected override async Task OnInitializedAsync()
+ {
+ try
+ {
+ await LoadModuleDefinitions();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Loading Packages {Error}", ex.Message);
+ AddModuleMessage(Localizer["Error.Package.Load"], MessageType.Error);
+ }
+ }
- private async Task LoadModuleDefinitions()
- {
- var moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
- _packages = await PackageService.GetPackagesAsync("module", _search, _price, "");
+ private async Task LoadModuleDefinitions()
+ {
+ var moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
+ _packages = await PackageService.GetPackagesAsync("module", _search, _price, "");
- if (_packages != null)
- {
- foreach (Package package in _packages.ToArray())
- {
- if (moduledefinitions.Exists(item => item.PackageName == package.PackageId))
- {
- _packages.Remove(package);
- }
- }
- }
- }
+ if (_packages != null)
+ {
+ foreach (Package package in _packages.ToArray())
+ {
+ if (moduledefinitions.Exists(item => item.PackageName == package.PackageId))
+ {
+ _packages.Remove(package);
+ }
+ }
+ }
+ }
- private async void PriceChanged(ChangeEventArgs e)
- {
- try
- {
- _price = (string)e.Value;
- _search = "";
- await LoadModuleDefinitions();
- StateHasChanged();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error On PriceChanged");
- }
- }
+ private async void PriceChanged(ChangeEventArgs e)
+ {
+ try
+ {
+ _price = (string)e.Value;
+ _search = "";
+ await LoadModuleDefinitions();
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error On PriceChanged");
+ }
+ }
- private async Task Search()
- {
- try
- {
- await LoadModuleDefinitions();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error On Search");
- }
- }
+ private async Task Search()
+ {
+ try
+ {
+ await LoadModuleDefinitions();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error On Search");
+ }
+ }
- private async Task Reset()
- {
- try
- {
- _search = "";
- await LoadModuleDefinitions();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error On Reset");
- }
- }
+ private async Task Reset()
+ {
+ try
+ {
+ _search = "";
+ await LoadModuleDefinitions();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error On Reset");
+ }
+ }
- private void HideModal()
- {
- _productname = "";
- _packagelicense = "";
- StateHasChanged();
- }
+ private void HideModal()
+ {
+ _productname = "";
+ _packagelicense = "";
+ StateHasChanged();
+ }
- private async Task GetPackage(string packageid, string version)
- {
- try
- {
- var package = await PackageService.GetPackageAsync(packageid, version);
- if (package != null)
- {
- _productname = package.Name;
- _packageid = package.PackageId;
- if (!string.IsNullOrEmpty(package.License))
- {
- _packagelicense = package.License.Replace("\n", "
");
- }
- _packageversion = package.Version;
- }
- StateHasChanged();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Getting Package {PackageId} {Version}", packageid, version);
- AddModuleMessage(Localizer["Error.Module.Download"], MessageType.Error);
- }
- }
+ private async Task GetPackage(string packageid, string version)
+ {
+ try
+ {
+ var package = await PackageService.GetPackageAsync(packageid, version);
+ if (package != null)
+ {
+ _productname = package.Name;
+ _packageid = package.PackageId;
+ if (!string.IsNullOrEmpty(package.License))
+ {
+ _packagelicense = package.License.Replace("\n", "
");
+ }
+ _packageversion = package.Version;
+ }
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Getting Package {PackageId} {Version}", packageid, version);
+ AddModuleMessage(Localizer["Error.Module.Download"], MessageType.Error);
+ }
+ }
- private async Task DownloadPackage()
- {
- try
- {
- await PackageService.DownloadPackageAsync(_packageid, _packageversion, Constants.PackagesFolder);
- await logger.LogInformation("Package {PackageId} {Version} Downloaded Successfully", _packageid, _packageversion);
- AddModuleMessage(string.Format(Localizer["Success.Module.Download"], NavigateUrl("admin/system")), MessageType.Success);
- _productname = "";
- _packagelicense = "";
- StateHasChanged();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Downloading Package {PackageId} {Version}", _packageid, _packageversion);
- AddModuleMessage(Localizer["Error.Module.Download"], MessageType.Error);
- }
- }
+ private async Task DownloadPackage()
+ {
+ try
+ {
+ await PackageService.DownloadPackageAsync(_packageid, _packageversion, Constants.PackagesFolder);
+ await logger.LogInformation("Package {PackageId} {Version} Downloaded Successfully", _packageid, _packageversion);
+ AddModuleMessage(string.Format(Localizer["Success.Module.Download"], NavigateUrl("admin/system")), MessageType.Success);
+ _productname = "";
+ _packagelicense = "";
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Downloading Package {PackageId} {Version}", _packageid, _packageversion);
+ AddModuleMessage(Localizer["Error.Module.Download"], MessageType.Error);
+ }
+ }
+
+ private void OnUpload()
+ {
+ AddModuleMessage(string.Format(Localizer["Success.Module.Download"], NavigateUrl("admin/system")), MessageType.Success);
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor
index dca90274..76c95d83 100644
--- a/Oqtane.Client/Modules/Admin/Themes/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor
@@ -65,13 +65,15 @@
}
}
+
+
@@ -112,9 +114,6 @@
}
@SharedLocalizer["Cancel"]
-
-
-
@code {
private List _packages;
@@ -245,4 +244,9 @@
AddModuleMessage(Localizer["Error.Theme.Download"], MessageType.Error);
}
}
+
+ private void OnUpload()
+ {
+ AddModuleMessage(string.Format(Localizer["Success.Theme.Download"], NavigateUrl("admin/system")), MessageType.Success);
+ }
}
diff --git a/Oqtane.Client/Modules/Controls/FileManager.razor b/Oqtane.Client/Modules/Controls/FileManager.razor
index fe0fa6cc..cd5ad6e3 100644
--- a/Oqtane.Client/Modules/Controls/FileManager.razor
+++ b/Oqtane.Client/Modules/Controls/FileManager.razor
@@ -87,299 +87,306 @@
}
@code {
- private bool _initialized = false;
- private List _folders;
- private List _files = new List();
- private string _fileinputid = string.Empty;
- private string _progressinfoid = string.Empty;
- private string _progressbarid = string.Empty;
- private string _filter = "*";
- private bool _haseditpermission = false;
- private string _image = string.Empty;
- private File _file = null;
- private string _guid;
- private string _message = string.Empty;
- private MessageType _messagetype;
+ private bool _initialized = false;
+ private List _folders;
+ private List _files = new List();
+ private string _fileinputid = string.Empty;
+ private string _progressinfoid = string.Empty;
+ private string _progressbarid = string.Empty;
+ private string _filter = "*";
+ private bool _haseditpermission = false;
+ private string _image = string.Empty;
+ private File _file = null;
+ private string _guid;
+ private string _message = string.Empty;
+ private MessageType _messagetype;
- [Parameter]
- public string Id { get; set; } // optional - for setting the id of the FileManager component for accessibility
+ [Parameter]
+ public string Id { get; set; } // optional - for setting the id of the FileManager component for accessibility
- [Parameter]
- public int FolderId { get; set; } = -1; // optional - for setting a specific default folder by folderid
+ [Parameter]
+ public int FolderId { get; set; } = -1; // optional - for setting a specific default folder by folderid
- [Parameter]
- public string Folder { get; set; } = ""; // optional - for setting a specific default folder by folder path
+ [Parameter]
+ public string Folder { get; set; } = ""; // optional - for setting a specific default folder by folder path
- [Parameter]
- public int FileId { get; set; } = -1; // optional - for selecting a specific file by default
+ [Parameter]
+ public int FileId { get; set; } = -1; // optional - for selecting a specific file by default
- [Parameter]
- public string Filter { get; set; } // optional - comma delimited list of file types that can be selected or uploaded ie. "jpg,gif"
+ [Parameter]
+ public string Filter { get; set; } // optional - comma delimited list of file types that can be selected or uploaded ie. "jpg,gif"
- [Parameter]
- public bool ShowFiles { get; set; } = true; // optional - for indicating whether a list of files should be displayed - default is true
+ [Parameter]
+ public bool ShowFiles { get; set; } = true; // optional - for indicating whether a list of files should be displayed - default is true
- [Parameter]
- public bool ShowUpload { get; set; } = true; // optional - for indicating whether a Upload controls should be displayed - default is true
+ [Parameter]
+ public bool ShowUpload { get; set; } = true; // optional - for indicating whether a Upload controls should be displayed - default is true
- [Parameter]
- public bool ShowFolders { get; set; } = true; // optional - for indicating whether a list of folders should be displayed - default is true
+ [Parameter]
+ public bool ShowFolders { get; set; } = true; // optional - for indicating whether a list of folders should be displayed - default is true
- [Parameter]
- public bool ShowImage { get; set; } = true; // optional - for indicating whether an image thumbnail should be displayed - default is true
+ [Parameter]
+ public bool ShowImage { get; set; } = true; // optional - for indicating whether an image thumbnail should be displayed - default is true
- [Parameter]
- public bool ShowSuccess { get; set; } = false; // optional - for indicating whether a success message should be displayed upon successful upload - default is false
+ [Parameter]
+ public bool ShowSuccess { get; set; } = false; // optional - for indicating whether a success message should be displayed upon successful upload - default is false
- [Parameter]
- public bool UploadMultiple { get; set; } = false; // optional - enable multiple file uploads - default false
+ [Parameter]
+ public bool UploadMultiple { get; set; } = false; // optional - enable multiple file uploads - default false
- [Parameter]
- public EventCallback OnUpload { get; set; } // optional - executes a method in the calling component when a file is uploaded
+ [Parameter]
+ public EventCallback OnUpload { get; set; } // optional - executes a method in the calling component when a file is uploaded
- [Parameter]
- public EventCallback OnSelect { get; set; } // optional - executes a method in the calling component when a file is selected
+ [Parameter]
+ public EventCallback OnSelect { get; set; } // optional - executes a method in the calling component when a file is selected
- [Parameter]
- public EventCallback OnDelete { get; set; } // optional - executes a method in the calling component when a file is deleted
+ [Parameter]
+ public EventCallback OnDelete { get; set; } // optional - executes a method in the calling component when a file is deleted
- protected override async Task OnInitializedAsync()
- {
- // packages folder is a framework folder for uploading installable nuget packages
- if (Folder == Constants.PackagesFolder)
- {
- ShowFiles = false;
- ShowFolders = false;
- Filter = "nupkg";
- ShowSuccess = true;
- }
+ protected override async Task OnInitializedAsync()
+ {
+ // packages folder is a framework folder for uploading installable nuget packages
+ if (Folder == Constants.PackagesFolder)
+ {
+ ShowFiles = false;
+ ShowFolders = false;
+ Filter = "nupkg";
+ ShowSuccess = true;
+ }
- if (!ShowFiles)
- {
- ShowImage = false;
- }
+ if (!ShowFiles)
+ {
+ ShowImage = false;
+ }
- _folders = await FolderService.GetFoldersAsync(ModuleState.SiteId);
+ _folders = await FolderService.GetFoldersAsync(ModuleState.SiteId);
- if (!string.IsNullOrEmpty(Folder) && Folder != Constants.PackagesFolder)
- {
- Folder folder = await FolderService.GetFolderAsync(ModuleState.SiteId, Folder);
- if (folder != null)
- {
- FolderId = folder.FolderId;
- }
- else
- {
- FolderId = -1;
- _message = "Folder Path " + Folder + "Does Not Exist";
- _messagetype = MessageType.Error;
- }
- }
+ if (!string.IsNullOrEmpty(Folder) && Folder != Constants.PackagesFolder)
+ {
+ Folder folder = await FolderService.GetFolderAsync(ModuleState.SiteId, Folder);
+ if (folder != null)
+ {
+ FolderId = folder.FolderId;
+ }
+ else
+ {
+ FolderId = -1;
+ _message = "Folder Path " + Folder + "Does Not Exist";
+ _messagetype = MessageType.Error;
+ }
+ }
- if (FileId != -1)
- {
- File file = await FileService.GetFileAsync(FileId);
- if (file != null)
- {
- FolderId = file.FolderId;
- await OnSelect.InvokeAsync(FileId);
- }
- else
- {
- FileId = -1; // file does not exist
- _message = "FileId " + FileId.ToString() + "Does Not Exist";
- _messagetype = MessageType.Error;
- }
- }
+ if (FileId != -1)
+ {
+ File file = await FileService.GetFileAsync(FileId);
+ if (file != null)
+ {
+ FolderId = file.FolderId;
+ await OnSelect.InvokeAsync(FileId);
+ }
+ else
+ {
+ FileId = -1; // file does not exist
+ _message = "FileId " + FileId.ToString() + "Does Not Exist";
+ _messagetype = MessageType.Error;
+ }
+ }
- await SetImage();
+ await SetImage();
- if (!string.IsNullOrEmpty(Filter))
- {
- _filter = "." + Filter.Replace(",", ",.");
- }
+ if (!string.IsNullOrEmpty(Filter))
+ {
+ _filter = "." + Filter.Replace(",", ",.");
+ }
- await GetFiles();
+ await GetFiles();
- // create unique id for component
- _guid = Guid.NewGuid().ToString("N");
- _fileinputid = "FileInput_" + _guid;
- _progressinfoid = "ProgressInfo_" + _guid;
- _progressbarid = "ProgressBar_" + _guid;
+ // create unique id for component
+ _guid = Guid.NewGuid().ToString("N");
+ _fileinputid = "FileInput_" + _guid;
+ _progressinfoid = "ProgressInfo_" + _guid;
+ _progressbarid = "ProgressBar_" + _guid;
- _initialized = true;
- }
+ _initialized = true;
+ }
- private async Task GetFiles()
- {
- _haseditpermission = false;
- if (Folder == Constants.PackagesFolder)
- {
- _haseditpermission = UserSecurity.IsAuthorized(PageState.User, RoleNames.Host);
- _files = new List();
- }
- else
- {
- Folder folder = _folders.FirstOrDefault(item => item.FolderId == FolderId);
- if (folder != null)
- {
- _haseditpermission = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, folder.PermissionList);
- _files = await FileService.GetFilesAsync(FolderId);
- }
- else
- {
- _haseditpermission = false;
- _files = new List();
- }
- }
- if (_filter != "*")
- {
- List filtered = new List();
- foreach (File file in _files)
- {
- if (_filter.ToUpper().IndexOf("." + file.Extension.ToUpper()) != -1)
- {
- filtered.Add(file);
- }
- }
- _files = filtered;
- }
- }
+ private async Task GetFiles()
+ {
+ _haseditpermission = false;
+ if (Folder == Constants.PackagesFolder)
+ {
+ _haseditpermission = UserSecurity.IsAuthorized(PageState.User, RoleNames.Host);
+ _files = new List();
+ }
+ else
+ {
+ Folder folder = _folders.FirstOrDefault(item => item.FolderId == FolderId);
+ if (folder != null)
+ {
+ _haseditpermission = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, folder.PermissionList);
+ _files = await FileService.GetFilesAsync(FolderId);
+ }
+ else
+ {
+ _haseditpermission = false;
+ _files = new List();
+ }
+ if (_filter != "*")
+ {
+ List filtered = new List();
+ foreach (File file in _files)
+ {
+ if (_filter.ToUpper().IndexOf("." + file.Extension.ToUpper()) != -1)
+ {
+ filtered.Add(file);
+ }
+ }
+ _files = filtered;
+ }
+ }
+ }
- private async Task FolderChanged(ChangeEventArgs e)
- {
- _message = string.Empty;
- try
- {
- FolderId = int.Parse((string)e.Value);
- await GetFiles();
- FileId = -1;
- _file = null;
- _image = string.Empty;
- StateHasChanged();
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading Files {Error}", ex.Message);
- _message = Localizer["Error.File.Load"];
- _messagetype = MessageType.Error;
- }
- }
+ private async Task FolderChanged(ChangeEventArgs e)
+ {
+ _message = string.Empty;
+ try
+ {
+ FolderId = int.Parse((string)e.Value);
+ await GetFiles();
+ FileId = -1;
+ _file = null;
+ _image = string.Empty;
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Loading Files {Error}", ex.Message);
+ _message = Localizer["Error.File.Load"];
+ _messagetype = MessageType.Error;
+ }
+ }
- private async Task FileChanged(ChangeEventArgs e)
- {
- _message = string.Empty;
- FileId = int.Parse((string)e.Value);
- if (FileId != -1)
- {
- await OnSelect.InvokeAsync(FileId);
- }
+ private async Task FileChanged(ChangeEventArgs e)
+ {
+ _message = string.Empty;
+ FileId = int.Parse((string)e.Value);
+ if (FileId != -1)
+ {
+ await OnSelect.InvokeAsync(FileId);
+ }
- await SetImage();
- StateHasChanged();
- }
+ await SetImage();
+ StateHasChanged();
+ }
- private async Task SetImage()
- {
- _image = string.Empty;
- _file = null;
- if (FileId != -1)
- {
- _file = await FileService.GetFileAsync(FileId);
- if (_file != null && ShowImage && _file.ImageHeight != 0 && _file.ImageWidth != 0)
- {
- var maxwidth = 200;
- var maxheight = 200;
+ private async Task SetImage()
+ {
+ _image = string.Empty;
+ _file = null;
+ if (FileId != -1)
+ {
+ _file = await FileService.GetFileAsync(FileId);
+ if (_file != null && ShowImage && _file.ImageHeight != 0 && _file.ImageWidth != 0)
+ {
+ var maxwidth = 200;
+ var maxheight = 200;
- var ratioX = (double)maxwidth / (double)_file.ImageWidth;
- var ratioY = (double)maxheight / (double)_file.ImageHeight;
- var ratio = ratioX < ratioY ? ratioX : ratioY;
+ var ratioX = (double)maxwidth / (double)_file.ImageWidth;
+ var ratioY = (double)maxheight / (double)_file.ImageHeight;
+ var ratio = ratioX < ratioY ? ratioX : ratioY;
- _image = "
";
- }
- }
- }
+ _image = "
";
+ }
+ }
+ }
- private async Task UploadFiles()
- {
- _message = string.Empty;
- var interop = new Interop(JSRuntime);
- var uploads = await interop.GetFiles(_fileinputid);
- if (uploads.Length > 0)
- {
- string restricted = "";
- foreach (var upload in uploads)
- {
- var extension = (upload.LastIndexOf(".") != -1) ? upload.Substring(upload.LastIndexOf(".") + 1) : "";
- if (!Constants.UploadableFiles.Split(',').Contains(extension.ToLower()))
- {
- restricted += (restricted == "" ? "" : ",") + extension;
- }
- }
- if (restricted == "")
- {
- try
- {
- // upload the files
- var posturl = Utilities.TenantUrl(PageState.Alias, "/api/file/upload");
- var folder = (Folder == Constants.PackagesFolder) ? Folder : FolderId.ToString();
- await interop.UploadFiles(posturl, folder, _guid, SiteState.AntiForgeryToken);
+ private async Task UploadFiles()
+ {
+ _message = string.Empty;
+ var interop = new Interop(JSRuntime);
+ var uploads = await interop.GetFiles(_fileinputid);
+ if (uploads.Length > 0)
+ {
+ string restricted = "";
+ foreach (var upload in uploads)
+ {
+ var extension = (upload.LastIndexOf(".") != -1) ? upload.Substring(upload.LastIndexOf(".") + 1) : "";
+ if (!Constants.UploadableFiles.Split(',').Contains(extension.ToLower()))
+ {
+ restricted += (restricted == "" ? "" : ",") + extension;
+ }
+ }
+ if (restricted == "")
+ {
+ try
+ {
+ // upload the files
+ var posturl = Utilities.TenantUrl(PageState.Alias, "/api/file/upload");
+ var folder = (Folder == Constants.PackagesFolder) ? Folder : FolderId.ToString();
+ await interop.UploadFiles(posturl, folder, _guid, SiteState.AntiForgeryToken);
- // uploading is asynchronous so we need to wait for the uploads to complete
- // note that this will only wait a maximum of 15 seconds which may not be long enough for very large file uploads
- bool success = false;
- int attempts = 0;
- while (attempts < 5 && !success)
- {
- attempts += 1;
- Thread.Sleep(1000 * attempts); // progressive retry
+ // uploading is asynchronous so we need to wait for the uploads to complete
+ // note that this will only wait a maximum of 15 seconds which may not be long enough for very large file uploads
+ bool success = false;
+ int attempts = 0;
+ while (attempts < 5 && !success)
+ {
+ attempts += 1;
+ Thread.Sleep(1000 * attempts); // progressive retry
- success = true;
- List files = await FileService.GetFilesAsync(folder);
- if (files.Count > 0)
- {
- foreach (string upload in uploads)
- {
- if (!files.Exists(item => item.Name == upload))
- {
- success = false;
- }
- }
- }
- }
+ success = true;
+ List files = await FileService.GetFilesAsync(folder);
+ if (files.Count > 0)
+ {
+ foreach (string upload in uploads)
+ {
+ if (!files.Exists(item => item.Name == upload))
+ {
+ success = false;
+ }
+ }
+ }
+ }
- // reset progress indicators
- await interop.SetElementAttribute(_guid + "ProgressInfo", "style", "display: none;");
- await interop.SetElementAttribute(_guid + "ProgressBar", "style", "display: none;");
+ // reset progress indicators
+ await interop.SetElementAttribute(_guid + "ProgressInfo", "style", "display: none;");
+ await interop.SetElementAttribute(_guid + "ProgressBar", "style", "display: none;");
- if (success)
- {
- await logger.LogInformation("File Upload Succeeded {Files}", uploads);
- if (ShowSuccess)
- {
- _message = Localizer["Success.File.Upload"];
- _messagetype = MessageType.Success;
- }
- }
- else
- {
- await logger.LogInformation("File Upload Failed Or Is Still In Progress {Files}", uploads);
- _message = Localizer["Error.File.Upload"];
- _messagetype = MessageType.Error;
- }
+ if (success)
+ {
+ await logger.LogInformation("File Upload Succeeded {Files}", uploads);
+ if (ShowSuccess)
+ {
+ _message = Localizer["Success.File.Upload"];
+ _messagetype = MessageType.Success;
+ }
+ }
+ else
+ {
+ await logger.LogInformation("File Upload Failed Or Is Still In Progress {Files}", uploads);
+ _message = Localizer["Error.File.Upload"];
+ _messagetype = MessageType.Error;
+ }
- // set FileId to first file in upload collection
- await GetFiles();
- var file = _files.Where(item => item.Name == uploads[0]).FirstOrDefault();
- if (file != null)
- {
- FileId = file.FileId;
- await SetImage();
- await OnUpload.InvokeAsync(FileId);
- }
- StateHasChanged();
+ if (Folder == Constants.PackagesFolder)
+ {
+ await OnUpload.InvokeAsync(-1);
+ }
+ else
+ {
+ // set FileId to first file in upload collection
+ await GetFiles();
+ var file = _files.Where(item => item.Name == uploads[0]).FirstOrDefault();
+ if (file != null)
+ {
+ FileId = file.FileId;
+ await SetImage();
+ await OnUpload.InvokeAsync(FileId);
+ }
+ StateHasChanged();
+ }
}
catch (Exception ex)
{
diff --git a/Oqtane.Client/Resources/Modules/Admin/Languages/Add.resx b/Oqtane.Client/Resources/Modules/Admin/Languages/Add.resx
index a200a84d..8132ccc7 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Languages/Add.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Languages/Add.resx
@@ -132,11 +132,11 @@
Default?
-
- You Must <a href={0}>Restart</a> To Complete The Installation.
+
+ Translation Package Saved Successfully. You Must <a href={0}>Restart</a> To Complete The Installation.
- Upload one or more translation packages. Once they are uploaded click Install.
+ Upload one or more translation packages.
Translation
diff --git a/Oqtane.Client/Resources/Modules/Admin/Languages/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Languages/Index.resx
index 9b031c07..c755205f 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Languages/Index.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Languages/Index.resx
@@ -133,7 +133,7 @@
Delete Language
- Translation Downloaded Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
+ Translation Package Saved Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
Error Downloading Translation
diff --git a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx
index 7527202c..9db1c83a 100644
--- a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Add.resx
@@ -124,13 +124,13 @@
Error Loading Packages
- Module Downloaded Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
+ Module Package Saved Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
Error Downloading Module
- Upload one or more module packages. Once they are uploaded click Install to complete the installation.
+ Upload one or more module packages.
No Modules Match The Criteria Provided Or Package Service Is Disabled
diff --git a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx
index 83a55354..2afd0baa 100644
--- a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx
@@ -211,7 +211,7 @@
No Translations Exist For This Module Or Package Service Is Disabled
- Translation Downloaded Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
+ Translation Package Saved Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
Translations
diff --git a/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx b/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx
index 2a2c0d5a..b7a18332 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Themes/Add.resx
@@ -124,13 +124,13 @@
Theme:
- Theme Downloaded Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
+ Theme Package Saved Successfully. You Must <a href={0}>Restart</a> Your Application To Complete The Installation.
Error Downloading Theme
- Upload one or more theme packages. Once they are uploaded click Install to complete the installation.
+ Upload one or more theme packages.
No Themes Match The Criteria Provided Or Package Service Is Disabled
diff --git a/Oqtane.Client/Resources/SharedResources.resx b/Oqtane.Client/Resources/SharedResources.resx
index 4ec3d693..e03b4454 100644
--- a/Oqtane.Client/Resources/SharedResources.resx
+++ b/Oqtane.Client/Resources/SharedResources.resx
@@ -340,6 +340,6 @@
Visitor Management
- Please note that the third party extensions displayed above have been registered in the <a href="https://www.oqtane.net" target="_new">Oqtane Marketplace</a> which enables them to be seamlessly downloaded and installed into the framework.
+ Please note that third party extensions are registered in the <a href="https://www.oqtane.net" target="_new">Oqtane Marketplace</a> which enables them to be seamlessly downloaded and installed into the framework.
\ No newline at end of file