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