app.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. angular.module(
  2. 'odoo',
  3. [
  4. 'ionic',
  5. 'xml-rpc',
  6. 'ngCordova',
  7. 'ngStorage',
  8. 'tc.chartjs',
  9. 'ion-autocomplete',
  10. 'ti-segmented-control',
  11. 'jett.ionic.filter.bar',
  12. 'pascalprecht.translate'
  13. ]
  14. )
  15. .run(function (
  16. $ionicPlatform,
  17. $state,
  18. $localStorage,
  19. deviceFactory
  20. ) {
  21. $ionicPlatform.ready(function () {
  22. if (window.cordova && window.cordova.plugins.Keyboard) {
  23. cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  24. cordova.plugins.Keyboard.disableScroll(true);
  25. }
  26. if (window.StatusBar) {
  27. StatusBar.overlaysWebView(false);
  28. StatusBar.backgroundColorByHexString('#387ef5');
  29. }
  30. if (window.sqlitePlugin) {
  31. db = sqlitePlugin.openDatabase({ name: 'odoo.db', location: 'default' });
  32. if ($localStorage.id) {
  33. $state.go('app.main');
  34. } else {
  35. $state.go('configuration');
  36. }
  37. }
  38. deviceFactory.detectShake();
  39. });
  40. })
  41. .config(function (
  42. $stateProvider,
  43. $urlRouterProvider,
  44. $ionicConfigProvider,
  45. $translateProvider,
  46. $ionicFilterBarConfigProvider
  47. ) {
  48. $stateProvider
  49. .state('app', {
  50. url: '/app',
  51. abstract: true,
  52. templateUrl: 'templates/menu.html'
  53. })
  54. .state('app.main', {
  55. url: '/main',
  56. views: {
  57. 'content': {
  58. templateUrl: 'templates/main.html',
  59. controller: 'MainController'
  60. }
  61. }
  62. })
  63. .state('app.sales', {
  64. url: '/sales',
  65. views: {
  66. 'content': {
  67. templateUrl: 'templates/sales/sales.html',
  68. controller: 'SaleController'
  69. }
  70. }
  71. })
  72. .state('app.customers', {
  73. url: '/customers',
  74. views: {
  75. 'content': {
  76. templateUrl: 'templates/sales/customers.html',
  77. controller: 'CustomersController'
  78. }
  79. }
  80. })
  81. .state('app.leads', {
  82. url: '/leads',
  83. views: {
  84. 'content': {
  85. templateUrl: 'templates/sales/leads.html',
  86. controller: 'LeadsController'
  87. }
  88. }
  89. })
  90. .state('app.opportunities', {
  91. url: '/opportunities/:id',
  92. views: {
  93. 'content': {
  94. templateUrl: 'templates/sales/opportunities.html',
  95. controller: 'OpportunitiesController'
  96. }
  97. }
  98. })
  99. .state('app.preferences', {
  100. url: '/preferences',
  101. views: {
  102. 'content': {
  103. templateUrl: 'templates/preferences.html',
  104. controller: 'PreferencesController'
  105. }
  106. }
  107. })
  108. .state('configuration', {
  109. url: '/configuration',
  110. templateUrl: 'templates/configuration.html',
  111. controller: 'ConfigurationController'
  112. });
  113. $translateProvider.translations('es', {
  114. Opportunities: 'Oportunidades',
  115. New: 'Nuevo',
  116. Dead: 'Muerto',
  117. Qualification: 'Calificación',
  118. Proposition: 'Propuesta',
  119. Negotiation: 'Negociación',
  120. Won: 'Ganado',
  121. Lost: 'Perdido'
  122. });
  123. $ionicConfigProvider.spinner.icon('lines');
  124. $ionicFilterBarConfigProvider.theme('positive');
  125. $ionicFilterBarConfigProvider.placeholder('Buscar');
  126. $translateProvider.useSanitizeValueStrategy('escape');
  127. $translateProvider.preferredLanguage('es');
  128. $translateProvider.fallbackLanguage('es');
  129. });