Fixed the sort issue on the user Management page.

Also added sorting to the Movie Requests page
This commit is contained in:
tidusjar 2018-03-11 20:56:04 +00:00
commit 3e2cdb9823
9 changed files with 83 additions and 26 deletions

View file

@ -13,15 +13,15 @@
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>
<th (click)="setOrder('issue.status')"> <th (click)="setOrder('status')">
<a [translate]="'Issues.Status'"></a> <a [translate]="'Issues.Status'"></a>
<span *ngIf="order === 'issue.status'"> <span *ngIf="order === 'status'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>
<th (click)="setOrder('issue.reportedUser')"> <th (click)="setOrder('reportedUser')">
<a [translate]="'Issues.ReportedBy'"></a> <a [translate]="'Issues.ReportedBy'"></a>
<span *ngIf="order === 'issue.reportedUser'"> <span *ngIf="order === 'reportedUser'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>

View file

@ -4,9 +4,49 @@
<input type="text" id="search" class="form-control form-control-custom searchwidth" placeholder="Search" (keyup)="search($event)"> <input type="text" id="search" class="form-control form-control-custom searchwidth" placeholder="Search" (keyup)="search($event)">
<span class="input-group-btn"> <span class="input-group-btn">
<button id="filterBtn" class="btn btn-sm btn-info-outline" (click)="filterDisplay = !filterDisplay" > <button id="filterBtn" class="btn btn-sm btn-info-outline" (click)="filterDisplay = !filterDisplay" >
<i class="fa fa-filter"></i> {{ 'Requests.Filter' | translate }}</button> <i class="fa fa-filter"></i> {{ 'Requests.Filter' | translate }}
<!-- <button id="filterBtn" class="btn btn-sm btn-warning-outline" (click)="sortDisplay = !sortDisplay" > </button>
<i class="fa fa-sort"></i> {{ 'Requests.Sort' | translate }}</button> -->
<button class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-sort"></i> {{ 'Requests.Sort' | translate }}
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
<li>
<a (click)="setOrder('requestedDate')">{{ 'Requests.SortRequestDate' | translate }}
<span *ngIf="order === 'requestedDate'">
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
</span>
</a>
<a (click)="setOrder('title')">{{ 'Requests.SortTitle' | translate}}
<span *ngIf="order === 'title'">
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
</span>
</a>
<a (click)="setOrder('releaseDate')">{{ 'Requests.TheatricalReleaseSort' | translate }}
<span *ngIf="order === 'releaseDate'">
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
</span>
</a>
<a (click)="setOrder('requestedUser.userAlias')">{{ 'Requests.SortRequestedBy' | translate }}
<span *ngIf="order === 'requestedUser.userAlias'">
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
</span>
</a>
<a (click)="setOrder('status')">{{ 'Requests.SortStatus' | translate }}
<span *ngIf="order === 'status'">
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
</span>
</a>
</li>
</ul>
</span> </span>
</div> </div>
@ -19,7 +59,7 @@
<div infinite-scroll [infiniteScrollDistance]="1" [infiniteScrollThrottle]="100" (scrolled)="loadMore()"> <div infinite-scroll [infiniteScrollDistance]="1" [infiniteScrollThrottle]="100" (scrolled)="loadMore()">
<div *ngFor="let request of movieRequests"> <div *ngFor="let request of movieRequests | orderBy: order : reverse : 'case-insensitive'">
<div class="row"> <div class="row">

View file

