austbot
12/31/2015 - 11:24 PM

opbeat.js

//Each one of these sections are places in different files being smashed together via babel/webpack. E2015 -> ES5 + PolyFill

//APP level route
$stateProvider
    .state('app', {
      url: '/',
      templateUrl: 'app/app.html',
      controller: 'AppController',
      controllerAs: 'app',
      resolve: {
        currentUser: function (User) {
          'ngInject';
          return User.getUser();
        }
      },
      data: {
        login: {
          open: false,
          view: 'login'
        }
      }
    }
  );
  //Module Level routes
  $urlRouterProvider
    .when('/course/:slug', '/course/:slug/overview');
  $stateProvider
    .state('app.ecourse', {
      abstract: true,
      url: 'course/:slug',
      sticky: true,
      resolve: {
        ecourse: function (Ecourses, $stateParams) {
          'ngInject';
          return Ecourses.get($stateParams.slug);
        }
      },
      'views': {
        'app.layout': {
          templateUrl: 'app/ecourse/shared/layout.html',
          controller: 'EcourseController',
          controllerAs: 'ecourseCtrl'
        }
      }
    })
    .state('app.ecourse.overview', {
      url: '/overview',
      views: {
        'app.ecourse.content': {
          templateUrl: 'app/ecourse/overview/overview.html',
          controller: 'OverviewController',
          controllerAs: 'ctrl'
        }
      }
    }
  )
    .state('app.ecourse.segment', {
      url: '/:segment',
      params: {
        media: null,
        play: false
      },
      views: {
        'app.ecourse.content': {
          templateUrl: 'app/ecourse/segment/segment.html',
          controller: 'SegmentController',
          controllerAs: 'ctrl'
        }
      }
    }
  );
  //Module Level Routes, These ones are getting perf data
  $stateProvider
    .state('app.ecourse.registration', {
      abstract: true,
      params: {
        direction: 'forward'
      }
    })
    .state('app.ecourse.registration.purchase', {
      url: '/register',
      views: {
        'app.layout@app': {
          templateUrl: 'app/ecourse/registration/shared/layout.html',
          controller: 'PurchaseController',
          controllerAs: 'ctrl'
        },
        'step@app.ecourse.registration.purchase': {
          templateUrl: 'app/ecourse/registration/shared/plans.html'
        },
      },
      data: {
        title: 'Join Class',
        back: false
      }
    })
    .state('app.ecourse.registration.purchase.complete', {
      url: '/complete',
      views: {
        'step@app.ecourse.registration.purchase': {
          controller: checkPlanController,
          templateUrl: 'app/ecourse/registration/purchase/complete.html'
        }
      },
      data: {
        back: true
      }
    })
    .state('app.ecourse.registration.gift', {
      url: '/gift',
      views: {
        'app.layout@app': {
          templateUrl: 'app/ecourse/registration/shared/layout.html',
          controller: 'GiftController',
          controllerAs: 'ctrl'
        },
        'step@app.ecourse.registration.gift': {
          templateUrl: 'app/ecourse/registration/shared/plans.html'
        }
      },
      data: {
        title: 'Gift Class',
        back: false
      }
    })
    .state('app.ecourse.registration.gift.completeSignUp', {
      url: '/sign-up',
      views: {
        'step@app.ecourse.registration.gift': {
          controller: checkPlanController,
          templateUrl: 'app/ecourse/registration/gift/completeSignup.html'
        }
      },
      data: {
        back: true
      }
    })
    .state('app.ecourse.registration.gift.complete', {
      url: '/complete',

      views: {
        'step@app.ecourse.registration.gift': {
          controller: checkPlanController,
          templateUrl: 'app/ecourse/registration/gift/complete.html'
        }
      },
      data: {
        back: true
      }
    })
    .state('app.ecourse.registration.redeem', {
      url: '/redeem?redemptionCode',
      views: {
        'app.layout@app': {
          templateUrl: 'app/ecourse/registration/shared/layout.html',
          controller: 'RedeemController',
          controllerAs: 'ctrl'
        },
        'step@app.ecourse.registration.redeem': {
          templateUrl: 'app/ecourse/registration/redeem/complete.html'
        }
      },
      data: {
        title: 'Redeem Class',
        back: false
      }
    });