Wiki

Clone wiki

pf-frontend / App

Использование

App это точка входа в приложение. Инициализирующий класс. Он служит для мэнеджмента юнитов и как сервис локатор.

Инициализация

  app = new App

Мэнеджмент юнитов

Загрузка и инициализация, функция loadUnits

  app = new App
    
  app.loadUnits(units) # -> $.Defered

Метод передаёт каждый из элементов переданного словаря юнитов в метод @addUnit, инициализирующий юнит и возвращающий объект $.Defered.

API предполагает наличие у юнита метода @load возвращающего объект $.Defered

Схема загрузки и инициализации юнитов

При инициализации юнит получает свойство @app хранящее фасад представляющий приложение.

  unit: ("name") ->            # Объект представляющий юнит
  service: ("name") ->         # Объект представляющий сервис
  sid: ->                      # Идентификатор сессии

  userStorage: (key, def) ->   # Возвращает функцию текущего пользователя
  userOptions: ->              # Объект опций текущего пользователя
  userTestOption: (option) ->  # Проверка опций текущего пользователя
  userACL:                     # Список ключей доступа для текущего пользователя
  userTestAcess: (acessKey) -> # Проверка доступа текущего пользователя

  userInfo: ->                 # Информация пользователя
  userCompanies: ->            # Компании пользователя

Активация

App использует api Manager для управления отображением и активностью юнитов.

Каждый юнит реализует интерфейс Manager.Item

  • active Вызывает событие active или устанавливает его обработчик
  • activate Определяет поведение активации юнита
  • deactivate Определяет поведение деактивации юнита
  ## Пример активации юнита с параметрами
  ## Переданные параметры будут переданы в метод activate юнита
  app.units.unitName.active options

  ## Или из юнита через Фасад
  unitName.app.unit('unitName').active options

Сервис локатор

Сервис локатор добавлен для удобного доступа к "Сервисам" - сконфигурированным при добавлении расширениям функционала App

  ## Пример добавления нового сервиса
  app.addServise Servise, 'serviseName', options

Updated