src/app/modules/user/edit/edit.ts
Редактирование пользователя и текущего профиля
selector | user-edit |
styleUrls | edit.scss |
templateUrl | ./edit.html |
Properties |
Methods |
constructor(commonService: CommonService)
|
||||||
Defined in src/app/modules/user/edit/edit.ts:37
|
||||||
Констурктор
Parameters :
|
getData |
getData()
|
Defined in src/app/modules/user/edit/edit.ts:56
|
Получение данных для редактирования
Returns :
void
|
ngOnInit |
ngOnInit()
|
Defined in src/app/modules/user/edit/edit.ts:49
|
Получение данных
Returns :
void
|
onSave | ||||||
onSave(event: )
|
||||||
Defined in src/app/modules/user/edit/edit.ts:85
|
||||||
Сохранение данных
Parameters :
Returns :
void
|
defaultImage |
defaultImage:
|
Type : string
|
Default value : assets/images/default_image.svg
|
Defined in src/app/modules/user/edit/edit.ts:22
|
Изображение по-умолчанию |
header |
header:
|
Type : string
|
Default value : Редактирование
|
Defined in src/app/modules/user/edit/edit.ts:27
|
Заголовок |
loading |
loading:
|
Type : boolean
|
Default value : false
|
Defined in src/app/modules/user/edit/edit.ts:32
|
Индикатор загрузки основных данных |
saving |
saving:
|
Type : string
|
Defined in src/app/modules/user/edit/edit.ts:37
|
Сообщение при сохранении |
user |
user:
|
Type : any
|
Defined in src/app/modules/user/edit/edit.ts:17
|
Данные о пользователе |
import { Component, OnInit } from '@angular/core';
import { CommonService } from 'glx.ui/components/kernel/services/common.service';
/**
* Редактирование пользователя и текущего профиля
*/
@Component({
selector: 'user-edit',
templateUrl: './edit.html',
styleUrls: ['./edit.scss']
})
export class UserEditComponent implements OnInit {
/**
* Данные о пользователе
*/
user: any;
/**
* Изображение по-умолчанию
* @type {string}
*/
defaultImage: string = 'assets/images/default_image.svg';
/**
* Заголовок
* @type {string}
*/
header: string = 'Редактирование';
/**
* Индикатор загрузки основных данных
* @type {boolean}
*/
loading: boolean = false;
/**
* Сообщение при сохранении
* @type {string}
*/
saving: string = '';
/**
* Констурктор
* @param {CommonService} commonService Сервис для получения данных с сервера
*/
constructor(private commonService: CommonService) {
}
/**
* Получение данных
*/
ngOnInit() {
this.getData();
}
/**
* Получение данных для редактирования
*/
getData() {
let loaderTimeout = setTimeout(() => {
this.loading = true;
}, 200);
this.commonService.get('profile/data')
.subscribe(
data => {
this.user = data;
this.header = 'Редактирование: ' + this.user.fullname;
},
error => {
console.error(error);
},
() => {
clearTimeout(loaderTimeout);
this.loading = false;
});
setTimeout(() => {
clearTimeout(loaderTimeout);
this.loading = false;
}, 10000);
}
/**
* Сохранение данных
* @param event
*/
onSave(event) {
this.saving = 'Сохранение...';
this.commonService.post('profile/data', event.fields).subscribe(
data => {
this.saving = 'Сохранено';
setTimeout(() => {
this.saving = '';
}, 1500);
},
error => {
console.error(error);
},
() => {
this.commonService.clearCache('profile/data');
this.getData();
});
}
}
<glx-page-title-bx [header]="header"></glx-page-title-bx>
<div class="user-edit-wrapper">
<glx-loading-banner
[loading]="loading"
[svg]="true"
text="Подождите, идет загрузка..."
></glx-loading-banner>
<glx-user-edit
*ngIf="!loading && user"
[user]="user"
[saving]="saving"
[defaultImage]="defaultImage"
(onChange)="onSave($event)"
></glx-user-edit>
</div>