kahuna/public/js/image/index.js (52 lines of code) (raw):

import angular from 'angular'; import './controller'; import '../search/query-filter'; import '../imgops/service'; import '../forms/gr-xeditable/gr-xeditable'; import '../components/gr-top-bar/gr-top-bar'; import imageTemplate from './view.html'; import imageErrorTemplate from './image-error.html'; export var image = angular.module('kahuna.image', [ 'kahuna.image.controller', 'kahuna.search.filters.query', 'kahuna.imgops', 'gr.topBar', 'grXeditable' ]); image.config(['$stateProvider', function($stateProvider) { $stateProvider.state('image', { url: '/images/:imageId?crop?cropType&customRatio&defaultCropType', template: imageTemplate, controller: 'ImageCtrl', controllerAs: 'ctrl', resolve: { imageId: ['$stateParams', $stateParams => $stateParams.imageId], cropKey: ['$stateParams', $stateParams => $stateParams.crop], image: ['$state', '$q', 'mediaApi', 'imageId', ($state, $q, mediaApi, imageId) => { return mediaApi.find(imageId).catch(error => { if (error && error.status === 404) { $state.go('image-error', {message: 'Image not found'}); } else { return $q.reject(error); } }); }], optimisedImageUri: ['image', 'imgops', (image, imgops) => imgops.getFullScreenUri(image)], lowResImageUri: ['image', 'imgops', (image, imgops) => imgops.getLowResUri(image)] } }); // Note: we may be able to make this state more generic if we want // other error pages $stateProvider.state('image-error', { params: {message: {}}, template: imageErrorTemplate, controller: ['$scope', 'message', ($scope, message) => { $scope.message = message; }], resolve: { message: ['$stateParams', $stateParams => $stateParams.message] } }); }]);