[ADF-4857] Be able to run ng build content-service (#5183)

* Be able to build conten with ng build content-service

* fix tslint

* The translate module is necessary

* Rollback the build commands

* Rollback

* Remove wrong imports

* Trigger the build
This commit is contained in:
Maurizio Vitale
2019-10-24 19:23:30 +01:00
committed by Denys Vuika
parent 9fa1db063a
commit 6331979baa
401 changed files with 88 additions and 99 deletions

View File

@@ -0,0 +1,37 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MaterialModule } from '../material.module';
import { NodeLockDirective } from './node-lock.directive';
@NgModule({
imports: [
CommonModule,
MaterialModule
],
declarations: [
NodeLockDirective
],
exports: [
NodeLockDirective
]
})
export class ContentDirectiveModule {
}

View File

@@ -0,0 +1,18 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export * from './public-api';

View File

@@ -0,0 +1,98 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { TestBed, ComponentFixture, fakeAsync } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { Component, DebugElement } from '@angular/core';
import { NodeLockDirective } from './node-lock.directive';
import { Node } from '@alfresco/js-api';
import { NodeActionsService } from '../document-list/services/node-actions.service';
import { ContentNodeDialogService } from '../content-node-selector/content-node-dialog.service';
import { DocumentListService } from '../document-list/services/document-list.service';
import { CoreModule, setupTestBed } from '@alfresco/adf-core';
const fakeNode: Node = <Node> {
id: 'fake',
isFile: true,
isLocked: false
};
@Component({
template: '<div [adf-node-lock]="node"></div>'
})
class TestComponent {
node = null;
}
describe('NodeLock Directive', () => {
let component: TestComponent;
let fixture: ComponentFixture<TestComponent>;
let element: DebugElement;
let contentNodeDialogService: ContentNodeDialogService;
setupTestBed({
imports: [
CoreModule.forRoot()
],
providers: [
NodeActionsService,
ContentNodeDialogService,
DocumentListService
],
declarations: [
TestComponent,
NodeLockDirective
]
});
beforeEach(() => {
fixture = TestBed.createComponent(TestComponent);
component = fixture.componentInstance;
element = fixture.debugElement.query(By.directive(NodeLockDirective));
contentNodeDialogService = TestBed.get(ContentNodeDialogService);
});
it('should call openLockNodeDialog method on click', () => {
spyOn(contentNodeDialogService, 'openLockNodeDialog');
component.node = fakeNode;
fixture.detectChanges();
element = fixture.debugElement.query(By.directive(NodeLockDirective));
element.triggerEventHandler('click', {
preventDefault: () => {}
});
expect(contentNodeDialogService.openLockNodeDialog).toHaveBeenCalledWith(fakeNode);
});
it('should disable the button if node is a folder', fakeAsync(() => {
component.node = { isFile: false, isFolder: true };
fixture.detectChanges();
expect(element.nativeElement.disabled).toEqual(true);
}));
it('should enable the button if node is a file', fakeAsync(() => {
component.node = { isFile: true, isFolder: false };
fixture.detectChanges();
expect(element.nativeElement.disabled).toEqual(false);
}));
});

View File

@@ -0,0 +1,51 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* tslint:disable:no-input-rename */
import { Directive, ElementRef, Renderer2, HostListener, Input, AfterViewInit } from '@angular/core';
import { Node } from '@alfresco/js-api';
import { AllowableOperationsEnum, ContentService } from '@alfresco/adf-core';
import { ContentNodeDialogService } from '../content-node-selector/content-node-dialog.service';
@Directive({
selector: '[adf-node-lock]'
})
export class NodeLockDirective implements AfterViewInit {
/** Node to lock/unlock. */
@Input('adf-node-lock')
node: Node;
@HostListener('click', [ '$event' ])
onClick(event) {
event.preventDefault();
this.contentNodeDialogService.openLockNodeDialog(this.node);
}
constructor(
public element: ElementRef,
private renderer: Renderer2,
private contentService: ContentService,
private contentNodeDialogService: ContentNodeDialogService
) {}
ngAfterViewInit() {
const hasAllowableOperations = this.contentService.hasAllowableOperations(this.node, AllowableOperationsEnum.LOCK);
this.renderer.setProperty(this.element.nativeElement, 'disabled', !hasAllowableOperations);
}
}

View File

@@ -0,0 +1,18 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export * from './content-directive.module';