1(function(){ 2 3 angular 4 .module('izApp', ['ngMap', 'ui.router','ui.select','iz.gmap','iz.util','toastr','ngCookies','ngSanitize','iz.core','apiUserAuthModule', 'heuer.core','ngAnimate', 'ui.bootstrap', 'duScroll','pascalprecht.translate']) 5 .constant("USER_ACCOUNT", HeuerConstants.account) 6 .constant("COOKIE_NAME", HeuerConstants.cookieName) 7 .constant("HEUER_URL", HeuerConstants.heuerUrl) 8 .constant("CDN_URL", HeuerConstants.cdnUrl) 9 .constant("MODULE_TEMPLATE_IDS",{ 10 11 RABBATS : 184, 12 LOCATION : 198, 13 APPENDIX : 189, 14 TICKETS : 117 15 }) 16 17 .config(configureStates) 18 .run(runOnModuleInit); 19 20 21runOnModuleInit.$inject = ['$state','$rootScope','$location']; 22 23function runOnModuleInit($state,$rootScope,$location){ 24 25 $rootScope.$on("$stateChangeError",stateChangeError); 26 $rootScope.$on('$viewContentLoaded',viewContentLoaded); 27 28 29 function stateChangeError(toState, toParams, fromState, fromParams, error) { 30 // Wenn ein Code vorhanden ist, wird die Detailsseite geladen. Wenn nicht das Listing 31 if(fromState.code){ 32 $state.go("veranstaltung", {'code':fromState.code, 'slug':fromState.slug}); 33 } else { 34 $state.go("veranstaltungen"); 35 } 36 } 37 38 function viewContentLoaded(event){ 39 40 $rootScope.elementHeadlineTitle = angular.element(document.getElementById("headline-title")); 41 $rootScope.elementHeadlineTermin = angular.element(document.getElementById("headline-termin")); 42 if($rootScope.elementHeadlineTitle && $rootScope.elementHeadlineTermin){ 43 44 // Update Height 45 $rootScope.$watch( function() { 46 $rootScope.__titleHeight = $rootScope.elementHeadlineTitle.outerHeight(); 47 }); 48 49 // Watch on Height updates 50 $rootScope.$watch("__titleHeight", function(newValue, oldValue){ 51 // Wenn das Dokument nun aber nur noch eine Breite von 768px hat sollte das hier nicht mehr gemacht werden 52 if(window.innerWidth >= 768){ // CSS Regel greift hier mit important! 53 if(newValue != oldValue){ 54 $rootScope.elementHeadlineTermin.outerHeight(newValue); 55 } 56 } 57 }); 58 } 59 } 60} 61 62configureStates.$inject=["$stateProvider", "$urlRouterProvider", "$locationProvider","$urlMatcherFactoryProvider"]; 63 64function configureStates($stateProvider, $urlRouterProvider, $locationProvider,$urlMatcherFactoryProvider) { 65 $urlMatcherFactoryProvider.strictMode(false); 66 $locationProvider.html5Mode({enabled:true,requireBase:false}); 67 $urlRouterProvider.otherwise('veranstaltungen'); 68 69 // Regel für Trailing slashes. Werden trailing slashes gefunden, wird die URL von trailing slashes bereinigt. Damit Twitter nicht // Links teilt -.- 70 $urlRouterProvider.rule(function ($injector, $location) { 71 //what this function returns will be set as the $location.url 72 var path = $location.path(); 73 if (path.search(/(\/$|\/\/$)/) != -1) { 74 //instead of returning a new url string, I'll just change the $location.path directly so I don't have to worry about constructing a new url string and so a new state change is not triggered 75 $location.replace().path(path.replace(/(\/$|\/\/$)/, '')); 76 } 77 });
78 getStates().forEach(function(state) { 79 $stateProvider.state(state.state, state.config); 80 }); 81 82} 83 84 85 86 function getStates() { 87 88 var States = []; 89 90 States.push({ 91 state : "quovadis", 92 config : { 93 url: "/quovadis", 94 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltung/render", 95 controller: "VeranstaltungController", 96 controllerAs: "vm", 97 resolve: { 98 veranstaltung: function(VeranstaltungenService) { 99 return VeranstaltungenService.get(10878).then(function(result){ 100 return result; 101 }, function(error){ 102 return error; 103 }); 104 } 105 } 106 } 107 }); 108 109 States.push({ 110 state : "quovadis_en", 111 config : { 112 url: "/quovadis_en", 113 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltung/render", 114 controller: "VeranstaltungController", 115 controllerAs: "vm", 116 resolve: { 117 veranstaltung: function(VeranstaltungenService) { 118 return VeranstaltungenService.get(10878).then(function(result){ 119 return result; 120 }, function(error){ 121 return error; 122 }); 123 } 124 } 125 } 126 }); 127 128 States.push({ 129 state: "veranstaltungen", 130 config : { 131 url: "/veranstaltungen", 132 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltungen/render", 133 controller: "VeranstaltungenController", 134 controllerAs: "vm", 135 resolve : { 136 archiv : function() { return false; } 137 } 138 } 139 }); 140 141 States.push({ 142 state: "veranstaltungen_archiv", 143 config : { 144 url: "/veranstaltungen/archiv", 145 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltungen/render", 146 controller: "VeranstaltungenController", 147 controllerAs: "vm", 148 resolve : { 149 archiv : function() { return true; } 150 } 151 } 152 }); 153 154 155 States.push({ 156 state : "veranstaltung", 157 config : { 158 url: "/veranstaltungen/{code}/{slug}", 159 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltung/render", 160 controller: "VeranstaltungController", 161 controllerAs: "vm", 162 resolve: { 163 veranstaltung: function(VeranstaltungenService, $stateParams, $q) { 164 var defer = $q.defer(); 165 if( ! $stateParams.code) { 166 defer.reject("Code ist nicht gesetzt"); 167 return defer.promise(); 168 } else { 169 return VeranstaltungenService.get($stateParams.code).then(function(result){ 170 return result; 171 }, function(error){ 172 return error; 173 }); 174 } 175 } 176 } 177 } 178 }); 179 180 States.push({ 181 state: 'veranstaltung_buchen_erfolg', 182 config : { 183 url: "/veranstaltungen/{code}/{slug}/buchen/erfolg", 184 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltung.buchen.erfolg/render", 185 controller: "VeranstaltungBuchenController", 186 controllerAs: "vm", 187 resolve: { 188 veranstaltung: function(VeranstaltungenService, $stateParams, $q) { 189 var defer = $q.defer(); 190 if( ! $stateParams.code) { 191 defer.reject("Code ist nicht gesetzt"); 192 return defer.promise(); 193 } else { 194 return VeranstaltungenService.get($stateParams.code).then(function(result){ 195 return result; 196 }); 197 } 198 }, 199 preis: function($stateParams) { 200 return null; 201 }, 202 tickettitle: function($stateParams) { 203 return null; 204 } 205 } 206 } 207 }); 208 209 210 States.push({ 211 state : "veranstaltung_buchen", 212 config : { 213 url: "/veranstaltungen/{code}/{slug}/buchen", 214 params: { 215 tickettitle: null, 216 tickettext: null 217 }, 218 templateUrl: "/backend/resources/api/templates/name/heuer.veranstaltung.buchen/render", 219 controller: "VeranstaltungBuchenController", 220 controllerAs: "vm", 221 resolve: { 222 veranstaltung: function(VeranstaltungenService, $stateParams,$q) { 223 224 var defer = $q.defer(); 225 if(! $stateParams.tickettext ){ 226 defer.reject("Tickettext ist leer"); 227 228 return defer.promise(); 229 } 230 if( ! $stateParams.code) { 231 defer.reject("Code ist nicht gesetzt"); 232 233 return defer.promise(); 234 } else { 235 return VeranstaltungenService.get($stateParams.code).then(function(result){ 236 237 return result; 238 }); 239 } 240 }, 241 preis: function($stateParams) { 242 return angular.element($stateParams.tickettext).filter(function(index, e) { 243 return e instanceof HTMLParagraphElement && e.className == 'ticket-price'; 244 }).html().replace('â¬',''); 245 }, 246 tickettitle: function($stateParams) { 247 return $stateParams.tickettitle; 248 } 249 } 250 } 251 }); 252 253 return States; 254 255} 256 257 258}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.