mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
removed DL reload dependency (#2581)
This commit is contained in:
committed by
Eugenio Romano
parent
e63e29586b
commit
b67ed7e545
@@ -51,8 +51,8 @@
|
|||||||
<mat-icon>delete</mat-icon>
|
<mat-icon>delete</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
<button mat-icon-button
|
<button mat-icon-button
|
||||||
|
[disabled]="!documentList.selection.length"
|
||||||
#favorite="adfFavorite"
|
#favorite="adfFavorite"
|
||||||
(toggle)="documentList.reload()"
|
|
||||||
[adf-node-favorite]="documentList.selection">
|
[adf-node-favorite]="documentList.selection">
|
||||||
<mat-icon>
|
<mat-icon>
|
||||||
{{ favorite.hasFavorites() ? 'star' :'star_border' }}
|
{{ favorite.hasFavorites() ? 'star' :'star_border' }}
|
||||||
|
@@ -92,6 +92,25 @@ describe('NodeFavoriteDirective', () => {
|
|||||||
|
|
||||||
expect(directiveInstance.markFavoritesNodes).toHaveBeenCalledWith(component.selection);
|
expect(directiveInstance.markFavoritesNodes).toHaveBeenCalledWith(component.selection);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should reset favorites if selection is empty', fakeAsync(() => {
|
||||||
|
spyOn(favoritesApi, 'getFavorite').and.returnValue(Promise.resolve());
|
||||||
|
|
||||||
|
component.selection = [
|
||||||
|
{ entry: { id: '1', name: 'name1' } }
|
||||||
|
];
|
||||||
|
|
||||||
|
fixture.detectChanges();
|
||||||
|
tick();
|
||||||
|
|
||||||
|
expect(directiveInstance.hasFavorites()).toBe(true);
|
||||||
|
|
||||||
|
component.selection = [];
|
||||||
|
fixture.detectChanges();
|
||||||
|
tick();
|
||||||
|
|
||||||
|
expect(directiveInstance.hasFavorites()).toBe(false);
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('markFavoritesNodes()', () => {
|
describe('markFavoritesNodes()', () => {
|
||||||
@@ -267,6 +286,32 @@ describe('NodeFavoriteDirective', () => {
|
|||||||
|
|
||||||
expect(component.done).toHaveBeenCalled();
|
expect(component.done).toHaveBeenCalled();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should set isFavorites items to false', fakeAsync(() => {
|
||||||
|
removeFavoriteSpy.and.returnValue(Promise.resolve());
|
||||||
|
|
||||||
|
directiveInstance.favorites = [
|
||||||
|
{ entry: { id: '1', name: 'name1', isFavorite: true } }
|
||||||
|
];
|
||||||
|
|
||||||
|
element.triggerEventHandler('click', null);
|
||||||
|
tick();
|
||||||
|
|
||||||
|
expect(directiveInstance.hasFavorites()).toBe(false);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should set isFavorites items to true', fakeAsync(() => {
|
||||||
|
addFavoriteSpy.and.returnValue(Promise.resolve());
|
||||||
|
|
||||||
|
directiveInstance.favorites = [
|
||||||
|
{ entry: { id: '1', name: 'name1', isFavorite: false } }
|
||||||
|
];
|
||||||
|
|
||||||
|
element.triggerEventHandler('click', null);
|
||||||
|
tick();
|
||||||
|
|
||||||
|
expect(directiveInstance.hasFavorites()).toBe(true);
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getFavorite()', () => {
|
describe('getFavorite()', () => {
|
||||||
@@ -297,35 +342,6 @@ describe('NodeFavoriteDirective', () => {
|
|||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('reset()', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
spyOn(favoritesApi, 'removeFavoriteSite').and.returnValue(Promise.resolve());
|
|
||||||
spyOn(favoritesApi, 'addFavorite').and.returnValue(Promise.resolve());
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should reset favorite collection after removeFavoriteSite()', fakeAsync(() => {
|
|
||||||
directiveInstance.favorites = [
|
|
||||||
{ entry: { id: '1', name: 'name1', isFavorite: true } }
|
|
||||||
];
|
|
||||||
|
|
||||||
element.triggerEventHandler('click', null);
|
|
||||||
tick();
|
|
||||||
|
|
||||||
expect(directiveInstance.favorites.length).toBe(0);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should reset favorite collection after addFavorite()', fakeAsync(() => {
|
|
||||||
directiveInstance.favorites = [
|
|
||||||
{ entry: { id: '1', name: 'name1', isFavorite: false } }
|
|
||||||
];
|
|
||||||
|
|
||||||
element.triggerEventHandler('click', null);
|
|
||||||
tick();
|
|
||||||
|
|
||||||
expect(directiveInstance.favorites.length).toBe(0);
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('hasFavorites()', () => {
|
describe('hasFavorites()', () => {
|
||||||
it('should return false when favorites collection is empty', () => {
|
it('should return false when favorites collection is empty', () => {
|
||||||
directiveInstance.favorites = [];
|
directiveInstance.favorites = [];
|
||||||
|
@@ -41,6 +41,8 @@ export class NodeFavoriteDirective implements OnChanges {
|
|||||||
|
|
||||||
ngOnChanges(changes) {
|
ngOnChanges(changes) {
|
||||||
if (!changes.selection.currentValue.length) {
|
if (!changes.selection.currentValue.length) {
|
||||||
|
this.favorites = [];
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,7 +65,7 @@ export class NodeFavoriteDirective implements OnChanges {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Observable.forkJoin(batch).subscribe(() => {
|
Observable.forkJoin(batch).subscribe(() => {
|
||||||
this.reset();
|
this.favorites.map(selected => selected.entry.isFavorite = false);
|
||||||
this.toggle.emit();
|
this.toggle.emit();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -74,14 +76,14 @@ export class NodeFavoriteDirective implements OnChanges {
|
|||||||
|
|
||||||
Observable.fromPromise(this.alfrescoApiService.getInstance().core.favoritesApi.addFavorite('-me-', <any> body))
|
Observable.fromPromise(this.alfrescoApiService.getInstance().core.favoritesApi.addFavorite('-me-', <any> body))
|
||||||
.subscribe(() => {
|
.subscribe(() => {
|
||||||
this.reset();
|
notFavorite.map(selected => selected.entry.isFavorite = true);
|
||||||
this.toggle.emit();
|
this.toggle.emit();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
markFavoritesNodes(selection: MinimalNodeEntity[]) {
|
markFavoritesNodes(selection: MinimalNodeEntity[]) {
|
||||||
if (selection.length < this.favorites.length) {
|
if (selection.length <= this.favorites.length) {
|
||||||
const newFavorites = this.reduce(this.favorites, selection);
|
const newFavorites = this.reduce(this.favorites, selection);
|
||||||
this.favorites = newFavorites;
|
this.favorites = newFavorites;
|
||||||
}
|
}
|
||||||
@@ -100,10 +102,6 @@ export class NodeFavoriteDirective implements OnChanges {
|
|||||||
return this.favorites.every((selected) => selected.entry.isFavorite);
|
return this.favorites.every((selected) => selected.entry.isFavorite);
|
||||||
}
|
}
|
||||||
|
|
||||||
private reset() {
|
|
||||||
this.favorites = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
private getProcessBatch(selection): any[] {
|
private getProcessBatch(selection): any[] {
|
||||||
return selection.map((selected: MinimalNodeEntity) => this.getFavorite(selected));
|
return selection.map((selected: MinimalNodeEntity) => this.getFavorite(selected));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user