@ -36,7 +36,8 @@ export class MovieRequestsComponent implements OnInit {
public filter: IFilter; public filter: IFilter;
public filterType = FilterType; public filterType = FilterType;
public sortDisplay: boolean; public order: string = "requestedDate";
public reverse = false;
private currentlyLoaded: number; private currentlyLoaded: number;
private amountToLoad: number; private amountToLoad: number;
@ -174,6 +175,14 @@ export class MovieRequestsComponent implements OnInit {
}); });
} }
public setOrder(value: string) {
if (this.order === value) {
this.reverse = !this.reverse;
}
this.order = value;
}
private loadRequests(amountToLoad: number, currentlyLoaded: number) { private loadRequests(amountToLoad: number, currentlyLoaded: number) {
this.requestService.getMovieRequests(amountToLoad, currentlyLoaded + 1) this.requestService.getMovieRequests(amountToLoad, currentlyLoaded + 1)
.subscribe(x => { .subscribe(x => {

View file

@ -2,6 +2,7 @@
import { RouterModule, Routes } from "@angular/router"; import { RouterModule, Routes } from "@angular/router";
import { NgbModule } from "@ng-bootstrap/ng-bootstrap"; import { NgbModule } from "@ng-bootstrap/ng-bootstrap";
import { OrderModule } from "ngx-order-pipe";
import { InfiniteScrollModule } from "ngx-infinite-scroll"; import { InfiniteScrollModule } from "ngx-infinite-scroll";
@ -34,6 +35,7 @@ const routes: Routes = [
TreeTableModule, TreeTableModule,
SharedModule, SharedModule,
SidebarModule, SidebarModule,
OrderModule,
], ],
declarations: [ declarations: [
RequestComponent, RequestComponent,

View file

@ -16,44 +16,45 @@
</td> </td>
</a> </a>
</th> </th>
<th (click)="setOrder('u.userName')"> <th (click)="setOrder('userName')">
<a> <a>
Username Username
</a> </a>
<span *ngIf="order === 'u.userName'"> <span *ngIf="order === 'userName'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>
<th (click)="setOrder('u.alias')"> <th (click)="setOrder('alias')">
<a> <a>
Alias Alias
</a> </a>
<span *ngIf="order === 'u.alias'"> <span *ngIf="order === 'alias'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>
<th (click)="setOrder('u.emailAddress')"> <th (click)="setOrder('emailAddress')">
<a> <a>
Email Email
</a> </a>
<span *ngIf="order === 'u.emailAddress'"> <span *ngIf="order === 'emailAddress'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span>
<span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>
<th> <th>
Roles Roles
</th> </th>
<th (click)="setOrder('u.lastLoggedIn')"> <th (click)="setOrder('lastLoggedIn')">
<a> Last Logged In</a> <a> Last Logged In</a>
<span *ngIf="order === 'u.lastLoggedIn'"> <span *ngIf="order === 'lastLoggedIn'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>
<th (click)="setOrder('u.userType')"> <th (click)="setOrder('userType')">
<a> <a>
User Type User Type
</a> </a>
<span *ngIf="order === 'u.userType'"> <span *ngIf="order === 'userType'">
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span> <span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
</span> </span>
</th> </th>

View file

@ -13,7 +13,7 @@ export class UserManagementComponent implements OnInit {
public emailSettings: IEmailNotificationSettings; public emailSettings: IEmailNotificationSettings;
public customizationSettings: ICustomizationSettings; public customizationSettings: ICustomizationSettings;
public order: string = "u.userName"; public order: string = "userName";
public reverse = false; public reverse = false;
public showBulkEdit = false; public showBulkEdit = false;

View file

@ -4972,9 +4972,9 @@
"integrity": "sha512-7lASze8zHSDdAAFO3VNop1TY60rs8A7sm8DzQfU33VNcJI27F6mtxwjILIH339s7m6HVC08AS7I64HBjBMw/QQ==" "integrity": "sha512-7lASze8zHSDdAAFO3VNop1TY60rs8A7sm8DzQfU33VNcJI27F6mtxwjILIH339s7m6HVC08AS7I64HBjBMw/QQ=="
}, },
"ngx-order-pipe": { "ngx-order-pipe": {
"version": "1.1.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/ngx-order-pipe/-/ngx-order-pipe-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ngx-order-pipe/-/ngx-order-pipe-2.0.1.tgz",
"integrity": "sha512-hIfdUONbKG14/S5zEyGjr1ukAd2XdUUnUsvA80ct3pyoBCh5aQ7XhBz7N9jCsVzMGTGUPK6R59KYkEPB3n5hbQ==" "integrity": "sha512-t0IUqoNs3705yZQeohmhUQvpiRTj5RX7AhFXkx3PMfq7G6h7GNNrR3x27XbXEsjKgBo5hPgfEfW5OljRYa1VVw=="
}, },
"ngx-window-token": { "ngx-window-token": {
"version": "0.0.4", "version": "0.0.4",

View file

@ -55,7 +55,7 @@
"ng2-cookies": "^1.0.12", "ng2-cookies": "^1.0.12",
"ngx-clipboard": "8.1.1", "ngx-clipboard": "8.1.1",
"ngx-infinite-scroll": "^0.6.1", "ngx-infinite-scroll": "^0.6.1",
"ngx-order-pipe": "^1.1.1", "ngx-order-pipe": "^2.0.1",
"node-sass": "^4.7.2", "node-sass": "^4.7.2",
"npm": "^5.6.0", "npm": "^5.6.0",
"pace-progress": "^1.0.2", "pace-progress": "^1.0.2",

View file

@ -117,6 +117,7 @@
"RequestStatus": "Request status:", "RequestStatus": "Request status:",
"Denied": " Denied:", "Denied": " Denied:",
"TheatricalRelease": "Theatrical Release: {{date}}", "TheatricalRelease": "Theatrical Release: {{date}}",
"TheatricalReleaseSort": "Theatrical Release",
"DigitalRelease": "Digital Release: {{date}}", "DigitalRelease": "Digital Release: {{date}}",
"RequestDate": "Request Date:", "RequestDate": "Request Date:",
"QualityOverride": "Quality Override:", "QualityOverride": "Quality Override:",
@ -134,7 +135,11 @@
"ReportIssue":"Report Issue", "ReportIssue":"Report Issue",
"Filter":"Filter", "Filter":"Filter",
"Sort":"Sort", "Sort":"Sort",
"SeasonNumberHeading":"Season: {seasonNumber}" "SeasonNumberHeading":"Season: {seasonNumber}",
"SortTitle":"Title",
"SortRequestDate": "Request Date",
"SortRequestedBy":"Requested By",
"SortStatus":"Status"
}, },
"Issues":{ "Issues":{
"Title":"Issues", "Title":"Issues",