Source:routes.js

/**
 * @ngdoc config
 * @name mainRouteConfig
 * @memberof ClientApp
 * @param $stateProvider {service}
 * @param $urlRouterProvider {service}
 */
app.config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise("/public");
  $stateProvider.state('login', {
      url: '/login',
      views: {
        '': {
          controller: 'usersCtrl',
          templateUrl: 'app/partials/account/login.html'
        },
        'alerts@login': {
          templateUrl: 'app/partials/account/alerts.html'
        },
        'footer@login': {
          templateUrl: 'app/partials/account/footer.html'
        }
      }
    })
    /**
     * @ngdoc state
     * @name public
     * @memberof ClientApp
     * @description Publicly Accessible Route
     */
    .state('public', {
      url: '/public',
      views: {
        '': {
          controller: 'publicCtrl',
          templateUrl: 'app/partials/public/index.html',
        },
        'header@public': {
          templateUrl: 'app/partials/public/header.html',
        },
        'login-widget@public': {
          controller: 'usersCtrl',
          templateUrl: 'app/partials/account/login-widget.html'
        },
        'banner@public': {
          templateUrl: 'app/partials/public/banner.html',
        },
        'start@public': {
          templateUrl: 'app/partials/public/start.html',
        },
        'footer@public': {
          templateUrl: 'app/partials/public/footer.html',
        }
      }
    })
    /**
     * @ngdoc state
     * @name account
     * @memberof ClientApp
     * @description Authorized Route
     */
    .state('account', {
      views: {
        '': {
          templateUrl: 'app/partials/account/index.html'
        },
        'header@account': {
          templateUrl: 'app/partials/account/header.html'
        },
        'side-menu@account': {
          templateUrl: 'app/partials/account/side-menu.html'
        },
        'alerts@account': {
          templateUrl: 'app/partials/account/alerts.html'
        },
        'footer@account': {
          templateUrl: 'app/partials/account/footer.html'
        },
        'breadcrumb@account': {
          templateUrl: 'app/partials/account/breadcrumb.html'
        }
      }
    })
    /**
     * @ngdoc state
     * @name register
     * @description Register as a New User
     * @memberof ClientApp
     */
    .state('register', {
      url: '/register',
      views: {
        '': {
          templateUrl: 'app/partials/account/register.html'
        },
        'footer@register': {
          templateUrl: 'app/partials/account/footer.html'
        }
      }
    })
    /**
     * @ngdoc state
     * @name account.home
     * @description Manages the Home Page
     */
    .state('account.home', {
      url: '/home',
      views: {
        '': {
          controller: 'homeCtrl',
          templateUrl: 'app/partials/home/index.html'
        },
        'transactions@account.home': {
          controller: 'transactionCtrl',
          templateUrl: 'app/partials/transactions/widget.html'
        },
        'profile@account.home': {
          controller: 'transactionCtrl',
          templateUrl: 'app/partials/profile/widget.html'
        },
        'account@account.home': {
          controller: 'accountCtrl',
          templateUrl: 'app/partials/account/widget.html'
        },
        'tracking@account.home': {
          controller: 'accountCtrl',
          templateUrl: 'app/partials/transactions/widget-tracking.html'
        }
      },
      resolve: {
        parentState: ['$rootScope', function(rootScope) {
          rootScope.parent = 'home';
        }]
      }
    })
    /**
     * @ngdoc state
     * @name account.transaction
     * @description Handles all Transaction states
     */
    .state('account.transaction', {
      url: '/transaction',
      views: {
        '': {
          controller: 'transactionCtrl',
          templateUrl: 'app/partials/transactions/index.html'
        }
      },
      resolve: {
        parentState: ['$rootScope', function(rootScope) {
          rootScope.parent = 'transaction';
        }]
      }
    })
    /**
     * @ngdoc state
     * @name account.transaction.new
     * @description Fill in transaction form
     *
     * Implements Angular Wizard
     * @memberof ClientApp
     * @param  blank {view} Main View
     * @param  type {view} First Section
     * @param  details {view} Second Section
     * @param  payment {view} Third Section
     */
    .state('account.transaction.new', {
      url: '/new',
      views: {
        '': {
          templateUrl: 'app/partials/transactions/new.html'
        },
        'type@account.transaction.new': {
          templateUrl: 'app/partials/transactions/type.html'
        },
        'details@account.transaction.new': {
          templateUrl: 'app/partials/transactions/details.html'
        },
        'general@account.transaction.new': {
          templateUrl: 'app/partials/transactions/general.html'
        },
        'payment@account.transaction.new': {
          templateUrl: 'app/partials/transactions/payment.html'
        },
        'motor@account.transaction.new': {
          templateUrl: 'app/partials/transactions/motor.html'
        },
        'service@account.transaction.new': {
          templateUrl: 'app/partials/transactions/service.html'
        }
      }
    })
    .state('account.transaction.list', {
      url: '/list',
      views: {
        '': {
          templateUrl: 'app/partials/transactions/list.html'
        }
      }
    })
    .state('account.notifications', {
      url: '/notifications',
      views: {
        '': {
          controller: 'notificationsCtrl',
          templateUrl: 'app/partials/notifications/index.html'
        },
        'messages@account.notifications': {
          templateUrl: 'app/partials/notifications/messages.html'
        },
        'sidebar@account.notifications': {
          templateUrl: 'app/partials/notifications/sidebar.html'
        }
      }
    })
    .state('account.account', {
      url: '/account',
      views: {
        '': {
          controller: 'accountCtrl',
          templateUrl: 'app/partials/account/index.html'
        }
      }
    })
    .state('account.users', {
      url: '/users',
      views: {
        '': {
          controller: 'usersCtrl',
          templateUrl: 'app/partials/users/index.html'
        }
      },
      resolve: {
        parentState: ['$rootScope', function(rootScope) {
          rootScope.parent = 'users';
        }]
      }
    })
    .state('account.users.list', {
      url: '/list',
      views: {
        '': {
          templateUrl: 'app/partials/users/list.html'
        }
      }
    });
});