diff --git a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts index dd3a20fde4..da857227d2 100644 --- a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.spec.ts @@ -634,4 +634,74 @@ describe('ActivitiForm', () => { expect(visibilityService.refreshVisibility).toHaveBeenCalledWith(field.form); }); + it('should load form for ecm node', () => { + spyOn(formComponent, 'loadFormForEcmNode').and.stub(); + + formComponent.nodeId = ''; + formComponent.ngOnInit(); + + expect(formComponent.loadFormForEcmNode).toHaveBeenCalled(); + }); + + it('should disable outcome buttons for readonly form', () => { + let formModel = new FormModel(); + formModel.readOnly = true; + formComponent.form = formModel; + + let outcome = new FormOutcomeModel(new FormModel(), { + id: ActivitiForm.CUSTOM_OUTCOME_ID, + name: 'Custom' + }); + + expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeFalsy(); + }); + + it('should require outcome to eval button state', () => { + formComponent.form = new FormModel(); + expect(formComponent.isOutcomeButtonEnabled(null)).toBeFalsy(); + }); + + it('should always enable save outcome for writeable form', () => { + let formModel = new FormModel(); + let field = new FormFieldModel(formModel, { + type: 'text', + value: null, + required: true + }); + + formComponent.form = formModel; + formModel.onFormFieldChanged(field); + + expect(formModel.isValid).toBeFalsy(); + + let outcome = new FormOutcomeModel(new FormModel(), { + id: ActivitiForm.SAVE_OUTCOME_ID, + name: FormOutcomeModel.SAVE_ACTION + }); + + formComponent.readOnly = true; + expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeTruthy(); + }); + + it('should disable oucome buttons for invalid form', () => { + let formModel = new FormModel(); + let field = new FormFieldModel(formModel, { + type: 'text', + value: null, + required: true + }); + + formComponent.form = formModel; + formModel.onFormFieldChanged(field); + + expect(formModel.isValid).toBeFalsy(); + + let outcome = new FormOutcomeModel(new FormModel(), { + id: ActivitiForm.CUSTOM_OUTCOME_ID, + name: 'Custom' + }); + + expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeFalsy(); + }); + }); diff --git a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts index 6c7378c347..24d5a97ab3 100644 --- a/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts +++ b/ng2-components/ng2-activiti-form/src/components/activiti-form.component.ts @@ -194,7 +194,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { ngOnInit() { if (this.nodeId) { - this.loadActivitiFormForEcmNode(); + this.loadFormForEcmNode(); } else { this.loadForm(); } @@ -418,7 +418,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { } } - private loadActivitiFormForEcmNode(): void { + loadFormForEcmNode(): void { this.nodeService.getNodeMetadata(this.nodeId).subscribe(data => { this.data = data.metadata; this.loadFormFromActiviti(data.nodeType); @@ -426,7 +426,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges { this.handleError); } - public loadFormFromActiviti(nodeType: string): any { + loadFormFromActiviti(nodeType: string): any { this.formService.searchFrom(nodeType).subscribe( form => { if (!form) { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts index dfbb8f403f..11bd17fe82 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts @@ -210,7 +210,7 @@ export class FormFieldModel extends FormWidgetModel { */ if (json.type === FormFieldTypes.DATE) { if (value) { - let d = moment(value.split('T')[0]); + let d = moment(value.split('T')[0], 'YYYY-M-D'); if (d.isValid()) { value = d.format('D-M-YYYY'); } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts index 6c499fe980..144f7d0214 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts @@ -67,7 +67,7 @@ describe('DateWidget', () => { let dateValue = '13-03-1982'; widget.field = new FormFieldModel(null, { type: 'date', - value: dateValue + value: '1982-03-13' }); widget.ngOnInit();