API-module

Критически важные изменения

  • Класс Lemurro\Api\Core\Cron\Cron переименован в класс Lemurro\Api\Core\Helpers\Console

  • Логотип из файла assets/img/logo.png переехал в base64-строку EmailTemplates::LOGO_BASE64, для создания base64-строки из файла можно воспользоваться различными онлайн-сервисами, например этим

  • Добавлен пользователь с ID=1:

    • его нельзя удалить;
    • под ним нельзя войти;
    • нельзя редактировать профиль;
    • он используется для cli-скриптов.

    Поэтому в своих проектах создайте клона вашего пользователя с ID=1

    А у пользователя с ID=1 необходимо поставить вот такие параметры

    UPDATE `users`
    SET `auth_id` = 'lemurro@lemurro'
    WHERE `id` = 1;
    
    UPDATE `info_users`
    SET `user_id`     = 1,
        `roles`       = '{"admin":"true"}',
        `first_name`  = 'для',
        `second_name` = 'cli-скриптов',
        `last_name`   = 'Пользователь'
    WHERE `id` = 1;
    
  • Появилась возможность скачивать только что загруженные (временные) файлы, поэтому необходимо добавить новое поле в таблицу files_downloads

    ALTER TABLE `files_downloads`
        ADD `type` VARCHAR(255) NOT NULL AFTER `id`;
    
    UPDATE `files_downloads`
    SET `type` = 'permanent';
    
  • В app/Configs/SettingsFile.php добавлен новый параметр

    /**
     * Режим проверки файла: по типу содержимого (type) или по расширению (ext)
     *
     * @var string
     */
    const CHECK_FILE_BY = 'type';
    

Изменения средней важности

  • Временная зона "по умолчанию" перенесена в ядро, поэтому строка date_default_timezone_set('UTC'); более не актуальна в следующих файлах:
    • public/index.php;
    • lemurro-cron.php;
    • и в ваших файлах, где вы могли использовать это определение.

WEB-module

Критически важные изменения

  • В каталоге src необходимо создать каталог copy-to-build и перенести туда каталог assets и файл .htaccess

  • В каталоге copy-to-build необходимо поместить файл favicon.png

  • Добавлена новая gulp-библиотека gulp-sort для исправления ошибки с неверным порядком склейки файлов

    npm install --save-dev gulp-sort@^2.0.0
    

    Возьмите файл gulpfile.js и сравните его со своим, там очень много изменений оптимизации, проще всего будет взять новый файл и добавить в него ваши таски (если есть)

  • Исправлена ошибка при отсутствии даты последнего действия пользователя, в файле src/html/pages/users/tpl_item.html внесите изменения в столбце с датой последнего действия

    Было Стало
    <td class="align-middle text-nowrap">
        {{lemurrolocaltime last_action_date "DD.MM.YYYY HH:mm"}}
    </td>
    <td class="align-middle text-nowrap">
        {{#if last_action_date}}
        {{lemurrolocaltime last_action_date "DD.MM.YYYY HH:mm"}}
        {{else}}
        отсутствует
         {{/if}}
    </td>
  • Добавлен системный пользователь с ID=1

    • В файле src/html/pages/users/form.html поставить класс js-user-id-1 для следующих полей:

      • input[name="auth_id"];
      • input[name="last_name"];
      • input[name="first_name"];
      • input[name="second_name"];
      • input[type="checkbox"][data-role="admin"].
    • В файле src/html/pages/users/tpl_item.html заблокируем кнопки Войти и Удалить для пользователя с ID=1

      Было Стало
      <li class="m-nav__item js-login-by-user">
          <a href="javascript:lemurro.users.loginByUser('{{id}}');" class="btn m-btn--icon">
              <span>
                  <i class="fas fa-fw fa-sign-in-alt"></i>
                  <span>Войти</span>
              </span>
          </a>
      </li>
      <li class="m-nav__item">
          <a href="javascript:users.remove('{{id}}');" class="btn m-btn--icon text-danger">
              <span>
                  <i class="far fa-fw fa-trash-alt"></i>
                  <span>Удалить</span>
              </span>
          </a>
      </li>
      {{#js_if "this.id !== '1'"}}
      <li class="m-nav__item js-login-by-user">
          <a href="javascript:lemurro.users.loginByUser('{{id}}');" class="btn m-btn--icon">
              <span>
                  <i class="fas fa-fw fa-sign-in-alt"></i>
                  <span>Войти</span>
              </span>
          </a>
      </li>
      <li class="m-nav__item">
          <a href="javascript:users.remove('{{id}}');" class="btn m-btn--icon text-danger">
              <span>
                  <i class="far fa-fw fa-trash-alt"></i>
                  <span>Удалить</span>
              </span>
          </a>
      </li>
      {{else}}
      <li class="m-nav__item">
          <span class="btn m-btn--icon disabled">
              <span>
                  <i class="fas fa-fw fa-sign-in-alt"></i>
                  <span>Войти</span>
              </span>
          </span>
      </li>
      <li class="m-nav__item">
          <span class="btn m-btn--icon disabled">
              <span>
                  <i class="far fa-fw fa-trash-alt"></i>
                  <span>Удалить</span>
              </span>
          </span>
      </li>
      {{/js_if}}
  • Запуск страницы при первом запуске приложения выполняется внутри app.init, чтобы можно было сначала выполнить какие-то действия перед стартом страницы, поэтому вам необходимо добавить вызов callback(); он передается в виде единственного параметра в app.init = function (callback) {}; в файле src/js/0-app/300-init.js

Изменения средней важности

  • Добавлен js-хелпер clearString
  • В js-хелпере showConfirm изменены настройки по умолчанию:
    • type: 'question';
    • buttonsStyling: false;
    • focusConfirm: false;
    • allowEscapeKey: false;
    • allowEnterKey: false;
    • confirmButtonClass: 'btn btn-success';
    • cancelButtonClass: 'btn btn-danger'.
  • В js-модуле bindUpload:
    • в ваш callback теперь также передаётся параметр btn;
    • добавлен новый параметр options, теперь вы можете, при необходимости, переопределить параметры по умолчанию.