From 94f11a1aaedcdf7475b4e95ef9004b997778c44f Mon Sep 17 00:00:00 2001 From: Will Abson Date: Wed, 4 Jan 2017 19:49:24 +0000 Subject: [PATCH 1/4] Set default sorting of processes based on started date Refs #1307 --- .../app/components/activiti/activiti-demo.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts index 98125b3730..b2fec92f42 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts @@ -122,6 +122,7 @@ export class ActivitiDemoComponent implements AfterViewInit { {type: 'text', key: 'started', title: 'Started', cssClass: 'hidden', sortable: true} ] ); + this.dataProcesses.setSorting(new DataSorting('started', 'desc')); // Uncomment this line to replace all 'text' field editors with custom component // formRenderingService.setComponentTypeResolver('text', () => CustomEditorComponent, true); From 099c32c6672c30d5b7ce57bc85244c29b52dfdda Mon Sep 17 00:00:00 2001 From: Will Abson Date: Thu, 5 Jan 2017 09:28:11 +0000 Subject: [PATCH 2/4] Use correct process-related typings for processlist filters Refs #1307 --- .../src/components/activiti-processlist.component.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts b/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts index d28f74b386..6235124060 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts @@ -18,7 +18,7 @@ import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core'; import { AlfrescoTranslationService } from 'ng2-alfresco-core'; import { ObjectDataTableAdapter, DataTableAdapter, DataRowEvent, ObjectDataRow } from 'ng2-alfresco-datatable'; -import { TaskQueryRequestRepresentationModel } from 'ng2-activiti-tasklist'; +import { ProcessFilterRequestRepresentation } from '../models/process-instance-filter.model'; import { ProcessInstance } from '../models/process-instance.model'; import { ActivitiProcessService } from '../services/activiti-process.service'; @@ -46,7 +46,7 @@ export class ActivitiProcessInstanceListComponent implements OnInit, OnChanges { @Input() name: string; - requestNode: TaskQueryRequestRepresentationModel; + requestNode: ProcessFilterRequestRepresentation; @Input() data: DataTableAdapter; @@ -130,7 +130,7 @@ export class ActivitiProcessInstanceListComponent implements OnInit, OnChanges { ); } - private load(requestNode: TaskQueryRequestRepresentationModel) { + private load(requestNode: ProcessFilterRequestRepresentation) { this.processService.getProcessInstances(requestNode) .subscribe( (response) => { @@ -226,10 +226,9 @@ export class ActivitiProcessInstanceListComponent implements OnInit, OnChanges { let requestNode = { appDefinitionId: this.appId, processDefinitionKey: this.processDefinitionKey, - text: this.name, state: this.state, sort: this.sort }; - return new TaskQueryRequestRepresentationModel(requestNode); + return new ProcessFilterRequestRepresentation(requestNode); } } From 086c789d4d757a83caa42d9a48765aa481ec6cab Mon Sep 17 00:00:00 2001 From: Will Abson Date: Thu, 5 Jan 2017 12:04:03 +0000 Subject: [PATCH 3/4] Fix sorting of processlist to match that specified by filter Refs #1307 --- .../activiti-processlist.component.spec.ts | 19 +++++++++++++++++-- .../activiti-processlist.component.ts | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.spec.ts b/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.spec.ts index 73582b1454..ca90dba508 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.spec.ts +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.spec.ts @@ -21,7 +21,7 @@ import { Observable } from 'rxjs/Rx'; import { ActivitiProcessInstanceListComponent } from './activiti-processlist.component'; import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core'; -import { DataTableModule, ObjectDataRow, DataRowEvent, ObjectDataTableAdapter } from 'ng2-alfresco-datatable'; +import { DataTableModule, ObjectDataRow, DataRowEvent, ObjectDataTableAdapter, DataSorting } from 'ng2-alfresco-datatable'; import { TranslationMock } from './../assets/translation.service.mock'; import { ProcessInstance } from '../models/process-instance.model'; @@ -275,7 +275,7 @@ describe('ActivitiProcessInstanceListComponent', () => { }); it('should reload the list when the sort parameter changes', (done) => { - const sort = 'desc'; + const sort = 'created-desc'; let change = new SimpleChange(null, sort); component.onSuccess.subscribe((res) => { @@ -290,6 +290,21 @@ describe('ActivitiProcessInstanceListComponent', () => { component.ngOnChanges({'sort': change}); }); + it('should sort the list when the sort parameter changes', (done) => { + const sort = 'created-asc'; + let change = new SimpleChange(null, sort); + let sortSpy = spyOn(component.data, 'setSorting'); + + component.onSuccess.subscribe((res) => { + expect(res).toBeDefined(); + expect(sortSpy).toHaveBeenCalledWith(new DataSorting('started', 'asc')); + done(); + }); + + component.sort = sort; + component.ngOnChanges({'sort': change}); + }); + it('should reload the process list when the name parameter changes', (done) => { const name = 'FakeTaskName'; let change = new SimpleChange(null, name); diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts b/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts index 6235124060..c7d83635bb 100644 --- a/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-processlist.component.ts @@ -17,7 +17,7 @@ import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core'; import { AlfrescoTranslationService } from 'ng2-alfresco-core'; -import { ObjectDataTableAdapter, DataTableAdapter, DataRowEvent, ObjectDataRow } from 'ng2-alfresco-datatable'; +import { ObjectDataTableAdapter, DataTableAdapter, DataRowEvent, ObjectDataRow, DataSorting } from 'ng2-alfresco-datatable'; import { ProcessFilterRequestRepresentation } from '../models/process-instance-filter.model'; import { ProcessInstance } from '../models/process-instance.model'; @@ -168,9 +168,25 @@ export class ActivitiProcessInstanceListComponent implements OnInit, OnChanges { */ private renderInstances(instances: any[]) { instances = this.optimizeNames(instances); + this.setDatatableSorting(); this.data.setRows(instances); } + /** + * Sort the datatable rows based on current value of 'sort' property + */ + private setDatatableSorting() { + if (!this.sort) { + return; + } + let sortingParams: string[] = this.sort.split('-'); + if (sortingParams.length === 2) { + let sortColumn = sortingParams[0] === 'created' ? 'started' : sortingParams[0]; + let sortOrder = sortingParams[1]; + this.data.setSorting(new DataSorting(sortColumn, sortOrder)); + } + } + /** * Select the first instance of a list if present */ From d972393b72ce75882adedfdddeb7c9b9a10e7428 Mon Sep 17 00:00:00 2001 From: Vito Date: Thu, 5 Jan 2017 06:53:39 -0800 Subject: [PATCH 4/4] #1259 - fix assignee for checklist task (#1395) * #1259 - fix assignee for checklist task * #1259 - added checklist to tasklist readme --- .../ng2-activiti-tasklist/README.md | 24 +++++++++++++++++++ .../activiti-checklist.component.ts | 10 ++++++-- .../activiti-task-details.component.html | 2 +- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/ng2-components/ng2-activiti-tasklist/README.md b/ng2-components/ng2-activiti-tasklist/README.md index 2eb7821a25..8c36a53110 100644 --- a/ng2-components/ng2-activiti-tasklist/README.md +++ b/ng2-components/ng2-activiti-tasklist/README.md @@ -329,6 +329,30 @@ The component shows all the available filters. No options +## Basic usage example Activiti Checklist + +The component shows the checklist task functionality. + +```html + +``` + +#### Options + +| Name | Type | Required | Description | +| --- | --- | --- | --- | +| `taskId` | {string} | required | The id of the parent task which sub tasks are attached on. | +| `readOnlyForm` | {boolean} | optional | Toggle readonly state of the form. Enforces all form widgets render readonly if enabled. | +| `assignee` | {string} | required | The assignee id where the subtasks are assigned to. | + +## Basic usage example Activiti Checklist + +The component shows all the available filters. + +```html + +``` + ## Build from sources Alternatively you can build component from sources with the following commands: diff --git a/ng2-components/ng2-activiti-tasklist/src/components/activiti-checklist.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/activiti-checklist.component.ts index 202c3e0055..cdff69d151 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/activiti-checklist.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/activiti-checklist.component.ts @@ -38,6 +38,9 @@ export class ActivitiChecklist implements OnInit, OnChanges { @Input() readOnly: boolean = false; + @Input() + assignee: string; + @ViewChild('dialog') dialog: any; @@ -104,7 +107,11 @@ export class ActivitiChecklist implements OnInit, OnChanges { } public add() { - let newTask = new TaskDetailsModel({name: this.taskName, parentTaskId: this.taskId, assignee: {id: '1'}}); + let newTask = new TaskDetailsModel({ + name: this.taskName, + parentTaskId: this.taskId, + assignee: { id: this.assignee } + }); this.activitiTaskList.addTask(newTask).subscribe( (res: TaskDetailsModel) => { this.checklist.push(res); @@ -113,7 +120,6 @@ export class ActivitiChecklist implements OnInit, OnChanges { console.log(err); } ); - this.cancel(); } diff --git a/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.html b/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.html index c59d74e9c8..e65cce9585 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.html +++ b/ng2-components/ng2-activiti-tasklist/src/components/activiti-task-details.component.html @@ -23,7 +23,7 @@ #activiticomments>
-