Логика запуска приложения

  1. Стартует код
$(function () {
  lemurro.start();
});
  1. Инициализируется роутер
  2. Подключаются маршруты из конфига
  3. Запускается роутер и отрабатывается маршрут
  4. Если это не первый запуск приложения, а просто переход из раздела в раздел, тогда загружается страница определённая маршрутизатором и сразу выполняется шаг №16
  5. Инициализируется ядро lemurro.init();
  • lemurro.sessionID = '';
  • lemurro.userinfo = {};
  • lemurro.lightajax = new LightAjax(...);
  1. Подключается сборщик ошибок js
  2. Инициализируется форма входа в зависимости от настроек
  3. Достаётся из локального хранилища ИД сессии, если есть продолжаем, иначе открывается форма входа
  • lemurro.sessionID = '...';
  1. Достаётся из локального хранилища ИД прошлой сессии, если есть показываем кнопку Вернуться в верхнем меню пользователя
  2. Запускается проверка сессии, если успешно выполнено продолжаем, иначе открывается форма входа
  3. Запускается получение информации о пользователе, если успешно выполнено продолжаем, иначе открывается форма входа
  • lemurro.userinfo = result.data;
  1. Исходя из прав доступа пользователя настраивается показ элементов (пунктов меню и т.п.)
  2. Приложение успешно стартовало:
  • Устанавливается app.started = true;
  • Скрывается более ненужный оверлей прелоадера
  • Запускается app.init(lemurro._loadPage);
  1. Выполняется app.init(); после его выполнения вызывается переданный callback();, который запускает lemurro._loadPage
  2. Выполняется lemurro._loadPage();
  • Устанавливается title
  • Сбрасывается активность со всех ссылок .js-link в шапке header
  • Устанавливается активность ссылок .js-link в шапке header в зависимости от раздела который открылся
  • Обновляются ссылки на странице с атрибутом data-navigo
  • Подключается Inputmask для всех классов .js-mask на странице #js-page (маска используется из атрибута data-mask)
  • Подключается Select2 для всех классов .js-select2 на странице #js-page
  • Подключается jQuery.TableFilter для всех классов .tablefilter на странице #js-page
  • Если переменная app.page.onLoad не пустая, тогда запускается выполнение находящейся там функции app.page.onLoad();, например: example.init();