document.head.insertAdjacentHTML('beforeend','') PouchDB = require 'app/utils/pouch' # Иконки для меню (упрощенные компоненты Vue) MenuIcons = SliderIcon: template: '' ProductsIcon: template: '' ClientsIcon: template: '' BlogIcon: template: '' RoutesIcon: template: '' SettingsIcon: template: '' module.exports = name: 'AdminPanel' components: MenuIcons render: (new Function '_ctx', '_cache', renderFns['app/pages/Admin/index.pug'])() data: -> return { currentDomain: window.location.hostname menuItems: [ { id: 'slider' name: 'Слайдер' path: '/admin/slider' icon: 'SliderIcon' } { id: 'products' name: 'Товары' path: '/admin/products' icon: 'ProductsIcon' } { id: 'clients' name: 'Клиенты' path: '/admin/clients' icon: 'ClientsIcon' } { id: 'blog' name: 'Блог' path: '/admin/blog' icon: 'BlogIcon' } { id: 'routes' name: 'Маршруты' path: '/admin/routes' icon: 'RoutesIcon' } { id: 'settings' name: 'Настройки' path: '/admin/settings' icon: 'SettingsIcon' } ] } computed: currentRoute: -> @$route.path.split('/').pop() || 'settings' methods: navigateTo: (path) -> @$router.push(path) getMenuItemClass: (item) -> baseClass = 'admin__nav-item' isActive = @currentRoute == item.id if isActive return "#{baseClass} admin__nav-item--active" else return "#{baseClass} admin__nav-item--inactive" loadDomainSettings: -> PouchDB.getDocument("domain_settings:#{@currentDomain}") .then (settings) => @domainSettings = settings .catch (error) => debug.log 'Настройки домена не найдены, используются значения по умолчанию' @domainSettings = null mounted: -> @loadDomainSettings()