mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-3299] and [ADF-3300] upgrade to Angular and Material 6 (#3579)
* upgrade to HttpClient * upgrade to Renderer2 * upgrade Document reference * remove useless test with deprecated ReflectiveInjector * upgrade to latest typescript * upgrade libs * upgrade package scripts * remove rxjs blacklists and duplicate rules * add rxjs compat to help with migration * fix breaking changes * fix breaking changes in material * fix breaking changes (material 6) * upgrade rxjs, ngx-translate and flex layout * update unit tests * restore providers * upgrade deprecated Observable.error * rebase fix first configuration problems * fix style issues commented * fix core build * fix lib template errors * move lib test execution in angular.json * ignore * karma conf files * fix import statement test * single run option * update packages reporter * restore report * increase timeout * improve karma conf test configuration * fix test issues about lint * fix test analytics * fix process service test * content service fix test * fix logout directive test * fix core test * fix build * update node-sass to latest * update angular cli dependencies * improve build script create directorites and move files only if previous command succeded * upgrade individual libs to 6.0 * remove old webpack files * revert sass change * fix type issues fix style issues * fix tslint demo shell issue * fix peerdependencies * fix test e2e BC * package upate * fix style import issue * extract-text-webpack-plugin beta * fix test dist build command * remove alpha js-api * fix tslint issue add banner tslint rule * upload service fix * change BC script * fix test dist script * increase demo shell timeout test * verbose copy * path absolute * fix script bc * fix copy part * fix path warning fix monaco editor * remove duplicate header * remove unused import * fix align and check ago tests * add missing import * fix notification button selector * [ANGULAR6] fixed core tests * fix CS test * fix cs test step 2 * increase travis_wait for dist * fix attachment PS * fix checklist test * use pdf min
This commit is contained in:
committed by
Eugenio Romano
parent
c510ec864d
commit
6b24bfb1d4
@@ -24,7 +24,7 @@ import { DocumentActionsService } from '../../services/document-actions.service'
|
||||
import { FolderActionsService } from '../../services/folder-actions.service';
|
||||
import { ContentActionModel, ContentActionTarget } from './../../models/content-action.model';
|
||||
import { ContentActionListComponent } from './content-action-list.component';
|
||||
import { Subscription } from 'rxjs/Subscription';
|
||||
import { Subscription } from 'rxjs';
|
||||
|
||||
@Component({
|
||||
selector: 'content-action',
|
||||
|
@@ -19,8 +19,7 @@ import { CUSTOM_ELEMENTS_SCHEMA, SimpleChange, TemplateRef, QueryList } from '@a
|
||||
import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing';
|
||||
import { AlfrescoApiService, DataColumnListComponent, DataColumnComponent } from '@alfresco/adf-core';
|
||||
import { DataColumn, DataTableComponent } from '@alfresco/adf-core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
import { Subject, of, throwError } from 'rxjs';
|
||||
import { FileNode, FolderNode } from '../../mock';
|
||||
import {
|
||||
fakeNodeAnswerWithNOEntries,
|
||||
@@ -249,7 +248,7 @@ describe('DocumentList', () => {
|
||||
documentList.folderNode = new NodeMinimal();
|
||||
documentList.folderNode.id = '1d26e465-dea3-42f3-b415-faa8364b9692';
|
||||
|
||||
spyOn(documentListService, 'getFolder').and.returnValue(Observable.of(fakeNodeAnswerWithNOEntries));
|
||||
spyOn(documentListService, 'getFolder').and.returnValue(of(fakeNodeAnswerWithNOEntries));
|
||||
|
||||
let disposableReady = documentList.ready.subscribe(() => {
|
||||
expect(element.querySelector('#adf-document-list-empty')).toBeDefined();
|
||||
@@ -754,7 +753,7 @@ describe('DocumentList', () => {
|
||||
it('should display folder content from loadFolder on reload if folderNode defined', () => {
|
||||
documentList.folderNode = new NodeMinimal();
|
||||
|
||||
spyOn(documentList, 'loadFolderNodesByFolderNodeId').and.returnValue(Observable.of(''));
|
||||
spyOn(documentList, 'loadFolderNodesByFolderNodeId').and.returnValue(Promise.resolve(''));
|
||||
spyOn(documentList, 'loadFolder').and.callThrough();
|
||||
documentList.reload();
|
||||
expect(documentList.loadFolder).toHaveBeenCalled();
|
||||
@@ -953,7 +952,7 @@ describe('DocumentList', () => {
|
||||
|
||||
it('should emit error when getFolderNode fails', (done) => {
|
||||
const error = { message: '{ "error": { "statusCode": 501 } }' };
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(Observable.throw(error));
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(throwError(error));
|
||||
|
||||
let disposableError = documentList.error.subscribe(val => {
|
||||
expect(val).toBe(error);
|
||||
@@ -966,7 +965,7 @@ describe('DocumentList', () => {
|
||||
|
||||
it('should emit error when loadFolderNodesByFolderNodeId fails', (done) => {
|
||||
const error = { message: '{ "error": { "statusCode": 501 } }' };
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(Observable.of(fakeNodeWithCreatePermission));
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(of(fakeNodeWithCreatePermission));
|
||||
spyOn(documentList, 'loadFolderNodesByFolderNodeId').and.returnValue(Promise.reject(error));
|
||||
|
||||
let disposableError = documentList.error.subscribe(val => {
|
||||
@@ -980,7 +979,7 @@ describe('DocumentList', () => {
|
||||
|
||||
it('should set no permission when getFolderNode fails with 403', (done) => {
|
||||
const error = { message: '{ "error": { "statusCode": 403 } }' };
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(Observable.throw(error));
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(throwError(error));
|
||||
|
||||
let disposableError = documentList.error.subscribe(val => {
|
||||
expect(val).toBe(error);
|
||||
@@ -1022,8 +1021,8 @@ describe('DocumentList', () => {
|
||||
documentList.folderNode = new NodeMinimal();
|
||||
documentList.folderNode.id = '1d26e465-dea3-42f3-b415-faa8364b9692';
|
||||
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(Observable.of(fakeNodeWithNoPermission));
|
||||
spyOn(documentListService, 'getFolder').and.returnValue(Observable.throw(error));
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(of(fakeNodeWithNoPermission));
|
||||
spyOn(documentListService, 'getFolder').and.returnValue(throwError(error));
|
||||
|
||||
documentList.loadFolder();
|
||||
let clickedFolderNode = new FolderNode('fake-folder-node');
|
||||
@@ -1226,7 +1225,7 @@ describe('DocumentList', () => {
|
||||
});
|
||||
|
||||
xit('should emit error when fetch recent fails on search call', (done) => {
|
||||
spyOn(customResourcesService, 'loadFolderByNodeId').and.returnValue(Observable.throw('error'));
|
||||
spyOn(customResourcesService, 'loadFolderByNodeId').and.returnValue(throwError('error'));
|
||||
|
||||
let disposableError = documentList.error.subscribe(val => {
|
||||
expect(val).toBe('error');
|
||||
|
@@ -27,15 +27,9 @@ import {
|
||||
} from '@alfresco/adf-core';
|
||||
|
||||
import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging } from 'alfresco-js-api';
|
||||
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
|
||||
import { Subscription } from 'rxjs/Subscription';
|
||||
|
||||
import { Observable, Subject, BehaviorSubject, Subscription, of } from 'rxjs';
|
||||
import { ShareDataRow } from './../data/share-data-row.model';
|
||||
import { ShareDataTableAdapter } from './../data/share-datatable-adapter';
|
||||
|
||||
import { presetsDefaultModel } from '../models/preset.model';
|
||||
import { ContentActionModel } from './../models/content-action.model';
|
||||
import { PermissionStyleModel } from './../models/permissions-style.model';
|
||||
@@ -559,7 +553,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
|
||||
if (typeof action.handler === 'function') {
|
||||
handlerSub = action.handler(node, this, action.permission);
|
||||
} else {
|
||||
handlerSub = Observable.of(true);
|
||||
handlerSub = of(true);
|
||||
}
|
||||
|
||||
if (typeof action.execute === 'function' && handlerSub) {
|
||||
|
@@ -29,7 +29,8 @@ import {
|
||||
SearchRequest
|
||||
} from 'alfresco-js-api';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Observable, from, of, throwError } from 'rxjs';
|
||||
import { catchError } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class CustomResourcesService {
|
||||
@@ -86,7 +87,7 @@ export class CustomResourcesService {
|
||||
observer.error(err);
|
||||
observer.complete();
|
||||
});
|
||||
}).catch(err => this.handleError(err));
|
||||
}).pipe(catchError(err => this.handleError(err)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,7 +133,7 @@ export class CustomResourcesService {
|
||||
observer.error(err);
|
||||
observer.complete();
|
||||
});
|
||||
}).catch(err => this.handleError(err));
|
||||
}).pipe(catchError(err => this.handleError(err)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -171,7 +172,7 @@ export class CustomResourcesService {
|
||||
observer.error(err);
|
||||
observer.complete();
|
||||
});
|
||||
}).catch(err => this.handleError(err));
|
||||
}).pipe(catchError(err => this.handleError(err)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,7 +203,7 @@ export class CustomResourcesService {
|
||||
observer.error(err);
|
||||
observer.complete();
|
||||
});
|
||||
}).catch(err => this.handleError(err));
|
||||
}).pipe(catchError(err => this.handleError(err)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,7 +221,8 @@ export class CustomResourcesService {
|
||||
skipCount: pagination.skipCount
|
||||
};
|
||||
|
||||
return Observable.fromPromise(this.apiService.nodesApi.getDeletedNodes(options)).catch(err => this.handleError(err));
|
||||
return from(this.apiService.nodesApi.getDeletedNodes(options))
|
||||
.pipe(catchError(err => this.handleError(err)));
|
||||
|
||||
}
|
||||
|
||||
@@ -239,7 +241,8 @@ export class CustomResourcesService {
|
||||
skipCount: pagination.skipCount
|
||||
};
|
||||
|
||||
return Observable.fromPromise(this.apiService.sharedLinksApi.findSharedLinks(options)).catch(err => this.handleError(err));
|
||||
return from(this.apiService.sharedLinksApi.findSharedLinks(options))
|
||||
.pipe(catchError(err => this.handleError(err)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -291,23 +294,23 @@ export class CustomResourcesService {
|
||||
*/
|
||||
getCorrespondingNodeIds(nodeId: string, pagination: PaginationModel): Observable<string[]> {
|
||||
if (nodeId === '-trashcan-') {
|
||||
return Observable.fromPromise(this.apiService.nodesApi.getDeletedNodes()
|
||||
return from(this.apiService.nodesApi.getDeletedNodes()
|
||||
.then(result => result.list.entries.map(node => node.entry.id)));
|
||||
|
||||
} else if (nodeId === '-sharedlinks-') {
|
||||
return Observable.fromPromise(this.apiService.sharedLinksApi.findSharedLinks()
|
||||
return from(this.apiService.sharedLinksApi.findSharedLinks()
|
||||
.then(result => result.list.entries.map(node => node.entry.nodeId)));
|
||||
|
||||
} else if (nodeId === '-sites-') {
|
||||
return Observable.fromPromise(this.apiService.sitesApi.getSites()
|
||||
return from(this.apiService.sitesApi.getSites()
|
||||
.then(result => result.list.entries.map(node => node.entry.guid)));
|
||||
|
||||
} else if (nodeId === '-mysites-') {
|
||||
return Observable.fromPromise(this.apiService.peopleApi.getSiteMembership('-me-')
|
||||
return from(this.apiService.peopleApi.getSiteMembership('-me-')
|
||||
.then(result => result.list.entries.map(node => node.entry.guid)));
|
||||
|
||||
} else if (nodeId === '-favorites-') {
|
||||
return Observable.fromPromise(this.apiService.favoritesApi.getFavorites('-me-')
|
||||
return from(this.apiService.favoritesApi.getFavorites('-me-')
|
||||
.then(result => result.list.entries.map(node => node.entry.targetGuid)));
|
||||
|
||||
} else if (nodeId === '-recent-') {
|
||||
@@ -322,7 +325,7 @@ export class CustomResourcesService {
|
||||
|
||||
}
|
||||
|
||||
return Observable.of([]);
|
||||
return of([]);
|
||||
}
|
||||
|
||||
private getIncludesFields(includeFields: string[]): string[] {
|
||||
@@ -331,9 +334,7 @@ export class CustomResourcesService {
|
||||
}
|
||||
|
||||
private handleError(error: Response) {
|
||||
// in a real world app, we may send the error to some remote logging infrastructure
|
||||
// instead of just logging it to the console
|
||||
this.logService.error(error);
|
||||
return Observable.throw(error || 'Server error');
|
||||
return throwError(error || 'Server error');
|
||||
}
|
||||
}
|
||||
|
@@ -23,7 +23,7 @@ import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { DocumentActionsService } from './document-actions.service';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { NodeActionsService } from './node-actions.service';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { of } from 'rxjs';
|
||||
|
||||
describe('DocumentActionsService', () => {
|
||||
|
||||
@@ -103,7 +103,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should not delete the file node if there are no permissions', (done) => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
service.permissionEvent.subscribe((permission) => {
|
||||
expect(permission).toBeDefined();
|
||||
@@ -118,7 +118,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should call the error on the returned Observable if there are no permissions', (done) => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let file = new FileNode();
|
||||
const deleteObservable = service.getHandler('delete')(file);
|
||||
@@ -132,7 +132,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should delete the file node if there is the delete permission', () => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let permission = 'delete';
|
||||
let file = new FileNode();
|
||||
@@ -161,7 +161,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should delete the file node if there is the delete and others permission ', () => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let permission = 'delete';
|
||||
let file = new FileNode();
|
||||
@@ -177,7 +177,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should delete file node', () => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let permission = 'delete';
|
||||
let file = new FileNode();
|
||||
@@ -190,7 +190,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should support deletion only file node', () => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let folder = new FolderNode();
|
||||
service.getHandler('delete')(folder);
|
||||
@@ -205,7 +205,7 @@ describe('DocumentActionsService', () => {
|
||||
});
|
||||
|
||||
it('should require node id to delete', () => {
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let file = new FileNode();
|
||||
file.entry.id = null;
|
||||
@@ -219,7 +219,7 @@ describe('DocumentActionsService', () => {
|
||||
expect(message).toEqual('CORE.DELETE_NODE.SINGULAR');
|
||||
done();
|
||||
});
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(Observable.of(true));
|
||||
spyOn(documentListService, 'deleteNode').and.returnValue(of(true));
|
||||
|
||||
let target = jasmine.createSpyObj('obj', ['reload']);
|
||||
let permission = 'delete';
|
||||
|
@@ -18,14 +18,12 @@
|
||||
import { ContentService, TranslationService } from '@alfresco/adf-core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MinimalNodeEntity } from 'alfresco-js-api';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
import { Observable, Subject, throwError } from 'rxjs';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { PermissionModel } from '../models/permissions.model';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { NodeActionsService } from './node-actions.service';
|
||||
import { ContentNodeDialogService } from '../../content-node-selector/content-node-dialog.service';
|
||||
import 'rxjs/add/observable/throw';
|
||||
|
||||
@Injectable()
|
||||
export class DocumentActionsService {
|
||||
@@ -138,7 +136,7 @@ export class DocumentActionsService {
|
||||
action: 'delete',
|
||||
permission: permission
|
||||
}));
|
||||
return Observable.throw(new Error('No permission to delete'));
|
||||
return throwError(new Error('No permission to delete'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
import { AlfrescoApiServiceMock, AlfrescoApiService,
|
||||
AppConfigService, StorageService, ContentService, setupTestBed, CoreModule } from '@alfresco/adf-core';
|
||||
AppConfigService, StorageService, ContentService, setupTestBed, CoreModule, LogService, AppConfigServiceMock } from '@alfresco/adf-core';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
|
||||
declare let jasmine: any;
|
||||
@@ -94,9 +94,10 @@ describe('DocumentListService', () => {
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
let logService = new LogService(new AppConfigServiceMock(null));
|
||||
let contentService = new ContentService(null, null, null, null);
|
||||
alfrescoApiService = new AlfrescoApiServiceMock(new AppConfigService(null), new StorageService());
|
||||
service = new DocumentListService(null, contentService, alfrescoApiService, null, null);
|
||||
service = new DocumentListService(null, contentService, alfrescoApiService, logService, null);
|
||||
jasmine.Ajax.install();
|
||||
});
|
||||
|
||||
@@ -161,7 +162,7 @@ describe('DocumentListService', () => {
|
||||
});
|
||||
|
||||
it('should add the includeTypes in the request Node Children if required', () => {
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeChildren');
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeChildren').and.callThrough();
|
||||
|
||||
service.getFolder('/fake-root/fake-name', {}, ['isLocked']);
|
||||
|
||||
@@ -173,7 +174,7 @@ describe('DocumentListService', () => {
|
||||
});
|
||||
|
||||
it('should not add the includeTypes in the request Node Children if is duplicated', () => {
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeChildren');
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeChildren').and.callThrough();
|
||||
|
||||
service.getFolder('/fake-root/fake-name', {}, ['allowableOperations']);
|
||||
|
||||
@@ -185,7 +186,7 @@ describe('DocumentListService', () => {
|
||||
});
|
||||
|
||||
it('should add the includeTypes in the request getFolderNode if required', () => {
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeInfo');
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeInfo').and.callThrough();
|
||||
|
||||
service.getFolderNode('test-id', ['isLocked']);
|
||||
|
||||
@@ -196,7 +197,7 @@ describe('DocumentListService', () => {
|
||||
});
|
||||
|
||||
it('should not add the includeTypes in the request getFolderNode if is duplicated', () => {
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeInfo');
|
||||
let spyGetNodeInfo = spyOn(alfrescoApiService.getInstance().nodes, 'getNodeInfo').and.callThrough();
|
||||
|
||||
service.getFolderNode('test-id', ['allowableOperations']);
|
||||
|
||||
|
@@ -22,8 +22,8 @@ import {
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MinimalNodeEntity, MinimalNodeEntryEntity, NodeEntry, NodePaging } from 'alfresco-js-api';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import 'rxjs/add/observable/throw';
|
||||
import { Observable, from, throwError } from 'rxjs';
|
||||
import { catchError } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class DocumentListService {
|
||||
@@ -74,7 +74,7 @@ export class DocumentListService {
|
||||
* @returns Empty response when the operation is complete
|
||||
*/
|
||||
deleteNode(nodeId: string): Observable<any> {
|
||||
return Observable.fromPromise(this.apiService.getInstance().nodes.deleteNode(nodeId));
|
||||
return from(this.apiService.getInstance().nodes.deleteNode(nodeId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -85,8 +85,9 @@ export class DocumentListService {
|
||||
* @returns NodeEntry for the copied node
|
||||
*/
|
||||
copyNode(nodeId: string, targetParentId: string) {
|
||||
return Observable.fromPromise(this.apiService.getInstance().nodes.copyNode(nodeId, { targetParentId }))
|
||||
.catch(err => this.handleError(err));
|
||||
return from(this.apiService.getInstance().nodes.copyNode(nodeId, { targetParentId })).pipe(
|
||||
catchError(err => this.handleError(err))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,8 +98,9 @@ export class DocumentListService {
|
||||
* @returns NodeEntry for the moved node
|
||||
*/
|
||||
moveNode(nodeId: string, targetParentId: string) {
|
||||
return Observable.fromPromise(this.apiService.getInstance().nodes.moveNode(nodeId, { targetParentId }))
|
||||
.catch(err => this.handleError(err));
|
||||
return from(this.apiService.getInstance().nodes.moveNode(nodeId, { targetParentId })).pipe(
|
||||
catchError(err => this.handleError(err))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -108,9 +110,10 @@ export class DocumentListService {
|
||||
* @returns Details of the created folder node
|
||||
*/
|
||||
createFolder(name: string, parentId: string): Observable<MinimalNodeEntity> {
|
||||
let observable = Observable.fromPromise(this.apiService.getInstance().nodes.createFolder(name, '/', parentId));
|
||||
observable.catch(err => this.handleError(err));
|
||||
return observable;
|
||||
return from(this.apiService.getInstance().nodes.createFolder(name, '/', parentId))
|
||||
.pipe(
|
||||
catchError(err => this.handleError(err))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,9 +124,10 @@ export class DocumentListService {
|
||||
* @returns Details of the folder
|
||||
*/
|
||||
getFolder(folder: string, opts?: any, includeFields: string[] = []): Observable<NodePaging> {
|
||||
return Observable.fromPromise(this.getNodesPromise(folder, opts, includeFields))
|
||||
.map(res => <NodePaging> res)
|
||||
.catch(err => this.handleError(err));
|
||||
return from(this.getNodesPromise(folder, opts, includeFields))
|
||||
.pipe(
|
||||
catchError(err => this.handleError(err))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -162,7 +166,7 @@ export class DocumentListService {
|
||||
include: includeFieldsRequest
|
||||
};
|
||||
|
||||
return Observable.fromPromise(this.apiService.getInstance().nodes.getNodeInfo(nodeId, opts));
|
||||
return from(this.apiService.getInstance().nodes.getNodeInfo(nodeId, opts));
|
||||
}
|
||||
/**
|
||||
* Get thumbnail URL for the given document node.
|
||||
@@ -202,9 +206,7 @@ export class DocumentListService {
|
||||
}
|
||||
|
||||
private handleError(error: any) {
|
||||
// in a real world app, we may send the error to some remote logging infrastructure
|
||||
// instead of just logging it to the console
|
||||
this.logService.error(error);
|
||||
return Observable.throw(error || 'Server error');
|
||||
return throwError(error || 'Server error');
|
||||
}
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoApiServiceMock, AppConfigService, StorageService, ContentService, setupTestBed, CoreModule, TranslationMock } from '@alfresco/adf-core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Observable } from 'rxjs';
|
||||
import { FileNode, FolderNode } from '../../mock';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
|
@@ -18,13 +18,11 @@
|
||||
import { ContentService, TranslationService } from '@alfresco/adf-core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MinimalNodeEntity } from 'alfresco-js-api';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
import { Observable, Subject, throwError } from 'rxjs';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { PermissionModel } from '../models/permissions.model';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { NodeActionsService } from './node-actions.service';
|
||||
import 'rxjs/add/observable/throw';
|
||||
|
||||
@Injectable()
|
||||
export class FolderActionsService {
|
||||
@@ -135,7 +133,7 @@ export class FolderActionsService {
|
||||
return handlerObservable;
|
||||
} else {
|
||||
this.permissionEvent.next(new PermissionModel({type: 'folder', action: 'delete', permission: permission}));
|
||||
return Observable.throw(new Error('No permission to delete'));
|
||||
return throwError(new Error('No permission to delete'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -21,7 +21,7 @@ import { AppConfigService, setupTestBed, CoreModule } from '@alfresco/adf-core';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { NodeActionsService } from './node-actions.service';
|
||||
import { ContentNodeDialogService } from '../../content-node-selector/content-node-dialog.service';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { of, throwError } from 'rxjs';
|
||||
import { MatDialogRef } from '@angular/material';
|
||||
import { DialogModule } from '../../dialogs/dialog.module';
|
||||
|
||||
@@ -65,8 +65,8 @@ describe('NodeActionsService', () => {
|
||||
});
|
||||
|
||||
it('should be able to copy content', async(() => {
|
||||
spyOn(documentListService, 'copyNode').and.returnValue(Observable.of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(Observable.of([fakeNode]));
|
||||
spyOn(documentListService, 'copyNode').and.returnValue(of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(of([fakeNode]));
|
||||
|
||||
service.copyContent(fakeNode, 'allowed').subscribe((value) => {
|
||||
expect(value).toBe('OPERATION.SUCCESS.CONTENT.COPY');
|
||||
@@ -74,8 +74,8 @@ describe('NodeActionsService', () => {
|
||||
}));
|
||||
|
||||
it('should be able to move content', async(() => {
|
||||
spyOn(documentListService, 'moveNode').and.returnValue(Observable.of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(Observable.of([fakeNode]));
|
||||
spyOn(documentListService, 'moveNode').and.returnValue(of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(of([fakeNode]));
|
||||
|
||||
service.moveContent(fakeNode, 'allowed').subscribe((value) => {
|
||||
expect(value).toBe('OPERATION.SUCCESS.CONTENT.MOVE');
|
||||
@@ -83,8 +83,8 @@ describe('NodeActionsService', () => {
|
||||
}));
|
||||
|
||||
it('should be able to move folder', async(() => {
|
||||
spyOn(documentListService, 'moveNode').and.returnValue(Observable.of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(Observable.of([fakeNode]));
|
||||
spyOn(documentListService, 'moveNode').and.returnValue(of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(of([fakeNode]));
|
||||
|
||||
service.moveFolder(fakeNode, 'allowed').subscribe((value) => {
|
||||
expect(value).toBe('OPERATION.SUCCESS.FOLDER.MOVE');
|
||||
@@ -92,8 +92,8 @@ describe('NodeActionsService', () => {
|
||||
}));
|
||||
|
||||
it('should be able to copy folder', async(() => {
|
||||
spyOn(documentListService, 'copyNode').and.returnValue(Observable.of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(Observable.of([fakeNode]));
|
||||
spyOn(documentListService, 'copyNode').and.returnValue(of('FAKE-OK'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(of([fakeNode]));
|
||||
|
||||
service.copyFolder(fakeNode, 'allowed').subscribe((value) => {
|
||||
expect(value).toBe('OPERATION.SUCCESS.FOLDER.COPY');
|
||||
@@ -101,8 +101,8 @@ describe('NodeActionsService', () => {
|
||||
}));
|
||||
|
||||
it('should be able to propagate the dialog error', async(() => {
|
||||
spyOn(documentListService, 'copyNode').and.returnValue(Observable.throw('FAKE-KO'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(Observable.of([fakeNode]));
|
||||
spyOn(documentListService, 'copyNode').and.returnValue(throwError('FAKE-KO'));
|
||||
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(of([fakeNode]));
|
||||
|
||||
service.copyFolder(fakeNode, '!allowed').subscribe((value) => {
|
||||
}, (error) => {
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
import { Injectable, Output, EventEmitter } from '@angular/core';
|
||||
import { MinimalNodeEntryEntity, MinimalNodeEntity } from 'alfresco-js-api';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
import { Subject } from 'rxjs';
|
||||
import { AlfrescoApiService, ContentService } from '@alfresco/adf-core';
|
||||
import { MatDialog } from '@angular/material';
|
||||
|
||||
|
Reference in New Issue
Block a user