/** * Created by tmshv on 04/11/14. **/ import MainMenu from './components/MainMenu'; import Breadcrumbs from './components/Breadcrumbs'; import Document from './components/Document'; import Award from './components/Award'; import GalleryItem from './components/GalleryItem'; import TeamMemberProfile from './components/TeamMemberProfile'; import AppController from './controllers/AppController'; import HomeController from './controllers/HomeController'; import ScheduleController from './controllers/ScheduleController'; import TeamController from './controllers/TeamController'; import GalleryController from './controllers/GalleryController'; import AlbumController from './controllers/AlbumController'; import DocumentsController from './controllers/DocumentsController'; import CopyrightController from './controllers/CopyrightController'; import ContactsController from './controllers/ContactsController'; import RemoveHashtags from './filters/RemoveHashtags'; import RemoveNewline from './filters/RemoveNewline'; import Strip from './filters/Strip'; import UppercaseFirst from './filters/UppercaseFirst'; import IOService from './services/io'; import MenuService from './services/menu'; import api from './api/api'; let deps = [ require('./modules/schedule') ].map(m => m.name); let app = angular.module('hudozka', deps.concat([ 'hudozhka.data', 'ngRoute', 'angulartics', 'angulartics.google.analytics', 'angularSpinner' ])); app.config(($locationProvider, $routeProvider) => { $locationProvider.hashPrefix('!'); $locationProvider.html5Mode(true); let routes = [ { name: '/', templateUrl: '/views/home.html', controller: 'HomePageController', title: 'ДХШ Шлиссельбурга' }, { name: '/schedule/:period?/:semester?', templateUrl: '/views/schedule.html', controller: 'SchedulePageController', title: 'Расписание' }, { name: '/team', templateUrl: '/views/team.html', controller: 'TeamPageController', title: 'Преподаватели' }, { name: '/gallery', templateUrl: '/views/gallery.html', controller: 'GalleryPageController', title: 'Работы учащихся' }, { name: '/gallery/:year/:course/:album', templateUrl: '/views/gallery-album.html', controller: 'AlbumPageController' }, { name: '/docs', templateUrl: '/views/docs.html', controller: 'DocsPageController', title: 'Документы' } ]; routes.forEach(route => { if (typeof route === 'function') route = route(); $routeProvider.when(route.name, route); }); $routeProvider.otherwise({ templateUrl: '/404.html' }); }); app.run(($location, $rootScope, $http) => { $rootScope.$on('$routeChangeSuccess', (event, current) => { let title = current['$$route'].title; if (title) $rootScope.title = title; }); $http.defaults.headers.common['Accept'] = 'application/json'; }); [ api, IOService, MenuService, RemoveHashtags, RemoveNewline, Strip, UppercaseFirst, require('./ui/timeline'), MainMenu, Breadcrumbs, Document, Award, GalleryItem, TeamMemberProfile, AppController, HomeController, ScheduleController, TeamController, GalleryController, AlbumController, DocumentsController, CopyrightController, ContactsController, function (app) { app.controller('HomePageController', ($scope) => { $scope.pageClass = 'page-home'; }); app.controller('SchedulePageController', ($scope) => { $scope.pageClass = 'page-schedule'; }); app.controller('GalleryPageController', ($scope) => { $scope.pageClass = 'page-gallery'; }); app.controller('AlbumPageController', ($scope) => { $scope.pageClass = 'page-album'; }); app.controller('DocsPageController', ($scope) => { $scope.pageClass = 'page-docs'; }); app.controller('TeamPageController', ($scope) => { $scope.pageClass = 'page-team'; }); } ].map(i => i(app));