#440 task selector

- simple task selector for dev/demo purposes
This commit is contained in:
Denys Vuika
2016-07-20 11:11:33 +01:00
parent 666190e956
commit b75c9b7be9
5 changed files with 62 additions and 37 deletions
@@ -0,0 +1,4 @@
.activiti-task-list__item:hover {
cursor: pointer;
font-weight: bold;
}
@@ -1,23 +1,32 @@
<div *ngIf="hasForm()" style="padding: 10px;">
<div *ngIf="form.hasTabs()">
<tabs-widget [tabs]="form.tabs"></tabs-widget>
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--2-col">
<div *ngIf="!hasTasks()">No tasks found</div>
<div *ngIf="hasTasks()">
<ul class="mdl-list">
<li *ngFor="let task of tasks"
class="mdl-list__item activiti-task-list__item"
(click)="onTaskClicked(task, $event)">
<span class="mdl-list__item-primary-content">
<i class="material-icons mdl-list__item-icon">launch</i>
{{task.name}}
</span>
</ul>
</div>
</div>
<div *ngIf="!form.hasTabs() && form.hasFields()">
<container-widget [content]="form.fields[0]"></container-widget>
<div class="mdl-cell mdl-cell--10-col">
<div *ngIf="!hasForm()">
<h3 style="text-align: center">Please select a Task</h3>
</div>
<div *ngIf="hasForm()">
<div *ngIf="form.hasTabs()">
<tabs-widget [tabs]="form.tabs"></tabs-widget>
</div>
<div *ngIf="!form.hasTabs() && form.hasFields()">
<container-widget [content]="form.fields[0]"></container-widget>
</div>
</div>
</div>
</div>
<!--
<div style="padding: 10px">
<h2>Task form content</h2>
<h3>Form</h3>
<pre *ngIf="form">{{form.json | json}}</pre>
<h3>Task</h3>
<pre *ngIf="task">{{task | json}}</pre>
</div>
-->
@@ -27,18 +27,11 @@ import { FormModel } from './widgets/widget.model';
declare let __moduleName: string;
declare var componentHandler;
@Component({
selector: 'child-component',
template: 'Hello {{name}}'
})
class ChildComponent {
name: string;
}
@Component({
moduleId: __moduleName,
selector: 'activiti-form',
templateUrl: './activiti-form.component.html',
styleUrls: ['./activiti-form.component.css'],
directives: [WIDGET_DIRECTIVES],
providers: [
FormService
@@ -48,23 +41,20 @@ export class ActivitiForm implements OnInit, AfterViewChecked {
task: any;
form: FormModel;
tasks: any[] = [];
hasForm(): boolean {
return this.form ? true : false;
}
hasTasks(): boolean {
return this.tasks && this.tasks.length > 0;
}
constructor(private formService: FormService) {}
ngOnInit() {
this.formService.getTask('1').subscribe(task => {
// console.log(task);
this.task = task;
this.formService.getTaskForm('1').subscribe(form => {
// console.log(form);
this.form = new FormModel(form);
});
});
this.formService.getTasks().subscribe(val => this.tasks = val || []);
}
ngAfterViewChecked() {
@@ -74,4 +64,11 @@ export class ActivitiForm implements OnInit, AfterViewChecked {
}
}
onTaskClicked(task, e) {
// alert(`Task: ${task.name} clicked.`);
this.formService
.getTaskForm(task.id)
.subscribe(form => this.form = new FormModel(form));
}
}
@@ -106,7 +106,7 @@ export class ContainerModel extends FormWidgetModel {
Object.keys(json.fields).map(key => {
let fields = (json.fields[key] || []).map(f => new FormFieldModel(form, f));
let col = this.columns[parseInt(key) - 1];
let col = this.columns[parseInt(key, 10) - 1];
col.fields = fields;
});
}
@@ -27,6 +27,16 @@ export class FormService {
constructor(private http: Http) {
}
getTasks(): Observable<any> {
let url = `${this.basePath}/api/enterprise/tasks/query`;
let body = JSON.stringify({});
let options = this.getRequestOptions();
return this.http.post(url, body, options)
.map(this.toJsonArray)
.catch(this.handleError);
}
getTask(id: string): Observable<any> {
let url = `${this.basePath}/api/enterprise/tasks/${id}`;
let options = this.getRequestOptions();
@@ -63,6 +73,11 @@ export class FormService {
return body || {};
}
private toJsonArray(res: Response) {
let body = res.json();
return body.data || [];
}
private handleError (error: any) {
// In a real world app, we might use a remote logging infrastructure
// We'd also dig deeper into the error to get a better message