File

src/app/modules/user/edit/edit.ts

Description

Редактирование пользователя и текущего профиля

Implements

OnInit

Metadata

selector user-edit
styleUrls edit.scss
templateUrl ./edit.html

Index

Properties
Methods

Constructor

constructor(commonService: CommonService)

Констурктор

Parameters :
Name Type Description
commonService CommonService

Сервис для получения данных с сервера

Methods

getData
getData()

Получение данных для редактирования

Returns : void
ngOnInit
ngOnInit()

Получение данных

Returns : void
onSave
onSave(event: )

Сохранение данных

Parameters :
Name Type Description
event
Returns : void

Properties

defaultImage
defaultImage: string
Type : string
Default value : assets/images/default_image.svg

Изображение по-умолчанию

header
header: string
Type : string
Default value : Редактирование

Заголовок

loading
loading: boolean
Type : boolean
Default value : false

Индикатор загрузки основных данных

saving
saving: string
Type : string

Сообщение при сохранении

user
user: any
Type : any

Данные о пользователе

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>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""