fix "ng lint" command (#5012)

* update to latest js-api

* fix the "ng lint" command

* fix linting issues

* fix lint issues

* lint fixes

* code fixes

* fix html

* fix html

* update tests

* test fixes

* update tests

* fix tests and api

* fix code
This commit is contained in:
Denys Vuika
2019-08-29 16:35:30 +01:00
committed by Eugenio Romano
parent 140c64b79f
commit edc0945f39
162 changed files with 537 additions and 530 deletions

View File

@@ -24,7 +24,6 @@ import {
PresetConfig,
ContentMetadataConfig,
AspectOrientedConfig,
InDifferentConfig,
LayoutOrientedConfig
} from '../../interfaces/content-metadata.interfaces';
@@ -60,7 +59,7 @@ export class ContentMetadataConfigFactory {
} else if (this.isAspectOrientedPreset(presetConfig)) {
config = new AspectOrientedConfigService(<AspectOrientedConfig> presetConfig);
} else {
config = new IndifferentConfigService(<InDifferentConfig> presetConfig);
config = new IndifferentConfigService();
}
Object.freeze(config);

View File

@@ -21,13 +21,11 @@ import { ContentMetadataConfig, OrganisedPropertyGroup,
export class IndifferentConfigService implements ContentMetadataConfig {
constructor(config: any) {}
public isGroupAllowed(groupName: string): boolean {
isGroupAllowed(): boolean {
return true;
}
public reorganiseByConfig(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[] {
reorganiseByConfig(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[] {
return Object.keys(propertyGroups)
.map((groupName) => {
const propertyGroup = propertyGroups[groupName],
@@ -39,15 +37,15 @@ export class IndifferentConfigService implements ContentMetadataConfig {
});
}
public filterExcludedPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[] {
filterExcludedPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[] {
return propertyGroups;
}
public appendAllPreset(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[] {
appendAllPreset(): OrganisedPropertyGroup[] {
return[];
}
public isIncludeAllEnabled(): boolean {
isIncludeAllEnabled(): boolean {
return true;
}
}

View File

@@ -202,7 +202,7 @@ describe('ContentNodeDialogService', () => {
let testContentNodeSelectorComponentData;
beforeEach(() => {
spyOnDialogOpen.and.callFake((contentNodeSelectorComponent: any, config: any) => {
spyOnDialogOpen.and.callFake((_: any, config: any) => {
testContentNodeSelectorComponentData = config.data;
return { componentInstance: {} };
});

View File

@@ -21,7 +21,7 @@ import { ContentService, ThumbnailService } from '@alfresco/adf-core';
import { Subject, Observable, throwError } from 'rxjs';
import { ShareDataRow } from '../document-list/data/share-data-row.model';
import { Node, NodeEntry, SitePaging } from '@alfresco/js-api';
import { DataColumn, SitesService, TranslationService, AllowableOperationsEnum } from '@alfresco/adf-core';
import { SitesService, TranslationService, AllowableOperationsEnum } from '@alfresco/adf-core';
import { DocumentListService } from '../document-list/services/document-list.service';
import { ContentNodeSelectorComponent } from './content-node-selector.component';
import { ContentNodeSelectorComponentData } from './content-node-selector.component-data.interface';
@@ -222,7 +222,7 @@ export class ContentNodeDialogService {
this.dialog.open(ContentNodeSelectorComponent, { data, panelClass: currentPanelClass, width: chosenWidth });
}
private imageResolver(row: ShareDataRow, col: DataColumn): string | null {
private imageResolver(row: ShareDataRow): string | null {
const entry: Node = row.node.entry;
if (!this.contentService.hasAllowableOperations(entry, 'create')) {
return this.thumbnailService.getMimeTypeIcon('disable/folder');

View File

@@ -65,7 +65,7 @@ describe('LibraryDialogComponent', () => {
it('should set library id automatically on title input', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -80,7 +80,7 @@ describe('LibraryDialogComponent', () => {
it('should translate library title space character to dash for library id', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -95,7 +95,7 @@ describe('LibraryDialogComponent', () => {
it('should not change custom library id on title input', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -134,7 +134,7 @@ describe('LibraryDialogComponent', () => {
Promise.resolve()
);
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -194,10 +194,10 @@ describe('LibraryDialogComponent', () => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
const error = { message: '{ "error": { "statusCode": 409 } }' };
spyOn(alfrescoApi.sitesApi, 'createSite').and.callFake(() => {
return new Promise((resolve, reject) => reject(error));
return Promise.reject(error);
});
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -218,7 +218,7 @@ describe('LibraryDialogComponent', () => {
it('should not translate library title if value is not a valid id', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -233,7 +233,7 @@ describe('LibraryDialogComponent', () => {
it('should translate library title partially for library id', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -248,7 +248,7 @@ describe('LibraryDialogComponent', () => {
it('should translate library title multiple space character to one dash for library id', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();
@@ -263,7 +263,7 @@ describe('LibraryDialogComponent', () => {
it('should invalidate library title if is too short', fakeAsync(() => {
findSitesSpy.and.returnValue(Promise.resolve(findSitesResponse));
spyOn(alfrescoApi.sitesApi, 'getSite').and.callFake(() => {
return new Promise((resolve, reject) => reject());
return Promise.reject();
});
fixture.detectChanges();

View File

@@ -227,7 +227,7 @@ describe('ContentAction', () => {
});
it('should find document action handler via service', () => {
const handler = <ContentActionHandler> function (obj: any, target?: any) {
const handler = <ContentActionHandler> function () {
};
const action = new ContentActionComponent(actionList, documentActions, null);
spyOn(documentActions, 'getHandler').and.returnValue(handler);
@@ -235,7 +235,7 @@ describe('ContentAction', () => {
});
it('should find folder action handler via service', () => {
const handler = <ContentActionHandler> function (obj: any, target?: any) {
const handler = <ContentActionHandler> function () {
};
const action = new ContentActionComponent(actionList, null, folderActions);
spyOn(folderActions, 'getHandler').and.returnValue(handler);

View File

@@ -852,7 +852,7 @@ describe('DocumentList', () => {
let called = false;
documentList.navigationMode = DocumentListComponent.SINGLE_CLICK_NAVIGATION;
documentList.preview.subscribe((val) => called = true);
documentList.preview.subscribe(() => called = true);
documentList.onNodeClick(file);
expect(called).toBeFalsy();
@@ -1025,7 +1025,7 @@ describe('DocumentList', () => {
it('should emit node-click DOM event', (done) => {
const node = new NodeMinimalEntry();
document.addEventListener('node-click', (customEvent: CustomEvent) => {
document.addEventListener('node-click', () => {
done();
});
@@ -1043,7 +1043,7 @@ describe('DocumentList', () => {
it('should emit node-dblclick DOM event', (done) => {
const node = new NodeMinimalEntry();
document.addEventListener('node-dblclick', (customEvent: CustomEvent) => {
document.addEventListener('node-dblclick', () => {
done();
});

View File

@@ -97,7 +97,7 @@ export class ShareDataRow implements DataRow {
return ObjectUtils.getValue(this.obj.entry, key);
}
imageErrorResolver(event: Event): any {
imageErrorResolver(): any {
if (this.obj.entry.content) {
return this.thumbnailService.getMimeTypeIcon(this.obj.entry.content.mimeType);
}

View File

@@ -38,19 +38,19 @@ class FakeSanitizer extends DomSanitizer {
return value;
}
bypassSecurityTrustStyle(value: string): any {
bypassSecurityTrustStyle(): any {
return null;
}
bypassSecurityTrustScript(value: string): any {
bypassSecurityTrustScript(): any {
return null;
}
bypassSecurityTrustUrl(value: string): any {
bypassSecurityTrustUrl(): any {
return null;
}
bypassSecurityTrustResourceUrl(value: string): any {
bypassSecurityTrustResourceUrl(): any {
return null;
}
}

View File

@@ -57,7 +57,7 @@ describe('DocumentActionsService', () => {
});
it('should register custom action handler', () => {
const handler: ContentActionHandler = function (obj: any) {
const handler: ContentActionHandler = function () {
};
service.setHandler('<key>', handler);
expect(service.getHandler('<key>')).toBe(handler);
@@ -68,7 +68,7 @@ describe('DocumentActionsService', () => {
});
it('should be case insensitive for keys', () => {
const handler: ContentActionHandler = function (obj: any) {
const handler: ContentActionHandler = function () {
};
service.setHandler('<key>', handler);
expect(service.getHandler('<KEY>')).toBe(handler);
@@ -94,7 +94,7 @@ describe('DocumentActionsService', () => {
});
it('should set new handler only by key', () => {
const handler: ContentActionHandler = function (obj: any) {
const handler: ContentActionHandler = function () {
};
expect(service.setHandler(null, handler)).toBeFalsy();
expect(service.setHandler('', handler)).toBeFalsy();

View File

@@ -89,27 +89,27 @@ export class DocumentActionsService {
this.handlers['lock'] = this.lockNode.bind(this);
}
private lockNode(node: NodeEntry, target?: any, permission?: string) {
private lockNode(node: NodeEntry) {
return this.contentNodeDialogService.openLockNodeDialog(node.entry);
}
private downloadNode(obj: NodeEntry, target?: any, permission?: string) {
private downloadNode(obj: NodeEntry) {
this.nodeActionsService.downloadNode(obj);
}
private copyNode(node: NodeEntry, target?: any, permission?: string) {
private copyNode(node: NodeEntry, _target?: any, permission?: string) {
const actionObservable = this.nodeActionsService.copyContent(node.entry, permission);
this.prepareHandlers(actionObservable, 'content', 'copy', target, permission);
this.prepareHandlers(actionObservable);
return actionObservable;
}
private moveNode(node: NodeEntry, target?: any, permission?: string) {
private moveNode(node: NodeEntry, _target?: any, permission?: string) {
const actionObservable = this.nodeActionsService.moveContent(node.entry, permission);
this.prepareHandlers(actionObservable, 'content', 'move', target, permission);
this.prepareHandlers(actionObservable);
return actionObservable;
}
private prepareHandlers(actionObservable, type: string, action: string, target?: any, permission?: string): void {
private prepareHandlers(actionObservable): void {
actionObservable.subscribe(
(fileOperationMessage) => {
this.success.next(fileOperationMessage);
@@ -118,7 +118,7 @@ export class DocumentActionsService {
);
}
private deleteNode(node: NodeEntry, target?: any, permission?: string): Observable<any> {
private deleteNode(node: NodeEntry, _target?: any, permission?: string): Observable<any> {
let handlerObservable;
if (this.canExecuteAction(node)) {

View File

@@ -92,17 +92,17 @@ export class FolderActionsService {
private copyNode(nodeEntry: NodeEntry, target?: any, permission?: string) {
const actionObservable = this.nodeActionsService.copyFolder(nodeEntry.entry, permission);
this.prepareHandlers(actionObservable, 'folder', 'copy', target, permission);
this.prepareHandlers(actionObservable, target);
return actionObservable;
}
private moveNode(nodeEntry: NodeEntry, target?: any, permission?: string) {
const actionObservable = this.nodeActionsService.moveFolder(nodeEntry.entry, permission);
this.prepareHandlers(actionObservable, 'folder', 'move', target, permission);
this.prepareHandlers(actionObservable, target);
return actionObservable;
}
private prepareHandlers(actionObservable, type: string, action: string, target?: any, permission?: string): void {
private prepareHandlers(actionObservable, target?: any): void {
actionObservable.subscribe(
(fileOperationMessage) => {
if (target && typeof target.reload === 'function') {

View File

@@ -104,7 +104,7 @@ describe('NodeActionsService', () => {
spyOn(documentListService, 'copyNode').and.returnValue(throwError('FAKE-KO'));
spyOn(contentDialogService, 'openCopyMoveDialog').and.returnValue(of([fakeNode]));
service.copyFolder(fakeNode, '!allowed').subscribe((value) => {
service.copyFolder(fakeNode, '!allowed').subscribe(() => {
}, (error) => {
expect(error).toBe('FAKE-KO');
});

View File

@@ -152,7 +152,7 @@ export let errorJson = {
this.message = event;
}
elementClicked(event: any) {
elementClicked() {
this.message = 'element clicked';
}

View File

@@ -57,7 +57,7 @@ export let mockError = {
export let searchMockApi = {
core: {
queriesApi: {
findNodes: (term, opts) => Promise.resolve(fakeSearch)
findNodes: () => Promise.resolve(fakeSearch)
}
}
};

View File

@@ -57,7 +57,7 @@ describe('InheritPermissionDirective', () => {
it('should be able to add inherited permission', async(() => {
spyOn(nodeService, 'getNode').and.returnValue(of(fakeNodeNoInherit));
spyOn(nodeService, 'updateNode').and.callFake((nodeId, nodeBody) => {
spyOn(nodeService, 'updateNode').and.callFake((_, nodeBody) => {
if (nodeBody.permissions.isInheritanceEnabled) {
return of(fakeNodeWithInherit);
} else {
@@ -77,7 +77,7 @@ describe('InheritPermissionDirective', () => {
it('should be able to remove inherited permission', async(() => {
spyOn(nodeService, 'getNode').and.returnValue(of(fakeNodeWithInherit));
spyOn(nodeService, 'updateNode').and.callFake((nodeId, nodeBody) => {
spyOn(nodeService, 'updateNode').and.callFake((_, nodeBody) => {
if (nodeBody.permissions.isInheritanceEnabled) {
return of(fakeNodeWithInherit);
} else {

View File

@@ -110,7 +110,7 @@ describe('NodePermissionDialogService', () => {
it('should return the updated node', (done) => {
spyOn(contentService, 'getNode').and.returnValue(of(fakeForbiddenNode));
service.updateNodePermissionByDialog('fake-node-id', 'fake-title').subscribe((node) => {
service.updateNodePermissionByDialog('fake-node-id', 'fake-title').subscribe(() => {
throwError('This call should fail');
},
(error) => {

View File

@@ -51,7 +51,7 @@ describe('NodePermissionService', () => {
TestBed.resetTestingModule();
});
function returnUpdatedNode(nodeId, nodeBody) {
function returnUpdatedNode(_, nodeBody) {
const fakeNode: Node = new Node({});
fakeNode.id = 'fake-updated-node';
fakeNode.permissions = nodeBody.permissions;
@@ -185,7 +185,7 @@ describe('NodePermissionService', () => {
}];
service.updateLocallySetPermissions(fakeNodeCopy, fakeDuplicateAuthority, ['Contributor'])
.subscribe((node: Node) => {
.subscribe(() => {
}, (errorMessage) => {
expect(errorMessage).not.toBeNull();

View File

@@ -514,7 +514,7 @@ describe('SearchControlComponent', () => {
it('should set deactivate the search after element is clicked', (done) => {
spyOn(component, 'isSearchBarActive').and.returnValue(true);
searchServiceSpy.and.returnValue(of(JSON.parse(JSON.stringify(results))));
const clickDisposable = component.optionClicked.subscribe((item) => {
const clickDisposable = component.optionClicked.subscribe(() => {
expect(component.subscriptAnimationState.value).toBe('inactive');
clickDisposable.unsubscribe();
done();
@@ -533,7 +533,7 @@ describe('SearchControlComponent', () => {
it('should NOT reset the search term after element is clicked', (done) => {
spyOn(component, 'isSearchBarActive').and.returnValue(true);
searchServiceSpy.and.returnValue(of(JSON.parse(JSON.stringify(results))));
const clickDisposable = component.optionClicked.subscribe((item) => {
const clickDisposable = component.optionClicked.subscribe(() => {
expect(component.searchTerm).not.toBeFalsy();
expect(component.searchTerm).toBe('TEST');
clickDisposable.unsubscribe();

View File

@@ -178,14 +178,14 @@ export class SearchTriggerDirective implements ControlValueAccessor, OnDestroy {
let isPanelOption: boolean = false;
if ( event ) {
const clickTarget = event.target as HTMLElement;
isPanelOption = !this.isNoResultOption(event) &&
isPanelOption = !this.isNoResultOption() &&
!!this.searchPanel.panel &&
!!this.searchPanel.panel.nativeElement.contains(clickTarget);
}
return isPanelOption;
}
private isNoResultOption(event: MouseEvent) {
private isNoResultOption() {
return this.searchPanel.results.list ? this.searchPanel.results.list.entries.length === 0 : true;
}

View File

@@ -218,7 +218,7 @@ describe('TreeViewComponent', () => {
beforeEach(async(() => {
fixture = TestBed.createComponent(TreeViewComponent);
treeService = TestBed.get(TreeViewService);
spyOn(treeService, 'getTreeNodes').and.callFake((nodeId) => throwError('Invalid Node Id'));
spyOn(treeService, 'getTreeNodes').and.callFake(() => throwError('Invalid Node Id'));
fixture.componentInstance.nodeId = 'Poopoovic';
}));

View File

@@ -67,7 +67,7 @@ export class TreeViewComponent implements OnChanges {
isExpandable = (node: TreeBaseNode) => node.expandable;
hasChild = (level: number, nodeData: TreeBaseNode) => nodeData.expandable;
hasChild = (_: number, nodeData: TreeBaseNode) => nodeData.expandable;
private loadTreeNode() {
this.treeViewService.getTreeNodes(this.nodeId)

View File

@@ -18,7 +18,7 @@
import { Component, Input, ViewEncapsulation, ViewChild, Output, EventEmitter } from '@angular/core';
import { Node } from '@alfresco/js-api';
import { VersionListComponent } from './version-list.component';
import { AppConfigService, ContentService, AlfrescoApiService } from '@alfresco/adf-core';
import { ContentService, AlfrescoApiService } from '@alfresco/adf-core';
import { trigger, state, style, animate, transition } from '@angular/animations';
@Component({
@@ -68,8 +68,7 @@ export class VersionManagerComponent {
uploadState: string = 'close';
constructor(config: AppConfigService,
private contentService: ContentService,
constructor(private contentService: ContentService,
private alfrescoApiService: AlfrescoApiService) {
}

View File

@@ -81,7 +81,7 @@ describe('WebscriptComponent', () => {
it('url should be the one configured by the input param', (done) => {
component.scriptPath = 'sample/folder/Company%20Home';
component.ngOnChanges(null).then(() => {
component.ngOnChanges().then(() => {
fixture.detectChanges();
expect(jasmine.Ajax.requests.mostRecent().url).toBe('http://localhost:9876/ecm/alfresco/service/sample/folder/Company%20Home');
done();
@@ -98,7 +98,7 @@ describe('WebscriptComponent', () => {
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'TEXT';
component.ngOnChanges(null).then(() => {
component.ngOnChanges().then(() => {
fixture.detectChanges();
expect(element.querySelector('#webscript-data-TEXT').innerHTML)
.toBe('text test');
@@ -116,7 +116,7 @@ describe('WebscriptComponent', () => {
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'JSON';
component.ngOnChanges(null).then(() => {
component.ngOnChanges().then(() => {
fixture.detectChanges();
expect(JSON.parse(element.querySelector('#webscript-data-JSON').innerHTML)[0].name).toBe('Name 1');
expect(JSON.parse(element.querySelector('#webscript-data-JSON').innerHTML)[1].name).toBe('Name 2');
@@ -138,7 +138,7 @@ describe('WebscriptComponent', () => {
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'DATATABLE';
component.ngOnChanges(null).then(() => {
component.ngOnChanges().then(() => {
fixture.detectChanges();
expect(element.querySelector('#webscript-datatable-wrapper').innerHTML).toBeDefined();
done();
@@ -176,7 +176,7 @@ describe('WebscriptComponent', () => {
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'DATATABLE';
component.ngOnChanges(null).then(() => {
component.ngOnChanges().then(() => {
fixture.detectChanges();
expect(element.querySelector('#webscript-datatable-wrapper').innerHTML).toBeDefined();
done();

View File

@@ -85,7 +85,7 @@ export class WebscriptComponent implements OnChanges {
private logService: LogService) {
}
ngOnChanges(changes) {
ngOnChanges() {
if (this.showData) {
this.clean();
}