diff --git a/src/app/components/layout/app-layout/app-layout.component.ts b/src/app/components/layout/app-layout/app-layout.component.ts
index 103defa4a..553e3c790 100644
--- a/src/app/components/layout/app-layout/app-layout.component.ts
+++ b/src/app/components/layout/app-layout/app-layout.component.ts
@@ -43,8 +43,8 @@ import { NodePermissionService } from '@alfresco/aca-shared';
import { BreakpointObserver } from '@angular/cdk/layout';
import {
AppStore,
- SetSelectedNodesAction,
- getCurrentFolder
+ getCurrentFolder,
+ SetSelectedNodesAction
} from '@alfresco/aca-shared/store';
import { Directionality } from '@angular/cdk/bidi';
diff --git a/src/app/components/search/search-results-row/search-results-row.component.html b/src/app/components/search/search-results-row/search-results-row.component.html
index a68e32897..55e94e565 100644
--- a/src/app/components/search/search-results-row/search-results-row.component.html
+++ b/src/app/components/search/search-results-row/search-results-row.component.html
@@ -1,8 +1,8 @@
-
+
{{ name$ | async }}
-
+
{{ name$ | async }}
{{ title$ | async }}
diff --git a/src/app/components/search/search-results-row/search-results-row.component.ts b/src/app/components/search/search-results-row/search-results-row.component.ts
index 7cdb41f69..185467a72 100644
--- a/src/app/components/search/search-results-row/search-results-row.component.ts
+++ b/src/app/components/search/search-results-row/search-results-row.component.ts
@@ -121,11 +121,13 @@ export class SearchResultsRowComponent implements OnInit, OnDestroy {
return this.node.entry.isFile;
}
- showPreview() {
+ showPreview(event: MouseEvent) {
+ event.stopPropagation();
this.store.dispatch(new ViewFileAction(this.node));
}
- navigate() {
+ navigate(event: MouseEvent) {
+ event.stopPropagation();
this.store.dispatch(new NavigateToFolder(this.node));
}
}
diff --git a/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts b/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts
index 7e7ceea0b..b4c6c3d78 100644
--- a/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts
+++ b/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts
@@ -23,10 +23,70 @@
* along with Alfresco. If not, see .
*/
+import { TestBed } from '@angular/core/testing';
import { ToggleFavoriteComponent } from './toggle-favorite.component';
+import { Store } from '@ngrx/store';
+import { ExtensionService } from '@alfresco/adf-extensions';
+import { CoreModule } from '@alfresco/adf-core';
+import { Router } from '@angular/router';
+import { of } from 'rxjs';
describe('ToggleFavoriteComponent', () => {
- it('should be defined', () => {
- expect(ToggleFavoriteComponent).toBeDefined();
+ let component: ToggleFavoriteComponent;
+ let fixture;
+ let router;
+ const mockRouter = {
+ url: 'some-url'
+ };
+ const mockStore = {
+ dispatch: jasmine.createSpy('dispatch'),
+ select: jasmine.createSpy('select').and.returnValue(
+ of({
+ nodes: []
+ })
+ )
+ };
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [CoreModule.forRoot()],
+ declarations: [ToggleFavoriteComponent],
+ providers: [
+ ExtensionService,
+ { provide: Store, useValue: mockStore },
+ { provide: Router, useValue: mockRouter }
+ ]
+ });
+
+ fixture = TestBed.createComponent(ToggleFavoriteComponent);
+ component = fixture.componentInstance;
+ router = TestBed.get(Router);
+ });
+
+ afterEach(() => {
+ mockStore.dispatch.calls.reset();
+ });
+
+ it('should get selection data on initialization', () => {
+ expect(mockStore.select).toHaveBeenCalled();
+ });
+
+ it('should not dispatch reload if route is not specified', () => {
+ component.data = "['/reload_on_this_route']";
+
+ fixture.detectChanges();
+ component.onToggleEvent();
+
+ expect(mockStore.dispatch).not.toHaveBeenCalled();
+ });
+
+ it('should dispatch reload if route is specified', () => {
+ component.data = "['/reload_on_this_route']";
+ router.url = '/reload_on_this_route';
+
+ fixture.detectChanges();
+ component.onToggleEvent();
+
+ expect(mockStore.dispatch).toHaveBeenCalled();
});
});
diff --git a/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.ts b/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.ts
index 32498c979..5c5bc1c4c 100644
--- a/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.ts
+++ b/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.ts
@@ -23,15 +23,16 @@
* along with Alfresco. If not, see .
*/
-import { Component, ViewEncapsulation } from '@angular/core';
+import { Component, ViewEncapsulation, OnInit, Input } from '@angular/core';
import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
-import { SelectionState } from '@alfresco/adf-extensions';
+import { SelectionState, ExtensionService } from '@alfresco/adf-extensions';
import {
AppStore,
ReloadDocumentListAction,
getAppSelection
} from '@alfresco/aca-shared/store';
+import { Router } from '@angular/router';
@Component({
selector: 'app-toggle-favorite',
@@ -54,14 +55,30 @@ import {
encapsulation: ViewEncapsulation.None,
host: { class: 'app-toggle-favorite' }
})
-export class ToggleFavoriteComponent {
+export class ToggleFavoriteComponent implements OnInit {
+ @Input() data: any;
selection$: Observable;
+ private reloadOnRoutes: string[] = [];
- constructor(private store: Store) {
+ constructor(
+ private store: Store,
+ private extensionService: ExtensionService,
+ private router: Router
+ ) {
this.selection$ = this.store.select(getAppSelection);
}
+ ngOnInit() {
+ if (this.data) {
+ this.reloadOnRoutes = this.extensionService.runExpression(
+ `$( ${this.data} )`
+ );
+ }
+ }
+
onToggleEvent() {
- this.store.dispatch(new ReloadDocumentListAction());
+ if (this.reloadOnRoutes.includes(this.router.url)) {
+ this.store.dispatch(new ReloadDocumentListAction());
+ }
}
}
diff --git a/src/app/components/toolbar/toolbar-menu/toolbar-menu.component.html b/src/app/components/toolbar/toolbar-menu/toolbar-menu.component.html
index 3e7a298fa..6a26c205a 100644
--- a/src/app/components/toolbar/toolbar-menu/toolbar-menu.component.html
+++ b/src/app/components/toolbar/toolbar-menu/toolbar-menu.component.html
@@ -12,7 +12,10 @@
-
+
diff --git a/src/app/services/content-management.service.ts b/src/app/services/content-management.service.ts
index b2bbb4313..0867dddfe 100644
--- a/src/app/services/content-management.service.ts
+++ b/src/app/services/content-management.service.ts
@@ -111,7 +111,6 @@ export class ContentManagementService {
node.entry.isFavorite = true;
});
this.store.dispatch(new SetSelectedNodesAction(nodes));
- this.store.dispatch(new ReloadDocumentListAction());
});
}
}
@@ -123,7 +122,6 @@ export class ContentManagementService {
node.entry.isFavorite = false;
});
this.store.dispatch(new SetSelectedNodesAction(nodes));
- this.store.dispatch(new ReloadDocumentListAction());
});
}
}
diff --git a/src/assets/app.extensions.json b/src/assets/app.extensions.json
index 9f08bdab0..afb536b35 100644
--- a/src/assets/app.extensions.json
+++ b/src/assets/app.extensions.json
@@ -356,6 +356,7 @@
"comment": "workaround for Recent Files and Search API issue",
"type": "custom",
"order": 400,
+ "data": "['/favorites', '/favorite/libraries']",
"component": "app.toolbar.toggleFavorite",
"rules": {
"visible": "canToggleFavorite"