Fixes up all of the user sorting to work properly

This commit is contained in:
Shannon
2017-06-20 11:55:21 +10:00
parent 146a865882
commit 78bfc087fb
4 changed files with 42 additions and 10 deletions

View File

@@ -12,6 +12,13 @@
vm.selection = [];
vm.newUser = {};
vm.usersOptions = {};
vm.userSortData = [
{ label: "Name (A-Z)", key: "Name", direction: "Ascending" },
{ label: "Name (Z-A)", key: "Name", direction: "Descending" },
{ label: "Newest", key: "CreateDate", direction: "Descending" },
{ label: "Oldest", key: "CreateDate", direction: "Ascending" },
{ label: "Last login", key: "LastLoginDate", direction: "Descending" }
];
vm.newUser.userGroups = [];
vm.usersViewState = 'overview';
@@ -74,10 +81,12 @@
vm.changePageNumber = changePageNumber;
vm.createUser = createUser;
vm.inviteUser = inviteUser;
vm.getSortLabel = getSortLabel;
function init() {
vm.usersOptions.orderBy = "Name";
vm.usersOptions.orderDirection = "Ascending";
// Get users
getUsers();
@@ -89,6 +98,14 @@
}
function getSortLabel(sortKey, sortDirection) {
var found = _.find(vm.userSortData,
function (i) {
return i.key === sortKey && i.direction === sortDirection;
});
return found ? found.label : sortKey;
}
function setUsersViewState(state) {
vm.usersViewState = state;
}
@@ -288,8 +305,9 @@
return name;
}
function setOrderByFilter(value) {
function setOrderByFilter(value, direction) {
vm.usersOptions.orderBy = value;
vm.usersOptions.orderDirection = direction;
getUsers();
}

View File

@@ -138,15 +138,13 @@
<div class="dropdown pull-right">
<a class="btn btn-link dropdown-toggle flex" href="" data-toggle="dropdown">
<span>Order by:</span>
<span class="bold" style="margin-left: 2px;">{{ vm.usersOptions.orderBy }} </span>
<span class="bold" style="margin-left: 2px;">{{ vm.getSortLabel(vm.usersOptions.orderBy, vm.usersOptions.orderDirection) }} </span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu">
<li><a tabindex="-1" href="#" ng-click="vm.setOrderByFilter('NameAsc')" prevent-default>Name (A-Z)</a></li>
<li><a tabindex="-1" href="#" ng-click="vm.setOrderByFilter('NameDesc')" prevent-default>Name (Z-A)</a></li>
<li><a tabindex="-1" href="#" ng-click="vm.setOrderByFilter('Newest')" prevent-default>Newest</a></li>
<li><a tabindex="-1" href="#" ng-click="vm.setOrderByFilter('Oldest')" prevent-default>Oldest</a></li>
<li><a tabindex="-1" href="#" ng-click="vm.setOrderByFilter('lastLoginDate')" prevent-default>Last login</a></li>
<li ng-repeat="sortData in vm.userSortData">
<a tabindex="-1" href="#" ng-click="vm.setOrderByFilter(sortData.key, sortData.direction)" prevent-default>{{sortData.label}}</a>
</li>
</ul>
</div>