app.js 4.1 KB

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