diff --git a/Oqtane.Client/Modules/Admin/Users/Index.razor b/Oqtane.Client/Modules/Admin/Users/Index.razor
index 2b293e2d..dac92dbe 100644
--- a/Oqtane.Client/Modules/Admin/Users/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Index.razor
@@ -35,9 +35,9 @@ else
|
|
|
- @SharedLocalizer["Username"] |
- @SharedLocalizer["Name"] |
- @Localizer["LastLoginOn"] |
+ SortTable("Username"))">@Localizer["Username"] |
+ SortTable("DisplayName"))">@Localizer["Name"] |
+ SortTable("LastLoginOn"))">@Localizer["LastLoginOn"] |
@@ -413,6 +413,9 @@ else
private string _lifetime;
private string _token;
+ private bool isSortedAscending;
+ private string activeSortColumn;
+
public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.View;
protected override async Task OnInitializedAsync()
@@ -654,4 +657,43 @@ else
_togglesecret = SharedLocalizer["ShowPassword"];
}
}
+
+ private void SortTable(string columnName)
+ {
+ if (columnName != activeSortColumn)
+ {
+ users = users.OrderBy(x => x.User.GetType().GetProperty(columnName)?.GetValue(x.User)).ToList();
+ isSortedAscending = true;
+ activeSortColumn = columnName;
+ }
+ else
+ {
+ if (isSortedAscending)
+ {
+ users = users.OrderByDescending(x => x.User.GetType().GetProperty(columnName)?.GetValue(x.User)).ToList();
+ }
+ else
+ {
+ users = users.OrderBy(x => x.User.GetType().GetProperty(columnName)?.GetValue(x.User)).ToList();
+ }
+
+ isSortedAscending = !isSortedAscending;
+ }
+ }
+
+ private string SetSortIcon(string columnName)
+ {
+ if (activeSortColumn != columnName)
+ {
+ return "app-fas pe-3 ";
+ }
+ if (isSortedAscending)
+ {
+ return "app-fas oi oi-sort-ascending";
+ }
+ else
+ {
+ return "app-fas oi oi-sort-descending";
+ }
+ }
}
diff --git a/Oqtane.Server/wwwroot/css/app.css b/Oqtane.Server/wwwroot/css/app.css
index 8a2a4e3a..35deeb07 100644
--- a/Oqtane.Server/wwwroot/css/app.css
+++ b/Oqtane.Server/wwwroot/css/app.css
@@ -219,4 +219,12 @@ app {
/* Pager */
.app-pager-pointer {
cursor: pointer;
+}
+
+.app-sort-th {
+ cursor: pointer;
+}
+
+.app-fas {
+ margin-left: 5px;
}
\ No newline at end of file
|