[ADF-864] codelyzer form component (#2076)

This commit is contained in:
Eugenio Romano
2017-07-12 20:53:07 +01:00
parent 6f8e984d75
commit 8cdb276dc4
133 changed files with 1078 additions and 850 deletions

View File

@@ -18,11 +18,11 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { import {
AlfrescoTranslationService,
AlfrescoAuthenticationService, AlfrescoAuthenticationService,
AlfrescoSettingsService, AlfrescoSettingsService,
StorageService, AlfrescoTranslationService,
LogService LogService,
StorageService
} from 'ng2-alfresco-core'; } from 'ng2-alfresco-core';
declare var document: any; declare var document: any;

View File

@@ -18,54 +18,54 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser'; import { BrowserModule } from '@angular/platform-browser';
import { CoreModule, AppConfigService } from 'ng2-alfresco-core';
import { SearchModule } from 'ng2-alfresco-search';
import { LoginModule } from 'ng2-alfresco-login';
import { DataTableModule } from 'ng2-alfresco-datatable';
import { DocumentListModule } from 'ng2-alfresco-documentlist';
import { UploadModule } from 'ng2-alfresco-upload';
import { TagModule } from 'ng2-alfresco-tag';
import { SocialModule } from 'ng2-alfresco-social';
import { WebScriptModule } from 'ng2-alfresco-webscript';
import { ViewerModule } from 'ng2-alfresco-viewer';
import { ActivitiFormModule } from 'ng2-activiti-form';
import { ActivitiTaskListModule } from 'ng2-activiti-tasklist';
import { ActivitiProcessListModule } from 'ng2-activiti-processlist';
import { UserInfoComponentModule } from 'ng2-alfresco-userinfo';
import { AnalyticsModule } from 'ng2-activiti-analytics'; import { AnalyticsModule } from 'ng2-activiti-analytics';
import { DiagramsModule } from 'ng2-activiti-diagrams'; import { DiagramsModule } from 'ng2-activiti-diagrams';
import { ActivitiFormModule } from 'ng2-activiti-form';
import { ActivitiProcessListModule } from 'ng2-activiti-processlist';
import { ActivitiTaskListModule } from 'ng2-activiti-tasklist';
import { AppConfigService, CoreModule } from 'ng2-alfresco-core';
import { DataTableModule } from 'ng2-alfresco-datatable';
import { DocumentListModule } from 'ng2-alfresco-documentlist';
import { LoginModule } from 'ng2-alfresco-login';
import { SearchModule } from 'ng2-alfresco-search';
import { SocialModule } from 'ng2-alfresco-social';
import { TagModule } from 'ng2-alfresco-tag';
import { UploadModule } from 'ng2-alfresco-upload';
import { UserInfoComponentModule } from 'ng2-alfresco-userinfo';
import { ViewerModule } from 'ng2-alfresco-viewer';
import { WebScriptModule } from 'ng2-alfresco-webscript';
import { MaterialModule } from './material.module'; import { Editor3DModule } from 'ng2-3d-editor';
import { ChartsModule } from 'ng2-charts';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { routing } from './app.routes'; import { routing } from './app.routes';
import { CustomEditorsModule } from './components/activiti/custom-editor/custom-editor.component'; import { CustomEditorsModule } from './components/activiti/custom-editor/custom-editor.component';
import { Editor3DModule } from 'ng2-3d-editor'; import { CreateFolderDialogComponent } from './dialogs/create-folder.dialog';
import { ChartsModule } from 'ng2-charts'; import { MaterialModule } from './material.module';
import { CreateFolderDialog } from './dialogs/create-folder.dialog';
import { DebugAppConfigService } from './services/debug-app-config.service'; import { DebugAppConfigService } from './services/debug-app-config.service';
import { FormListDemoComponent } from './components/form/form-list-demo.component'; import { FormListDemoComponent } from './components/form/form-list-demo.component';
import { import {
HomeComponent, AboutComponent,
DataTableDemoComponent, ActivitiAppsViewComponent,
SearchComponent,
SearchBarComponent,
LoginDemoComponent,
ActivitiDemoComponent, ActivitiDemoComponent,
ActivitiTaskAttachmentsComponent,
ActivitiProcessAttachmentsComponent, ActivitiProcessAttachmentsComponent,
ActivitiShowDiagramComponent, ActivitiShowDiagramComponent,
ActivitiAppsView, ActivitiTaskAttachmentsComponent,
FormViewer, DataTableDemoComponent,
WebscriptComponent,
TagComponent,
SocialComponent,
AboutComponent,
FilesComponent, FilesComponent,
FormNodeViewer, FormDemoComponent,
FormNodeViewerComponent,
FormViewerComponent,
HomeComponent,
LoginDemoComponent,
SearchBarComponent,
SearchComponent,
SettingsComponent, SettingsComponent,
FormDemoComponent SocialComponent,
TagComponent,
WebscriptComponent
} from './components/index'; } from './components/index';
let appConfigFile = 'app.config-dev.json'; let appConfigFile = 'app.config-dev.json';
@@ -111,15 +111,15 @@ if (process.env.ENV === 'production') {
ActivitiTaskAttachmentsComponent, ActivitiTaskAttachmentsComponent,
ActivitiProcessAttachmentsComponent, ActivitiProcessAttachmentsComponent,
ActivitiShowDiagramComponent, ActivitiShowDiagramComponent,
ActivitiAppsView, ActivitiAppsViewComponent,
FormViewer, FormViewerComponent,
WebscriptComponent, WebscriptComponent,
TagComponent, TagComponent,
SocialComponent, SocialComponent,
AboutComponent, AboutComponent,
FilesComponent, FilesComponent,
FormNodeViewer, FormNodeViewerComponent,
CreateFolderDialog, CreateFolderDialogComponent,
SettingsComponent, SettingsComponent,
FormDemoComponent, FormDemoComponent,
FormListDemoComponent FormListDemoComponent
@@ -129,7 +129,7 @@ if (process.env.ENV === 'production') {
], ],
bootstrap: [ AppComponent ], bootstrap: [ AppComponent ],
entryComponents: [ entryComponents: [
CreateFolderDialog CreateFolderDialogComponent
] ]
}) })
export class AppModule { } export class AppModule { }

View File

