diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor
index f8057caa..fa603a56 100644
--- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor
+++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor
@@ -101,13 +101,20 @@
@SharedLocalizer["Search.By"]: @context.Owner
@(context.Description.Length > 400 ? (context.Description.Substring(0, 400) + "...") : context.Description)
- @if (!string.IsNullOrEmpty(context.PackageUrl))
+ @if (_moduledefinitions.Exists(item => item.PackageName == context.PackageId))
{
-
+
}
- @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl))
+ else
{
- @SharedLocalizer["Buy"]
+ @if (!string.IsNullOrEmpty(context.PackageUrl))
+ {
+
+ }
+ @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl))
+ {
+ @SharedLocalizer["Buy"]
+ }
}
@@ -171,6 +178,7 @@
@code {
private bool _initialized = false;
+ private List _moduledefinitions;
private int _page = 1;
private List _packages;
private string _price = "free";
@@ -187,7 +195,8 @@
{
try
{
- await LoadModuleDefinitions();
+ _moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
+ await LoadPackages();
_initialized = true;
}
catch (Exception ex)
@@ -197,24 +206,10 @@
}
}
- private async Task LoadModuleDefinitions()
+ private async Task LoadPackages()
{
ShowProgressIndicator();
-
- var moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
_packages = await PackageService.GetPackagesAsync("module", _search, _price, "", _sort);
-
- if (_packages != null)
- {
- foreach (Package package in _packages.ToArray())
- {
- if (moduledefinitions.Exists(item => item.PackageName == package.PackageId))
- {
- _packages.Remove(package);
- }
- }
- }
-
HideProgressIndicator();
}
@@ -222,25 +217,25 @@
{
_price = price;
_sort = "popularity";
- await LoadModuleDefinitions();
+ await LoadPackages();
StateHasChanged();
}
private async Task Search()
{
- await LoadModuleDefinitions();
+ await LoadPackages();
}
private async Task Reset()
{
_page = 1;
_search = "";
- await LoadModuleDefinitions();
+ await LoadPackages();
}
private async Task Refresh()
{
- await LoadModuleDefinitions();
+ await LoadPackages();
}
private void OnPageChange(int page)
@@ -251,7 +246,7 @@
private async void SortChanged(ChangeEventArgs e)
{
_sort = (string)e.Value;
- await LoadModuleDefinitions();
+ await LoadPackages();
}
private void HideModal()
diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor
index 00d8c67f..cece5ed4 100644
--- a/Oqtane.Client/Modules/Admin/Themes/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor
@@ -101,13 +101,20 @@
@SharedLocalizer["Search.By"]: @context.Owner
@(context.Description.Length > 400 ? (context.Description.Substring(0, 400) + "...") : context.Description)
- @if (!string.IsNullOrEmpty(context.PackageUrl))
+ @if (_themes.Exists(item => item.PackageName == context.PackageId))
{
-
+
}
- @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl))
+ else
{
- @SharedLocalizer["Buy"]
+ @if (!string.IsNullOrEmpty(context.PackageUrl))
+ {
+
+ }
+ @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl))
+ {
+ @SharedLocalizer["Buy"]
+ }
}
@@ -171,6 +178,7 @@
@code {
private bool _initialized = false;
+ private List _themes;
private int _page = 1;
private List _packages;
private string _price = "free";
@@ -187,7 +195,8 @@
{
try
{
- await LoadThemes();
+ _themes = await ThemeService.GetThemesAsync();
+ await LoadPackages();
_initialized = true;
}
catch (Exception ex)
@@ -197,24 +206,10 @@
}
}
- private async Task LoadThemes()
+ private async Task LoadPackages()
{
- ShowProgressIndicator();
-
- var themes = await ThemeService.GetThemesAsync();
+ ShowProgressIndicator();
_packages = await PackageService.GetPackagesAsync("theme", _search, _price, "", _sort);
-
- if (_packages != null)
- {
- foreach (Package package in _packages.ToArray())
- {
- if (themes.Exists(item => item.PackageName == package.PackageId))
- {
- _packages.Remove(package);
- }
- }
- }
-
HideProgressIndicator();
}
@@ -222,25 +217,25 @@
{
_price = price;
_sort = "popularity";
- await LoadThemes();
+ await LoadPackages();
StateHasChanged();
}
private async Task Search()
{
- await LoadThemes();
+ await LoadPackages();
}
private async Task Reset()
{
_page = 1;
_search = "";
- await LoadThemes();
+ await LoadPackages();
}
private async Task Refresh()
{
- await LoadThemes();
+ await LoadPackages();
}
private void OnPageChange(int page)
@@ -251,7 +246,7 @@
private async void SortChanged(ChangeEventArgs e)
{
_sort = (string)e.Value;
- await LoadThemes();
+ await LoadPackages();
}
private void HideModal()
diff --git a/Oqtane.Client/Resources/SharedResources.resx b/Oqtane.Client/Resources/SharedResources.resx
index a0078ea5..b4b3ccfa 100644
--- a/Oqtane.Client/Resources/SharedResources.resx
+++ b/Oqtane.Client/Resources/SharedResources.resx
@@ -477,4 +477,7 @@
Path
+
+ Installed
+
\ No newline at end of file