mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-] update library to use new js-api 3.0.0 (#4097)
This commit is contained in:
committed by
Eugenio Romano
parent
2acd1b4e26
commit
3ef7d3b7ea
@@ -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-');
|
||||
|
@@ -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);
|
||||
|
@@ -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) {}
|
||||
|
||||
|
@@ -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) {}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user