diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/dynamic-table.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/dynamic-table.widget.html index 8d4c92bb1e..fd4f081758 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/dynamic-table.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/dynamic-table.widget.html @@ -51,7 +51,7 @@ -
+
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/cell.editor.ts b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/cell.editor.ts index 1ae25c438d..c39ac33f77 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/cell.editor.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/cell.editor.ts @@ -29,4 +29,8 @@ export abstract class CellEditorComponent { @Input() column: DynamicTableColumn; + protected handleError(error: any) { + console.error(error); + } + } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html index ed6589bc50..33f2045b1a 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html @@ -2,11 +2,11 @@
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.ts b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.ts index 1adc51e220..afd0c0dbd2 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.ts @@ -15,9 +15,10 @@ * limitations under the License. */ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { CellEditorComponent } from './../cell.editor'; -import { DynamicTableRow, DynamicTableColumn } from './../../../core/index'; +import { DynamicTableRow, DynamicTableColumn, DynamicTableColumnOption } from './../../../core/index'; +import { FormService } from './../../../../../services/form.service'; @Component({ moduleId: module.id, @@ -25,7 +26,36 @@ import { DynamicTableRow, DynamicTableColumn } from './../../../core/index'; templateUrl: './dropdown.editor.html', styleUrls: ['./dropdown.editor.css'] }) -export class DropdownEditorComponent extends CellEditorComponent { +export class DropdownEditorComponent extends CellEditorComponent implements OnInit { + + value: any; + options: DynamicTableColumnOption[] = []; + + constructor(private formService: FormService) { + super(); + } + + ngOnInit() { + this.value = this.table.getCellValue(this.row, this.column); + this.options = this.column.options || []; + + let field = this.table.field; + if (field && field.restUrl) { + this.formService + .getRestFieldValuesColumn( + field.form.taskId, + field.id, + this.column.id + ) + .subscribe( + (result: DynamicTableColumnOption[]) => { + this.column.options = result || []; + this.options = this.column.options; + }, + err => this.handleError(err) + ); + } + } onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: Event) { let value: any = (event.srcElement).value; @@ -33,4 +63,5 @@ export class DropdownEditorComponent extends CellEditorComponent { row.value[column.id] = value; } + } diff --git a/ng2-components/ng2-activiti-form/src/services/form.service.ts b/ng2-components/ng2-activiti-form/src/services/form.service.ts index bcd020e02b..20311caacd 100644 --- a/ng2-components/ng2-activiti-form/src/services/form.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/form.service.ts @@ -208,7 +208,12 @@ export class FormService { getRestFieldValues(taskId: string, field: string): Observable { let alfrescoApi = this.apiService.getInstance(); - return Observable.fromPromise(alfrescoApi.activiti.taskFormsApi.getRestFieldValues(taskId, field)); + return Observable.fromPromise(alfrescoApi.activiti.taskApi.getRestFieldValues(taskId, field)); + } + + getRestFieldValuesColumn(taskId: string, field: string, column?: string): Observable { + let alfrescoApi = this.apiService.getInstance(); + return Observable.fromPromise(alfrescoApi.activiti.taskApi.getRestFieldValuesColumn(taskId, field, column)); } // TODO: uses private webApp api