diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html
index 7c91e9900..228ae9cdb 100644
--- a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html
+++ b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html
@@ -10,8 +10,8 @@
-
+
diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts
index 513558fa0..4443cd4ed 100644
--- a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts
+++ b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts
@@ -1,4 +1,4 @@
-import { Component, AfterViewInit, ViewChild, EventEmitter, Output, ChangeDetectorRef } from "@angular/core";
+import { Component, AfterViewInit, ViewChild, EventEmitter, Output, ChangeDetectorRef, OnInit } from "@angular/core";
import { IMovieRequests, IRequestsViewModel } from "../../../interfaces";
import { MatPaginator, MatSort } from "@angular/material";
import { merge, Observable, of as observableOf } from 'rxjs';
@@ -6,13 +6,14 @@ import { catchError, map, startWith, switchMap } from 'rxjs/operators';
import { RequestServiceV2 } from "../../../services/requestV2.service";
import { AuthService } from "../../../auth/auth.service";
+import { StorageService } from "../../../shared/storage/storage-service";
@Component({
templateUrl: "./movies-grid.component.html",
selector: "movies-grid",
styleUrls: ["../requests-list.component.scss"]
})
-export class MoviesGridComponent implements AfterViewInit {
+export class MoviesGridComponent implements OnInit, AfterViewInit {
public dataSource: IMovieRequests[] = [];
public resultsLength: number;
public isLoadingResults = true;
@@ -20,6 +21,11 @@ export class MoviesGridComponent implements AfterViewInit {
public gridCount: string = "15";
public showUnavailableRequests: boolean;
public isAdmin: boolean;
+ public defaultSort: string = "requestedDate";
+ public defaultOrder: string = "desc";
+
+ private storageKey = "Movie_DefaultRequestListSort";
+ private storageKeyOrder = "Movie_DefaultRequestListSortOrder";
@Output() public onOpenOptions = new EventEmitter<{ request: any, filter: any, onChange: any }>();
@@ -27,9 +33,20 @@ export class MoviesGridComponent implements AfterViewInit {
@ViewChild(MatSort, { static: false }) sort: MatSort;
constructor(private requestService: RequestServiceV2, private ref: ChangeDetectorRef,
- private auth: AuthService) {
+ private auth: AuthService, private storageService: StorageService) {
}
+
+ public ngOnInit() {
+ const defaultSort = this.storageService.get(this.storageKey);
+ const defaultOrder = this.storageService.get(this.storageKeyOrder);
+ if (defaultSort) {
+ this.defaultSort = defaultSort;
+ }
+ if (defaultOrder) {
+ this.defaultOrder = defaultOrder;
+ }
+ }
public async ngAfterViewInit() {
// const results = await this.requestService.getMovieRequests(this.gridCount, 0, OrderType.RequestedDateDesc,
@@ -45,10 +62,12 @@ export class MoviesGridComponent implements AfterViewInit {
merge(this.sort.sortChange, this.paginator.page)
.pipe(
startWith({}),
- switchMap(() => {
+ switchMap((value: any) => {
this.isLoadingResults = true;
- // eturn this.exampleDatabase!.getRepoIssues(
- // this.sort.active, this.sort.direction, this.paginator.pageIndex);
+ if (value.active || value.direction) {
+ this.storageService.save(this.storageKey, value.active);
+ this.storageService.save(this.storageKeyOrder, value.direction);
+ }
return this.loadData();
}),
map((data: IRequestsViewModel) => {
diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.html
index 381865c0c..a5b9364fe 100644
--- a/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.html
+++ b/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.html
@@ -11,7 +11,7 @@
- Some more tab content
+ Coming soon
...
diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html
index 343b9f255..2b9cec0d6 100644
--- a/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html
+++ b/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html
@@ -11,8 +11,8 @@
-
+
diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.ts b/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.ts
index 78dd23c1a..3e13a5ce2 100644
--- a/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.ts
+++ b/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.ts
@@ -1,4 +1,4 @@
-import { Component, AfterViewInit, ViewChild, Output, EventEmitter, ChangeDetectorRef } from "@angular/core";
+import { Component, AfterViewInit, ViewChild, Output, EventEmitter, ChangeDetectorRef, OnInit } from "@angular/core";
import { IRequestsViewModel, IChildRequests } from "../../../interfaces";
import { MatPaginator, MatSort } from "@angular/material";
import { merge, of as observableOf, Observable } from 'rxjs';
@@ -6,13 +6,14 @@ import { catchError, map, startWith, switchMap } from 'rxjs/operators';
import { RequestServiceV2 } from "../../../services/requestV2.service";
import { AuthService } from "../../../auth/auth.service";
+import { StorageService } from "../../../shared/storage/storage-service";
@Component({
templateUrl: "./tv-grid.component.html",
selector: "tv-grid",
styleUrls: ["../requests-list.component.scss"]
})
-export class TvGridComponent implements AfterViewInit {
+export class TvGridComponent implements OnInit, AfterViewInit {
public dataSource: IChildRequests[] = [];
public resultsLength: number;
public isLoadingResults = true;
@@ -20,6 +21,11 @@ export class TvGridComponent implements AfterViewInit {
public gridCount: string = "15";
public showUnavailableRequests: boolean;
public isAdmin: boolean;
+ public defaultSort: string = "requestedDate";
+ public defaultOrder: string = "desc";
+
+ private storageKey = "Tv_DefaultRequestListSort";
+ private storageKeyOrder = "Tv_DefaultRequestListSortOrder";
@Output() public onOpenOptions = new EventEmitter<{request: any, filter: any, onChange: any}>();
@@ -27,10 +33,21 @@ export class TvGridComponent implements AfterViewInit {
@ViewChild(MatSort, {static: false}) sort: MatSort;
constructor(private requestService: RequestServiceV2, private auth: AuthService,
- private ref: ChangeDetectorRef) {
+ private ref: ChangeDetectorRef, private storageService: StorageService) {
}
+ public ngOnInit() {
+ const defaultSort = this.storageService.get(this.storageKey);
+ const defaultOrder = this.storageService.get(this.storageKeyOrder);
+ if (defaultSort) {
+ this.defaultSort = defaultSort;
+ }
+ if (defaultOrder) {
+ this.defaultOrder = defaultOrder;
+ }
+ }
+
public async ngAfterViewInit() {
this.isAdmin = this.auth.hasRole("admin") || this.auth.hasRole("poweruser");
@@ -40,8 +57,13 @@ export class TvGridComponent implements AfterViewInit {
merge(this.sort.sortChange, this.paginator.page)
.pipe(
startWith({}),
- switchMap(() => {
+ switchMap((value: any) => {
this.isLoadingResults = true;
+
+ if (value.active || value.direction) {
+ this.storageService.save(this.storageKey, value.active);
+ this.storageService.save(this.storageKeyOrder, value.direction);
+ }
return this.loadData();
}),
map((data: IRequestsViewModel) => {