@@ -16,26 +16,26 @@
*/ */
import { ModuleWithProviders } from '@angular/core'; import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import { AuthGuard, AuthGuardEcm, AuthGuardBpm } from 'ng2-alfresco-core'; import { AuthGuard, AuthGuardBpm, AuthGuardEcm } from 'ng2-alfresco-core';
import { import {
HomeComponent, AboutComponent,
FilesComponent, ActivitiAppsViewComponent,
DataTableDemoComponent,
SearchComponent,
LoginDemoComponent,
ActivitiDemoComponent, ActivitiDemoComponent,
ActivitiShowDiagramComponent, ActivitiShowDiagramComponent,
ActivitiAppsView, DataTableDemoComponent,
WebscriptComponent, FilesComponent,
TagComponent, FormDemoComponent,
SocialComponent, FormNodeViewerComponent,
AboutComponent, FormViewerComponent,
FormViewer, HomeComponent,
FormNodeViewer, LoginDemoComponent,
SearchComponent,
SettingsComponent, SettingsComponent,
FormDemoComponent SocialComponent,
TagComponent,
WebscriptComponent
} from './components/index'; } from './components/index';
import { UploadButtonComponent } from 'ng2-alfresco-upload'; import { UploadButtonComponent } from 'ng2-alfresco-upload';
@@ -80,12 +80,12 @@ export const appRoutes: Routes = [
}, },
{ {
path: 'activiti', path: 'activiti',
component: ActivitiAppsView, component: ActivitiAppsViewComponent,
canActivate: [AuthGuardBpm] canActivate: [AuthGuardBpm]
}, },
{ {
path: 'activiti/apps', path: 'activiti/apps',
component: ActivitiAppsView, component: ActivitiAppsViewComponent,
canActivate: [AuthGuardBpm] canActivate: [AuthGuardBpm]
}, },
{ {
@@ -107,13 +107,13 @@ export const appRoutes: Routes = [
// TODO: check if needed // TODO: check if needed
{ {
path: 'activiti/tasks/:id', path: 'activiti/tasks/:id',
component: FormViewer, component: FormViewerComponent,
canActivate: [AuthGuardBpm] canActivate: [AuthGuardBpm]
}, },
// TODO: check if needed // TODO: check if needed
{ {
path: 'activiti/tasksnode/:id', path: 'activiti/tasksnode/:id',
component: FormNodeViewer, component: FormNodeViewerComponent,
canActivate: [AuthGuardBpm] canActivate: [AuthGuardBpm]
}, },
{ {

View File

@@ -17,8 +17,8 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http'; import { Http } from '@angular/http';
import { AppConfigService, LogService } from 'ng2-alfresco-core';
import { ObjectDataTableAdapter } from 'ng2-alfresco-datatable'; import { ObjectDataTableAdapter } from 'ng2-alfresco-datatable';
import { LogService, AppConfigService } from 'ng2-alfresco-core';
@Component({ @Component({
selector: 'about-page', selector: 'about-page',

View File

@@ -15,33 +15,33 @@
* limitations under the License. * limitations under the License.
*/ */
import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core'; import { AfterViewInit, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { AnalyticsReportListComponent } from 'ng2-activiti-analytics';
import { FormEvent, FormFieldEvent, FormRenderingService, FormService } from 'ng2-activiti-form';
import { import {
ActivitiApps, ActivitiProcessFiltersComponent,
ActivitiFilters, ActivitiProcessInstanceDetailsComponent,
ActivitiTaskList,
ActivitiTaskDetails,
FilterRepresentationModel,
TaskDetailsEvent
} from 'ng2-activiti-tasklist';
import {
ActivitiProcessFilters,
ActivitiProcessInstanceDetails,
ActivitiProcessInstanceListComponent, ActivitiProcessInstanceListComponent,
ActivitiStartProcessInstance, ActivitiStartProcessInstanceComponent,
FilterProcessRepresentationModel, FilterProcessRepresentationModel,
ProcessInstance ProcessInstance
} from 'ng2-activiti-processlist'; } from 'ng2-activiti-processlist';
import { AnalyticsReportListComponent } from 'ng2-activiti-analytics';
import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from 'rxjs/Rx';
import { import {
ObjectDataTableAdapter, ActivitiAppsComponent,
ObjectDataRow, ActivitiFiltersComponent,
DataSorting ActivitiTaskDetailsComponent,
} from 'ng2-alfresco-datatable'; ActivitiTaskListComponent,
FilterRepresentationModel,
TaskDetailsEvent
} from 'ng2-activiti-tasklist';
import { AlfrescoApiService } from 'ng2-alfresco-core'; import { AlfrescoApiService } from 'ng2-alfresco-core';
import { FormService, FormRenderingService, FormEvent, FormFieldEvent } from 'ng2-activiti-form'; import {
DataSorting,
ObjectDataRow,
ObjectDataTableAdapter
} from 'ng2-alfresco-datatable';
import { Subscription } from 'rxjs/Rx';
import { /*CustomEditorComponent*/ CustomStencil01 } from './custom-editor/custom-editor.component'; import { /*CustomEditorComponent*/ CustomStencil01 } from './custom-editor/custom-editor.component';
declare var componentHandler; declare var componentHandler;
@@ -53,28 +53,28 @@ const currentProcessIdNew = '__NEW__';
templateUrl: './activiti-demo.component.html', templateUrl: './activiti-demo.component.html',
styleUrls: ['./activiti-demo.component.css'] styleUrls: ['./activiti-demo.component.css']
}) })
export class ActivitiDemoComponent implements AfterViewInit { export class ActivitiDemoComponent implements AfterViewInit, OnDestroy, OnInit {
@ViewChild(ActivitiFilters) @ViewChild(ActivitiFiltersComponent)
activitifilter: ActivitiFilters; activitifilter: ActivitiFiltersComponent;
@ViewChild(ActivitiTaskList) @ViewChild(ActivitiTaskListComponent)
taskList: ActivitiTaskList; taskList: ActivitiTaskListComponent;
@ViewChild(ActivitiProcessFilters) @ViewChild(ActivitiProcessFiltersComponent)
activitiprocessfilter: ActivitiProcessFilters; activitiprocessfilter: ActivitiProcessFiltersComponent;
@ViewChild(ActivitiProcessInstanceListComponent) @ViewChild(ActivitiProcessInstanceListComponent)
processList: ActivitiProcessInstanceListComponent; processList: ActivitiProcessInstanceListComponent;
@ViewChild(ActivitiProcessInstanceDetails) @ViewChild(ActivitiProcessInstanceDetailsComponent)
activitiprocessdetails: ActivitiProcessInstanceDetails; activitiprocessdetails: ActivitiProcessInstanceDetailsComponent;
@ViewChild(ActivitiTaskDetails) @ViewChild(ActivitiTaskDetailsComponent)
activitidetails: ActivitiTaskDetails; activitidetails: ActivitiTaskDetailsComponent;
@ViewChild(ActivitiStartProcessInstance) @ViewChild(ActivitiStartProcessInstanceComponent)
activitiStartProcess: ActivitiStartProcessInstance; activitiStartProcess: ActivitiStartProcessInstanceComponent;
@ViewChild(AnalyticsReportListComponent) @ViewChild(AnalyticsReportListComponent)
analyticsreportlist: AnalyticsReportListComponent; analyticsreportlist: AnalyticsReportListComponent;
@@ -159,7 +159,7 @@ export class ActivitiDemoComponent implements AfterViewInit {
this.processFilter = null; this.processFilter = null;
this.currentProcessInstanceId = null; this.currentProcessInstanceId = null;
}); });
this.layoutType = ActivitiApps.LAYOUT_GRID; this.layoutType = ActivitiAppsComponent.LAYOUT_GRID;
} }

View File

@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, ViewChild, Input } from '@angular/core'; import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { ActivitiProcessAttachmentListComponent, ProcessUploadService } from 'ng2-activiti-processlist'; import { ActivitiProcessAttachmentListComponent, ProcessUploadService } from 'ng2-activiti-processlist';
import { UploadService } from 'ng2-alfresco-core'; import { UploadService } from 'ng2-alfresco-core';
@@ -28,7 +28,7 @@ import { UploadService } from 'ng2-alfresco-core';
] ]
}) })
export class ActivitiProcessAttachmentsComponent { export class ActivitiProcessAttachmentsComponent implements OnInit {
@Input() @Input()
processId: string; processId: string;

View File

@@ -15,17 +15,17 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component } from '@angular/core';
import { Subscription } from 'rxjs/Rx';
import { ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { Component, OnDestroy } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs/Rx';
@Component({ @Component({
selector: 'activiti-show-diagram', selector: 'activiti-show-diagram',
templateUrl: './activiti-show-diagram.component.html', templateUrl: './activiti-show-diagram.component.html',
styleUrls: ['./activiti-show-diagram.component.css'] styleUrls: ['./activiti-show-diagram.component.css']
}) })
export class ActivitiShowDiagramComponent { export class ActivitiShowDiagramComponent implements OnDestroy {
sub: Subscription; sub: Subscription;
processDefinitionId: string; processDefinitionId: string;

View File

@@ -15,8 +15,8 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, ViewChild, Input } from '@angular/core'; import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { TaskAttachmentListComponent, ProcessUploadService } from 'ng2-activiti-tasklist'; import { ProcessUploadService, TaskAttachmentListComponent } from 'ng2-activiti-tasklist';
import { UploadService } from 'ng2-alfresco-core'; import { UploadService } from 'ng2-alfresco-core';
@Component({ @Component({
@@ -28,7 +28,7 @@ import { UploadService } from 'ng2-alfresco-core';
] ]
}) })
export class ActivitiTaskAttachmentsComponent { export class ActivitiTaskAttachmentsComponent implements OnInit {
@Input() @Input()
taskId: string; taskId: string;

View File

@@ -16,7 +16,7 @@
*/ */
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { AppDefinitionRepresentationModel } from 'ng2-activiti-tasklist'; import { AppDefinitionRepresentationModel } from 'ng2-activiti-tasklist';
@Component({ @Component({
@@ -25,7 +25,7 @@ import { AppDefinitionRepresentationModel } from 'ng2-activiti-tasklist';
<activiti-apps (appClick)="onAppClicked($event)"></activiti-apps> <activiti-apps (appClick)="onAppClicked($event)"></activiti-apps>
` `
}) })
export class ActivitiAppsView { export class ActivitiAppsViewComponent {
constructor(private router: Router, private route: ActivatedRoute) { constructor(private router: Router, private route: ActivatedRoute) {
} }

View File

@@ -15,7 +15,9 @@
* limitations under the License. * limitations under the License.
*/ */
import { NgModule, Component } from '@angular/core'; /* tslint:disable */
import { Component, NgModule } from '@angular/core';
import { WidgetComponent } from 'ng2-activiti-form'; import { WidgetComponent } from 'ng2-activiti-form';
@Component({ @Component({

View File

@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, OnInit, OnDestroy, AfterViewChecked } from '@angular/core'; import { AfterViewChecked, Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs/Rx'; import { Subscription } from 'rxjs/Rx';
@@ -26,7 +26,7 @@ declare var componentHandler;
templateUrl: './form-node-viewer.component.html', templateUrl: './form-node-viewer.component.html',
styleUrls: ['./form-node-viewer.component.css'] styleUrls: ['./form-node-viewer.component.css']
}) })
export class FormNodeViewer implements OnInit, OnDestroy, AfterViewChecked { export class FormNodeViewerComponent implements OnInit, OnDestroy, AfterViewChecked {
nodeId: string; nodeId: string;

View File

@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, OnInit, OnDestroy, AfterViewChecked } from '@angular/core'; import { AfterViewChecked, Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs/Rx'; import { Subscription } from 'rxjs/Rx';
@@ -26,7 +26,7 @@ declare var componentHandler;
templateUrl: './form-viewer.component.html', templateUrl: './form-viewer.component.html',
styleUrls: ['./form-viewer.component.css'] styleUrls: ['./form-viewer.component.css']
}) })
export class FormViewer implements OnInit, OnDestroy, AfterViewChecked { export class FormViewerComponent implements OnInit, OnDestroy, AfterViewChecked {
taskId: string; taskId: string;

View File

@@ -16,8 +16,8 @@
*/ */
import { Component, Input } from '@angular/core'; import { Component, Input } from '@angular/core';
import { ObjectDataTableAdapter, DataSorting, ObjectDataRow, ObjectDataColumn, DataCellEvent, DataRowActionEvent } from 'ng2-alfresco-datatable';
import { AlfrescoApiService } from 'ng2-alfresco-core'; import { AlfrescoApiService } from 'ng2-alfresco-core';
import { DataCellEvent, DataRowActionEvent, DataSorting, ObjectDataColumn, ObjectDataRow, ObjectDataTableAdapter } from 'ng2-alfresco-datatable';
import { Observable } from 'rxjs/Rx'; import { Observable } from 'rxjs/Rx';
@Component({ @Component({

View File

@@ -15,13 +15,13 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, Input, OnInit, Optional, ViewChild, ChangeDetectorRef } from '@angular/core'; import { ChangeDetectorRef, Component, Input, OnInit, Optional, ViewChild } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { MdDialog } from '@angular/material'; import { MdDialog } from '@angular/material';
import { AlfrescoContentService, FolderCreatedEvent, NotificationService, FileUploadCompleteEvent, UploadService } from 'ng2-alfresco-core'; import { ActivatedRoute, Params } from '@angular/router';
import { AlfrescoContentService, FileUploadCompleteEvent, FolderCreatedEvent, NotificationService, UploadService } from 'ng2-alfresco-core';
import { DocumentListComponent } from 'ng2-alfresco-documentlist'; import { DocumentListComponent } from 'ng2-alfresco-documentlist';
import { CreateFolderDialog } from '../../dialogs/create-folder.dialog'; import { CreateFolderDialogComponent } from '../../dialogs/create-folder.dialog';
import { CreateFolderDialog } from '../../dialogs/create-folder.dialog'; import { CreateFolderDialog } from '../../dialogs/create-folder.dialog';
@@ -133,7 +133,7 @@ export class FilesComponent implements OnInit {
} }
onCreateFolderClicked(event: Event) { onCreateFolderClicked(event: Event) {
let dialogRef = this.dialog.open(CreateFolderDialog); let dialogRef = this.dialog.open(CreateFolderDialogComponent);
dialogRef.afterClosed().subscribe(folderName => { dialogRef.afterClosed().subscribe(folderName => {
if (folderName) { if (folderName) {
this.contentService.createFolder('', folderName, this.documentList.currentFolderId).subscribe( this.contentService.createFolder('', folderName, this.documentList.currentFolderId).subscribe(

View File

@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, ViewChild } from '@angular/core'; import { AfterViewInit, Component, ViewChild } from '@angular/core';
import { FormModel, FormService } from 'ng2-activiti-form'; import { FormModel, FormService } from 'ng2-activiti-form';
import { ActivitiForm } from 'ng2-activiti-form'; import { ActivitiForm } from 'ng2-activiti-form';
@@ -44,7 +44,7 @@ declare var componentHandler;
} }
`] `]
}) })
export class FormListDemoComponent { export class FormListDemoComponent implements AfterViewInit {
@ViewChild(ActivitiForm) @ViewChild(ActivitiForm)
activitiForm: ActivitiForm; activitiForm: ActivitiForm;

View File

@@ -24,13 +24,13 @@ export { ActivitiDemoComponent } from './activiti/activiti-demo.component';
export { ActivitiTaskAttachmentsComponent } from './activiti/activiti-task-attachments.component'; export { ActivitiTaskAttachmentsComponent } from './activiti/activiti-task-attachments.component';
export { ActivitiProcessAttachmentsComponent } from './activiti/activiti-process-attachments.component'; export { ActivitiProcessAttachmentsComponent } from './activiti/activiti-process-attachments.component';
export { ActivitiShowDiagramComponent } from './activiti/activiti-show-diagram.component'; export { ActivitiShowDiagramComponent } from './activiti/activiti-show-diagram.component';
export { FormViewer } from './activiti/form-viewer.component'; export { FormViewerComponent } from './activiti/form-viewer.component';
export { WebscriptComponent } from './webscript/webscript.component'; export { WebscriptComponent } from './webscript/webscript.component';
export { TagComponent } from './tag/tag.component'; export { TagComponent } from './tag/tag.component';
export { SocialComponent } from './social/social.component'; export { SocialComponent } from './social/social.component';
export { AboutComponent } from './about/about.component'; export { AboutComponent } from './about/about.component';
export { FilesComponent } from './files/files.component'; export { FilesComponent } from './files/files.component';
export { FormNodeViewer } from './activiti/form-node-viewer.component'; export { FormNodeViewerComponent } from './activiti/form-node-viewer.component';
export { ActivitiAppsView } from './activiti/apps.view'; export { ActivitiAppsViewComponent } from './activiti/apps.view';
export { SettingsComponent } from './settings/settings.component'; export { SettingsComponent } from './settings/settings.component';
export { FormDemoComponent } from './form/form-demo.component'; export { FormDemoComponent } from './form/form-demo.component';

View File

@@ -15,10 +15,10 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, ViewChild, OnInit } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { Validators } from '@angular/forms'; import { Validators } from '@angular/forms';
import { StorageService, LogService } from 'ng2-alfresco-core'; import { Router } from '@angular/router';
import { LogService, StorageService } from 'ng2-alfresco-core';
@Component({ @Component({
selector: 'login-demo', selector: 'login-demo',

View File

@@ -17,8 +17,8 @@
import { Component, EventEmitter, Output } from '@angular/core'; import { Component, EventEmitter, Output } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
import { MinimalNodeEntity } from 'alfresco-js-api'; import { MinimalNodeEntity } from 'alfresco-js-api';
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
@Component({ @Component({
selector: 'search-bar', selector: 'search-bar',

View File

@@ -15,8 +15,8 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, AfterViewChecked } from '@angular/core'; import { AfterViewChecked, Component } from '@angular/core';
import { AlfrescoSettingsService, StorageService, LogService } from 'ng2-alfresco-core'; import { AlfrescoSettingsService, LogService, StorageService } from 'ng2-alfresco-core';
declare var componentHandler: any; declare var componentHandler: any;

View File

@@ -39,6 +39,6 @@ import { Component } from '@angular/core';
` `
] ]
}) })
export class CreateFolderDialog { export class CreateFolderDialogComponent {
value: string = ''; value: string = '';
} }

View File

@@ -15,8 +15,8 @@
* limitations under the License. * limitations under the License.
*/ */
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core'; import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module'; import { AppModule } from './app.module';
if (process.env.ENV === 'production') { if (process.env.ENV === 'production') {

View File

@@ -16,7 +16,7 @@
*/ */
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { MdSlideToggleModule, MdInputModule, MdSelectModule, MdDialogModule } from '@angular/material'; import { MdDialogModule, MdInputModule, MdSelectModule, MdSlideToggleModule } from '@angular/material';
const MATERIAL_MODULES = [ const MATERIAL_MODULES = [
MdSlideToggleModule, MdSlideToggleModule,

View File

@@ -1,3 +1,5 @@
/* tslint:disable */
import 'core-js/es6'; import 'core-js/es6';
import 'core-js/es7/reflect'; import 'core-js/es7/reflect';
import 'intl'; import 'intl';

View File

@@ -16,10 +16,10 @@
*/ */
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Rx'; import { EcmModelService, FormFieldOption, FormService } from 'ng2-activiti-form';
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core'; import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
import { FormService, EcmModelService, FormFieldOption } from 'ng2-activiti-form';
import { AppConfigService } from 'ng2-alfresco-core'; import { AppConfigService } from 'ng2-alfresco-core';
import { Observable } from 'rxjs/Rx';
interface ActivitiData { interface ActivitiData {
rest: { rest: {

View File

@@ -1,9 +1,11 @@
/* tslint:disable */
// Angular // Angular
import '@angular/common';
import '@angular/core';
import '@angular/http';
import '@angular/platform-browser'; import '@angular/platform-browser';
import '@angular/platform-browser-dynamic'; import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router'; import '@angular/router';
// RxJS // RxJS
@@ -14,22 +16,22 @@ import 'hammerjs';
// Alfresco // Alfresco
import 'alfresco-js-api'; import 'alfresco-js-api';
import 'ng2-alfresco-core';
import 'ng2-alfresco-datatable';
import 'ng2-activiti-diagrams';
import 'ng2-activiti-analytics'; import 'ng2-activiti-analytics';
import 'ng2-activiti-diagrams';
import 'ng2-activiti-form'; import 'ng2-activiti-form';
import 'ng2-activiti-processlist'; import 'ng2-activiti-processlist';
import 'ng2-activiti-tasklist'; import 'ng2-activiti-tasklist';
import 'ng2-alfresco-core';
import 'ng2-alfresco-datatable';
import 'ng2-alfresco-documentlist'; import 'ng2-alfresco-documentlist';
import 'ng2-alfresco-login'; import 'ng2-alfresco-login';
import 'ng2-alfresco-search'; import 'ng2-alfresco-search';
import 'ng2-alfresco-tag';
import 'ng2-alfresco-social'; import 'ng2-alfresco-social';
import 'ng2-alfresco-tag';
import 'ng2-alfresco-upload'; import 'ng2-alfresco-upload';
import 'ng2-alfresco-userinfo';
import 'ng2-alfresco-viewer'; import 'ng2-alfresco-viewer';
import 'ng2-alfresco-webscript'; import 'ng2-alfresco-webscript';
import 'ng2-alfresco-userinfo';
// Polyfill(s) for dialogs // Polyfill(s) for dialogs
require('script-loader!dialog-polyfill/dialog-polyfill'); require('script-loader!dialog-polyfill/dialog-polyfill');
@@ -39,18 +41,18 @@ import 'dialog-polyfill/dialog-polyfill.css';
import '@angular/material/prebuilt-themes/indigo-pink.css'; import '@angular/material/prebuilt-themes/indigo-pink.css';
// Google Material Design Lite // Google Material Design Lite
import 'material-design-lite/material.js';
import 'material-design-lite/dist/material.orange-blue.min.css';
import 'material-design-icons/iconfont/material-icons.css'; import 'material-design-icons/iconfont/material-icons.css';
import 'material-design-lite/dist/material.orange-blue.min.css';
import 'material-design-lite/material.js';
import '../public/css/app.css'; import '../public/css/app.css';
import '../public/css/muli-font.css'; import '../public/css/muli-font.css';
import 'ng2-activiti-form/stencils/runtime.ng1';
import 'ng2-activiti-form/stencils/runtime.adf'; import 'ng2-activiti-form/stencils/runtime.adf';
import 'ng2-activiti-form/stencils/runtime.ng1';
import 'ng2-charts';
import 'chart.js'; import 'chart.js';
import 'ng2-charts';
require('script-loader!raphael/raphael.min.js'); require('script-loader!raphael/raphael.min.js');
require('script-loader!moment/min/moment.min.js'); require('script-loader!moment/min/moment.min.js');
@@ -73,5 +75,5 @@ require('pdfjs-dist/web/pdf_viewer.js');
require('three/build/three.min.js'); require('three/build/three.min.js');
// 3D viewer // 3D viewer
import 'three';
import 'ng2-3d-editor'; import 'ng2-3d-editor';
import 'three';

View File

@@ -33,7 +33,8 @@ module.exports = {
loader: 'tslint-loader', loader: 'tslint-loader',
include: [helpers.root('app')], include: [helpers.root('app')],
options: { options: {
emitErrors: true emitErrors: true,
fix: true
}, },
exclude: [/node_modules/, /public/, /resources/, /dist/] exclude: [/node_modules/, /public/, /resources/, /dist/]
}, },

View File

@@ -1,4 +1,7 @@
{ {
"rulesDirectory": [
"node_modules/codelyzer"
],
"rules": { "rules": {
"align": [ "align": [
true, true,
@@ -59,7 +62,7 @@
"no-unused-variable": true, "no-unused-variable": true,
"no-use-before-declare": true, "no-use-before-declare": true,
"no-var-keyword": true, "no-var-keyword": true,
"no-var-requires": false, "no-var-requires": true,
"object-literal-sort-keys": false, "object-literal-sort-keys": false,
"one-line": [ "one-line": [
true, true,
@@ -105,14 +108,50 @@
"allow-leading-underscore", "allow-leading-underscore",
"ban-keywords" "ban-keywords"
], ],
"callable-types": true,
"import-blacklist": [
true,
"rxjs"
],
"import-spacing": true,
"interface-over-type-literal": true,
"member-access": false,
"no-empty-interface": true,
"no-string-literal": false,
"no-string-throw": true,
"prefer-const": false,
"typeof-compare": true,
"unified-signatures": true,
"whitespace": [ "whitespace": [
true, true,
"check-branch", "check-branch",
"check-decl",
"check-operator", "check-operator",
"check-separator", "check-separator",
"check-type", "check-type"
"check-module", ],
"check-decl" "directive-selector": [
] true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"ordered-imports": true,
"use-input-property-decorator": true,
"use-output-property-decorator": true,
"use-host-property-decorator": true,
"use-life-cycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
"directive-class-suffix": true,
"no-access-missing-member": false,
"templates-use-public": true,
"invoke-injectable": true
} }
} }

View File

@@ -42,7 +42,8 @@ module.exports = {
loader: 'tslint-loader', loader: 'tslint-loader',
options: { options: {
emitErrors: true, emitErrors: true,
failOnHint: true failOnHint: true,
fix: true
}, },
exclude: [/node_modules/, /bundles/, /dist/, /demo/] exclude: [/node_modules/, /bundles/, /dist/, /demo/]
}, },

View File

@@ -57,7 +57,7 @@ let customResolver: ComponentTypeResolver = (field: FormFieldModel): Type<{}> =>
if (field) { if (field) {
let params = field.params; let params = field.params;
} }
return UnknownWidget; return UnknownWidgetComponent;
}; };
formRenderingService.setComponentTypeResolver('text', customResolver, true); formRenderingService.setComponentTypeResolver('text', customResolver, true);
``` ```
@@ -66,25 +66,25 @@ formRenderingService.setComponentTypeResolver('text', customResolver, true);
Stencil Name | Field Type | Component Type | Stencil Name | Field Type | Component Type |
| --- | --- | --- | | --- | --- | --- |
| Text | text | TextWidget | | Text | text | TextWidgetComponent |
| Number | integer | NumberWidget | | Number | integer | NumberWidgetComponent |
| Multi-line text | multi-line-text | MultilineTextWidget | | Multi-line text | multi-line-text | MultilineTextWidgetComponentComponent |
| Checkbox | boolean | CheckboxWidget | | Checkbox | boolean | CheckboxWidgetComponent |
| Dropdown | dropdown | DropdownWidget | | Dropdown | dropdown | DropdownWidgetComponent |
| Date | date | DateWidget | | Date | date | DateWidgetComponent |
| Amount | amount | AmountWidget | | Amount | amount | AmountWidgetComponent |
| Radio buttons | radio-buttons | RadioButtonsWidget | | Radio buttons | radio-buttons | RadioButtonsWidgetComponent |
| Hyperlink | hyperlink | HyperlinkWidget | | Hyperlink | hyperlink | HyperlinkWidgetComponent |
| Display value | readonly | DisplayValueWidget | | Display value | readonly | DisplayValueWidgetComponent |
| Display text | readonly-text | DisplayTextWidget | | Display text | readonly-text | DisplayTextWidgetComponentComponent |
| Typeahead | typeahead | TypeaheadWidget | | Typeahead | typeahead | TypeaheadWidgetComponent |
| People | people | PeopleWidget | | People | people | PeopleWidgetComponent |
| Group of people | functional-group | FunctionalGroupWidget | | Group of people | functional-group | FunctionalGroupWidgetComponent |
| Dynamic table | dynamic-table | DynamicTableWidget | | Dynamic table | dynamic-table | DynamicTableWidgetComponent |
| N/A | container | ContainerWidget (layout component) | | N/A | container | ContainerWidgetComponent (layout component) |
| Header | group | ContainerWidget | | Header | group | ContainerWidgetComponent |
| Attach | upload | AttachWidget or UploadWidget (based on metadata) | | Attach | upload | AttachWidgetComponent or UploadWidgetComponent (based on metadata) |
| N/A | N/A | UnknownWidget | | N/A | N/A | UnknownWidgetComponent |

View File

@@ -20,10 +20,10 @@ import { HttpModule } from '@angular/http';
import { MdButtonModule, MdCardModule, MdCheckboxModule, MdIconModule, MdInputModule, MdSlideToggleModule, MdTabsModule } from '@angular/material'; import { MdButtonModule, MdCardModule, MdCheckboxModule, MdIconModule, MdInputModule, MdSlideToggleModule, MdTabsModule } from '@angular/material';
import { CoreModule } from 'ng2-alfresco-core'; import { CoreModule } from 'ng2-alfresco-core';
import { DataTableModule } from 'ng2-alfresco-datatable'; import { DataTableModule } from 'ng2-alfresco-datatable';
import { ActivitiContent } from './src/components/activiti-content.component'; import { ActivitiContentComponent } from './src/components/activiti-content.component';
import { ActivitiForm } from './src/components/activiti-form.component'; import { ActivitiForm } from './src/components/activiti-form.component';
import { ActivitiStartForm } from './src/components/activiti-start-form.component'; import { ActivitiStartFormComponent } from './src/components/activiti-start-form.component';
import { ADFFormList } from './src/components/adf-form-list.component'; import { ADFFormListComponent } from './src/components/adf-form-list.component';
import { FormFieldComponent } from './src/components/form-field/form-field.component'; import { FormFieldComponent } from './src/components/form-field/form-field.component';
import { MASK_DIRECTIVE, WIDGET_DIRECTIVES } from './src/components/widgets/index'; import { MASK_DIRECTIVE, WIDGET_DIRECTIVES } from './src/components/widgets/index';
import { ActivitiAlfrescoContentService } from './src/services/activiti-alfresco.service'; import { ActivitiAlfrescoContentService } from './src/services/activiti-alfresco.service';
@@ -48,9 +48,9 @@ export * from './src/events/index';
export const ACTIVITI_FORM_DIRECTIVES: any[] = [ export const ACTIVITI_FORM_DIRECTIVES: any[] = [
ActivitiForm, ActivitiForm,
ADFFormList, ADFFormListComponent,
ActivitiContent, ActivitiContentComponent,
ActivitiStartForm, ActivitiStartFormComponent,
FormFieldComponent, FormFieldComponent,
...WIDGET_DIRECTIVES ...WIDGET_DIRECTIVES
]; ];

View File

@@ -24,15 +24,15 @@ import { Observable } from 'rxjs/Rx';
import { FormService } from '../services/form.service'; import { FormService } from '../services/form.service';
import { EcmModelService } from './../services/ecm-model.service'; import { EcmModelService } from './../services/ecm-model.service';
import { ActivitiContent } from './activiti-content.component'; import { ActivitiContentComponent } from './activiti-content.component';
import { ContentLinkModel } from './widgets/index'; import { ContentLinkModel } from './widgets/index';
declare let jasmine: any; declare let jasmine: any;
describe('ActivitiContent', () => { describe('ActivitiContentComponent', () => {
let component: ActivitiContent; let component: ActivitiContentComponent;
let fixture: ComponentFixture<ActivitiContent>; let fixture: ComponentFixture<ActivitiContentComponent>;
let debug: DebugElement; let debug: DebugElement;
let element: HTMLElement; let element: HTMLElement;
@@ -71,7 +71,7 @@ describe('ActivitiContent', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
ActivitiContent ActivitiContentComponent
], ],
providers: [ providers: [
FormService, FormService,
@@ -96,7 +96,7 @@ describe('ActivitiContent', () => {
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiContent); fixture = TestBed.createComponent(ActivitiContentComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
debug = fixture.debugElement; debug = fixture.debugElement;
element = fixture.nativeElement; element = fixture.nativeElement;

View File

@@ -26,7 +26,7 @@ import { ContentLinkModel } from './widgets/core/content-link.model';
templateUrl: './activiti-content.component.html', templateUrl: './activiti-content.component.html',
styleUrls: ['./activiti-content.component.css'] styleUrls: ['./activiti-content.component.css']
}) })
export class ActivitiContent implements OnChanges { export class ActivitiContentComponent implements OnChanges {
@Input() @Input()
id: string; id: string;

View File

@@ -653,7 +653,7 @@ describe('ActivitiForm', () => {
/* /*
it('should update the visibility when the container raise the change event', (valueChanged) => { it('should update the visibility when the container raise the change event', (valueChanged) => {
spyOn(formComponent, 'checkVisibility').and.callThrough(); spyOn(formComponent, 'checkVisibility').and.callThrough();
let widget = new ContainerWidget(); let widget = new ContainerWidgetComponent();
let fakeForm = new FormModel(); let fakeForm = new FormModel();
let fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'}); let fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
widget.formValueChanged.subscribe(field => { valueChanged(); }); widget.formValueChanged.subscribe(field => { valueChanged(); });

View File

@@ -15,6 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
/* tslint:disable */
import { AfterViewChecked, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core'; import { AfterViewChecked, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
import { LogService } from 'ng2-alfresco-core'; import { LogService } from 'ng2-alfresco-core';
import { FormErrorEvent, FormEvent } from './../events/index'; import { FormErrorEvent, FormEvent } from './../events/index';

View File

@@ -26,8 +26,8 @@ import { TranslationMock } from './../assets/translation.service.mock';
import { EcmModelService } from './../services/ecm-model.service'; import { EcmModelService } from './../services/ecm-model.service';
import { FormService } from './../services/form.service'; import { FormService } from './../services/form.service';
import { WidgetVisibilityService } from './../services/widget-visibility.service'; import { WidgetVisibilityService } from './../services/widget-visibility.service';
import { ActivitiContent } from './activiti-content.component'; import { ActivitiContentComponent } from './activiti-content.component';
import { ActivitiStartForm } from './activiti-start-form.component'; import { ActivitiStartFormComponent } from './activiti-start-form.component';
import { FormFieldComponent } from './form-field/form-field.component'; import { FormFieldComponent } from './form-field/form-field.component';
import { MASK_DIRECTIVE } from './widgets/index'; import { MASK_DIRECTIVE } from './widgets/index';
import { WIDGET_DIRECTIVES } from './widgets/index'; import { WIDGET_DIRECTIVES } from './widgets/index';
@@ -36,8 +36,8 @@ describe('ActivitiStartForm', () => {
let componentHandler: any; let componentHandler: any;
let formService: FormService; let formService: FormService;
let component: ActivitiStartForm; let component: ActivitiStartFormComponent;
let fixture: ComponentFixture<ActivitiStartForm>; let fixture: ComponentFixture<ActivitiStartFormComponent>;
let getStartFormSpy: jasmine.Spy; let getStartFormSpy: jasmine.Spy;
const exampleId1 = 'my:process1'; const exampleId1 = 'my:process1';
@@ -50,9 +50,9 @@ describe('ActivitiStartForm', () => {
MdInputModule, MdInputModule,
CoreModule.forRoot()], CoreModule.forRoot()],
declarations: [ declarations: [
ActivitiStartForm, ActivitiStartFormComponent,
FormFieldComponent, FormFieldComponent,
ActivitiContent, ActivitiContentComponent,
...WIDGET_DIRECTIVES, ...WIDGET_DIRECTIVES,
...MASK_DIRECTIVE ...MASK_DIRECTIVE
], ],
@@ -67,7 +67,7 @@ describe('ActivitiStartForm', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiStartForm); fixture = TestBed.createComponent(ActivitiStartFormComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
formService = fixture.debugElement.injector.get(FormService); formService = fixture.debugElement.injector.get(FormService);

View File

@@ -15,17 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';
AfterViewChecked,
Component,
ElementRef,
EventEmitter,
Input,
OnChanges,
Output,
SimpleChanges,
ViewChild
} from '@angular/core';
import { AlfrescoTranslationService, LogService } from 'ng2-alfresco-core'; import { AlfrescoTranslationService, LogService } from 'ng2-alfresco-core';
import { FormService } from './../services/form.service'; import { FormService } from './../services/form.service';
import { WidgetVisibilityService } from './../services/widget-visibility.service'; import { WidgetVisibilityService } from './../services/widget-visibility.service';
@@ -55,7 +45,7 @@ import { FormOutcomeModel } from './widgets/core/index';
templateUrl: './activiti-start-form.component.html', templateUrl: './activiti-start-form.component.html',
styleUrls: ['./activiti-form.component.css'] styleUrls: ['./activiti-form.component.css']
}) })
export class ActivitiStartForm extends ActivitiForm implements AfterViewChecked, OnChanges { export class ActivitiStartFormComponent extends ActivitiForm implements OnChanges, OnInit {
@Input() @Input()
processDefinitionId: string; processDefinitionId: string;

View File

@@ -22,14 +22,14 @@ import { DataTableModule } from 'ng2-alfresco-datatable';
import { Observable } from 'rxjs/Rx'; import { Observable } from 'rxjs/Rx';
import { EcmModelService } from '../services/ecm-model.service'; import { EcmModelService } from '../services/ecm-model.service';
import { FormService } from '../services/form.service'; import { FormService } from '../services/form.service';
import { ADFFormList } from './adf-form-list.component'; import { ADFFormListComponent } from './adf-form-list.component';
declare let jasmine: any; declare let jasmine: any;
describe('TaskAttachmentList', () => { describe('TaskAttachmentList', () => {
let component: ADFFormList; let component: ADFFormListComponent;
let fixture: ComponentFixture<ADFFormList>; let fixture: ComponentFixture<ADFFormListComponent>;
let service: FormService; let service: FormService;
let componentHandler: any; let componentHandler: any;
@@ -40,7 +40,7 @@ describe('TaskAttachmentList', () => {
DataTableModule DataTableModule
], ],
declarations: [ declarations: [
ADFFormList ADFFormListComponent
], ],
providers: [ providers: [
FormService, FormService,
@@ -63,7 +63,7 @@ describe('TaskAttachmentList', () => {
beforeEach(async(() => { beforeEach(async(() => {
fixture = TestBed.createComponent(ADFFormList); fixture = TestBed.createComponent(ADFFormListComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
service = TestBed.get(FormService); service = TestBed.get(FormService);

View File

@@ -24,7 +24,7 @@ import { FormService } from './../services/form.service';
templateUrl: './adf-form-list.component.html', templateUrl: './adf-form-list.component.html',
styleUrls: ['./adf-form-list.component.css'] styleUrls: ['./adf-form-list.component.css']
}) })
export class ADFFormList implements OnChanges { export class ADFFormListComponent implements OnChanges {
@Input() @Input()
forms: any [] = []; forms: any [] = [];

View File

@@ -19,10 +19,10 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreModule } from 'ng2-alfresco-core'; import { CoreModule } from 'ng2-alfresco-core';
import { FormRenderingService } from './../../services/form-rendering.service'; import { FormRenderingService } from './../../services/form-rendering.service';
import { WidgetVisibilityService } from './../../services/widget-visibility.service'; import { WidgetVisibilityService } from './../../services/widget-visibility.service';
import { CheckboxWidget } from './../widgets/checkbox/checkbox.widget'; import { CheckboxWidgetComponent } from './../widgets/checkbox/checkbox.widget';
import { FormFieldModel, FormFieldTypes, FormModel } from './../widgets/core/index'; import { FormFieldModel, FormFieldTypes, FormModel } from './../widgets/core/index';
import { InputMaskDirective } from './../widgets/text/text-mask.component'; import { InputMaskDirective } from './../widgets/text/text-mask.component';
import { TextWidget } from './../widgets/text/text.widget'; import { TextWidgetComponent } from './../widgets/text/text.widget';
import { FormFieldComponent } from './form-field.component'; import { FormFieldComponent } from './form-field.component';
describe('FormFieldComponent', () => { describe('FormFieldComponent', () => {
@@ -37,7 +37,7 @@ describe('FormFieldComponent', () => {
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [CoreModule], imports: [CoreModule],
declarations: [FormFieldComponent, TextWidget, CheckboxWidget, InputMaskDirective], declarations: [FormFieldComponent, TextWidgetComponent, CheckboxWidgetComponent, InputMaskDirective],
providers: [ providers: [
FormRenderingService, FormRenderingService,
WidgetVisibilityService WidgetVisibilityService
@@ -68,7 +68,7 @@ describe('FormFieldComponent', () => {
fixture.detectChanges(); fixture.detectChanges();
expect(component.componentRef).toBeDefined(); expect(component.componentRef).toBeDefined();
expect(component.componentRef.componentType).toBe(TextWidget); expect(component.componentRef.componentType).toBe(TextWidgetComponent);
}); });
xit('should create custom component instance', () => { xit('should create custom component instance', () => {
@@ -76,12 +76,12 @@ describe('FormFieldComponent', () => {
type: FormFieldTypes.TEXT type: FormFieldTypes.TEXT
}); });
formRenderingService.setComponentTypeResolver(FormFieldTypes.TEXT, () => CheckboxWidget, true); formRenderingService.setComponentTypeResolver(FormFieldTypes.TEXT, () => CheckboxWidgetComponent, true);
component.field = field; component.field = field;
fixture.detectChanges(); fixture.detectChanges();
expect(component.componentRef).toBeDefined(); expect(component.componentRef).toBeDefined();
expect(component.componentRef.componentType).toBe(CheckboxWidget); expect(component.componentRef.componentType).toBe(CheckboxWidgetComponent);
}); });
it('should require field to create component', () => { it('should require field to create component', () => {

View File

@@ -22,12 +22,12 @@ import { ActivitiAlfrescoContentService } from '../../../services/activiti-alfre
import { EcmModelService } from './../../../services/ecm-model.service'; import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { AmountWidget } from './amount.widget'; import { AmountWidgetComponent } from './amount.widget';
describe('AmountWidget', () => { describe('AmountWidgetComponent', () => {
let widget: AmountWidget; let widget: AmountWidgetComponent;
let fixture: ComponentFixture<AmountWidget>; let fixture: ComponentFixture<AmountWidgetComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
@@ -36,7 +36,7 @@ describe('AmountWidget', () => {
MdInputModule MdInputModule
], ],
declarations: [ declarations: [
AmountWidget AmountWidgetComponent
], ],
providers: [ providers: [
FormService, FormService,
@@ -47,7 +47,7 @@ describe('AmountWidget', () => {
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(AmountWidget); fixture = TestBed.createComponent(AmountWidgetComponent);
widget = fixture.componentInstance; widget = fixture.componentInstance;
}); });
@@ -65,7 +65,7 @@ describe('AmountWidget', () => {
it('should setup default currency', () => { it('should setup default currency', () => {
widget.field = null; widget.field = null;
widget.ngOnInit(); widget.ngOnInit();
expect(widget.currency).toBe(AmountWidget.DEFAULT_CURRENCY); expect(widget.currency).toBe(AmountWidgetComponent.DEFAULT_CURRENCY);
}); });
}); });

View File

@@ -25,11 +25,11 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./amount.widget.css'], styleUrls: ['./amount.widget.css'],
host: baseHost host: baseHost
}) })
export class AmountWidget extends WidgetComponent implements OnInit { export class AmountWidgetComponent extends WidgetComponent implements OnInit {
static DEFAULT_CURRENCY: string = '$'; static DEFAULT_CURRENCY: string = '$';
currency: string = AmountWidget.DEFAULT_CURRENCY; currency: string = AmountWidgetComponent.DEFAULT_CURRENCY;
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);

View File

@@ -25,12 +25,12 @@ import { FormFieldTypes } from '../core/form-field-types';
import { EcmModelService } from './../../../services/ecm-model.service'; import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { AttachWidget } from './attach.widget'; import { AttachWidgetComponent } from './attach.widget';
describe('AttachWidget', () => { describe('AttachWidgetComponent', () => {
let widget: AttachWidget; let widget: AttachWidgetComponent;
let fixture: ComponentFixture<AttachWidget>; let fixture: ComponentFixture<AttachWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let contentService: ActivitiAlfrescoContentService; let contentService: ActivitiAlfrescoContentService;
let dialogPolyfill: any; let dialogPolyfill: any;
@@ -41,7 +41,7 @@ describe('AttachWidget', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
AttachWidget AttachWidgetComponent
], ],
providers: [ providers: [
FormService, FormService,
@@ -52,7 +52,7 @@ describe('AttachWidget', () => {
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(AttachWidget); fixture = TestBed.createComponent(AttachWidgetComponent);
contentService = TestBed.get(ActivitiAlfrescoContentService); contentService = TestBed.get(ActivitiAlfrescoContentService);
element = fixture.nativeElement; element = fixture.nativeElement;

View File

@@ -31,7 +31,7 @@ declare let dialogPolyfill: any;
templateUrl: './attach.widget.html', templateUrl: './attach.widget.html',
styleUrls: ['./attach.widget.css'], host: baseHost styleUrls: ['./attach.widget.css'], host: baseHost
}) })
export class AttachWidget extends WidgetComponent implements OnInit { export class AttachWidgetComponent extends WidgetComponent implements OnInit {
selectedFolderPathId: string; selectedFolderPathId: string;
selectedFolderSiteId: string; selectedFolderSiteId: string;

View File

@@ -25,7 +25,7 @@ import { baseHost , WidgetComponent} from './../widget.component';
templateUrl: './checkbox.widget.html', templateUrl: './checkbox.widget.html',
host: baseHost host: baseHost
}) })
export class CheckboxWidget extends WidgetComponent { export class CheckboxWidgetComponent extends WidgetComponent {
constructor(private visibilityService: WidgetVisibilityService, public formService: FormService) { constructor(private visibilityService: WidgetVisibilityService, public formService: FormService) {
super(formService); super(formService);

View File

@@ -18,19 +18,19 @@
import { FormFieldTypes } from './../core/form-field-types'; import { FormFieldTypes } from './../core/form-field-types';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { FormModel } from './../core/form.model'; import { FormModel } from './../core/form.model';
import { ContainerWidgetModel } from './container.widget.model'; import { ContainerWidgetComponentModel } from './container.widget.model';
describe('ContainerWidgetModel', () => { describe('ContainerWidgetComponentModel', () => {
it('should store the form reference', () => { it('should store the form reference', () => {
let form = new FormModel(); let form = new FormModel();
let field = new FormFieldModel(form); let field = new FormFieldModel(form);
let model = new ContainerWidgetModel(field); let model = new ContainerWidgetComponentModel(field);
expect(model.form).toBe(form); expect(model.form).toBe(form);
}); });
it('should be expanded by default', () => { it('should be expanded by default', () => {
let container = new ContainerWidgetModel(null); let container = new ContainerWidgetComponentModel(null);
expect(container.isExpanded).toBeTruthy(); expect(container.isExpanded).toBeTruthy();
}); });
@@ -60,7 +60,7 @@ describe('ContainerWidgetModel', () => {
let field = new FormFieldModel(form, json); let field = new FormFieldModel(form, json);
let container = new ContainerWidgetModel(field); let container = new ContainerWidgetComponentModel(field);
expect(container.columns.length).toBe(3); expect(container.columns.length).toBe(3);
let col1 = container.columns[0]; let col1 = container.columns[0];
@@ -77,7 +77,7 @@ describe('ContainerWidgetModel', () => {
}); });
it('should allow collapsing only when of a group type', () => { it('should allow collapsing only when of a group type', () => {
let container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.CONTAINER, type: FormFieldTypes.CONTAINER,
params: { params: {
allowCollapse: true allowCollapse: true
@@ -85,7 +85,7 @@ describe('ContainerWidgetModel', () => {
})); }));
expect(container.isCollapsible()).toBeFalsy(); expect(container.isCollapsible()).toBeFalsy();
container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP, type: FormFieldTypes.GROUP,
params: { params: {
allowCollapse: true allowCollapse: true
@@ -95,13 +95,13 @@ describe('ContainerWidgetModel', () => {
}); });
it('should allow collapsing only when explicitly defined in params', () => { it('should allow collapsing only when explicitly defined in params', () => {
let container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP, type: FormFieldTypes.GROUP,
params: {} params: {}
})); }));
expect(container.isCollapsible()).toBeFalsy(); expect(container.isCollapsible()).toBeFalsy();
container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP, type: FormFieldTypes.GROUP,
params: { params: {
allowCollapse: true allowCollapse: true
@@ -111,7 +111,7 @@ describe('ContainerWidgetModel', () => {
}); });
it('should be collapsed by default', () => { it('should be collapsed by default', () => {
let container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP, type: FormFieldTypes.GROUP,
params: { params: {
allowCollapse: true, allowCollapse: true,

View File

@@ -20,7 +20,7 @@ import { ContainerModel } from './../core/container.model';
import { FormFieldTypes } from './../core/form-field-types'; import { FormFieldTypes } from './../core/form-field-types';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
export class ContainerWidgetModel extends ContainerModel { export class ContainerWidgetComponentModel extends ContainerModel {
columns: ContainerColumnModel[] = []; columns: ContainerColumnModel[] = [];
isExpanded: boolean = true; isExpanded: boolean = true;

View File

@@ -24,18 +24,18 @@ import { WIDGET_DIRECTIVES } from '../index';
import { MASK_DIRECTIVE } from '../index'; import { MASK_DIRECTIVE } from '../index';
import { EcmModelService } from './../../../services/ecm-model.service'; import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { ActivitiContent } from './../../activiti-content.component'; import { ActivitiContentComponent } from './../../activiti-content.component';
import { FormFieldComponent } from './../../form-field/form-field.component'; import { FormFieldComponent } from './../../form-field/form-field.component';
import { FormFieldTypes } from './../core/form-field-types'; import { FormFieldTypes } from './../core/form-field-types';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { FormModel } from './../core/form.model'; import { FormModel } from './../core/form.model';
import { ContainerWidget } from './container.widget'; import { ContainerWidgetComponent } from './container.widget';
import { ContainerWidgetModel } from './container.widget.model'; import { ContainerWidgetComponentModel } from './container.widget.model';
describe('ContainerWidget', () => { describe('ContainerWidgetComponent', () => {
let widget: ContainerWidget; let widget: ContainerWidgetComponent;
let fixture: ComponentFixture<ContainerWidget>; let fixture: ComponentFixture<ContainerWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let contentService: ActivitiAlfrescoContentService; let contentService: ActivitiAlfrescoContentService;
let componentHandler; let componentHandler;
@@ -48,7 +48,7 @@ describe('ContainerWidget', () => {
MdTabsModule, MdTabsModule,
MdInputModule MdInputModule
], ],
declarations: [FormFieldComponent, ActivitiContent, WIDGET_DIRECTIVES, MASK_DIRECTIVE], declarations: [FormFieldComponent, ActivitiContentComponent, WIDGET_DIRECTIVES, MASK_DIRECTIVE],
providers: [ providers: [
FormService, FormService,
EcmModelService, EcmModelService,
@@ -58,7 +58,7 @@ describe('ContainerWidget', () => {
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ContainerWidget); fixture = TestBed.createComponent(ContainerWidgetComponent);
contentService = TestBed.get(ActivitiAlfrescoContentService); contentService = TestBed.get(ActivitiAlfrescoContentService);
element = fixture.nativeElement; element = fixture.nativeElement;
@@ -98,7 +98,7 @@ describe('ContainerWidget', () => {
}); });
it('should toggle underlying group container', () => { it('should toggle underlying group container', () => {
let container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP, type: FormFieldTypes.GROUP,
params: { params: {
allowCollapse: true allowCollapse: true
@@ -115,7 +115,7 @@ describe('ContainerWidget', () => {
}); });
it('should toggle only collapsible container', () => { it('should toggle only collapsible container', () => {
let container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP type: FormFieldTypes.GROUP
})); }));
@@ -128,7 +128,7 @@ describe('ContainerWidget', () => {
it('should toggle only group container', () => { it('should toggle only group container', () => {
let container = new ContainerWidgetModel(new FormFieldModel(new FormModel(), { let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.CONTAINER, type: FormFieldTypes.CONTAINER,
params: { params: {
allowCollapse: true allowCollapse: true
@@ -162,13 +162,13 @@ describe('ContainerWidget', () => {
beforeEach(() => { beforeEach(() => {
componentHandler = jasmine.createSpyObj('componentHandler', ['upgradeAllRegistered', 'upgradeElement']); componentHandler = jasmine.createSpyObj('componentHandler', ['upgradeAllRegistered', 'upgradeElement']);
window['componentHandler'] = componentHandler; window['componentHandler'] = componentHandler;
fakeContainerVisible = new ContainerWidgetModel(new FormFieldModel(new FormModel(fakeFormJson), { fakeContainerVisible = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(fakeFormJson), {
fieldType: FormFieldTypes.GROUP, fieldType: FormFieldTypes.GROUP,
id: 'fake-cont-id-1', id: 'fake-cont-id-1',
name: 'fake-cont-1-name', name: 'fake-cont-1-name',
type: FormFieldTypes.GROUP type: FormFieldTypes.GROUP
})); }));
fakeContainerInvisible = new ContainerWidgetModel(new FormFieldModel(new FormModel(fakeFormJson), { fakeContainerInvisible = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(fakeFormJson), {
fieldType: FormFieldTypes.GROUP, fieldType: FormFieldTypes.GROUP,
id: 'fake-cont-id-2', id: 'fake-cont-id-2',
name: 'fake-cont-2-name', name: 'fake-cont-2-name',

View File

@@ -18,7 +18,7 @@
import { AfterViewInit, Component, OnInit } from '@angular/core'; import { AfterViewInit, Component, OnInit } from '@angular/core';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { baseHost , WidgetComponent } from './../widget.component'; import { baseHost , WidgetComponent } from './../widget.component';
import { ContainerWidgetModel } from './container.widget.model'; import { ContainerWidgetComponentModel } from './container.widget.model';
declare var componentHandler: any; declare var componentHandler: any;
@@ -28,9 +28,9 @@ declare var componentHandler: any;
styleUrls: ['./container.widget.css'], styleUrls: ['./container.widget.css'],
host: baseHost host: baseHost
}) })
export class ContainerWidget extends WidgetComponent implements OnInit, AfterViewInit { export class ContainerWidgetComponent extends WidgetComponent implements OnInit, AfterViewInit {
content: ContainerWidgetModel; content: ContainerWidgetComponentModel;
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);
@@ -44,7 +44,7 @@ export class ContainerWidget extends WidgetComponent implements OnInit, AfterVie
ngOnInit() { ngOnInit() {
if (this.field) { if (this.field) {
this.content = new ContainerWidgetModel(this.field); this.content = new ContainerWidgetComponentModel(this.field);
} }
} }

View File

@@ -15,6 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
/* tslint:disable */
import { FormFieldMetadata } from './form-field-metadata'; import { FormFieldMetadata } from './form-field-metadata';
export interface FormValues extends FormFieldMetadata { export interface FormValues extends FormFieldMetadata {

View File

@@ -24,12 +24,12 @@ import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { FormModel } from './../core/form.model'; import { FormModel } from './../core/form.model';
import { DateWidget } from './date.widget'; import { DateWidgetComponent } from './date.widget';
describe('DateWidget', () => { describe('DateWidgetComponent', () => {
let widget: DateWidget; let widget: DateWidgetComponent;
let fixture: ComponentFixture<DateWidget>; let fixture: ComponentFixture<DateWidgetComponent>;
let componentHandler; let componentHandler;
let nativeElement: any; let nativeElement: any;
let element: HTMLElement; let element: HTMLElement;
@@ -40,7 +40,7 @@ describe('DateWidget', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
DateWidget DateWidgetComponent
], ],
providers: [ providers: [
FormService, FormService,
@@ -57,7 +57,7 @@ describe('DateWidget', () => {
} }
}; };
fixture = TestBed.createComponent(DateWidget); fixture = TestBed.createComponent(DateWidgetComponent);
element = fixture.nativeElement; element = fixture.nativeElement;
widget = fixture.componentInstance; widget = fixture.componentInstance;

View File

@@ -29,7 +29,7 @@ declare var componentHandler: any;
styleUrls: ['./date.widget.css'], styleUrls: ['./date.widget.css'],
host: baseHost host: baseHost
}) })
export class DateWidget extends WidgetComponent implements OnInit, AfterViewChecked { export class DateWidgetComponent extends WidgetComponent implements OnInit, AfterViewChecked {
datePicker: any; datePicker: any;

View File

@@ -25,7 +25,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./display-text.widget.css'], styleUrls: ['./display-text.widget.css'],
host: baseHost host: baseHost
}) })
export class DisplayTextWidget extends WidgetComponent { export class DisplayTextWidgetComponentComponent extends WidgetComponent {
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);

View File

@@ -20,18 +20,18 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreModule } from 'ng2-alfresco-core'; import { CoreModule } from 'ng2-alfresco-core';
import { Observable } from 'rxjs/Rx'; import { Observable } from 'rxjs/Rx';
import { WidgetVisibilityService } from '../../../services/widget-visibility.service'; import { WidgetVisibilityService } from '../../../services/widget-visibility.service';
import { ActivitiContent } from '../../activiti-content.component'; import { ActivitiContentComponent } from '../../activiti-content.component';
import { FormFieldTypes } from '../core/form-field-types'; import { FormFieldTypes } from '../core/form-field-types';
import { FormModel } from '../core/form.model'; import { FormModel } from '../core/form.model';
import { EcmModelService } from './../../../services/ecm-model.service'; import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { DisplayValueWidget } from './display-value.widget'; import { DisplayValueWidgetComponent } from './display-value.widget';
describe('DisplayValueWidget', () => { describe('DisplayValueWidgetComponent', () => {
let widget: DisplayValueWidget; let widget: DisplayValueWidgetComponent;
let fixture: ComponentFixture<DisplayValueWidget>; let fixture: ComponentFixture<DisplayValueWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let formService: FormService; let formService: FormService;
@@ -41,8 +41,8 @@ describe('DisplayValueWidget', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
DisplayValueWidget, DisplayValueWidgetComponent,
ActivitiContent ActivitiContentComponent
], ],
providers: [ providers: [
FormService, FormService,
@@ -54,7 +54,7 @@ describe('DisplayValueWidget', () => {
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(DisplayValueWidget); fixture = TestBed.createComponent(DisplayValueWidgetComponent);
formService = TestBed.get(FormService); formService = TestBed.get(FormService);
element = fixture.nativeElement; element = fixture.nativeElement;

View File

@@ -30,7 +30,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./display-value.widget.css'], styleUrls: ['./display-value.widget.css'],
host: baseHost host: baseHost
}) })
export class DisplayValueWidget extends WidgetComponent implements OnInit { export class DisplayValueWidgetComponent extends WidgetComponent implements OnInit {
@Output() @Output()
error: EventEmitter<any> = new EventEmitter<any>(); error: EventEmitter<any> = new EventEmitter<any>();

View File

@@ -24,18 +24,18 @@ import { WidgetVisibilityService } from '../../../services/widget-visibility.ser
import { FormFieldOption } from './../core/form-field-option'; import { FormFieldOption } from './../core/form-field-option';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { FormModel } from './../core/form.model'; import { FormModel } from './../core/form.model';
import { DropdownWidget } from './dropdown.widget'; import { DropdownWidgetComponent } from './dropdown.widget';
describe('DropdownWidget', () => { describe('DropdownWidgetComponent', () => {
let formService: FormService; let formService: FormService;
let widget: DropdownWidget; let widget: DropdownWidgetComponent;
let visibilityService: WidgetVisibilityService; let visibilityService: WidgetVisibilityService;
beforeEach(() => { beforeEach(() => {
formService = new FormService(null, null, null); formService = new FormService(null, null, null);
visibilityService = new WidgetVisibilityService(null, null); visibilityService = new WidgetVisibilityService(null, null);
widget = new DropdownWidget(formService, visibilityService, null); widget = new DropdownWidgetComponent(formService, visibilityService, null);
widget.field = new FormFieldModel(new FormModel()); widget.field = new FormFieldModel(new FormModel());
}); });
@@ -100,8 +100,8 @@ describe('DropdownWidget', () => {
}); });
describe('when template is ready', () => { describe('when template is ready', () => {
let dropDownWidget: DropdownWidget; let dropdownWidgetComponent: DropdownWidgetComponent;
let fixture: ComponentFixture<DropdownWidget>; let fixture: ComponentFixture<DropdownWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let componentHandler; let componentHandler;
let stubFormService; let stubFormService;
@@ -118,11 +118,11 @@ describe('DropdownWidget', () => {
window['componentHandler'] = componentHandler; window['componentHandler'] = componentHandler;
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [CoreModule], imports: [CoreModule],
declarations: [DropdownWidget], declarations: [DropdownWidgetComponent],
providers: [FormService, EcmModelService, WidgetVisibilityService] providers: [FormService, EcmModelService, WidgetVisibilityService]
}).compileComponents().then(() => { }).compileComponents().then(() => {
fixture = TestBed.createComponent(DropdownWidget); fixture = TestBed.createComponent(DropdownWidgetComponent);
dropDownWidget = fixture.componentInstance; dropdownWidgetComponent = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;
}); });
})); }));
@@ -134,15 +134,15 @@ describe('DropdownWidget', () => {
visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService); visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService);
spyOn(visibilityService, 'refreshVisibility').and.stub(); spyOn(visibilityService, 'refreshVisibility').and.stub();
spyOn(stubFormService, 'getRestFieldValues').and.returnValue(Observable.of(fakeOptionList)); spyOn(stubFormService, 'getRestFieldValues').and.returnValue(Observable.of(fakeOptionList));
dropDownWidget.field = new FormFieldModel(new FormModel({ taskId: 'fake-task-id' }), { dropdownWidgetComponent.field = new FormFieldModel(new FormModel({ taskId: 'fake-task-id' }), {
id: 'dropdown-id', id: 'dropdown-id',
name: 'date-name', name: 'date-name',
type: 'dropdown', type: 'dropdown',
readOnly: 'false', readOnly: 'false',
restUrl: 'fake-rest-url' restUrl: 'fake-rest-url'
}); });
dropDownWidget.field.emptyOption = { id: 'empty', name: 'Choose one...' }; dropdownWidgetComponent.field.emptyOption = { id: 'empty', name: 'Choose one...' };
dropDownWidget.field.isVisible = true; dropdownWidgetComponent.field.isVisible = true;
fixture.detectChanges(); fixture.detectChanges();
})); }));
@@ -155,7 +155,7 @@ describe('DropdownWidget', () => {
})); }));
it('should select the default value when an option is chosen as default', async(() => { it('should select the default value when an option is chosen as default', async(() => {
dropDownWidget.field.value = 'option_2'; dropdownWidgetComponent.field.value = 'option_2';
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable() fixture.whenStable()
.then(() => { .then(() => {
@@ -168,7 +168,7 @@ describe('DropdownWidget', () => {
})); }));
it('should select the empty value when no default is chosen', async(() => { it('should select the empty value when no default is chosen', async(() => {
dropDownWidget.field.value = 'empty'; dropdownWidgetComponent.field.value = 'empty';
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable() fixture.whenStable()
.then(() => { .then(() => {
@@ -180,7 +180,7 @@ describe('DropdownWidget', () => {
})); }));
it('should be not visibile when isVisible is false', async(() => { it('should be not visibile when isVisible is false', async(() => {
dropDownWidget.field.isVisible = false; dropdownWidgetComponent.field.isVisible = false;
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable() fixture.whenStable()
.then(() => { .then(() => {
@@ -190,10 +190,10 @@ describe('DropdownWidget', () => {
})); }));
it('should became visibile when isVisible is true', async(() => { it('should became visibile when isVisible is true', async(() => {
dropDownWidget.field.isVisible = false; dropdownWidgetComponent.field.isVisible = false;
fixture.detectChanges(); fixture.detectChanges();
expect(element.querySelector('#dropdown-id')).toBeNull(); expect(element.querySelector('#dropdown-id')).toBeNull();
dropDownWidget.field.isVisible = true; dropdownWidgetComponent.field.isVisible = true;
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable() fixture.whenStable()
.then(() => { .then(() => {
@@ -209,15 +209,15 @@ describe('DropdownWidget', () => {
visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService); visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService);
spyOn(visibilityService, 'refreshVisibility').and.stub(); spyOn(visibilityService, 'refreshVisibility').and.stub();
spyOn(stubFormService, 'getRestFieldValuesByProcessId').and.returnValue(Observable.of(fakeOptionList)); spyOn(stubFormService, 'getRestFieldValuesByProcessId').and.returnValue(Observable.of(fakeOptionList));
dropDownWidget.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), { dropdownWidgetComponent.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), {
id: 'dropdown-id', id: 'dropdown-id',
name: 'date-name', name: 'date-name',
type: 'dropdown', type: 'dropdown',
readOnly: 'false', readOnly: 'false',
restUrl: 'fake-rest-url' restUrl: 'fake-rest-url'
}); });
dropDownWidget.field.emptyOption = { id: 'empty', name: 'Choose one...' }; dropdownWidgetComponent.field.emptyOption = { id: 'empty', name: 'Choose one...' };
dropDownWidget.field.isVisible = true; dropdownWidgetComponent.field.isVisible = true;
fixture.detectChanges(); fixture.detectChanges();
})); }));
@@ -230,7 +230,7 @@ describe('DropdownWidget', () => {
})); }));
it('should select the default value when an option is chosen as default', async(() => { it('should select the default value when an option is chosen as default', async(() => {
dropDownWidget.field.value = 'option_2'; dropdownWidgetComponent.field.value = 'option_2';
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable() fixture.whenStable()
.then(() => { .then(() => {
@@ -243,7 +243,7 @@ describe('DropdownWidget', () => {
})); }));
it('should select the empty value when no default is chosen', async(() => { it('should select the empty value when no default is chosen', async(() => {
dropDownWidget.field.value = 'empty'; dropdownWidgetComponent.field.value = 'empty';
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable() fixture.whenStable()
.then(() => { .then(() => {
@@ -255,7 +255,7 @@ describe('DropdownWidget', () => {
})); }));
it('should be disabled when the field is readonly', async(() => { it('should be disabled when the field is readonly', async(() => {
dropDownWidget.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), { dropdownWidgetComponent.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), {
id: 'dropdown-id', id: 'dropdown-id',
name: 'date-name', name: 'date-name',
type: 'dropdown', type: 'dropdown',

View File

@@ -28,7 +28,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./dropdown.widget.css'], styleUrls: ['./dropdown.widget.css'],
host: baseHost host: baseHost
}) })
export class DropdownWidget extends WidgetComponent implements OnInit { export class DropdownWidgetComponent extends WidgetComponent implements OnInit {
constructor(public formService: FormService, constructor(public formService: FormService,
private visibilityService: WidgetVisibilityService, private visibilityService: WidgetVisibilityService,

View File

@@ -23,7 +23,7 @@ import { WidgetVisibilityService } from '../../../services/widget-visibility.ser
import { EcmModelService } from './../../../services/ecm-model.service'; import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
import { FormFieldModel, FormFieldTypes, FormModel } from './../core/index'; import { FormFieldModel, FormFieldTypes, FormModel } from './../core/index';
import { DynamicTableWidget } from './dynamic-table.widget'; import { DynamicTableWidgetComponent } from './dynamic-table.widget';
import { DynamicTableColumn, DynamicTableModel, DynamicTableRow } from './dynamic-table.widget.model'; import { DynamicTableColumn, DynamicTableModel, DynamicTableRow } from './dynamic-table.widget.model';
import { BooleanEditorComponent } from './editors/boolean/boolean.editor'; import { BooleanEditorComponent } from './editors/boolean/boolean.editor';
import { DateEditorComponent } from './editors/date/date.editor'; import { DateEditorComponent } from './editors/date/date.editor';
@@ -127,10 +127,10 @@ let fakeFormField = {
] ]
}; };
describe('DynamicTableWidget', () => { describe('DynamicTableWidgetComponent', () => {
let widget: DynamicTableWidget; let widget: DynamicTableWidgetComponent;
let fixture: ComponentFixture<DynamicTableWidget>; let fixture: ComponentFixture<DynamicTableWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let table: DynamicTableModel; let table: DynamicTableModel;
let logService: LogService; let logService: LogService;
@@ -141,7 +141,7 @@ describe('DynamicTableWidget', () => {
imports: [ imports: [
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [DynamicTableWidget, RowEditorComponent, declarations: [DynamicTableWidgetComponent, RowEditorComponent,
DropdownEditorComponent, DateEditorComponent, BooleanEditorComponent, TextEditorComponent], DropdownEditorComponent, DateEditorComponent, BooleanEditorComponent, TextEditorComponent],
providers: [ providers: [
FormService, FormService,
@@ -163,7 +163,7 @@ describe('DynamicTableWidget', () => {
let elementRefSpy = jasmine.createSpyObj('elementRef', ['']); let elementRefSpy = jasmine.createSpyObj('elementRef', ['']);
elementRefSpy.nativeElement = nativeElementSpy; elementRefSpy.nativeElement = nativeElementSpy;
fixture = TestBed.createComponent(DynamicTableWidget); fixture = TestBed.createComponent(DynamicTableWidgetComponent);
element = fixture.nativeElement; element = fixture.nativeElement;
widget = fixture.componentInstance; widget = fixture.componentInstance;
widget.content = table; widget.content = table;

View File

@@ -29,7 +29,7 @@ import { DynamicTableColumn, DynamicTableModel, DynamicTableRow } from './dynami
styleUrls: ['./dynamic-table.widget.css'], styleUrls: ['./dynamic-table.widget.css'],
host: baseHost host: baseHost
}) })
export class DynamicTableWidget extends WidgetComponent implements OnInit { export class DynamicTableWidgetComponent extends WidgetComponent implements OnInit {
ERROR_MODEL_NOT_FOUND = 'Table model not found'; ERROR_MODEL_NOT_FOUND = 'Table model not found';

View File

@@ -21,14 +21,14 @@ import { FormService } from '../../../services/form.service';
import { FormFieldModel } from '../core/form-field.model'; import { FormFieldModel } from '../core/form-field.model';
import { FormModel } from '../core/form.model'; import { FormModel } from '../core/form.model';
import { GroupModel } from '../core/group.model'; import { GroupModel } from '../core/group.model';
import { FunctionalGroupWidget } from './functional-group.widget'; import { FunctionalGroupWidgetComponent } from './functional-group.widget';
describe('FunctionalGroupWidget', () => { describe('FunctionalGroupWidgetComponent', () => {
let componentHandler; let componentHandler;
let formService: FormService; let formService: FormService;
let elementRef: ElementRef; let elementRef: ElementRef;
let widget: FunctionalGroupWidget; let widget: FunctionalGroupWidgetComponent;
beforeEach(() => { beforeEach(() => {
componentHandler = jasmine.createSpyObj('componentHandler', [ componentHandler = jasmine.createSpyObj('componentHandler', [
@@ -38,7 +38,7 @@ describe('FunctionalGroupWidget', () => {
formService = new FormService(null, null, null); formService = new FormService(null, null, null);
elementRef = new ElementRef(null); elementRef = new ElementRef(null);
widget = new FunctionalGroupWidget(formService, elementRef); widget = new FunctionalGroupWidgetComponent(formService, elementRef);
widget.field = new FormFieldModel(new FormModel()); widget.field = new FormFieldModel(new FormModel());
}); });
@@ -245,11 +245,11 @@ describe('FunctionalGroupWidget', () => {
}); });
it('should require element reference to setup textfield', () => { it('should require element reference to setup textfield', () => {
let w = new FunctionalGroupWidget(formService, null); let w = new FunctionalGroupWidgetComponent(formService, null);
w.value = '<value>'; w.value = '<value>';
expect(w.setupMaterialComponents(componentHandler)).toBeFalsy(); expect(w.setupMaterialComponents(componentHandler)).toBeFalsy();
w = new FunctionalGroupWidget(formService, elementRef); w = new FunctionalGroupWidgetComponent(formService, elementRef);
w.value = '<value>'; w.value = '<value>';
expect(w.setupMaterialComponents(componentHandler)).toBeTruthy(); expect(w.setupMaterialComponents(componentHandler)).toBeTruthy();
}); });

View File

@@ -26,7 +26,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./functional-group.widget.css'], styleUrls: ['./functional-group.widget.css'],
host: baseHost host: baseHost
}) })
export class FunctionalGroupWidget extends WidgetComponent implements OnInit { export class FunctionalGroupWidgetComponent extends WidgetComponent implements OnInit {
value: string; value: string;
popupVisible: boolean = false; popupVisible: boolean = false;

View File

@@ -18,14 +18,14 @@
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { FormModel } from './../core/form.model'; import { FormModel } from './../core/form.model';
import { WidgetComponent } from './../widget.component'; import { WidgetComponent } from './../widget.component';
import { HyperlinkWidget } from './hyperlink.widget'; import { HyperlinkWidgetComponent } from './hyperlink.widget';
describe('HyperlinkWidget', () => { describe('HyperlinkWidgetComponent', () => {
let widget: HyperlinkWidget; let widget: HyperlinkWidgetComponent;
beforeEach(() => { beforeEach(() => {
widget = new HyperlinkWidget(null); widget = new HyperlinkWidgetComponent(null);
}); });
it('should get link text from field display text', () => { it('should get link text from field display text', () => {

View File

@@ -25,7 +25,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./hyperlink.widget.css'], styleUrls: ['./hyperlink.widget.css'],
host: baseHost host: baseHost
}) })
export class HyperlinkWidget extends WidgetComponent implements OnInit { export class HyperlinkWidgetComponent extends WidgetComponent implements OnInit {
linkUrl: string = WidgetComponent.DEFAULT_HYPERLINK_URL; linkUrl: string = WidgetComponent.DEFAULT_HYPERLINK_URL;
linkText: string = null; linkText: string = null;

View File

@@ -15,33 +15,33 @@
* limitations under the License. * limitations under the License.
*/ */
import { ContainerWidget } from './container/container.widget'; import { ContainerWidgetComponent } from './container/container.widget';
import { TabsWidget } from './tabs/tabs.widget'; import { TabsWidgetComponent } from './tabs/tabs.widget';
import { UnknownWidget } from './unknown/unknown.widget'; import { UnknownWidgetComponent } from './unknown/unknown.widget';
import { AmountWidget } from './amount/amount.widget'; import { AmountWidgetComponent } from './amount/amount.widget';
import { AttachWidget } from './attach/attach.widget'; import { AttachWidgetComponent } from './attach/attach.widget';
import { CheckboxWidget } from './checkbox/checkbox.widget'; import { CheckboxWidgetComponent } from './checkbox/checkbox.widget';
import { DateWidget } from './date/date.widget'; import { DateWidgetComponent } from './date/date.widget';
import { DisplayTextWidget } from './display-text/display-text.widget'; import { DisplayTextWidgetComponentComponent } from './display-text/display-text.widget';
import { DisplayValueWidget } from './display-value/display-value.widget'; import { DisplayValueWidgetComponent } from './display-value/display-value.widget';
import { DropdownWidget } from './dropdown/dropdown.widget'; import { DropdownWidgetComponent } from './dropdown/dropdown.widget';
import { DynamicTableWidget } from './dynamic-table/dynamic-table.widget'; import { DynamicTableWidgetComponent } from './dynamic-table/dynamic-table.widget';
import { BooleanEditorComponent } from './dynamic-table/editors/boolean/boolean.editor'; import { BooleanEditorComponent } from './dynamic-table/editors/boolean/boolean.editor';
import { DateEditorComponent } from './dynamic-table/editors/date/date.editor'; import { DateEditorComponent } from './dynamic-table/editors/date/date.editor';
import { DropdownEditorComponent } from './dynamic-table/editors/dropdown/dropdown.editor'; import { DropdownEditorComponent } from './dynamic-table/editors/dropdown/dropdown.editor';
import { RowEditorComponent } from './dynamic-table/editors/row.editor'; import { RowEditorComponent } from './dynamic-table/editors/row.editor';
import { TextEditorComponent } from './dynamic-table/editors/text/text.editor'; import { TextEditorComponent } from './dynamic-table/editors/text/text.editor';
import { FunctionalGroupWidget } from './functional-group/functional-group.widget'; import { FunctionalGroupWidgetComponent } from './functional-group/functional-group.widget';
import { HyperlinkWidget } from './hyperlink/hyperlink.widget'; import { HyperlinkWidgetComponent } from './hyperlink/hyperlink.widget';
import { MultilineTextWidget } from './multiline-text/multiline-text.widget'; import { MultilineTextWidgetComponentComponent } from './multiline-text/multiline-text.widget';
import { NumberWidget } from './number/number.widget'; import { NumberWidgetComponent } from './number/number.widget';
import { PeopleWidget } from './people/people.widget'; import { PeopleWidgetComponent } from './people/people.widget';
import { RadioButtonsWidget } from './radio-buttons/radio-buttons.widget'; import { RadioButtonsWidgetComponent } from './radio-buttons/radio-buttons.widget';
import { InputMaskDirective } from './text/text-mask.component'; import { InputMaskDirective } from './text/text-mask.component';
import { TextWidget } from './text/text.widget'; import { TextWidgetComponent } from './text/text.widget';
import { TypeaheadWidget } from './typeahead/typeahead.widget'; import { TypeaheadWidgetComponent } from './typeahead/typeahead.widget';
import { UploadWidget } from './upload/upload.widget'; import { UploadWidgetComponent } from './upload/upload.widget';
// core // core
export * from './widget.component'; export * from './widget.component';
@@ -80,27 +80,27 @@ export * from './dynamic-table/editors/text/text.editor';
export * from './text/text-mask.component'; export * from './text/text-mask.component';
export const WIDGET_DIRECTIVES: any[] = [ export const WIDGET_DIRECTIVES: any[] = [
UnknownWidget, UnknownWidgetComponent,
TabsWidget, TabsWidgetComponent,
ContainerWidget, ContainerWidgetComponent,
TextWidget, TextWidgetComponent,
NumberWidget, NumberWidgetComponent,
CheckboxWidget, CheckboxWidgetComponent,
MultilineTextWidget, MultilineTextWidgetComponentComponent,
DropdownWidget, DropdownWidgetComponent,
HyperlinkWidget, HyperlinkWidgetComponent,
RadioButtonsWidget, RadioButtonsWidgetComponent,
DisplayValueWidget, DisplayValueWidgetComponent,
DisplayTextWidget, DisplayTextWidgetComponentComponent,
UploadWidget, UploadWidgetComponent,
AttachWidget, AttachWidgetComponent,
TypeaheadWidget, TypeaheadWidgetComponent,
FunctionalGroupWidget, FunctionalGroupWidgetComponent,
PeopleWidget, PeopleWidgetComponent,
DateWidget, DateWidgetComponent,
AmountWidget, AmountWidgetComponent,
DynamicTableWidget, DynamicTableWidgetComponent,
DateEditorComponent, DateEditorComponent,
DropdownEditorComponent, DropdownEditorComponent,
BooleanEditorComponent, BooleanEditorComponent,

View File

@@ -15,14 +15,14 @@
* limitations under the License. * limitations under the License.
*/ */
import { MultilineTextWidget } from './multiline-text.widget'; import { MultilineTextWidgetComponentComponent } from './multiline-text.widget';
describe('MultilineTextWidget', () => { describe('MultilineTextWidgetComponentComponent', () => {
let widget: MultilineTextWidget; let widget: MultilineTextWidgetComponentComponent;
beforeEach(() => { beforeEach(() => {
widget = new MultilineTextWidget(null); widget = new MultilineTextWidgetComponentComponent(null);
}); });
it('should exist', () => { it('should exist', () => {

View File

@@ -25,7 +25,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./multiline-text.widget.css'], styleUrls: ['./multiline-text.widget.css'],
host: baseHost host: baseHost
}) })
export class MultilineTextWidget extends WidgetComponent { export class MultilineTextWidgetComponentComponent extends WidgetComponent {
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);

View File

@@ -15,14 +15,14 @@
* limitations under the License. * limitations under the License.
*/ */
import { NumberWidget } from './number.widget'; import { NumberWidgetComponent } from './number.widget';
describe('NumberWidget', () => { describe('NumberWidgetComponent', () => {
let widget: NumberWidget; let widget: NumberWidgetComponent;
beforeEach(() => { beforeEach(() => {
widget = new NumberWidget(null); widget = new NumberWidgetComponent(null);
}); });
it('should exist', () => { it('should exist', () => {

View File

@@ -25,7 +25,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./number.widget.css'], styleUrls: ['./number.widget.css'],
host: baseHost host: baseHost
}) })
export class NumberWidget extends WidgetComponent { export class NumberWidgetComponent extends WidgetComponent {
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);

View File

@@ -21,14 +21,14 @@ import { FormService } from '../../../services/form.service';
import { FormFieldModel } from '../core/form-field.model'; import { FormFieldModel } from '../core/form-field.model';
import { FormModel } from '../core/form.model'; import { FormModel } from '../core/form.model';
import { GroupUserModel } from '../core/group-user.model'; import { GroupUserModel } from '../core/group-user.model';
import { PeopleWidget } from './people.widget'; import { PeopleWidgetComponent } from './people.widget';
describe('PeopleWidget', () => { describe('PeopleWidgetComponent', () => {
let componentHandler; let componentHandler;
let elementRef: ElementRef; let elementRef: ElementRef;
let formService: FormService; let formService: FormService;
let widget: PeopleWidget; let widget: PeopleWidgetComponent;
beforeEach(() => { beforeEach(() => {
componentHandler = jasmine.createSpyObj('componentHandler', [ componentHandler = jasmine.createSpyObj('componentHandler', [
@@ -38,7 +38,7 @@ describe('PeopleWidget', () => {
formService = new FormService(null, null, null); formService = new FormService(null, null, null);
elementRef = new ElementRef(null); elementRef = new ElementRef(null);
widget = new PeopleWidget(formService, elementRef); widget = new PeopleWidgetComponent(formService, elementRef);
widget.field = new FormFieldModel(new FormModel()); widget.field = new FormFieldModel(new FormModel());
}); });
@@ -253,11 +253,11 @@ describe('PeopleWidget', () => {
}); });
it('should require element reference to setup textfield', () => { it('should require element reference to setup textfield', () => {
let w = new PeopleWidget(formService, null); let w = new PeopleWidgetComponent(formService, null);
w.value = '<value>'; w.value = '<value>';
expect(w.setupMaterialComponents(componentHandler)).toBeFalsy(); expect(w.setupMaterialComponents(componentHandler)).toBeFalsy();
w = new PeopleWidget(formService, elementRef); w = new PeopleWidgetComponent(formService, elementRef);
w.value = '<value>'; w.value = '<value>';
expect(w.setupMaterialComponents(componentHandler)).toBeTruthy(); expect(w.setupMaterialComponents(componentHandler)).toBeTruthy();
}); });

View File

@@ -27,7 +27,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./people.widget.css'], styleUrls: ['./people.widget.css'],
host: baseHost host: baseHost
}) })
export class PeopleWidget extends WidgetComponent implements OnInit { export class PeopleWidgetComponent extends WidgetComponent implements OnInit {
popupVisible: boolean = false; popupVisible: boolean = false;
minTermLength: number = 1; minTermLength: number = 1;

View File

@@ -27,12 +27,12 @@ import { FormFieldTypes } from '../core/form-field-types';
import { FormFieldOption } from './../core/form-field-option'; import { FormFieldOption } from './../core/form-field-option';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { FormModel } from './../core/form.model'; import { FormModel } from './../core/form.model';
import { RadioButtonsWidget } from './radio-buttons.widget'; import { RadioButtonsWidgetComponent } from './radio-buttons.widget';
describe('RadioButtonsWidget', () => { describe('RadioButtonsWidgetComponent', () => {
let formService: FormService; let formService: FormService;
let widget: RadioButtonsWidget; let widget: RadioButtonsWidgetComponent;
let visibilityService: WidgetVisibilityService; let visibilityService: WidgetVisibilityService;
let logService: LogServiceMock; let logService: LogServiceMock;
@@ -40,7 +40,7 @@ describe('RadioButtonsWidget', () => {
logService = new LogServiceMock(); logService = new LogServiceMock();
formService = new FormService(null, null, logService); formService = new FormService(null, null, logService);
visibilityService = new WidgetVisibilityService(null, logService); visibilityService = new WidgetVisibilityService(null, logService);
widget = new RadioButtonsWidget(formService, visibilityService, logService); widget = new RadioButtonsWidgetComponent(formService, visibilityService, logService);
widget.field = new FormFieldModel(new FormModel(), { restUrl: '<url>' }); widget.field = new FormFieldModel(new FormModel(), { restUrl: '<url>' });
}); });
@@ -134,8 +134,8 @@ describe('RadioButtonsWidget', () => {
}); });
describe('when template is ready', () => { describe('when template is ready', () => {
let radioButtonWidget: RadioButtonsWidget; let radioButtonWidget: RadioButtonsWidgetComponent;
let fixture: ComponentFixture<RadioButtonsWidget>; let fixture: ComponentFixture<RadioButtonsWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let componentHandler; let componentHandler;
let stubFormService: FormService; let stubFormService: FormService;
@@ -150,10 +150,10 @@ describe('RadioButtonsWidget', () => {
window['componentHandler'] = componentHandler; window['componentHandler'] = componentHandler;
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [CoreModule], imports: [CoreModule],
declarations: [RadioButtonsWidget], declarations: [RadioButtonsWidgetComponent],
providers: [FormService, EcmModelService, WidgetVisibilityService] providers: [FormService, EcmModelService, WidgetVisibilityService]
}).compileComponents().then(() => { }).compileComponents().then(() => {
fixture = TestBed.createComponent(RadioButtonsWidget); fixture = TestBed.createComponent(RadioButtonsWidgetComponent);
radioButtonWidget = fixture.componentInstance; radioButtonWidget = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;
}); });

View File

@@ -28,7 +28,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./radio-buttons.widget.css'], styleUrls: ['./radio-buttons.widget.css'],
host: baseHost host: baseHost
}) })
export class RadioButtonsWidget extends WidgetComponent implements OnInit { export class RadioButtonsWidgetComponent extends WidgetComponent implements OnInit {
constructor(public formService: FormService, constructor(public formService: FormService,
private visibilityService: WidgetVisibilityService, private visibilityService: WidgetVisibilityService,

View File

@@ -24,17 +24,17 @@ import { FormModel } from '../core/form.model';
import { TabModel } from '../core/tab.model'; import { TabModel } from '../core/tab.model';
import { MASK_DIRECTIVE } from '../index'; import { MASK_DIRECTIVE } from '../index';
import { WIDGET_DIRECTIVES } from '../index'; import { WIDGET_DIRECTIVES } from '../index';
import { ActivitiContent } from './../../activiti-content.component'; import { ActivitiContentComponent } from './../../activiti-content.component';
import { FormFieldComponent } from './../../form-field/form-field.component'; import { FormFieldComponent } from './../../form-field/form-field.component';
import { TabsWidget } from './tabs.widget'; import { TabsWidgetComponent } from './tabs.widget';
describe('TabsWidget', () => { describe('TabsWidgetComponent', () => {
let componentHandler; let componentHandler;
let widget: TabsWidget; let widget: TabsWidgetComponent;
beforeEach(() => { beforeEach(() => {
widget = new TabsWidget(); widget = new TabsWidgetComponent();
componentHandler = jasmine.createSpyObj('componentHandler', [ componentHandler = jasmine.createSpyObj('componentHandler', [
'upgradeAllRegistered' 'upgradeAllRegistered'
@@ -97,8 +97,8 @@ describe('TabsWidget', () => {
}); });
describe('when template is ready', () => { describe('when template is ready', () => {
let tabWidgetComponent: TabsWidget; let tabWidgetComponent: TabsWidgetComponent;
let fixture: ComponentFixture<TabsWidget>; let fixture: ComponentFixture<TabsWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let fakeTabVisible: TabModel; let fakeTabVisible: TabModel;
let fakeTabInvisible: TabModel; let fakeTabInvisible: TabModel;
@@ -106,9 +106,9 @@ describe('TabsWidget', () => {
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [CoreModule, MdTabsModule, MdInputModule], imports: [CoreModule, MdTabsModule, MdInputModule],
declarations: [FormFieldComponent, ActivitiContent, WIDGET_DIRECTIVES, MASK_DIRECTIVE] declarations: [FormFieldComponent, ActivitiContentComponent, WIDGET_DIRECTIVES, MASK_DIRECTIVE]
}).compileComponents().then(() => { }).compileComponents().then(() => {
fixture = TestBed.createComponent(TabsWidget); fixture = TestBed.createComponent(TabsWidgetComponent);
tabWidgetComponent = fixture.componentInstance; tabWidgetComponent = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;
}); });

View File

@@ -24,7 +24,7 @@ declare var componentHandler: any;
selector: 'tabs-widget', selector: 'tabs-widget',
templateUrl: './tabs.widget.html' templateUrl: './tabs.widget.html'
}) })
export class TabsWidget implements AfterContentChecked, AfterViewInit { export class TabsWidgetComponent implements AfterContentChecked, AfterViewInit {
@Input() @Input()
tabs: TabModel[] = []; tabs: TabModel[] = [];

View File

@@ -20,17 +20,17 @@ import { FormFieldTypes } from '../core/form-field-types';
import { FormFieldModel } from '../core/form-field.model'; import { FormFieldModel } from '../core/form-field.model';
import { FormModel } from '../core/form.model'; import { FormModel } from '../core/form.model';
import { InputMaskDirective } from './text-mask.component'; import { InputMaskDirective } from './text-mask.component';
import { TextWidget } from './text.widget'; import { TextWidgetComponent } from './text.widget';
import { CoreModule } from 'ng2-alfresco-core'; import { CoreModule } from 'ng2-alfresco-core';
import { ActivitiAlfrescoContentService } from '../../../services/activiti-alfresco.service'; import { ActivitiAlfrescoContentService } from '../../../services/activiti-alfresco.service';
import { EcmModelService } from './../../../services/ecm-model.service'; import { EcmModelService } from './../../../services/ecm-model.service';
import { FormService } from './../../../services/form.service'; import { FormService } from './../../../services/form.service';
describe('TextWidget', () => { describe('TextWidgetComponent', () => {
let widget: TextWidget; let widget: TextWidgetComponent;
let fixture: ComponentFixture<TextWidget>; let fixture: ComponentFixture<TextWidgetComponent>;
let componentHandler; let componentHandler;
let element: HTMLElement; let element: HTMLElement;
@@ -40,7 +40,7 @@ describe('TextWidget', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
TextWidget, TextWidgetComponent,
InputMaskDirective InputMaskDirective
], ],
providers: [ providers: [
@@ -52,7 +52,7 @@ describe('TextWidget', () => {
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(TextWidget); fixture = TestBed.createComponent(TextWidgetComponent);
widget = fixture.componentInstance; widget = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;

View File

@@ -25,10 +25,10 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./text.widget.css'], styleUrls: ['./text.widget.css'],
host: baseHost host: baseHost
}) })
export class TextWidget extends WidgetComponent implements OnInit { export class TextWidgetComponent extends WidgetComponent implements OnInit {
private mask; mask;
private isMaskReversed; isMaskReversed;
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);

View File

@@ -26,12 +26,12 @@ import { FormFieldOption } from '../core/form-field-option';
import { FormFieldTypes } from '../core/form-field-types'; import { FormFieldTypes } from '../core/form-field-types';
import { FormFieldModel } from '../core/form-field.model'; import { FormFieldModel } from '../core/form-field.model';
import { FormModel } from '../core/form.model'; import { FormModel } from '../core/form.model';
import { TypeaheadWidget } from './typeahead.widget'; import { TypeaheadWidgetComponent } from './typeahead.widget';
describe('TypeaheadWidget', () => { describe('TypeaheadWidgetComponent', () => {
let formService: FormService; let formService: FormService;
let widget: TypeaheadWidget; let widget: TypeaheadWidgetComponent;
let visibilityService: WidgetVisibilityService; let visibilityService: WidgetVisibilityService;
let logService: LogServiceMock; let logService: LogServiceMock;
@@ -39,7 +39,7 @@ describe('TypeaheadWidget', () => {
logService = new LogServiceMock(); logService = new LogServiceMock();
formService = new FormService(null, null, logService); formService = new FormService(null, null, logService);
visibilityService = new WidgetVisibilityService(null, logService); visibilityService = new WidgetVisibilityService(null, logService);
widget = new TypeaheadWidget(formService, visibilityService, logService); widget = new TypeaheadWidgetComponent(formService, visibilityService, logService);
widget.field = new FormFieldModel(new FormModel({ taskId: 'task-id' })); widget.field = new FormFieldModel(new FormModel({ taskId: 'task-id' }));
}); });
@@ -373,8 +373,8 @@ describe('TypeaheadWidget', () => {
}); });
describe('when template is ready', () => { describe('when template is ready', () => {
let typeaheadWidget: TypeaheadWidget; let typeaheadWidgetComponent: TypeaheadWidgetComponent;
let fixture: ComponentFixture<TypeaheadWidget>; let fixture: ComponentFixture<TypeaheadWidgetComponent>;
let element: HTMLElement; let element: HTMLElement;
let componentHandler; let componentHandler;
let stubFormService; let stubFormService;
@@ -391,11 +391,11 @@ describe('TypeaheadWidget', () => {
window['componentHandler'] = componentHandler; window['componentHandler'] = componentHandler;
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [CoreModule], imports: [CoreModule],
declarations: [TypeaheadWidget], declarations: [TypeaheadWidgetComponent],
providers: [FormService, EcmModelService, WidgetVisibilityService] providers: [FormService, EcmModelService, WidgetVisibilityService]
}).compileComponents().then(() => { }).compileComponents().then(() => {
fixture = TestBed.createComponent(TypeaheadWidget); fixture = TestBed.createComponent(TypeaheadWidgetComponent);
typeaheadWidget = fixture.componentInstance; typeaheadWidgetComponent = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;
}); });
})); }));
@@ -412,13 +412,13 @@ describe('TypeaheadWidget', () => {
visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService); visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService);
spyOn(visibilityService, 'refreshVisibility').and.stub(); spyOn(visibilityService, 'refreshVisibility').and.stub();
spyOn(stubFormService, 'getRestFieldValues').and.returnValue(Observable.of(fakeOptionList)); spyOn(stubFormService, 'getRestFieldValues').and.returnValue(Observable.of(fakeOptionList));
typeaheadWidget.field = new FormFieldModel(new FormModel({ taskId: 'fake-task-id' }), { typeaheadWidgetComponent.field = new FormFieldModel(new FormModel({ taskId: 'fake-task-id' }), {
id: 'typeahead-id', id: 'typeahead-id',
name: 'typeahead-name', name: 'typeahead-name',
type: FormFieldTypes.TYPEAHEAD, type: FormFieldTypes.TYPEAHEAD,
readOnly: false readOnly: false
}); });
typeaheadWidget.field.isVisible = true; typeaheadWidgetComponent.field.isVisible = true;
fixture.detectChanges(); fixture.detectChanges();
})); }));
@@ -428,8 +428,8 @@ describe('TypeaheadWidget', () => {
})); }));
it('should show typeahead options', async(() => { it('should show typeahead options', async(() => {
typeaheadWidget.value = 'F'; typeaheadWidgetComponent.value = 'F';
typeaheadWidget.onKeyUp(null); typeaheadWidgetComponent.onKeyUp(null);
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable().then(() => { fixture.whenStable().then(() => {
expect(element.querySelector('#typeahead-id-1')).toBeDefined(); expect(element.querySelector('#typeahead-id-1')).toBeDefined();
@@ -442,7 +442,7 @@ describe('TypeaheadWidget', () => {
})); }));
it('should hide not visibile typeahead', async(() => { it('should hide not visibile typeahead', async(() => {
typeaheadWidget.field.isVisible = false; typeaheadWidgetComponent.field.isVisible = false;
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable().then(() => { fixture.whenStable().then(() => {
expect(element.querySelector('#typeahead-id')).toBeNull(); expect(element.querySelector('#typeahead-id')).toBeNull();
@@ -458,14 +458,14 @@ describe('TypeaheadWidget', () => {
visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService); visibilityService = fixture.debugElement.injector.get(WidgetVisibilityService);
spyOn(visibilityService, 'refreshVisibility').and.stub(); spyOn(visibilityService, 'refreshVisibility').and.stub();
spyOn(stubFormService, 'getRestFieldValuesByProcessId').and.returnValue(Observable.of(fakeOptionList)); spyOn(stubFormService, 'getRestFieldValuesByProcessId').and.returnValue(Observable.of(fakeOptionList));
typeaheadWidget.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), { typeaheadWidgetComponent.field = new FormFieldModel(new FormModel({ processDefinitionId: 'fake-process-id' }), {
id: 'typeahead-id', id: 'typeahead-id',
name: 'typeahead-name', name: 'typeahead-name',
type: FormFieldTypes.TYPEAHEAD, type: FormFieldTypes.TYPEAHEAD,
readOnly: 'false' readOnly: 'false'
}); });
typeaheadWidget.field.emptyOption = { id: 'empty', name: 'Choose one...' }; typeaheadWidgetComponent.field.emptyOption = { id: 'empty', name: 'Choose one...' };
typeaheadWidget.field.isVisible = true; typeaheadWidgetComponent.field.isVisible = true;
fixture.detectChanges(); fixture.detectChanges();
})); }));
@@ -475,8 +475,8 @@ describe('TypeaheadWidget', () => {
})); }));
it('should show typeahead options', async(() => { it('should show typeahead options', async(() => {
typeaheadWidget.value = 'F'; typeaheadWidgetComponent.value = 'F';
typeaheadWidget.onKeyUp(null); typeaheadWidgetComponent.onKeyUp(null);
fixture.detectChanges(); fixture.detectChanges();
fixture.whenStable().then(() => { fixture.whenStable().then(() => {
expect(element.querySelector('#typeahead-id-1')).toBeDefined(); expect(element.querySelector('#typeahead-id-1')).toBeDefined();

View File

@@ -28,7 +28,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
styleUrls: ['./typeahead.widget.css'], styleUrls: ['./typeahead.widget.css'],
host: baseHost host: baseHost
}) })
export class TypeaheadWidget extends WidgetComponent implements OnInit { export class TypeaheadWidgetComponent extends WidgetComponent implements OnInit {
popupVisible: boolean = false; popupVisible: boolean = false;
minTermLength: number = 1; minTermLength: number = 1;

View File

@@ -29,7 +29,7 @@ import { baseHost , WidgetComponent } from './../widget.component';
`, `,
host: baseHost host: baseHost
}) })
export class UnknownWidget extends WidgetComponent { export class UnknownWidgetComponent extends WidgetComponent {
constructor(public formService: FormService) { constructor(public formService: FormService) {
super(formService); super(formService);

View File

@@ -22,17 +22,17 @@ import { FormService } from '../../../services/form.service';
import { FormFieldTypes } from '../core/form-field-types'; import { FormFieldTypes } from '../core/form-field-types';
import { FormModel } from '../core/form.model'; import { FormModel } from '../core/form.model';
import { FormFieldModel } from './../core/form-field.model'; import { FormFieldModel } from './../core/form-field.model';
import { UploadWidget } from './upload.widget'; import { UploadWidgetComponent } from './upload.widget';
describe('UploadWidget', () => { describe('UploadWidgetComponent', () => {
let componentHandler; let componentHandler;
let widget: UploadWidget; let widget: UploadWidgetComponent;
let formService: FormService; let formService: FormService;
beforeEach(() => { beforeEach(() => {
formService = new FormService(null, null, null); formService = new FormService(null, null, null);
widget = new UploadWidget(formService, null); widget = new UploadWidgetComponent(formService, null);
}); });
it('should setup with field data', () => { it('should setup with field data', () => {
@@ -85,8 +85,8 @@ describe('UploadWidget', () => {
}); });
describe('when template is ready', () => { describe('when template is ready', () => {
let uploadWidget: UploadWidget; let uploadWidgetComponent: UploadWidgetComponent;
let fixture: ComponentFixture<UploadWidget>; let fixture: ComponentFixture<UploadWidgetComponent>;
let element: HTMLInputElement; let element: HTMLInputElement;
let inputElement: HTMLInputElement; let inputElement: HTMLInputElement;
@@ -98,11 +98,11 @@ describe('UploadWidget', () => {
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [CoreModule], imports: [CoreModule],
declarations: [UploadWidget], declarations: [UploadWidgetComponent],
providers: [FormService, EcmModelService] providers: [FormService, EcmModelService]
}).compileComponents().then(() => { }).compileComponents().then(() => {
fixture = TestBed.createComponent(UploadWidget); fixture = TestBed.createComponent(UploadWidgetComponent);
uploadWidget = fixture.componentInstance; uploadWidgetComponent = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;
}); });
})); }));
@@ -113,7 +113,7 @@ describe('UploadWidget', () => {
}); });
beforeEach(() => { beforeEach(() => {
uploadWidget.field = new FormFieldModel(new FormModel({ taskId: 'fake-upload-id' }), { uploadWidgetComponent.field = new FormFieldModel(new FormModel({ taskId: 'fake-upload-id' }), {
id: 'upload-id', id: 'upload-id',
name: 'upload-name', name: 'upload-name',
value: '', value: '',
@@ -123,7 +123,7 @@ describe('UploadWidget', () => {
}); });
it('should be disabled on readonly forms', async(() => { it('should be disabled on readonly forms', async(() => {
uploadWidget.field.form.readOnly = true; uploadWidgetComponent.field.form.readOnly = true;
fixture.detectChanges(); fixture.detectChanges();
inputElement = <HTMLInputElement>element.querySelector('#upload-id'); inputElement = <HTMLInputElement>element.querySelector('#upload-id');
@@ -136,7 +136,7 @@ describe('UploadWidget', () => {
})); }));
it('should have the multiple attribute when is selected in parameters', async(() => { it('should have the multiple attribute when is selected in parameters', async(() => {
uploadWidget.field.params.multiple = true; uploadWidgetComponent.field.params.multiple = true;
fixture.detectChanges(); fixture.detectChanges();
inputElement = <HTMLInputElement>element.querySelector('#upload-id'); inputElement = <HTMLInputElement>element.querySelector('#upload-id');
@@ -149,7 +149,7 @@ describe('UploadWidget', () => {
})); }));
it('should not have the multiple attribute if multiple is false', async(() => { it('should not have the multiple attribute if multiple is false', async(() => {
uploadWidget.field.params.multiple = false; uploadWidgetComponent.field.params.multiple = false;
fixture.detectChanges(); fixture.detectChanges();
inputElement = <HTMLInputElement>element.querySelector('#upload-id'); inputElement = <HTMLInputElement>element.querySelector('#upload-id');

View File

@@ -26,7 +26,7 @@ import { baseHost, WidgetComponent } from './../widget.component';
styleUrls: ['./upload.widget.css'], styleUrls: ['./upload.widget.css'],
host: baseHost host: baseHost
}) })
export class UploadWidget extends WidgetComponent implements OnInit { export class UploadWidgetComponent extends WidgetComponent implements OnInit {
hasFile: boolean; hasFile: boolean;
fileName: string; fileName: string;

View File

@@ -16,11 +16,11 @@
*/ */
import { import {
AttachWidget, AttachWidgetComponent,
FormFieldModel, FormFieldModel,
FormFieldTypes, FormFieldTypes,
UnknownWidget, UnknownWidgetComponent,
UploadWidget UploadWidgetComponent
} from './../components/widgets/index'; } from './../components/widgets/index';
import { DefaultTypeResolver, FormRenderingService } from './form-rendering.service'; import { DefaultTypeResolver, FormRenderingService } from './form-rendering.service';
@@ -40,7 +40,7 @@ describe('FormRenderingService', () => {
} }
}); });
let type = service.resolveComponentType(field); let type = service.resolveComponentType(field);
expect(type).toBe(AttachWidget); expect(type).toBe(AttachWidgetComponent);
}); });
it('should resolve Upload field as Upload widget', () => { it('should resolve Upload field as Upload widget', () => {
@@ -51,44 +51,44 @@ describe('FormRenderingService', () => {
} }
}); });
let type = service.resolveComponentType(field); let type = service.resolveComponentType(field);
expect(type).toBe(UploadWidget); expect(type).toBe(UploadWidgetComponent);
}); });
it('should resolve Unknown widget for Upload field', () => { it('should resolve Unknown widget for Upload field', () => {
let resolver = service.getComponentTypeResolver(FormFieldTypes.UPLOAD); let resolver = service.getComponentTypeResolver(FormFieldTypes.UPLOAD);
let type = resolver(null); let type = resolver(null);
expect(type).toBe(UnknownWidget); expect(type).toBe(UnknownWidgetComponent);
}); });
it('should resolve Uknown widget for unknown field type', () => { it('should resolve Uknown widget for unknown field type', () => {
let resolver = service.getComponentTypeResolver('missing-type'); let resolver = service.getComponentTypeResolver('missing-type');
let type = resolver(null); let type = resolver(null);
expect(type).toBe(UnknownWidget); expect(type).toBe(UnknownWidgetComponent);
}); });
it('shoulld resolve custom value for unknown field type', () => { it('shoulld resolve custom value for unknown field type', () => {
let resolver = service.getComponentTypeResolver('missing-type', AttachWidget); let resolver = service.getComponentTypeResolver('missing-type', AttachWidgetComponent);
let type = resolver(null); let type = resolver(null);
expect(type).toBe(AttachWidget); expect(type).toBe(AttachWidgetComponent);
}); });
it('should fallback to default resolver when field type missing', () => { it('should fallback to default resolver when field type missing', () => {
let resolver = service.getComponentTypeResolver(null); let resolver = service.getComponentTypeResolver(null);
let type = resolver(null); let type = resolver(null);
expect(type).toBe(UnknownWidget); expect(type).toBe(UnknownWidgetComponent);
}); });
it('should fallback to custom resolver when field type missing', () => { it('should fallback to custom resolver when field type missing', () => {
let resolver = service.getComponentTypeResolver(null, UploadWidget); let resolver = service.getComponentTypeResolver(null, UploadWidgetComponent);
let type = resolver(null); let type = resolver(null);
expect(type).toBe(UploadWidget); expect(type).toBe(UploadWidgetComponent);
}); });
it('should require field type to set resolver for type', () => { it('should require field type to set resolver for type', () => {
expect( expect(
() => service.setComponentTypeResolver( () => service.setComponentTypeResolver(
null, null,
DefaultTypeResolver.fromType(UnknownWidget) DefaultTypeResolver.fromType(UnknownWidgetComponent)
) )
).toThrowError('fieldType is null or not defined'); ).toThrowError('fieldType is null or not defined');
}); });
@@ -106,23 +106,23 @@ describe('FormRenderingService', () => {
expect( expect(
() => service.setComponentTypeResolver( () => service.setComponentTypeResolver(
FormFieldTypes.TEXT, FormFieldTypes.TEXT,
DefaultTypeResolver.fromType(UnknownWidget) DefaultTypeResolver.fromType(UnknownWidgetComponent)
) )
).toThrowError('already mapped, use override option if you intend replacing existing mapping.'); ).toThrowError('already mapped, use override option if you intend replacing existing mapping.');
}); });
it('should override existing resolver with explicit flag', () => { it('should override existing resolver with explicit flag', () => {
let customResolver = DefaultTypeResolver.fromType(UnknownWidget); let customResolver = DefaultTypeResolver.fromType(UnknownWidgetComponent);
service.setComponentTypeResolver(FormFieldTypes.TEXT, customResolver, true); service.setComponentTypeResolver(FormFieldTypes.TEXT, customResolver, true);
expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver); expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver);
}); });
it('should return default value when resolving with no field', () => { it('should return default value when resolving with no field', () => {
expect(service.resolveComponentType(null)).toBe(UnknownWidget); expect(service.resolveComponentType(null)).toBe(UnknownWidgetComponent);
}); });
it('should return custom value when resolving with no field', () => { it('should return custom value when resolving with no field', () => {
expect(service.resolveComponentType(null, AttachWidget)).toBe(AttachWidget); expect(service.resolveComponentType(null, AttachWidgetComponent)).toBe(AttachWidgetComponent);
}); });
}); });

View File

@@ -18,49 +18,49 @@
import { Injectable, Type } from '@angular/core'; import { Injectable, Type } from '@angular/core';
import { import {
AmountWidget, AmountWidgetComponent,
AttachWidget, AttachWidgetComponent,
CheckboxWidget, CheckboxWidgetComponent,
ContainerWidget, ContainerWidgetComponent,
DateWidget, DateWidgetComponent,
DisplayTextWidget, DisplayTextWidgetComponentComponent,
DisplayValueWidget, DisplayValueWidgetComponent,
DropdownWidget, DropdownWidgetComponent,
DynamicTableWidget, DynamicTableWidgetComponent,
FormFieldModel, FormFieldModel,
FunctionalGroupWidget, FunctionalGroupWidgetComponent,
HyperlinkWidget, HyperlinkWidgetComponent,
MultilineTextWidget, MultilineTextWidgetComponentComponent,
NumberWidget, NumberWidgetComponent,
PeopleWidget, PeopleWidgetComponent,
RadioButtonsWidget, RadioButtonsWidgetComponent,
TextWidget, TextWidgetComponent,
TypeaheadWidget, TypeaheadWidgetComponent,
UnknownWidget, UnknownWidgetComponent,
UploadWidget UploadWidgetComponent
} from './../components/widgets/index'; } from './../components/widgets/index';
@Injectable() @Injectable()
export class FormRenderingService { export class FormRenderingService {
private types: { [key: string]: ComponentTypeResolver } = { private types: { [key: string]: ComponentTypeResolver } = {
'text': DefaultTypeResolver.fromType(TextWidget), 'text': DefaultTypeResolver.fromType(TextWidgetComponent),
'integer': DefaultTypeResolver.fromType(NumberWidget), 'integer': DefaultTypeResolver.fromType(NumberWidgetComponent),
'multi-line-text': DefaultTypeResolver.fromType(MultilineTextWidget), 'multi-line-text': DefaultTypeResolver.fromType(MultilineTextWidgetComponentComponent),
'boolean': DefaultTypeResolver.fromType(CheckboxWidget), 'boolean': DefaultTypeResolver.fromType(CheckboxWidgetComponent),
'dropdown': DefaultTypeResolver.fromType(DropdownWidget), 'dropdown': DefaultTypeResolver.fromType(DropdownWidgetComponent),
'date': DefaultTypeResolver.fromType(DateWidget), 'date': DefaultTypeResolver.fromType(DateWidgetComponent),
'amount': DefaultTypeResolver.fromType(AmountWidget), 'amount': DefaultTypeResolver.fromType(AmountWidgetComponent),
'radio-buttons': DefaultTypeResolver.fromType(RadioButtonsWidget), 'radio-buttons': DefaultTypeResolver.fromType(RadioButtonsWidgetComponent),
'hyperlink': DefaultTypeResolver.fromType(HyperlinkWidget), 'hyperlink': DefaultTypeResolver.fromType(HyperlinkWidgetComponent),
'readonly': DefaultTypeResolver.fromType(DisplayValueWidget), 'readonly': DefaultTypeResolver.fromType(DisplayValueWidgetComponent),
'readonly-text': DefaultTypeResolver.fromType(DisplayTextWidget), 'readonly-text': DefaultTypeResolver.fromType(DisplayTextWidgetComponentComponent),
'typeahead': DefaultTypeResolver.fromType(TypeaheadWidget), 'typeahead': DefaultTypeResolver.fromType(TypeaheadWidgetComponent),
'people': DefaultTypeResolver.fromType(PeopleWidget), 'people': DefaultTypeResolver.fromType(PeopleWidgetComponent),
'functional-group': DefaultTypeResolver.fromType(FunctionalGroupWidget), 'functional-group': DefaultTypeResolver.fromType(FunctionalGroupWidgetComponent),
'dynamic-table': DefaultTypeResolver.fromType(DynamicTableWidget), 'dynamic-table': DefaultTypeResolver.fromType(DynamicTableWidgetComponent),
'container': DefaultTypeResolver.fromType(ContainerWidget), 'container': DefaultTypeResolver.fromType(ContainerWidgetComponent),
'group': DefaultTypeResolver.fromType(ContainerWidget) 'group': DefaultTypeResolver.fromType(ContainerWidgetComponent)
}; };
constructor() { constructor() {
@@ -68,15 +68,15 @@ export class FormRenderingService {
if (field) { if (field) {
let params = field.params; let params = field.params;
if (params && params.link) { if (params && params.link) {
return AttachWidget; return AttachWidgetComponent;
} }
return UploadWidget; return UploadWidgetComponent;
} }
return UnknownWidget; return UnknownWidgetComponent;
}; };
} }
getComponentTypeResolver(fieldType: string, defaultValue: Type<{}> = UnknownWidget): ComponentTypeResolver { getComponentTypeResolver(fieldType: string, defaultValue: Type<{}> = UnknownWidgetComponent): ComponentTypeResolver {
if (fieldType) { if (fieldType) {
return this.types[fieldType] || DefaultTypeResolver.fromType(defaultValue); return this.types[fieldType] || DefaultTypeResolver.fromType(defaultValue);
} }
@@ -100,7 +100,7 @@ export class FormRenderingService {
this.types[fieldType] = resolver; this.types[fieldType] = resolver;
} }
resolveComponentType(field: FormFieldModel, defaultValue: Type<{}> = UnknownWidget): Type<{}> { resolveComponentType(field: FormFieldModel, defaultValue: Type<{}> = UnknownWidgetComponent): Type<{}> {
if (field) { if (field) {
let resolver = this.getComponentTypeResolver(field.type, defaultValue); let resolver = this.getComponentTypeResolver(field.type, defaultValue);
return resolver(field); return resolver(field);
@@ -110,9 +110,7 @@ export class FormRenderingService {
} }
export interface ComponentTypeResolver { export type ComponentTypeResolver = (field: FormFieldModel) => Type<{}>;
(field: FormFieldModel): Type<{}>;
}
export class DefaultTypeResolver { export class DefaultTypeResolver {
static fromType(type: Type<{}>): ComponentTypeResolver { static fromType(type: Type<{}>): ComponentTypeResolver {

View File

@@ -1,4 +1,7 @@
{ {
"rulesDirectory": [
"node_modules/codelyzer"
],
"rules": { "rules": {
"align": [ "align": [
true, true,
@@ -105,14 +108,50 @@
"allow-leading-underscore", "allow-leading-underscore",
"ban-keywords" "ban-keywords"
], ],
"callable-types": true,
"import-blacklist": [
true,
"rxjs"
],
"import-spacing": true,
"interface-over-type-literal": true,
"member-access": false,
"no-empty-interface": true,
"no-string-literal": false,
"no-string-throw": true,
"prefer-const": false,
"typeof-compare": true,
"unified-signatures": true,
"whitespace": [ "whitespace": [
true, true,
"check-branch", "check-branch",
"check-decl",
"check-operator", "check-operator",
"check-separator", "check-separator",
"check-type", "check-type"
"check-module", ],
"check-decl" "directive-selector": [
] true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"ordered-imports": true,
"use-input-property-decorator": true,
"use-output-property-decorator": true,
"use-host-property-decorator": true,
"use-life-cycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
"directive-class-suffix": true,
"no-access-missing-member": false,
"templates-use-public": true,
"invoke-injectable": true
} }
} }

View File

@@ -45,7 +45,8 @@ module.exports = {
loader: 'tslint-loader', loader: 'tslint-loader',
options: { options: {
emitErrors: true, emitErrors: true,
failOnHint: true failOnHint: true,
fix: true
}, },
exclude: [/node_modules/, /bundles/, /dist/, /demo/] exclude: [/node_modules/, /bundles/, /dist/, /demo/]
}, },

View File

@@ -16,23 +16,23 @@
*/ */
import { ModuleWithProviders, NgModule } from '@angular/core'; import { ModuleWithProviders, NgModule } from '@angular/core';
import { MdProgressSpinnerModule } from '@angular/material';
import { ActivitiFormModule } from 'ng2-activiti-form'; import { ActivitiFormModule } from 'ng2-activiti-form';
import { ActivitiTaskListModule } from 'ng2-activiti-tasklist'; import { ActivitiTaskListModule } from 'ng2-activiti-tasklist';
import { CoreModule } from 'ng2-alfresco-core'; import { CoreModule } from 'ng2-alfresco-core';
import { DataTableModule } from 'ng2-alfresco-datatable'; import { DataTableModule } from 'ng2-alfresco-datatable';
import { MdProgressSpinnerModule } from '@angular/material';
import { import {
ActivitiCreateProcessAttachmentComponent, ActivitiCreateProcessAttachmentComponent,
ActivitiProcessAttachmentListComponent, ActivitiProcessAttachmentListComponent,
ActivitiProcessComments, ActivitiProcessCommentsComponent,
ActivitiProcessFilters, ActivitiProcessFiltersComponent,
ActivitiProcessInstanceDetails, ActivitiProcessInstanceDetailsComponent,
ActivitiProcessInstanceHeader, ActivitiProcessInstanceHeaderComponent,
ActivitiProcessInstanceListComponent, ActivitiProcessInstanceListComponent,
ActivitiProcessInstanceTasks, ActivitiProcessInstanceTasksComponent,
ActivitiProcessInstanceVariables, ActivitiProcessInstanceVariablesComponent,
ActivitiStartProcessInstance ActivitiStartProcessInstanceComponent
} from './src/components/index'; } from './src/components/index';
import { ActivitiProcessService } from './src/services/activiti-process.service'; import { ActivitiProcessService } from './src/services/activiti-process.service';
@@ -55,13 +55,13 @@ export * from './src/services/activiti-process.service';
export const ACTIVITI_PROCESSLIST_DIRECTIVES: [any] = [ export const ACTIVITI_PROCESSLIST_DIRECTIVES: [any] = [
ActivitiProcessInstanceListComponent, ActivitiProcessInstanceListComponent,
ActivitiProcessFilters, ActivitiProcessFiltersComponent,
ActivitiProcessInstanceDetails, ActivitiProcessInstanceDetailsComponent,
ActivitiProcessInstanceHeader, ActivitiProcessInstanceHeaderComponent,
ActivitiProcessInstanceTasks, ActivitiProcessInstanceTasksComponent,
ActivitiProcessInstanceVariables, ActivitiProcessInstanceVariablesComponent,
ActivitiProcessComments, ActivitiProcessCommentsComponent,
ActivitiStartProcessInstance, ActivitiStartProcessInstanceComponent,
ActivitiProcessAttachmentListComponent, ActivitiProcessAttachmentListComponent,
ActivitiCreateProcessAttachmentComponent ActivitiCreateProcessAttachmentComponent
]; ];

View File

@@ -20,11 +20,11 @@ import { LogServiceMock } from 'ng2-alfresco-core';
import { Observable } from 'rxjs/Rx'; import { Observable } from 'rxjs/Rx';
import { FilterProcessRepresentationModel } from '../models/filter-process.model'; import { FilterProcessRepresentationModel } from '../models/filter-process.model';
import { ActivitiProcessService } from '../services/activiti-process.service'; import { ActivitiProcessService } from '../services/activiti-process.service';
import { ActivitiProcessFilters } from './activiti-filters.component'; import { ActivitiProcessFiltersComponent } from './activiti-filters.component';
describe('ActivitiFilters', () => { describe('ActivitiFilters', () => {
let filterList: ActivitiProcessFilters; let filterList: ActivitiProcessFiltersComponent;
let activitiService: ActivitiProcessService; let activitiService: ActivitiProcessService;
let logService: LogServiceMock; let logService: LogServiceMock;
@@ -53,7 +53,7 @@ describe('ActivitiFilters', () => {
beforeEach(() => { beforeEach(() => {
logService = new LogServiceMock(); logService = new LogServiceMock();
activitiService = new ActivitiProcessService(null, logService); activitiService = new ActivitiProcessService(null, logService);
filterList = new ActivitiProcessFilters(null, activitiService, logService); filterList = new ActivitiProcessFiltersComponent(null, activitiService, logService);
}); });
it('should return the filter task list', (done) => { it('should return the filter task list', (done) => {

View File

@@ -28,7 +28,7 @@ declare let componentHandler: any;
templateUrl: './activiti-filters.component.html', templateUrl: './activiti-filters.component.html',
styleUrls: ['activiti-filters.component.css'] styleUrls: ['activiti-filters.component.css']
}) })
export class ActivitiProcessFilters implements OnInit, OnChanges { export class ActivitiProcessFiltersComponent implements OnInit, OnChanges {
@Input() @Input()
filterParam: FilterParamsModel; filterParam: FilterParamsModel;

View File

@@ -25,14 +25,14 @@ import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
import { TranslationMock } from './../assets/translation.service.mock'; import { TranslationMock } from './../assets/translation.service.mock';
import { ActivitiProcessService } from './../services/activiti-process.service'; import { ActivitiProcessService } from './../services/activiti-process.service';
import { ActivitiProcessComments } from './activiti-process-comments.component'; import { ActivitiProcessCommentsComponent } from './activiti-process-comments.component';
describe('ActivitiProcessInstanceComments', () => { describe('ActivitiProcessInstanceComments', () => {
let componentHandler: any; let componentHandler: any;
let service: ActivitiProcessService; let service: ActivitiProcessService;
let component: ActivitiProcessComments; let component: ActivitiProcessCommentsComponent;
let fixture: ComponentFixture<ActivitiProcessComments>; let fixture: ComponentFixture<ActivitiProcessCommentsComponent>;
let getCommentsSpy: jasmine.Spy; let getCommentsSpy: jasmine.Spy;
let addCommentSpy: jasmine.Spy; let addCommentSpy: jasmine.Spy;
@@ -43,7 +43,7 @@ describe('ActivitiProcessInstanceComments', () => {
ActivitiFormModule ActivitiFormModule
], ],
declarations: [ declarations: [
ActivitiProcessComments ActivitiProcessCommentsComponent
], ],
providers: [ providers: [
{ provide: AlfrescoTranslationService, useClass: TranslationMock }, { provide: AlfrescoTranslationService, useClass: TranslationMock },
@@ -54,7 +54,7 @@ describe('ActivitiProcessInstanceComments', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiProcessComments); fixture = TestBed.createComponent(ActivitiProcessCommentsComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
service = fixture.debugElement.injector.get(ActivitiProcessService); service = fixture.debugElement.injector.get(ActivitiProcessService);

View File

@@ -31,7 +31,7 @@ declare let dialogPolyfill: any;
styleUrls: ['./activiti-process-comments.component.css'], styleUrls: ['./activiti-process-comments.component.css'],
providers: [ActivitiProcessService] providers: [ActivitiProcessService]
}) })
export class ActivitiProcessComments implements OnChanges { export class ActivitiProcessCommentsComponent implements OnChanges {
@Input() @Input()
processInstanceId: string; processInstanceId: string;

View File

@@ -28,15 +28,15 @@ import { ProcessInstance } from '../models/process-instance.model';
import { exampleProcess, exampleProcessNoName } from './../assets/activiti-process.model.mock'; import { exampleProcess, exampleProcessNoName } from './../assets/activiti-process.model.mock';
import { TranslationMock } from './../assets/translation.service.mock'; import { TranslationMock } from './../assets/translation.service.mock';
import { ActivitiProcessService } from './../services/activiti-process.service'; import { ActivitiProcessService } from './../services/activiti-process.service';
import { ActivitiProcessInstanceDetails } from './activiti-process-instance-details.component'; import { ActivitiProcessInstanceDetailsComponent } from './activiti-process-instance-details.component';
describe('ActivitiProcessInstanceDetails', () => { describe('ActivitiProcessInstanceDetailsComponent', () => {
let componentHandler: any; let componentHandler: any;
let service: ActivitiProcessService; let service: ActivitiProcessService;
let formService: FormService; let formService: FormService;
let component: ActivitiProcessInstanceDetails; let component: ActivitiProcessInstanceDetailsComponent;
let fixture: ComponentFixture<ActivitiProcessInstanceDetails>; let fixture: ComponentFixture<ActivitiProcessInstanceDetailsComponent>;
let getProcessSpy: jasmine.Spy; let getProcessSpy: jasmine.Spy;
beforeEach(async(() => { beforeEach(async(() => {
@@ -47,7 +47,7 @@ describe('ActivitiProcessInstanceDetails', () => {
ActivitiTaskListModule ActivitiTaskListModule
], ],
declarations: [ declarations: [
ActivitiProcessInstanceDetails ActivitiProcessInstanceDetailsComponent
], ],
providers: [ providers: [
{ provide: AlfrescoTranslationService, useClass: TranslationMock }, { provide: AlfrescoTranslationService, useClass: TranslationMock },
@@ -59,7 +59,7 @@ describe('ActivitiProcessInstanceDetails', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiProcessInstanceDetails); fixture = TestBed.createComponent(ActivitiProcessInstanceDetailsComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
service = fixture.debugElement.injector.get(ActivitiProcessService); service = fixture.debugElement.injector.get(ActivitiProcessService);
formService = fixture.debugElement.injector.get(FormService); formService = fixture.debugElement.injector.get(FormService);

View File

@@ -22,24 +22,24 @@ import {AlfrescoTranslationService, LogService} from 'ng2-alfresco-core';
import {ProcessInstance} from '../models/process-instance.model'; import {ProcessInstance} from '../models/process-instance.model';
import {ActivitiProcessService} from './../services/activiti-process.service'; import {ActivitiProcessService} from './../services/activiti-process.service';
import {ActivitiProcessInstanceHeader} from './activiti-process-instance-header.component'; import {ActivitiProcessInstanceHeaderComponent} from './activiti-process-instance-header.component';
import {ActivitiProcessInstanceTasks} from './activiti-process-instance-tasks.component'; import {ActivitiProcessInstanceTasksComponent} from './activiti-process-instance-tasks.component';
@Component({ @Component({
selector: 'adf-process-instance-details, activiti-process-instance-details', selector: 'adf-process-instance-details, activiti-process-instance-details',
templateUrl: './activiti-process-instance-details.component.html', templateUrl: './activiti-process-instance-details.component.html',
styleUrls: ['./activiti-process-instance-details.component.css'] styleUrls: ['./activiti-process-instance-details.component.css']
}) })
export class ActivitiProcessInstanceDetails implements OnChanges { export class ActivitiProcessInstanceDetailsComponent implements OnChanges {
@Input() @Input()
processInstanceId: string; processInstanceId: string;
@ViewChild(ActivitiProcessInstanceHeader) @ViewChild(ActivitiProcessInstanceHeaderComponent)
processInstanceHeader: ActivitiProcessInstanceHeader; processInstanceHeader: ActivitiProcessInstanceHeaderComponent;
@ViewChild(ActivitiProcessInstanceTasks) @ViewChild(ActivitiProcessInstanceTasksComponent)
tasksList: ActivitiProcessInstanceTasks; tasksList: ActivitiProcessInstanceTasksComponent;
@Input() @Input()
showTitle: boolean = true; showTitle: boolean = true;

View File

@@ -22,14 +22,14 @@ import { exampleProcess, processEnded } from './../assets/activiti-process.model
import { TranslationMock } from './../assets/translation.service.mock'; import { TranslationMock } from './../assets/translation.service.mock';
import { ProcessInstance } from './../models/process-instance.model'; import { ProcessInstance } from './../models/process-instance.model';
import { ActivitiProcessService } from './../services/activiti-process.service'; import { ActivitiProcessService } from './../services/activiti-process.service';
import { ActivitiProcessComments } from './activiti-process-comments.component'; import { ActivitiProcessCommentsComponent } from './activiti-process-comments.component';
import { ActivitiProcessInstanceHeader } from './activiti-process-instance-header.component'; import { ActivitiProcessInstanceHeaderComponent } from './activiti-process-instance-header.component';
describe('ActivitiProcessInstanceHeader', () => { describe('ActivitiProcessInstanceHeaderComponent', () => {
let componentHandler: any; let componentHandler: any;
let component: ActivitiProcessInstanceHeader; let component: ActivitiProcessInstanceHeaderComponent;
let fixture: ComponentFixture<ActivitiProcessInstanceHeader>; let fixture: ComponentFixture<ActivitiProcessInstanceHeaderComponent>;
let element: HTMLElement; let element: HTMLElement;
beforeEach(async(() => { beforeEach(async(() => {
@@ -38,8 +38,8 @@ describe('ActivitiProcessInstanceHeader', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
ActivitiProcessInstanceHeader, ActivitiProcessInstanceHeaderComponent,
ActivitiProcessComments ActivitiProcessCommentsComponent
], ],
providers: [ providers: [
ActivitiProcessService, ActivitiProcessService,
@@ -50,7 +50,7 @@ describe('ActivitiProcessInstanceHeader', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiProcessInstanceHeader); fixture = TestBed.createComponent(ActivitiProcessInstanceHeaderComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
element = fixture.nativeElement; element = fixture.nativeElement;

View File

@@ -27,7 +27,7 @@ declare let componentHandler: any;
templateUrl: './activiti-process-instance-header.component.html', templateUrl: './activiti-process-instance-header.component.html',
styleUrls: ['./activiti-process-instance-header.component.css'] styleUrls: ['./activiti-process-instance-header.component.css']
}) })
export class ActivitiProcessInstanceHeader { export class ActivitiProcessInstanceHeaderComponent {
@Input() @Input()
showDiagram: boolean = true; showDiagram: boolean = true;

View File

@@ -27,13 +27,13 @@ import { taskDetailsMock } from './../assets/task-details.mock';
import { TranslationMock } from './../assets/translation.service.mock'; import { TranslationMock } from './../assets/translation.service.mock';
import { ProcessInstance } from './../models/process-instance.model'; import { ProcessInstance } from './../models/process-instance.model';
import { ActivitiProcessService } from './../services/activiti-process.service'; import { ActivitiProcessService } from './../services/activiti-process.service';
import { ActivitiProcessInstanceTasks } from './activiti-process-instance-tasks.component'; import { ActivitiProcessInstanceTasksComponent } from './activiti-process-instance-tasks.component';
describe('ActivitiProcessInstanceTasks', () => { describe('ActivitiProcessInstanceTasksComponent', () => {
let componentHandler: any; let componentHandler: any;
let component: ActivitiProcessInstanceTasks; let component: ActivitiProcessInstanceTasksComponent;
let fixture: ComponentFixture<ActivitiProcessInstanceTasks>; let fixture: ComponentFixture<ActivitiProcessInstanceTasksComponent>;
let debugElement: DebugElement; let debugElement: DebugElement;
let service: ActivitiProcessService; let service: ActivitiProcessService;
let getProcessTasksSpy: jasmine.Spy; let getProcessTasksSpy: jasmine.Spy;
@@ -46,7 +46,7 @@ describe('ActivitiProcessInstanceTasks', () => {
CoreModule.forRoot() CoreModule.forRoot()
], ],
declarations: [ declarations: [
ActivitiProcessInstanceTasks ActivitiProcessInstanceTasksComponent
], ],
providers: [ providers: [
{ provide: AlfrescoTranslationService, useClass: TranslationMock }, { provide: AlfrescoTranslationService, useClass: TranslationMock },
@@ -58,7 +58,7 @@ describe('ActivitiProcessInstanceTasks', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiProcessInstanceTasks); fixture = TestBed.createComponent(ActivitiProcessInstanceTasksComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
debugElement = fixture.debugElement; debugElement = fixture.debugElement;
service = fixture.debugElement.injector.get(ActivitiProcessService); service = fixture.debugElement.injector.get(ActivitiProcessService);

View File

@@ -31,7 +31,7 @@ declare let dialogPolyfill: any;
templateUrl: './activiti-process-instance-tasks.component.html', templateUrl: './activiti-process-instance-tasks.component.html',
styleUrls: ['./activiti-process-instance-tasks.component.css'] styleUrls: ['./activiti-process-instance-tasks.component.css']
}) })
export class ActivitiProcessInstanceTasks implements OnInit, OnChanges { export class ActivitiProcessInstanceTasksComponent implements OnInit, OnChanges {
@Input() @Input()
processInstanceDetails: ProcessInstance; processInstanceDetails: ProcessInstance;

View File

@@ -26,14 +26,14 @@ import { DataTableModule, ObjectDataRow, ObjectDataTableAdapter } from 'ng2-alfr
import { TranslationMock } from './../assets/translation.service.mock'; import { TranslationMock } from './../assets/translation.service.mock';
import { ActivitiProcessService } from './../services/activiti-process.service'; import { ActivitiProcessService } from './../services/activiti-process.service';
import { ActivitiProcessInstanceVariables } from './activiti-process-instance-variables.component'; import { ActivitiProcessInstanceVariablesComponent } from './activiti-process-instance-variables.component';
describe('ActivitiProcessInstanceVariables', () => { describe('ActivitiProcessInstanceVariablesComponent', () => {
let componentHandler: any; let componentHandler: any;
let service: ActivitiProcessService; let service: ActivitiProcessService;
let component: ActivitiProcessInstanceVariables; let component: ActivitiProcessInstanceVariablesComponent;
let fixture: ComponentFixture<ActivitiProcessInstanceVariables>; let fixture: ComponentFixture<ActivitiProcessInstanceVariablesComponent>;
let getVariablesSpy: jasmine.Spy; let getVariablesSpy: jasmine.Spy;
let createOrUpdateProcessInstanceVariablesSpy: jasmine.Spy; let createOrUpdateProcessInstanceVariablesSpy: jasmine.Spy;
let deleteProcessInstanceVariableSpy: jasmine.Spy; let deleteProcessInstanceVariableSpy: jasmine.Spy;
@@ -46,7 +46,7 @@ describe('ActivitiProcessInstanceVariables', () => {
MdProgressSpinnerModule MdProgressSpinnerModule
], ],
declarations: [ declarations: [
ActivitiProcessInstanceVariables ActivitiProcessInstanceVariablesComponent
], ],
providers: [ providers: [
{ provide: AlfrescoTranslationService, useClass: TranslationMock }, { provide: AlfrescoTranslationService, useClass: TranslationMock },
@@ -57,7 +57,7 @@ describe('ActivitiProcessInstanceVariables', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiProcessInstanceVariables); fixture = TestBed.createComponent(ActivitiProcessInstanceVariablesComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
service = fixture.debugElement.injector.get(ActivitiProcessService); service = fixture.debugElement.injector.get(ActivitiProcessService);

View File

@@ -31,7 +31,7 @@ declare let dialogPolyfill: any;
styleUrls: ['./activiti-process-instance-variables.component.css'], styleUrls: ['./activiti-process-instance-variables.component.css'],
providers: [ActivitiProcessService] providers: [ActivitiProcessService]
}) })
export class ActivitiProcessInstanceVariables implements OnInit, OnChanges { export class ActivitiProcessInstanceVariablesComponent implements OnInit, OnChanges {
@Input() @Input()
processInstanceId: string; processInstanceId: string;

View File

@@ -26,13 +26,13 @@ import { RestVariable } from 'alfresco-js-api';
import { ActivitiProcessService } from '../services/activiti-process.service'; import { ActivitiProcessService } from '../services/activiti-process.service';
import { fakeProcessDefs, fakeProcessDefWithForm, newProcess, taskFormMock } from './../assets/activiti-start-process.component.mock'; import { fakeProcessDefs, fakeProcessDefWithForm, newProcess, taskFormMock } from './../assets/activiti-start-process.component.mock';
import { TranslationMock } from './../assets/translation.service.mock'; import { TranslationMock } from './../assets/translation.service.mock';
import { ActivitiStartProcessInstance } from './activiti-start-process.component'; import { ActivitiStartProcessInstanceComponent } from './activiti-start-process.component';
describe('ActivitiStartProcessInstance', () => { describe('ActivitiStartProcessInstanceComponent', () => {
let componentHandler: any; let componentHandler: any;
let component: ActivitiStartProcessInstance; let component: ActivitiStartProcessInstanceComponent;
let fixture: ComponentFixture<ActivitiStartProcessInstance>; let fixture: ComponentFixture<ActivitiStartProcessInstanceComponent>;
let processService: ActivitiProcessService; let processService: ActivitiProcessService;
let formService: FormService; let formService: FormService;
let getDefinitionsSpy: jasmine.Spy; let getDefinitionsSpy: jasmine.Spy;
@@ -47,7 +47,7 @@ describe('ActivitiStartProcessInstance', () => {
ActivitiFormModule.forRoot() ActivitiFormModule.forRoot()
], ],
declarations: [ declarations: [
ActivitiStartProcessInstance ActivitiStartProcessInstanceComponent
], ],
providers: [ providers: [
{provide: AlfrescoTranslationService, useClass: TranslationMock}, {provide: AlfrescoTranslationService, useClass: TranslationMock},
@@ -59,7 +59,7 @@ describe('ActivitiStartProcessInstance', () => {
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ActivitiStartProcessInstance); fixture = TestBed.createComponent(ActivitiStartProcessInstanceComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
debugElement = fixture.debugElement; debugElement = fixture.debugElement;
processService = fixture.debugElement.injector.get(ActivitiProcessService); processService = fixture.debugElement.injector.get(ActivitiProcessService);

View File

@@ -17,7 +17,7 @@
import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core'; import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';
import { RestVariable } from 'alfresco-js-api'; import { RestVariable } from 'alfresco-js-api';
import { ActivitiStartForm } from 'ng2-activiti-form'; import { ActivitiStartFormComponent } from 'ng2-activiti-form';
import { AlfrescoTranslationService } from 'ng2-alfresco-core'; import { AlfrescoTranslationService } from 'ng2-alfresco-core';
import { ProcessDefinitionRepresentation } from './../models/process-definition.model'; import { ProcessDefinitionRepresentation } from './../models/process-definition.model';
import { ProcessInstance } from './../models/process-instance.model'; import { ProcessInstance } from './../models/process-instance.model';
@@ -31,7 +31,7 @@ declare let dialogPolyfill: any;
templateUrl: './activiti-start-process.component.html', templateUrl: './activiti-start-process.component.html',
styleUrls: ['./activiti-start-process.component.css'] styleUrls: ['./activiti-start-process.component.css']
}) })
export class ActivitiStartProcessInstance implements OnChanges { export class ActivitiStartProcessInstanceComponent implements OnChanges {
@Input() @Input()
appId: string; appId: string;
@@ -45,8 +45,8 @@ export class ActivitiStartProcessInstance implements OnChanges {
@Output() @Output()
error: EventEmitter<ProcessInstance> = new EventEmitter<ProcessInstance>(); error: EventEmitter<ProcessInstance> = new EventEmitter<ProcessInstance>();
@ViewChild(ActivitiStartForm) @ViewChild(ActivitiStartFormComponent)
startForm: ActivitiStartForm; startForm: ActivitiStartFormComponent;
processDefinitions: ProcessDefinitionRepresentation[] = []; processDefinitions: ProcessDefinitionRepresentation[] = [];

View File

@@ -1,4 +1,7 @@
{ {
"rulesDirectory": [
"node_modules/codelyzer"
],
"rules": { "rules": {
"align": [ "align": [
true, true,
@@ -105,14 +108,50 @@
"allow-leading-underscore", "allow-leading-underscore",
"ban-keywords" "ban-keywords"
], ],
"callable-types": true,
"import-blacklist": [
true,
"rxjs"
],
"import-spacing": true,
"interface-over-type-literal": true,
"member-access": false,
"no-empty-interface": true,
"no-string-literal": false,
"no-string-throw": true,
"prefer-const": false,
"typeof-compare": true,
"unified-signatures": true,
"whitespace": [ "whitespace": [
true, true,
"check-branch", "check-branch",
"check-decl",
"check-operator", "check-operator",
"check-separator", "check-separator",
"check-type", "check-type"
"check-module", ],
"check-decl" "directive-selector": [
] true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"ordered-imports": true,
"use-input-property-decorator": true,
"use-output-property-decorator": true,
"use-host-property-decorator": true,
"use-life-cycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
"directive-class-suffix": true,
"no-access-missing-member": false,
"templates-use-public": true,
"invoke-injectable": true
} }
} }

Some files were not shown because too many files have changed in this diff Show More