Обновление 0.9.2.7 (патч)
28.10.2013
Обновление представляет собой исправление версии 0.9.2.5, отправленной на доработку.
Список изменений:
- исправлена проблема с русской локализацией (портилась кодировка при сохранении списка модулей административной панели);
- исправлена ошибка автогенератора кода, генерировались лишние свойства для объектов без версионного контроля;
- в класс Db_Object_Config добавлены новые методы:
- hasDefault($field);
- getDefault($field);
- исправлены базовые контроллеры административной панели, теперь они не блокируют вставку значений по умолчанию;
- доработан генератор интерфейсов, теперь в поля вставляется значение по умолчанию, для unsigned-полей выставляется ограничение на минимальное значение, равное нулю;
- исправлен тип свойства value PHP-обертки для ExtJS textfield;
- исправлено ORM: импорт внешней таблицы не всегда определяет верный префикс;
- доработано ORM: при удалении объекта теперь необходимо указать, нужно ли удалять таблицу базы данных;
- исправлено ORM: лог изменений структуры таблиц теперь для каждого подключения пишется отдельно, что упрощает обновление структуры вручную по логу;
- доработан Designer: теперь строковые свойства объектов могут принимать исполняемый JS-код (особенно полезно для локализации проекта интерфейса), для этого в начале свойства необходимо указать токен [js:].
Пример:
- доработан сборщик кода: добавлена кнопка перестроения карты классов (ранее приходилось пересобирать пакеты);
- обновлен список компонент ExtJs /js/lib/extjs4/ux;
- Designer, дополнены списки свойств объектов.
В релиз вошли изменения невыпущенного патча 0.9.2.5:
- доработан дизайнер интерфейсов:
- добавлена поддержка определения методов для расширенных компонент (isExtended) - добавлена проверка, расширенным (isExtended) может быть только компонент верхнего уровня дерева объектов;
- улучшено форматирование автогенерируемого кода;
- изменен основной интерфейс дизайнера, теперь центральная часть отображает либо интерфейс, либо редактор кода (добавлен переключатель в основной тулбар), теперь редактировать код стало удобнее;
- инициализация дочерних элементов перенесена в метод addDesignerItems, initComponent доступен для переопределения (не забудьте вызвать addDesignerItems внутри переопределенного initComponent);
- исправлена проблема с отображением иконки action column сразу же после изменения (для систем установленных в поддиректорию);
- доработан интерфейс ORM - добавлена скрытая колонка с именем подключения;
- исправлено - неверный адрес css-файла в шаблоне ошибки системы;
- теперь возможно добавление собственных событий в расширенные компоненты;
- исправлено ORM - невозможно создать словарь используя заглавные буквы;
- исправлено - невозможно добавить компонент Form_Checkboxgroup;
- исправлено - невозможно добавить компонент Form_Radiogroup;
- доработано поведение автогенератора при создании компонент связанных с float-полями БД, теперь используется precision для установления точности в поле numberfield и выставление соответствующего формата в колонках таблиц;
- документация ORM приведена в соответствие с официальной англоязычной документацией Mysql 5.1;
- исправлено генератор интерфейсов, невозможно создать интерфейс с полем типа time.
На данном этапе автогенератор по прежнему создает код используя полуфункциональный подход, в одном из следующих релизов мы предоставим возможность выбора поведения автогенератора.
Обновленный вид интерфейса (режим просмотра / редактирования кода):
![]() |
![]() |
Новые элементы основного меню:
- выбор режима просмотра:
- интерфейс (interface);
- код (code);
- посмотреть JS-код, который будет автоматически сгенерирован для всех компонент;
- дебаггер файла проекта.
Просмотр кода всех компонент:
Редактор методов "расширенных" компонент:
Редактор событий "расширенных" компонент, позволяет создать собственное событие, в этом же окне, при необходимости, можно определить реакцию на него.
Панель свойств объекта, список методов:
Панель свойств объектов, список событий:
Автоматически сгенерированные события и методы:
Документация:
- Доработана документация в разделе API: