From 58c298fc2577836b05be7695403acaef2f5c3658 Mon Sep 17 00:00:00 2001 From: Vito Date: Wed, 30 Aug 2017 09:02:55 -0700 Subject: [PATCH] [ADF-1381] improving the style for form reflecting UX spec (#2256) * [ADF-1381] improving the style for form reflecting UX spec * [ADF-1381] fix error message icon * [ADF-1381] added more spec details to form widgets * [ADF-1381] fixed wrong check * [ADF-1381] removed wrong added deep into scss * [ADF-1381] applied changes due the peer review * [ADF-1381] missed whitespace --- .../activiti/activiti-demo.component.css | 2 +- .../widgets/amount/amount.widget.html | 1 + .../widgets/container/container.widget.scss | 2 +- .../widgets/core/group-user.model.ts | 1 + .../components/widgets/date/date.widget.html | 1 + .../widgets/dropdown/dropdown.widget.html | 1 + .../widgets/dropdown/dropdown.widget.scss | 4 ++ .../dynamic-table/dynamic-table.widget.html | 1 + .../widgets/error/error.component.html | 3 ++ .../widgets/error/error.component.scss | 4 +- .../widgets/error/error.component.ts | 14 +++++- .../functional-group.widget.html | 7 +-- .../functional-group.widget.scss | 7 +-- .../multiline-text/multiline-text.widget.html | 5 +++ .../multiline-text/multiline-text.widget.scss | 17 ++++++++ .../widgets/number/number.widget.html | 1 + .../widgets/people/people.widget.html | 25 ++++++++--- .../widgets/people/people.widget.scss | 43 ++++++++++++++++--- .../widgets/people/people.widget.ts | 8 +++- .../radio-buttons/radio-buttons.widget.html | 3 ++ .../components/widgets/text/text.widget.html | 1 + .../widgets/typeahead/typeahead.widget.html | 43 ++++++++++--------- .../widgets/typeahead/typeahead.widget.scss | 15 +++++-- .../widgets/upload/upload.widget.html | 2 +- .../components/widgets/widget.component.ts | 4 ++ .../ng2-activiti-form/src/i18n/en.json | 3 ++ .../src/services/form.service.spec.ts | 1 + .../src/services/form.service.ts | 11 ++++- .../src/components/comment-list.component.ts | 4 +- .../src/components/people-search.component.ts | 4 +- .../src/components/people.component.ts | 4 +- 31 files changed, 189 insertions(+), 53 deletions(-) diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.css b/demo-shell-ng2/app/components/activiti/activiti-demo.component.css index 9cfc4f8ef6..15e60cbd0a 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.css +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.css @@ -21,7 +21,7 @@ margin-bottom: 5px; } -.adf-no-form-container { +.adf-no-form-container { text-align: center; font-weight: 600; font-size: 18px; diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/amount/amount.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/amount/amount.widget.html index 68656ab4fd..031188f3b4 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/amount/amount.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/amount/amount.widget.html @@ -14,5 +14,6 @@ placeholder="{{field.placeholder}}"> + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.scss index 14bd6c150b..9dd1bc46de 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/container/container.widget.scss @@ -56,7 +56,7 @@ } .mat-input-placeholder { - top: 2.5em !important; + top: 2.2em !important; } .mat-focused { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/group-user.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/group-user.model.ts index 5dd668f5c7..b9f4cf9238 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/group-user.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/group-user.model.ts @@ -24,6 +24,7 @@ export class GroupUserModel { firstName: string; id: string; lastName: string; + userImageUrl: string; constructor(json?: any) { if (json) { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.html index 59a273bd75..b028442d30 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.html @@ -14,6 +14,7 @@ + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html index 19aed4e37b..70b1cc190a 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.html @@ -11,4 +11,5 @@ [id]="opt.id">{{opt.name}} + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.scss index 73202bcb93..a6b74ca2e0 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/dropdown/dropdown.widget.scss @@ -11,4 +11,8 @@ width: 100%; } + &-dropdown-required-message .adf-error-text-container{ + margin-top: -2px !important; + } + } 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 5f3da680bc..57a7bf02f6 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 @@ -62,4 +62,5 @@ (cancel)="onCancelChanges()"> + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.html b/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.html index 5022255d8f..abfc26a064 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.html @@ -3,4 +3,7 @@
{{error}}
warning +
+
{{required}}
+
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.scss b/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.scss index de1bd2e830..3874a65ef4 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.scss @@ -1,3 +1,5 @@ .adf-error-text-container { - margin-top: 0 !important; + margin-top: -16px !important; + position: inherit; + width: 100%; } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.ts b/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.ts index fa7b5c3c27..b8450d22e5 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/error/error.component.ts @@ -18,7 +18,7 @@ /* tslint:disable:component-selector */ import { animate, state, style, transition, trigger } from '@angular/animations'; -import { AfterViewInit, Component, Input, ViewEncapsulation } from '@angular/core'; +import { AfterViewInit, Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core'; import { FormService } from './../../../services/form.service'; import { baseHost , WidgetComponent } from './../widget.component'; @@ -38,11 +38,14 @@ import { baseHost , WidgetComponent } from './../widget.component'; host: baseHost, encapsulation: ViewEncapsulation.None }) -export class ErrorWidgetComponent extends WidgetComponent implements AfterViewInit { +export class ErrorWidgetComponent extends WidgetComponent implements AfterViewInit, OnChanges { @Input() error: string; + @Input() + required: string; + _subscriptAnimationState: string = ''; constructor(public formService: FormService) { @@ -53,4 +56,11 @@ export class ErrorWidgetComponent extends WidgetComponent implements AfterViewIn this._subscriptAnimationState = 'enter'; } + ngOnChanges(changes: SimpleChanges) { + if (changes['required']) { + this.required = changes.required.currentValue; + this._subscriptAnimationState = 'enter'; + } + } + } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.html index c87b29fb90..08974468a0 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.html @@ -1,6 +1,6 @@
+ [class.adf-invalid]="!field.isValid" [class.adf-readonly]="field.readOnly" id="functional-group-div" *ngIf="field.isVisible"> +
-
+
- {{item.name}}} + {{item.name}}
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.scss index ff944b5c45..f292ae036f 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/functional-group/functional-group.widget.scss @@ -9,13 +9,14 @@ &-group-autocomplete { background-color: #fff; - position:absolute; + position: inherit; max-height: 200px; overflow-y: auto; z-index: 5; + width: 100%; color: #555; margin: -15px 0 0 0; - > ul { + > md-option { list-style-type: none; position: static; height: auto; @@ -25,7 +26,7 @@ margin: 0; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); border-radius: 2px; - > li { + > span { opacity: 1; } } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html index de000556c3..c6ef1c38df 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.html @@ -6,6 +6,7 @@ md-autosize type="text" rows="3" + [maxlength]="field.maxLength" [id]="field.id" [required]="isRequired()" [(ngModel)]="field.value" @@ -14,6 +15,10 @@ placeholder="{{field.placeholder}}"> +
+ {{field?.value?.length || 0}}/{{field.maxLength}} +
+
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.scss index 07427925b4..4e266a0c45 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/multiline-text/multiline-text.widget.scss @@ -7,4 +7,21 @@ width: 100%; } + &-multiline-word-counter { + float: right; + margin-top: -20px !important; + min-height: 24px; + min-width: 1px; + font-size: 12px; + line-height: 14px; + overflow: hidden; + transition: all .3s cubic-bezier(.55,0,.55,.2); + opacity: 1; + margin-top: 0; + padding-top: 5px; + text-align: right; + padding-right: 2px; + padding-left: 0; + } + } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html index 1d1cbe0c3e..5903ee83a9 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/number/number.widget.html @@ -15,4 +15,5 @@ placeholder="{{field.placeholder}}"> + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.html index ca59553257..7aeb79f552 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.html @@ -1,13 +1,13 @@
+ [class.adf-invalid]="!field.isValid" [class.adf-readonly]="field.readOnly" id="people-widget-content" *ngIf="field.isVisible"> +
-
- - {{getDisplayName(item)}} +
+ +
+
+ {{user.firstName[0]}} {{user.lastName[0]}} +
+
+ +
+ {{getDisplayName(user)}} +
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.scss index 379d3f3e45..d18e6ed7e2 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.scss @@ -9,25 +9,58 @@ &-people-autocomplete { background-color: #fff; - position:absolute; + position:inherit; max-height: 200px; + width: 100%; overflow-y: auto; z-index: 5; color: #555; margin: -15px 0 0 0; - > ul { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + > md-option { list-style-type: none; position: static; height: auto; width: auto; min-width: 124px; - padding: 8px 0; + padding: 8px 0 0 20px; margin: 0; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); border-radius: 2px; - > li { + > span { opacity: 1; } } } + + &-people-widget-pic { + background: #ff9800; + display: inline-block; + width: 30px; + padding: 0px 9px; + border-radius: 100px; + color: #fff; + text-align: center; + font-weight: bolder; + font-size: 18px; + font-family: Muli; + text-transform: uppercase; + vertical-align: middle; + } + + &-people-widget-row { + padding: 5px 5px; + } + + &-people-widget-image { + border-radius: 100px; + width: 50px; + height: 50px; + vertical-align: middle; + display: inline-block; + padding: 0px 0px; + } + + &-people-widget-image-row { + display: inline-block; + } } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.ts index c3e1290cba..69995a824f 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/people/people.widget.ts @@ -85,12 +85,18 @@ export class PeopleWidgetComponent extends WidgetComponent implements OnInit { }, 200); } + onErrorImageLoad(user) { + if (user.userImage) { + user.userImage = null; + } + } + flushValue() { this.popupVisible = false; let option = this.users.find(item => { let fullName = this.getDisplayName(item).toLocaleLowerCase(); - return fullName === this.value.toLocaleLowerCase(); + return (this.value && fullName === this.value.toLocaleLowerCase()); }); if (option) { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html index 41bd247429..28cfad62aa 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/radio-buttons/radio-buttons.widget.html @@ -17,4 +17,7 @@
+ + + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html index 7cfe89c3e5..428f035477 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/text/text.widget.html @@ -15,4 +15,5 @@ placeholder="{{field.placeholder}}"> + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.html index dcda4fff84..74f852ef29 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.html @@ -1,23 +1,26 @@ -
- - - - - -
-
- +
+
+ + + + + + +
+
+ {{item.name}} +
diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.scss index f18b5a554c..d9880652eb 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/typeahead/typeahead.widget.scss @@ -3,6 +3,11 @@ .adf { + &-typeahead-widget-container { + position: relative; + display: block; + } + &-typeahead-widget { width: 100%; } @@ -11,11 +16,13 @@ background-color: #fff; position:absolute; max-height: 200px; + width: 100%; overflow-y: auto; z-index: 5; color: #555; - margin: -15px 0 0 0; - > ul { + margin: -10px 0 0 0; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + > md-option { list-style-type: none; position: static; height: auto; @@ -23,10 +30,10 @@ min-width: 124px; padding: 8px 0; margin: 0; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); border-radius: 2px; - > li { + > span { opacity: 1; + padding-left: 23px; } } } diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html index 60862ea1f7..ac3be76ab1 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html @@ -28,5 +28,5 @@ (change)="onFileChanged($event)">
- + diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts b/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts index 8ebdc22997..35437db014 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/widget.component.ts @@ -83,6 +83,10 @@ export class WidgetComponent implements AfterViewInit { this.field.value !== undefined; } + isInvalidFieldRequired() { + return !this.field.isValid && !this.field.validationSummary && this.isRequired(); + } + ngAfterViewInit() { this.fieldChanged.emit(this.field); } diff --git a/ng2-components/ng2-activiti-form/src/i18n/en.json b/ng2-components/ng2-activiti-form/src/i18n/en.json index c05017b260..d738949669 100644 --- a/ng2-components/ng2-activiti-form/src/i18n/en.json +++ b/ng2-components/ng2-activiti-form/src/i18n/en.json @@ -5,6 +5,9 @@ }, "PREVIEW": { "IMAGE_NOT_AVAILABLE": "The preview image is not available." + }, + "FIELD": { + "REQUIRED" : "*Required" } } } diff --git a/ng2-components/ng2-activiti-form/src/services/form.service.spec.ts b/ng2-components/ng2-activiti-form/src/services/form.service.spec.ts index 0ce38ad345..b287292964 100644 --- a/ng2-components/ng2-activiti-form/src/services/form.service.spec.ts +++ b/ng2-components/ng2-activiti-form/src/services/form.service.spec.ts @@ -477,6 +477,7 @@ describe('Form service', () => { }); it('should return list of people', (done) => { + spyOn(service, 'getUserProfileImageApi').and.returnValue('/app/rest/users/2002/picture'); let fakeFilter: string = 'whatever'; service.getWorkflowUsers(fakeFilter).subscribe(result => { 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 06b61297c2..593d7bc8f7 100644 --- a/ng2-components/ng2-activiti-form/src/services/form.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/form.service.ts @@ -352,13 +352,22 @@ export class FormService { return Observable.fromPromise(this.taskApi.getRestFieldValuesColumn(taskId, field, column)).catch(err => this.handleError(err)); } + private getUserProfileImageApi(userId: string): string { + return this.apiService.getInstance().activiti.userApi.getUserProfilePictureUrl(userId); + } + getWorkflowUsers(filter: string, groupId?: string): Observable { let option: any = {filter: filter}; if (groupId) { option.groupId = groupId; } return Observable.fromPromise(this.usersWorkflowApi.getUsers(option)) - .map((response: any) => response.data || []) + .switchMap((response: any) => response.data || []) + .map((user: any) => { + user.userImage = this.getUserProfileImageApi(user.id); + return Observable.of(user); + }) + .combineAll() .catch(err => this.handleError(err)); } diff --git a/ng2-components/ng2-activiti-tasklist/src/components/comment-list.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/comment-list.component.ts index 738a9ce746..5da9f588c3 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/comment-list.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/comment-list.component.ts @@ -79,7 +79,9 @@ export class CommentListComponent { } onErrorImageLoad(user: User) { - user.userImage = null; + if (user.userImage) { + user.userImage = null; + } } } diff --git a/ng2-components/ng2-activiti-tasklist/src/components/people-search.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/people-search.component.ts index c1c8a59f80..e61ad6a8d9 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/people-search.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/people-search.component.ts @@ -106,6 +106,8 @@ export class PeopleSearchComponent implements OnInit { } onErrorImageLoad(user: User) { - user.userImage = null; + if (user.userImage) { + user.userImage = null; + } } } diff --git a/ng2-components/ng2-activiti-tasklist/src/components/people.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/people.component.ts index e8e8e8b805..4f97bfb243 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/people.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/people.component.ts @@ -156,6 +156,8 @@ export class PeopleComponent implements OnInit, AfterViewInit { } onErrorImageLoad(user: User) { - user.userImage = null; + if (user.userImage) { + user.userImage = null; + } } }