[ADF-] update library to use new js-api 3.0.0 (#4097)

This commit is contained in:
Eugenio Romano
2019-01-06 23:57:01 +01:00
committed by Eugenio Romano
parent 2acd1b4e26
commit 3ef7d3b7ea
430 changed files with 1966 additions and 2149 deletions

View File

@@ -38,6 +38,7 @@ import { CustomResourcesService } from './../services/custom-resources.service';
import { DocumentListComponent } from './document-list.component';
import { setupTestBed } from '@alfresco/adf-core';
import { ContentTestingModule } from '../../testing/content.testing.module';
import { NodeEntry } from '@alfresco/js-api';
describe('DocumentList', () => {
@@ -73,7 +74,7 @@ describe('DocumentList', () => {
documentList.ngOnInit();
spyGetSites = spyOn(apiService.sitesApi, 'getSites').and.returnValue(Promise.resolve(fakeGetSitesAnswer));
spyFavorite = spyOn(apiService.favoritesApi, 'getFavorites').and.returnValue(Promise.resolve({list: []}));
spyFavorite = spyOn(apiService.favoritesApi, 'getFavorites').and.returnValue(Promise.resolve({ list: [] }));
});
afterEach(() => {
@@ -202,6 +203,7 @@ describe('DocumentList', () => {
});
it('should reset selection upon reload', () => {
documentList.currentFolderId = 'id-folder';
spyOn(documentList, 'resetSelection').and.callThrough();
documentList.reload();
@@ -228,6 +230,7 @@ describe('DocumentList', () => {
});
it('should reset selection upon reload', () => {
documentList.currentFolderId = 'id-folder';
spyOn(documentList, 'resetSelection').and.callThrough();
documentList.reload();
@@ -296,6 +299,7 @@ describe('DocumentList', () => {
});
it('should disable the action if there is no permission for the file and disableWithNoPermission true', () => {
documentList.currentFolderId = 'fake-node-id';
let documentMenu = new ContentActionModel({
disableWithNoPermission: true,
permission: 'delete',
@@ -929,7 +933,7 @@ describe('DocumentList', () => {
it('should emit node-click DOM event', (done) => {
let node = new NodeMinimalEntry();
document.addEventListener('node-click', (e: CustomEvent) => {
document.addEventListener('node-click', (customEvent: CustomEvent) => {
done();
});
@@ -947,7 +951,7 @@ describe('DocumentList', () => {
it('should emit node-dblclick DOM event', (done) => {
let node = new NodeMinimalEntry();
document.addEventListener('node-dblclick', (e: CustomEvent) => {
document.addEventListener('node-dblclick', (customEvent: CustomEvent) => {
done();
});
@@ -977,7 +981,7 @@ describe('DocumentList', () => {
it('should emit error when loadFolderNodesByFolderNodeId fails', (done) => {
const error = { message: '{ "error": { "statusCode": 501 } }' };
spyOn(documentListService, 'getFolderNode').and.returnValue(of(fakeNodeWithCreatePermission));
spyOn(documentListService, 'getFolderNode').and.returnValue(of({ entry: fakeNodeWithCreatePermission }));
spyOn(documentList, 'loadFolderNodesByFolderNodeId').and.returnValue(Promise.reject(error));
let disposableError = documentList.error.subscribe((val) => {
@@ -996,7 +1000,7 @@ describe('DocumentList', () => {
expect(folderNode.value.id).toBe('fake-node');
done();
});
documentList.onNodeDblClick({ entry: { id: 'fake-node', isFolder: true } });
documentList.onNodeDblClick(new NodeEntry({ entry: { id: 'fake-node', isFolder: true } }));
});
it('should set no permission when getFolderNode fails with 403', (done) => {
@@ -1014,6 +1018,7 @@ describe('DocumentList', () => {
});
it('should reset noPermission upon reload', () => {
documentList.currentFolderId = 'fake-node-id';
documentList.noPermission = true;
fixture.detectChanges();
@@ -1043,7 +1048,7 @@ describe('DocumentList', () => {
documentList.folderNode = new NodeMinimal();
documentList.folderNode.id = '1d26e465-dea3-42f3-b415-faa8364b9692';
spyOn(documentListService, 'getFolderNode').and.returnValue(of(fakeNodeWithNoPermission));
spyOn(documentListService, 'getFolderNode').and.returnValue(of({ entry: fakeNodeWithNoPermission }));
spyOn(documentListService, 'getFolder').and.returnValue(throwError(error));
documentList.loadFolder();
@@ -1153,14 +1158,14 @@ describe('DocumentList', () => {
it('should fetch user membership sites', () => {
const peopleApi = apiService.getInstance().core.peopleApi;
spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve(fakeGetSiteMembership));
spyOn(peopleApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.resolve(fakeGetSiteMembership));
documentList.loadFolderByNodeId('-mysites-');
expect(peopleApi.getSiteMembership).toHaveBeenCalled();
expect(peopleApi.listSiteMembershipsForPerson).toHaveBeenCalled();
});
it('should emit error when fetch membership sites fails', (done) => {
spyOn(apiService.getInstance().core.peopleApi, 'getSiteMembership')
spyOn(apiService.getInstance().core.peopleApi, 'listSiteMembershipsForPerson')
.and.returnValue(Promise.reject('error'));
let disposableError = documentList.error.subscribe((val) => {
@@ -1175,10 +1180,10 @@ describe('DocumentList', () => {
it('should assure that user membership sites have name property set', (done) => {
fixture.detectChanges();
const peopleApi = apiService.getInstance().core.peopleApi;
spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve(fakeGetSiteMembership));
spyOn(peopleApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.resolve(fakeGetSiteMembership));
documentList.loadFolderByNodeId('-mysites-');
expect(peopleApi.getSiteMembership).toHaveBeenCalled();
expect(peopleApi.listSiteMembershipsForPerson).toHaveBeenCalled();
let disposableReady = documentList.ready.subscribe((page) => {
const entriesWithoutName = page.list.entries.filter((item) => !item.entry.name);
@@ -1191,10 +1196,10 @@ describe('DocumentList', () => {
it('should assure that user membership sites have name property set correctly', (done) => {
fixture.detectChanges();
const peopleApi = apiService.getInstance().core.peopleApi;
spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve(fakeGetSiteMembership));
spyOn(peopleApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.resolve(fakeGetSiteMembership));
documentList.loadFolderByNodeId('-mysites-');
expect(peopleApi.getSiteMembership).toHaveBeenCalled();
expect(peopleApi.listSiteMembershipsForPerson).toHaveBeenCalled();
let disposableReady = documentList.ready.subscribe((page) => {
const wrongName = page.list.entries.filter((item) => (item.entry.name !== item.entry.title));
@@ -1259,6 +1264,7 @@ describe('DocumentList', () => {
});
it('should reset folder node upon changing current folder id', () => {
documentList.currentFolderId = 'fake-node-id';
documentList.folderNode = <any> {};
documentList.ngOnChanges({ currentFolderId: new SimpleChange(null, '-sites-', false) });
@@ -1278,7 +1284,7 @@ describe('DocumentList', () => {
documentList.currentFolderId = '12345-some-id-6789';
const peopleApi = apiService.getInstance().core.peopleApi;
spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve(fakeGetSiteMembership));
spyOn(peopleApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.resolve(fakeGetSiteMembership));
documentList.loadFolderByNodeId('-mysites-');
expect(documentList.currentFolderId).toBe('-mysites-');

View File

@@ -28,7 +28,7 @@ import {
UserPreferencesService, PaginationModel, ThumbnailService
} from '@alfresco/adf-core';
import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging } from 'alfresco-js-api';
import { Node, NodeEntry, NodePaging } from '@alfresco/js-api';
import { Subject, BehaviorSubject, Subscription, of } from 'rxjs';
import { ShareDataRow } from './../data/share-data-row.model';
import { ShareDataTableAdapter } from './../data/share-datatable-adapter';
@@ -178,7 +178,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
* @deprecated 2.3.0 - use currentFolderId or node
*/
@Input()
folderNode: MinimalNodeEntryEntity = null;
folderNode: Node = null;
/** The Document list will show all the nodes contained in the NodePaging entity */
@Input()
@@ -238,7 +238,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
contextActionHandler: Subject<any> = new Subject();
data: ShareDataTableAdapter;
noPermission: boolean = false;
selection = new Array<MinimalNodeEntity>();
selection = new Array<NodeEntry>();
private _pagination: BehaviorSubject<PaginationModel>;
private layoutPresets = {};
@@ -256,7 +256,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
private thumbnailService: ThumbnailService) {
}
getContextActions(node: MinimalNodeEntity) {
getContextActions(node: NodeEntry) {
if (node && node.entry) {
let actions = this.getNodeActions(node);
if (actions && actions.length > 0) {
@@ -446,7 +446,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
}
}
getNodeActions(node: MinimalNodeEntity | any): ContentActionModel[] {
getNodeActions(node: NodeEntry | any): ContentActionModel[] {
if (node && node.entry) {
let target = null;
@@ -487,12 +487,12 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
return [];
}
private refreshAction(action: ContentActionModel, node: MinimalNodeEntity) {
private refreshAction(action: ContentActionModel, node: NodeEntry) {
action.disabled = this.isActionDisabled(action, node);
action.visible = this.isActionVisible(action, node);
}
private isActionVisible(action: ContentActionModel, node: MinimalNodeEntity): boolean {
private isActionVisible(action: ContentActionModel, node: NodeEntry): boolean {
if (typeof action.visible === 'function') {
return action.visible(node);
}
@@ -500,7 +500,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
return action.visible;
}
private isActionDisabled(action: ContentActionModel, node: MinimalNodeEntity): boolean {
private isActionDisabled(action: ContentActionModel, node: NodeEntry): boolean {
if (typeof action.disabled === 'function') {
return action.disabled(node);
}
@@ -519,7 +519,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
}
}
performNavigation(node: MinimalNodeEntity): boolean {
performNavigation(node: NodeEntry): boolean {
if (this.canNavigateFolder(node)) {
this.updateFolderData(node);
return true;
@@ -527,7 +527,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
return false;
}
performCustomSourceNavigation(node: MinimalNodeEntity): boolean {
performCustomSourceNavigation(node: NodeEntry): boolean {
if (this.customResourcesService.isCustomSource(this.currentFolderId)) {
this.updateFolderData(node);
return true;
@@ -535,18 +535,18 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
return false;
}
updateFolderData(node: MinimalNodeEntity): void {
updateFolderData(node: NodeEntry): void {
this.resetNewFolderPagination();
this.currentFolderId = this.getNodeFolderDestinationId(node);
this.folderChange.emit(new NodeEntryEvent({ id: this.currentFolderId }));
this.folderChange.emit(new NodeEntryEvent(<Node> { id: this.currentFolderId }));
this.reload();
}
private getNodeFolderDestinationId(node: MinimalNodeEntity) {
private getNodeFolderDestinationId(node: NodeEntry) {
return this.isLinkFolder(node) ? node.entry.properties['cm:destination'] : node.entry.id;
}
private isLinkFolder(node: MinimalNodeEntity) {
private isLinkFolder(node: NodeEntry) {
return node.entry.nodeType === 'app:folderlink' && node.entry.properties &&
node.entry.properties['cm:destination'];
}
@@ -561,7 +561,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
* @param node Node to be the context of the execution.
* @param action Action to be executed against the context.
*/
executeContentAction(node: MinimalNodeEntity, action: ContentActionModel) {
executeContentAction(node: NodeEntry, action: ContentActionModel) {
if (node && node.entry && action) {
let handlerSub;
@@ -620,9 +620,9 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
} else {
this.documentListService
.getFolderNode(nodeId, this.includeFields)
.subscribe((node: MinimalNodeEntryEntity) => {
this.folderNode = node;
return this.loadFolderNodesByFolderNodeId(node.id, this.pagination.getValue())
.subscribe((node: NodeEntry) => {
this.folderNode = node.entry;
return this.loadFolderNodesByFolderNodeId(node.entry.id, this.pagination.getValue())
.catch((err) => this.handleError(err));
}, (err) => {
this.handleError(err);
@@ -675,13 +675,13 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
}
}
onPreviewFile(node: MinimalNodeEntity) {
onPreviewFile(node: NodeEntry) {
if (node) {
this.preview.emit(new NodeEntityEvent(node));
}
}
onNodeClick(node: MinimalNodeEntity) {
onNodeClick(node: NodeEntry) {
const domEvent = new CustomEvent('node-click', {
detail: {
sender: this,
@@ -709,7 +709,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
}
}
onNodeDblClick(node: MinimalNodeEntity) {
onNodeDblClick(node: NodeEntry) {
const domEvent = new CustomEvent('node-dblclick', {
detail: {
sender: this,
@@ -796,7 +796,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
}
}
canNavigateFolder(node: MinimalNodeEntity): boolean {
canNavigateFolder(node: NodeEntry): boolean {
let canNavigateFolder: boolean = false;
if (this.customResourcesService.isCustomSource(this.currentFolderId)) {
@@ -833,7 +833,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
this.currentFolderId = nodeId;
this.resetNewFolderPagination();
this.loadFolder();
this.folderChange.emit(new NodeEntryEvent({ id: nodeId }));
this.folderChange.emit(new NodeEntryEvent(<Node> { id: nodeId }));
}
private resetNewFolderPagination() {
@@ -848,9 +848,12 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
private handleError(err: any) {
if (err.message) {
if (JSON.parse(err.message).error.statusCode === 403) {
this.setLoadingState(false);
this.noPermission = true;
try {
if (JSON.parse(err.message).error.statusCode === 403) {
this.setLoadingState(false);
this.noPermission = true;
}
} catch (error) {
}
}
this.error.emit(err);

View File

@@ -23,7 +23,7 @@ import {
Input,
ElementRef
} from '@angular/core';
import { MinimalNodeEntity } from 'alfresco-js-api';
import { NodeEntry } from '@alfresco/js-api';
import { ShareDataRow } from '../../data/share-data-row.model';
@Component({
@@ -43,7 +43,7 @@ export class LibraryNameColumnComponent implements OnInit {
displayTooltip: string;
displayText: string;
node: MinimalNodeEntity;
node: NodeEntry;
constructor(private element: ElementRef) {}

View File

@@ -23,7 +23,7 @@ import {
ViewEncapsulation,
ElementRef
} from '@angular/core';
import { MinimalNodeEntity } from 'alfresco-js-api';
import { NodeEntry } from '@alfresco/js-api';
@Component({
selector: 'adf-name-column',
@@ -41,7 +41,7 @@ export class NameColumnComponent implements OnInit {
context: any;
displayText: string;
node: MinimalNodeEntity;
node: NodeEntry;
constructor(private element: ElementRef) {}

View File

@@ -16,28 +16,28 @@
*/
import { BaseEvent } from '@alfresco/adf-core';
import { MinimalNodeEntity, MinimalNodeEntryEntity } from 'alfresco-js-api';
import { NodeEntry, Node } from '@alfresco/js-api';
export class NodeEntityEvent extends BaseEvent<MinimalNodeEntity> {
export class NodeEntityEvent extends BaseEvent<NodeEntry> {
value: MinimalNodeEntity;
value: NodeEntry;
defaultPrevented: boolean;
constructor(entity: MinimalNodeEntity) {
constructor(nodeEntry: NodeEntry) {
super();
this.value = entity;
this.value = nodeEntry;
}
}
export class NodeEntryEvent extends BaseEvent<MinimalNodeEntryEntity> {
export class NodeEntryEvent extends BaseEvent<Node> {
value: MinimalNodeEntryEntity;
value: Node;
defaultPrevented: boolean;
constructor(entity: MinimalNodeEntryEntity) {
constructor(node: Node) {
super();
this.value = entity;
this.value = node;
}
}

View File

@@ -22,7 +22,7 @@ import {
OnInit,
Input
} from '@angular/core';
import { MinimalNodeEntity } from 'alfresco-js-api';
import { NodeEntry } from '@alfresco/js-api';
import { ShareDataRow } from '../../data/share-data-row.model';
@Component({
@@ -46,7 +46,7 @@ export class TrashcanNameColumnComponent implements OnInit {
isLibrary = false;
displayText: string;
displayTooltip: string;
node: MinimalNodeEntity;
node: NodeEntry;
ngOnInit() {
this.node = this.context.row.node;