Инструкция по переходу на новые темы оформления
Для того чтобы, можно было добавлять свои кастомизированные темы в ember-flexberry необходимо:
- Cкопировать в корневую папку
ember-flexberryфайл theme.config - Cкопировать theme.less и папку themes в
/addon/styles -
переименовать
/test/dummy/app/styles/app.scssвapp.lessи добавить в него сверху строчку@import "src/semantic"; -
Удалить строчку в package.json
"ember-cli-sass": "^5.2.0",и установить компилятор less командой
npm install --save-dev ember-cli-less - В ../ember-cli-build.js добавить строчки
lessOptions: {
paths: [
'bower_components/semantic-ui'
]
},
SemanticUI: {
import: {
css: false,
javascript: false,
images: false,
fonts: true
}
},
- В
theme.configпрописать для необходимых элементов название blueSky. Посмотреть пример можно здесь:
https://github.com/Flexberry/ember-flexberry/blob/develop/theme.config
В основном разметка изменилась на главной странице, поэтому нам нужно поправить файл /test/dummy/app/templates/application.hbs
он должен выглядеть вот так:
https://github.com/Flexberry/ember-flexberry/blob/develop/tests/dummy/app/templates/application.hbs
Так как Semantic-UI не позволяет подключать 2 варианта шрифтовых иконок, то проще всего их подключить через vendor, взять их можно отсюда:
https://github.com/Flexberry/ember-flexberry/tree/develop/vendor
необходимо скопировать папки fonts, font-icon.css и папку serviseImages (некоторые иконки темы, только для темы blueSky) в ember-flexberry/vendor/, а также надо добавить в ember-cli-build.js импорт этих файлов
app.import('vendor/font-icon.css');
app.import('vendor/fonts/icons.eot', { destDir: 'assets/fonts' });
app.import('vendor/fonts/icons.otf', { destDir: 'assets/fonts' });
app.import('vendor/fonts/icons.svg', { destDir: 'assets/fonts' });
app.import('vendor/fonts/icons.ttf', { destDir: 'assets/fonts' });
app.import('vendor/fonts/icons.woff', { destDir: 'assets/fonts' });
app.import('vendor/fonts/icons.woff2', { destDir: 'assets/fonts' });
app.import('vendor/fonts/crim.eot', { destDir: 'assets/fonts' });
app.import('vendor/fonts/crim.otf', { destDir: 'assets/fonts' });
app.import('vendor/fonts/crim.svg', { destDir: 'assets/fonts' });
app.import('vendor/fonts/crim.ttf', { destDir: 'assets/fonts' });
app.import('vendor/fonts/crim.woff', { destDir: 'assets/fonts' });
app.import('vendor/fonts/crim.woff2', { destDir: 'assets/fonts' });
app.import('vendor/serviceImages/close.png', {
destDir: 'assets/serviceImages'
});
app.import('vendor/serviceImages/close-hover.png', {
destDir: 'assets/serviceImages'
});
app.import('vendor/serviceImages/Plus.png', {
destDir: 'assets/serviceImages'
});
app.import('vendor/serviceImages/Minus.png', {
destDir: 'assets/serviceImages'
});
Также, чтобы менялась надпись шрифтовой иконки меню и цвет при нажатии надо чтобы в /test/dummy/app/controllers/application.js метод actions.toggleSidebar выглядел вот так:
https://github.com/Flexberry/ember-flexberry/blob/develop/tests/dummy/app/controllers/application.js
Если меню состоит не только из главных пунктов но и есть подпункты, то необходимо добавить скрипты, для того чтобы элементы меню скрывались, для этого необходимо в /tests/dummy/app/controllers/sitemap-node.js добавить метод actions.subMenuEl чтобы он выглядел вот так:
Добавить действие и иконки скрытия подменю в ember-flexberry/app/templates/sitemap-node-content.hbs и в /ember-flexberry/app/templates/sitemap-node.hbs в итоге должно получиться вот так:
https://github.com/Flexberry/ember-flexberry/blob/develop/app/templates/sitemap-node-content.hbs https://github.com/Flexberry/ember-flexberry/blob/develop/app/templates/sitemap-node.hbs
Подправить кнопки удаления и добавления, а также изменения, для этого надо добавить кнопкам классы ui-add, ui-delete, ui-change:
https://github.com/Flexberry/ember-flexberry/blob/develop/app/templates/components/groupedit-toolbar.hbs https://github.com/Flexberry/ember-flexberry/blob/develop/app/templates/components/flexberry-lookup.hbs
Дополнение:
- В шаблонах списковых форм заменить
<div class="ui row form">на<div class="row"> - Во всех файлах заменить
hidden-menuнаhidden. - В controllers/application.js заменить
.sidebar.icon.text-menu-1на.sidebar.icon.text-menu-show,.sidebar.icon.text-menu-2на .sidebar.icon.text-menu-hide. - В templates/application.hbs сделать замены как в предыдущем пункте. Затем добавить в блок
<div id="example" class="pusher">-<div class="ui form ">https://github.com/Flexberry/ember-flexberry/blob/develop/tests/dummy/app/templates/application.hbs#L38 - В theme.config сделать как в https://github.com/Flexberry/ember-flexberry/blob/03751c63e852ed2fde8c7519022a17cbc9d284d1/theme.config#L21 с 21 по 73 строку
- В controllers/application.js – вставить action toggleSidebarMobile и сервис objectlistview-events, также изменить toggleSidebar. (изменения для controllers/application.js - https://github.com/Flexberry/ember-flexberry-security/commit/ebfd645c00834dba426b97c00bf0cd6eb25e5807#diff-b02194543e6fcf5c7caff7b1a2f3d0f4;
- В templates/application.hbs – вынести компонент ui-sidebar в начало страницы, чтобы он был вне блоков с контентом (по умолчанию нужно перенести выше блока с классом
bgw-fix), под блоком с классомpusher, создать блок с классомui main containerи перенести в него{{outlet "modal"}}. (изменения для templates/application.hbs - https://github.com/Flexberry/ember-flexberry-security/commit/ebfd645c00834dba426b97c00bf0cd6eb25e5807#diff-33efff51085b97215b246f6fcfd9e0fe; - Если используется мобильный шаблон application.hbs, то для него нужно проделать действия из предыдущего пункта для ui-sidebar, а также заменить action toggleSidebar на toggleSidebarMobile;