app.js 7.73 KB
// Ionic Starter App

// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
// 'starter.controllers' is found in controllers.js
angular.module('starter', ['ionic', 'ion-gallery', 'starter.controllers'])

.run(function($ionicPlatform) {
  // $ionicPlatform.ready(function() {
  //   // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
  //   // for form inputs)
  //   if (window.cordova && window.cordova.plugins.Keyboard) {
  //     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  //     cordova.plugins.Keyboard.disableScroll(true);

  //   }
  //   if (window.StatusBar) {
  //     // org.apache.cordova.statusbar required
  //     StatusBar.styleDefault();
  //   }
  var ua = navigator.userAgent || navigator.vendor || window.opera;
  var ismobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0,4))
  if(!ismobile){
    var addr = 'http://normz.cn' + window.location.hash.replace(/#\/app/, '');
    window.location.href = addr;
  }
})

.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
  $ionicConfigProvider.platform.ios.navBar.alignTitle('center'); 
  $ionicConfigProvider.platform.android.navBar.alignTitle('center');
  $ionicConfigProvider.backButton.text('返回');

  $stateProvider
  .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: '/templates/menu.html',
    controller: 'AppCtrl'
  })
  .state('app.home', {
    url: '/home',
    views: {
      'menuContent': {
        templateUrl: '/templates/home.html',
        controller: 'HomeCtrl'
      }
    }
  })
  .state('app.devices', {
    url: '/abouts/yjss/devices',
    views: {
      'menuContent': {
        templateUrl: '/templates/devices.html',
        controller: 'DevicesCtrl'
      }
    }
  })
  .state('app.wssj', {
    url: '/sources/wssj',
    views: {
      'menuContent': {
        templateUrl: '/templates/wssj.html',
        controller: 'WssjCtrl'
      }
    }
  })
  .state('app.bgcx', {
    url: '/sources/bgcx',
    views: {
      'menuContent': {
        templateUrl: '/templates/bgcx.html',
        controller: 'BgcxCtrl'
      }
    }
  })
  .state('app.gsjj', {
    url: '/abouts/gsjj',
    views: {
      'menuContent': {
        templateUrl: '/templates/gsjj.html',
        controller: 'GsjjCtrl'
      }
    }
  })
  
  // .state('app.ranges', {
  //   url: '/ranges',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/ranges.html',
  //       controller: 'RangesCtrl'
  //     }
  //   }
  // })
  // .state('app.sources', {
  //   url: '/sources',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/sources.html',
  //       controller: 'SourcesCtrl'
  //     }
  //   }
  // })
  // .state('app.dynamics', {
  //   url: '/dynamics',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/dynamics.html',
  //       controller: 'DynamicsCtrl'
  //     }
  //   }
  // })
  // .state('app.cultures', {
  //   url: '/cultures',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/cultures.html',
  //       controller: 'CulturesCtrl'
  //     }
  //   }
  // })
  // .state('app.abouts', {
  //   url: '/abouts',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/abouts.html',
  //       controller: 'AboutsCtrl'
  //     }
  //   }
  // })
  // .state('app.jobs', {
  //   url: '/jobs',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/jobs.html',
  //       controller: 'JobsCtrl'
  //     }
  //   }
  // })
  .state('app.channel', {
    url: '/:channel',
    views: {
      'menuContent': {
        templateUrl: '/templates/channel.html',
        controller: 'ChannelCtrl'
      }
    }
  })
  .state('app.category', {
    url: '/:channel/:category',
    views: {
      'menuContent': {
        templateUrl: '/templates/category.html',
        controller: 'CategoryCtrl'
      }
    },
    resolve: {
      posts: function($http, $q, $stateParams){
        return $q(function(resolve, reject){
          $http({
            url: '/' + $stateParams.channel + '/' + $stateParams.category + '?type=api',
            method: 'GET'
          }).success(function(resp, code){
            resolve(resp.posts);
          });
        });
      }
    }
  })
  .state('app.post', {
    url: '/:channel/:category/:flag',
    views: {
      'menuContent': {
        templateUrl: '/templates/post.html',
        controller: 'PostCtrl'
      }
    },
    resolve: {
      post: function($http, $q, $stateParams){
        return $q(function(resolve, reject){
          $http({
            url: '/' + $stateParams.channel + '/' + $stateParams.category + '/' + $stateParams.flag + '?type=api',
            method: 'GET'
          }).success(function(resp, code){
            resolve(resp.post);
          });
        });
      }
    }
  });
  // .state('app.search', {
  //   url: '/search',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/search.html'
  //     }
  //   }
  // })

  // .state('app.browse', {
  //     url: '/browse',
  //     views: {
  //       'menuContent': {
  //         templateUrl: '/templates/browse.html'
  //       }
  //     }
  //   })
  //   .state('app.playlists', {
  //     url: '/playlists',
  //     views: {
  //       'menuContent': {
  //         templateUrl: '/templates/playlists.html',
  //         controller: 'PlaylistsCtrl'
  //       }
  //     }
  //   })
  // .state('app.single', {
  //   url: '/playlists/:playlistId',
  //   views: {
  //     'menuContent': {
  //       templateUrl: '/templates/playlist.html',
  //       controller: 'PlaylistCtrl'
  //     }
  //   }
  // });
  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/app/home');
});