app.js 4.1 KB

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