/** * @ngdoc fasit * @name fasit.module.#fasit * @fasit * * @description * Huvudmodul i applikationen FasIT * */ (function() { const dependencies: string[] = [ 'ui.bootstrap', 'ui.utils', 'ngRoute', 'ngCookies', 'ngResource', 'ngSanitize', 'jmdobry.angular-cache', 'pascalprecht.translate', 'angularFileUpload', 'angulartics', 'angulartics.google.analytics' ]; const fasitApp: any = angular.module('fasit', dependencies); fasitApp.config(fasitConfig).run(fasitRun); /* @ngInject */ function fasitConfig( $routeProvider: any, $angularCacheFactoryProvider: any, $translateProvider: any, $locationProvider: any, $httpProvider: any, $rootScopeProvider: any, $compileProvider: any, $provide: any ) { $provide.decorator('ngViewDirective', [ '$delegate', function($delegate) { const directive = $delegate[1]; const tempLink = directive.link; const link: any = function(scope, $element) { scope.$$routeInit = true; tempLink(scope, $element); }; directive.compile = function($element, attr) { return link; }; return $delegate; } ]); //$compileProvider.debugInfoEnabled(false); // TODO frha: Hårdkoda inte adresser utan se till att det blir ett domänvärde eftersom det används på fler ställen $routeProvider .when('/Dokument/:id', { templateUrl: 'app/Scopes/Dokument/Dokument.html', controller: 'DokumentCtrl', reloadOnSearch: false }) .when('/FasitNytt', { templateUrl: 'app/Scopes/FasitNytt/FasitNytt.html', controller: 'FasitNyttCtrl', reloadOnSearch: false }) .when('/Objekt/:id', { templateUrl: 'app/Scopes/MaeklarObjekt/MaeklarObjekt.html', controller: 'MaeklarObjektCtrl', reloadOnSearch: false }) .when('/Objektlista', { templateUrl: 'app/Scopes/ObjektLista/ObjektLista.html', controller: 'ObjektListaCtrl', reloadOnSearch: false }) .when('/Kontakt/:personId', { templateUrl: 'app/Scopes/Kontakt/Kontakt.html', controller: 'KontaktCtrl', reloadOnSearch: false, }) .when('/Kontaktlista', { templateUrl: 'app/Scopes/KontaktLista/KontaktLista.html', controller: 'KontaktListaCtrl', reloadOnSearch: false }) // TODO frha: Borde inte denna kunna tas bort? .when('/KontaktlistaOld', { templateUrl: 'app/Scopes/KontaktLista/KontaktListaOld.html', controller: 'KontaktListaCtrlOld', reloadOnSearch: false }) .when('/NyKontakt', { templateUrl: 'app/Scopes/NyKontakt/NyKontakt.html', controller: 'NyKontaktCtrl', reloadOnSearch: false }) .when('/Saljdriv/Skickadetips', { templateUrl: 'app/Scopes/Saelj/SkickadeTips/SkickadeTips.html', controller: 'SkickadeTipsCtrl', reloadOnSearch: false }) .when('/Installningar', { templateUrl: 'app/Scopes/Instaellningar/Instaellningar.html', controller: 'InstaellningarCtrl', reloadOnSearch: false }) .when('/Omraden', { templateUrl: 'app/Scopes/InstaellningarOmraaden/InstaellningarOmraaden.html', controller: 'InstaellningarOmraadenCtrl', reloadOnSearch: false }) .when('/Tillaggsklausuler', { templateUrl: 'app/Scopes/InstaellningarTillaeggsklausuler/InstaellningarTillaeggsklausuler.html', controller: 'StandardTextAdminSideDrawerCtrl', reloadOnSearch: false }) .when('/FristaaendeDokument', // TODO frha: Byt namn till FristaendeDokument för att följa standard för adresser { templateUrl: 'app/Scopes/FristaaendeDokument/FristaaendeDokument.html', controller: 'FristaaendeDokumentCtrl', reloadOnSearch: false }) .when('/Fakturor', { templateUrl: 'app/Scopes/Fakturor/Fakturor.html', controller: 'FakturorCtrl', reloadOnSearch: false }) .when('/Komponenter', { templateUrl: 'app/Scopes/Komponenter/Komponenter.html', controller: 'KomponenterCtrl', reloadOnSearch: false }) .when('/DigitalBudgivning/:id', { templateUrl: 'app/Scopes/DigitalBudgivningMobil/DigitalBudgivningMobil.html', controller: 'DigitalBudgivningMobilCtrl', reloadOnSearch: false }) .when('/Haendelser', // TODO frha: Byt namn till Handelser för att följa standard för adresser { templateUrl: 'app/Scopes/Haendelser/Haendelser.html', controller: 'HaendelserCtrl', reloadOnSearch: false }) // Routar vi via Angular2 så får vi problem när vi vill använda angularJS-servicar. // Workaround är att köra även Angular 2+ via AngularJS routing tills nödvändiga servicar är migrerade eller en lösning har hittats. // detta är en känd bugg i att köra hybridappar, som i nuläget inte verkar ha någon lösning // https://github.com/angular/angular/issues/14239 // Ska hybridrouting köras (med en del routes som hanteras av Angular 2+) behöver template vara tom, för att rensa ng-view. .when('/CleanCache', { template: '' }) .when('/NyttObjekt', { template: '' }) .when('/Saljdriv', { template: '' }) .when('/Saljdriv/Forsaljning', { template: '' }) // TODO frha: skilj på de olika .when('/Saljdriv/Intagsforsok', { template: '' }) .when('/Saljdriv/Provision', { template: `` }) .when('/Saljdriv/Mojlighetlista/Guldgruvan', { template: ``, reloadOnSearch: false }) .when('/Saljdriv/Mojlighetlista/Aterkoppling', { template: ``, reloadOnSearch: false }) .when('/Saljdriv/Mojlighetlista/VantarPaKontakt', { template: ``, reloadOnSearch: false }) .otherwise({ redirectTo: '/Saljdriv' }); // sätter max antal digests som får köra innan Angular varnar för endless-loopar $rootScopeProvider.digestTtl(50); const localStorageOptions: { maxAge: number;recycleFreq: number;deleteOnExpire: string;storageMode: string } = { maxAge: 60 * 60 * 1000, recycleFreq: 60 * 1000, deleteOnExpire: 'passive', storageMode: 'none' //vs localStorage }; $angularCacheFactoryProvider.setCacheDefaults(localStorageOptions); $httpProvider.interceptors.push('responseInterceptor'); $translateProvider.useSanitizeValueStrategy(null); $translateProvider.preferredLanguage('sv_SE'); // Sätter startspråk $translateProvider.fallbackLanguage('sv_SE'); // Sätter språk som används vid ogiltig input $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|mailto|callto|tel):/); } /* @ngInject */ function fasitRun (configModelService: fb.IConfigModelService) { configModelService.init(); } })();