'use strict'; // FEATURE FLAGS var featureFlags = { creditCardPaymentsEnabled: true, passengerTripControlsEnabled: false, multiLanguage: false }; // Declare app level module which depends on filters, and services var module = angular.module('afroApp', [ // 'ngSanitize', 'ngRoute', 'ngCookies', 'ngTouch', 'ui.bootstrap', 'ui.utils', 'ajoslin.promise-tracker', 'pascalprecht.translate', 'angular-stripe', 'afroApp.filters', 'afroApp.services', 'afroApp.directives', 'afroApp.controllers' ]); module.config(['$locationProvider', function ($locationProvider) { $locationProvider.html5Mode(true); }]); module.config(['stripeProvider', function(stripeProvider){ stripeProvider.setPublishableKey(stripeApiKey); }]); module.config(['$translateProvider', function($translateProvider) { $translateProvider.translations('en', translations_EN); $translateProvider.translations('fr', translations_FR); $translateProvider.registerAvailableLanguageKeys(['en', 'fr'], { 'en-US': 'en', 'en-UK': 'en', 'en-ZA': 'en', 'fr-FR': 'fr' }); if (featureFlags.multiLanguage){ $translateProvider.uniformLanguageTag('bcp47'); $translateProvider.determinePreferredLanguage(); $translateProvider.useCookieStorage(); } else{ $translateProvider.preferredLanguage('en'); } $translateProvider.fallbackLanguage('en'); $translateProvider.useSanitizeValueStrategy('escaped'); }]); // SERVICE EVENTS var flaggedDriverUpdatedEvent = 'afroFlaggedDriverUpdated'; // MESSAGE EVENTS var driverCompleteJobEvent = 'afroDriverCompleteJob'; var driverCollectedEvent = 'afroDriverCollected'; var jobAcceptedEvent = 'afroJobAccepted'; var driverAbandonedEvent = 'afroDriverAbandoned'; var jobNoShowEvent = 'afroJobNoShow'; var helloRoute = '/hello'; // in app routes var pickupRoute = '/'; var destinationRoute = '/destination'; var fareRoute = '/fare'; var waitingAcceptJobRoute = '/waiting_accept_job'; var waitingDriverEnrouteRoute = '/waiting_driver_enroute'; var inTransitRoute = '/in_transit'; var ratingRoute = '/rating'; var trackYourDeliveryRoute = '/track/:tripId'; var tripDetailsRoute = '/trip_details'; var onBoardRoute = '/onboard'; var signUpRoute = '/signup'; var signInRoute = '/signin'; var signUpCreditCardRoute = '/signup/creditcard'; var signUpVoucherRoute = '/signup/voucher'; var forgotPasswordPassengerRoute = '/forgotpassword'; var passwordResetPassengerRoute = '/passwordreset/passenger/:userId/:validationToken'; var passwordResetDriverRoute = '/passwordreset/driver/:userId/:validationToken'; var passwordResetDriverMessageRoute = '/passwordreset/driver/successful'; var emailConfirmationRoute = '/emailconfirmation'; var completePassengerProfileRoute = '/complete_passenger_profile'; // MENU ROUTES var passengerAccountRoute = '/account'; var passengerVoucherRoute = '/vouchers'; var passengerPaymentMethodsRoute = '/payment_methods'; var passengerTripHistoryRoute = '/trip_history'; var passengerTripViewRoute = '/trip/:tripKey/view/'; var passengerInformationRoute = '/information_page'; // ABOUT AFRO ROUTES var aboutAfroRoute = '/about_afro'; var termsAndConditionsRoute = '/terms_and_conditions'; var privacyPolicyRoute = '/privacy_policy'; var takeTourRoute = '/take_a_tour'; // API ROUTES var apiBranchInfo = '/api/v3/passenger/branchinfo'; var apiEstimateRoute = '/api/v3/passenger/estimate'; var apiSignInRoute = '/api/v2/passenger/signin'; var apiSocialSignInRoute = '/api/v2/passenger/socialsignin'; var apiSignUpRoute = '/api/v2/passenger/signup'; var apiSocialSignUpRoute = '/api/v2/passenger/socialsignup'; var apiSignOutRoute = '/api/v2/passenger/signout'; var apiForgotPasswordPassenger = '/api/v2/passenger/forgotpassword'; var apiResetPasswordPassenger = '/api/v2/passenger/resetpassword'; var apiResetPasswordDriver = '/api/v2/driver/resetpassword'; var apiCompletePassengerProfileRoute = '/api/v2/passenger/completepassengerprofile'; var apiCreateJobRoute = '/api/v3/passenger/createjob'; var apiCollectJobRoute = '/api/v2/passenger/collectjob'; var apiCompleteJobRoute = '/api/v2/passenger/completejob'; var apiCancelFlaggingJobRoute = '/api/v2/passenger/cancelflaggingjob'; var apiAbandonJobRoute = '/api/v2/passenger/abandonjob'; var apiGetDriverPhotoUrl = '/api/v2/driver/driverphotourl'; var apiGetVehiclePhotoUrl = '/api/v2/driver/vehiclephotourl'; var apiRateDriver = '/api/v2/passenger/ratedriver'; var apiGetDriverDetails = '/api/v2/passenger/getdriverdetails'; var apiGetActiveTaxis = '/api/v3/passenger/getactivetaxis'; var apiGetFlaggedTaxi = '/api/v2/passenger/getflaggedtaxi'; var apiPassengerFlagsAndStatus = '/api/v2/passenger/passengerflagsandstatus'; var apiEditPassengerProfile = '/api/v2/passenger/details'; var apiGetPassengerVouchers = '/api/v3/passenger/voucherdetails'; var apiRedeemVoucher = '/api/v3/passenger/redeemvoucher'; var apiStripeCard = '/api/v3/passenger/stripecard'; var apiStripePaymentMethods = '/api/v3/passenger/stripepaymentmethods'; var apiTripHistory = '/api/v2/passenger/triphistory'; var apiTripView = '/api/v2/passenger/trip/{0}/view'; // this must have the token added to it var apiDeliveryView = '/api/v4/receiver/{0}/view'; // this must have the token added to it var apiRateExperience = '/api/v4/receiver/rate/{0}'; // this must have the token added to it // PHONEGAP SPECIFIC API ROUTES var apiPhonegapSocialSignInRoute = '/api/v2/passenger/phonegap/socialsignin'; var apiPhonegapSocialSignUpRoute = '/api/v2/passenger/phonegap/socialsignup'; module.config(['$routeProvider', function ($routeProvider) { $routeProvider.when(helloRoute, {templateUrl: '/templates/hello.html'}); $routeProvider.when(pickupRoute, {templateUrl: '/templates/pickup.html'}); $routeProvider.when(destinationRoute, {templateUrl: '/templates/destination.html'}); $routeProvider.when(fareRoute, {templateUrl: '/templates/fare.html'}); $routeProvider.when(waitingAcceptJobRoute, {templateUrl: '/templates/waiting_accept_job.html'}); $routeProvider.when(waitingDriverEnrouteRoute, {templateUrl: '/templates/waiting_driver_enroute.html'}); $routeProvider.when(inTransitRoute, {templateUrl: '/templates/in_transit.html'}); $routeProvider.when(ratingRoute, {templateUrl: '/templates/rating.html'}); $routeProvider.when(tripDetailsRoute, {templateUrl: '/templates/trip_details_view.html'}); $routeProvider.when(onBoardRoute, {templateUrl: '/templates/on_board.html'}); $routeProvider.when(signUpRoute, {templateUrl: '/templates/sign_up.html'}); $routeProvider.when(signInRoute, {templateUrl: '/templates/sign_in.html'}); $routeProvider.when(signUpCreditCardRoute, {templateUrl: '/templates/payment_methods.html'}); $routeProvider.when(signUpVoucherRoute, {templateUrl: '/templates/signup_vouchers.html'}); $routeProvider.when(forgotPasswordPassengerRoute, {templateUrl: '/templates/forgot_password_passenger.html'}); $routeProvider.when(passwordResetPassengerRoute, {templateUrl: '/templates/password_reset_passenger.html'}); $routeProvider.when(passwordResetDriverRoute, {templateUrl: '/templates/password_reset_driver.html'}); $routeProvider.when(passwordResetDriverMessageRoute, {templateUrl: '/templates/password_reset_driver_successful.html'}); $routeProvider.when(emailConfirmationRoute, {templateUrl: '/templates/email_confirmation.html'}); $routeProvider.when(completePassengerProfileRoute, {templateUrl: '/templates/complete_passenger_profile.html'}); $routeProvider.when(passengerAccountRoute, {templateUrl: '/templates/passenger_account.html'}); $routeProvider.when(passengerVoucherRoute, {templateUrl: '/templates/passenger_vouchers.html'}); $routeProvider.when(passengerPaymentMethodsRoute, {templateUrl: '/templates/payment_methods.html'}); $routeProvider.when(passengerTripHistoryRoute, {templateUrl: '/templates/passenger_trip_history.html'}); $routeProvider.when(passengerTripViewRoute, {templateUrl: '/templates/passenger_trip_view.html'}); $routeProvider.when(passengerInformationRoute, {templateUrl: '/templates/information_page.html'}); $routeProvider.when(aboutAfroRoute, {templateUrl: '/templates/about_afro.html'}); $routeProvider.when(termsAndConditionsRoute, {templateUrl: '/templates/terms_and_conditions.html'}); $routeProvider.when(privacyPolicyRoute, {templateUrl: '/templates/privacy_policy.html'}); $routeProvider.when(takeTourRoute, {templateUrl: '/templates/passenger_take_tour.html'}); $routeProvider.when(trackYourDeliveryRoute, {templateUrl: '/templates/track_your_delivery.html'}); $routeProvider.otherwise({redirectTo: pickupRoute}); }]); module.config(['$httpProvider', function($httpProvider){ $httpProvider.defaults.withCredentials = true; $httpProvider.interceptors.push('loginErrorHttpInterceptor'); }]); module.run(['$rootScope', '$location', 'UserSvc', 'TripSvc', function($rootScope, $location, UserSvc, TripSvc){ // Phonegap will use file:// urls $rootScope.isPhoneGap = document.URL.indexOf('http://') === -1 && document.URL.indexOf('https://') === -1; if ($location.url().indexOf(trackYourDeliveryRoute.substring(1, trackYourDeliveryRoute.indexOf(':'))) !== -1) { return } // attempt recovery of existing job, if any TripSvc.getPassengerFlagsAndStatus().then(function(response){ if(!response.data.result || !response.data.data){ return; } TripSvc.recoveryHandler.recoverState(response.data); }); }]);