Перейти к содержанию

Оповещение пользователей о новом релизе#

Пример отображения

Данный функционал будет полезен, если вы хотите оповещать пользователей об обновлении приложения, а также об изменениях, которые были включены в новую версию.

Механизм оповещения настраивается в конфигурационном файле (см. раздел front.core.releaseInfo)

Отображаемый текст и ссылку можно настраивать не только в конфигурационном файле, но и в коде (переопределение в коде имеет больший приоритет). Для этого необходимо создать свою форму Root, в которой можно переопределить методы getReleaseMessage, getReleaseLink. При необходимости можно переопределить метод showReleaseInfo для того, чтобы отобразить свое окно вывода сообщения. Подробнее об этих методах смотри в статье Root

Пример переопределения методов формы Root

import { Root, PopupWindow, Text, Link } from 'ecosoft-lexema8'

export class CustomRoot extends Root {
  // переопределяем текст
  getReleaseMessage (release) {
    return `Новая версия ${release}`
  }

  // переопределеяем ссылку
  getReleaseLink (release) {
    return `http://wiki.lex.lan/#${release}`
  }

  // переопределяем вывод оповещения
  showReleaseInfo (release) {
    const msg = this.getReleaseMessage(release)
    const url = this.getReleaseLink(release)

    if (msg && url) {
      this.popupContainer.addControls([{
        Ctor: PopupWindow,
        properties: {
          id: 'customReleaseInfo',
          height: 'auto',
          width: '400px',
          hPosition: 'center'
        },
        items: [{
          Ctor: Text,
          properties: {
            value: msg,
            editorWidth: 12,
            captionWidth: 0,
            multiline: true
          }
        }, {
          Ctor: Link,
          properties: {
            id: 'saveButton',
            editorWidth: 12,
            captionWidth: 0,
            text: 'Посмотреть изменения',
            href: url,
            target: '_blank'
          }
        }]
      }])

      this.controls.customReleaseInfo.closed.add(() => {
        this.popupContainer.remove(this.controls.customReleaseInfo)
      })

      this.controls.customReleaseInfo.open()
    } 
  }
}

Примечание

Метод getReleaseMessage по умолчанию возвращает текст из конфигурационного файла

Примечание

Метод getReleaseLink по умолчанию возвращает ссылку из конфигурационного файла

Примечание

По умолчанию метод showReleaseInfo работает следующим образом: если метод getReleaseLink вернет null или пустую строку, то кнопка для перехода по ссылке не отобразится. Если оба метода getReleaseLink и getReleaseMessage вернули null или пустую строку, то окно с оповещением не отобразится.