From 2a2c19dfef7a9aa313c6ca0798f271c9a63449a9 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 20 Apr 2018 14:27:30 +0200 Subject: [PATCH] Replace current state when changing page --- .../account/account-videos/account-videos.component.ts | 2 ++ client/src/app/shared/video/abstract-video-list.ts | 8 ++++++-- client/src/app/videos/video-list/video-local.component.ts | 2 ++ .../videos/video-list/video-recently-added.component.ts | 2 ++ .../src/app/videos/video-list/video-search.component.ts | 2 ++ .../src/app/videos/video-list/video-trending.component.ts | 2 ++ 6 files changed, 16 insertions(+), 2 deletions(-) diff --git a/client/src/app/account/account-videos/account-videos.component.ts b/client/src/app/account/account-videos/account-videos.component.ts index 07f5b7f0b..91bc1b695 100644 --- a/client/src/app/account/account-videos/account-videos.component.ts +++ b/client/src/app/account/account-videos/account-videos.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit, OnDestroy } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' +import { Location } from '@angular/common' import { immutableAssign } from '@app/shared/misc/utils' import { ComponentPagination } from '@app/shared/rest/component-pagination.model' import { NotificationsService } from 'angular2-notifications' @@ -35,6 +36,7 @@ export class AccountVideosComponent extends AbstractVideoList implements OnInit, protected authService: AuthService, protected notificationsService: NotificationsService, protected confirmService: ConfirmService, + protected location: Location, private videoService: VideoService) { super() } diff --git a/client/src/app/shared/video/abstract-video-list.ts b/client/src/app/shared/video/abstract-video-list.ts index 7f2cf2d7e..728c864e9 100644 --- a/client/src/app/shared/video/abstract-video-list.ts +++ b/client/src/app/shared/video/abstract-video-list.ts @@ -1,5 +1,6 @@ import { ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' +import { Location } from '@angular/common' import { isInMobileView } from '@app/shared/misc/utils' import { InfiniteScrollerDirective } from '@app/shared/video/infinite-scroller.directive' import { NotificationsService } from 'angular2-notifications' @@ -40,6 +41,7 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy { protected abstract authService: AuthService protected abstract router: Router protected abstract route: ActivatedRoute + protected abstract location: Location protected abstract currentRoute: string abstract titlePage: string @@ -164,8 +166,10 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy { } protected setNewRouteParams () { - const routeParams = this.buildRouteParams() - this.router.navigate([ this.currentRoute ], { queryParams: routeParams }) + const paramsObject = this.buildRouteParams() + + const queryParams = Object.keys(paramsObject).map(p => p + '=' + paramsObject[p]).join('&') + this.location.replaceState(this.currentRoute, queryParams) } protected buildVideoPages () { diff --git a/client/src/app/videos/video-list/video-local.component.ts b/client/src/app/videos/video-list/video-local.component.ts index de6552875..fd67be67b 100644 --- a/client/src/app/videos/video-list/video-local.component.ts +++ b/client/src/app/videos/video-list/video-local.component.ts @@ -1,6 +1,7 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' import { immutableAssign } from '@app/shared/misc/utils' +import { Location } from '@angular/common' import { NotificationsService } from 'angular2-notifications' import { AuthService } from '../../core/auth' import { AbstractVideoList } from '../../shared/video/abstract-video-list' @@ -23,6 +24,7 @@ export class VideoLocalComponent extends AbstractVideoList implements OnInit, On protected route: ActivatedRoute, protected notificationsService: NotificationsService, protected authService: AuthService, + protected location: Location, private videoService: VideoService) { super() } diff --git a/client/src/app/videos/video-list/video-recently-added.component.ts b/client/src/app/videos/video-list/video-recently-added.component.ts index cca35d0f5..535b6e618 100644 --- a/client/src/app/videos/video-list/video-recently-added.component.ts +++ b/client/src/app/videos/video-list/video-recently-added.component.ts @@ -1,5 +1,6 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' +import { Location } from '@angular/common' import { immutableAssign } from '@app/shared/misc/utils' import { NotificationsService } from 'angular2-notifications' import { AuthService } from '../../core/auth' @@ -19,6 +20,7 @@ export class VideoRecentlyAddedComponent extends AbstractVideoList implements On constructor (protected router: Router, protected route: ActivatedRoute, + protected location: Location, protected notificationsService: NotificationsService, protected authService: AuthService, private videoService: VideoService) { diff --git a/client/src/app/videos/video-list/video-search.component.ts b/client/src/app/videos/video-list/video-search.component.ts index 46a9dd48e..774d81ed6 100644 --- a/client/src/app/videos/video-list/video-search.component.ts +++ b/client/src/app/videos/video-list/video-search.component.ts @@ -1,5 +1,6 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' +import { Location } from '@angular/common' import { RedirectService } from '@app/core' import { immutableAssign } from '@app/shared/misc/utils' import { NotificationsService } from 'angular2-notifications' @@ -27,6 +28,7 @@ export class VideoSearchComponent extends AbstractVideoList implements OnInit, O protected route: ActivatedRoute, protected notificationsService: NotificationsService, protected authService: AuthService, + protected location: Location, private videoService: VideoService, private redirectService: RedirectService ) { diff --git a/client/src/app/videos/video-list/video-trending.component.ts b/client/src/app/videos/video-list/video-trending.component.ts index 0c9e28216..ea65070f9 100644 --- a/client/src/app/videos/video-list/video-trending.component.ts +++ b/client/src/app/videos/video-list/video-trending.component.ts @@ -1,5 +1,6 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' +import { Location } from '@angular/common' import { immutableAssign } from '@app/shared/misc/utils' import { NotificationsService } from 'angular2-notifications' import { AuthService } from '../../core/auth' @@ -21,6 +22,7 @@ export class VideoTrendingComponent extends AbstractVideoList implements OnInit, protected route: ActivatedRoute, protected notificationsService: NotificationsService, protected authService: AuthService, + protected location: Location, private videoService: VideoService) { super() } -- 2.25.1