diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.css b/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.css index 0258de8fe1..e5edf859d7 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.css +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.css @@ -1,3 +1,12 @@ +.activiti-form-container { + width: 100%; + min-height: 100px; +} + +.activiti-form-container > .mdl-card__media { + background-color: #fff; +} + .activiti-task-list__item:hover { cursor: pointer; font-weight: bold; diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.html b/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.html index 90fd2cc0a4..7cc18d6889 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.html +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.html @@ -20,13 +20,30 @@

Please select a Task

-
- -
-
- + +
+
+

{{task.name}}

+
+
+
+ +
+ +
+ +
+
+
+ +
+ diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.ts b/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.ts index e01118d03f..2b84b30eb8 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.ts +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/activiti-form.component.ts @@ -66,6 +66,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked { onTaskClicked(task, e) { // alert(`Task: ${task.name} clicked.`); + this.task = task; this.formService .getTaskForm(task.id) .subscribe(form => this.form = new FormModel(form)); diff --git a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts index 2390b8958c..14e75f2be7 100644 --- a/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts +++ b/ng2-components/ng2-alfresco-activiti-form/src/components/widgets/widget.model.ts @@ -142,10 +142,36 @@ export interface WidgetModelCache { [key: string]: T; } +export class FormOutcomeModel extends FormWidgetModel { + + private _id: string; + private _name: string; + + isSystem: boolean = false; + + get id() { + return this._id; + } + + get name() { + return this._name; + } + + constructor(form: FormModel, json?: any) { + super(form, json); + + if (json) { + this._id = json.id; + this._name = json.name; + } + } +} + export class FormModel { tabs: TabModel[] = []; fields: ContainerModel[] = []; + outcomes: FormOutcomeModel[] = []; private _json: any; @@ -161,6 +187,10 @@ export class FormModel { return this.fields && this.fields.length > 0; } + hasOutcomes(): boolean { + return this.outcomes && this.outcomes.length > 0; + } + constructor(json?: any) { if (json) { this._json = json; @@ -172,19 +202,26 @@ export class FormModel { tabCache[model.id] = model; return model; }); - this.fields = (json.fields || []).map(f => new ContainerModel(this, f)); + this.fields = (json.fields || []).map(obj => new ContainerModel(this, obj)); for (let i = 0; i < this.fields.length; i++) { let field = this.fields[i]; if (field.tab) { let tab = tabCache[field.tab]; if (tab) { - // tab.content = new ContainerModel(this, field.json); - // tab.fields.push(field); tab.fields.push(new ContainerModel(this, field.json)); } } } + + let saveOutcome = new FormOutcomeModel(this, { id: '$save', name: 'Save' }); + saveOutcome.isSystem = true; + + let systemOutcomes = [saveOutcome]; + + this.outcomes = systemOutcomes.concat( + (json.outcomes || []).map(obj => new FormOutcomeModel(this, obj)) + ); } } }