app.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. angular.module(
  2. 'odoo',
  3. [
  4. 'ionic',
  5. 'ngCordova',
  6. 'xml-rpc',
  7. 'jett.ionic.filter.bar',
  8. 'ionic-toast',
  9. 'pascalprecht.translate'
  10. ]
  11. )
  12. .run(function (
  13. $ionicPlatform,
  14. $state,
  15. $cordovaSQLite,
  16. $cordovaFile,
  17. configFactory
  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. $cordovaFile.readAsText(cordova.file.applicationDirectory, 'www/init.sql').then(function (query) {
  31. db.transaction(function (tx) {
  32. tx.executeSql(query);
  33. }, function (txErr) {
  34. console.log(txErr);
  35. ionic.Platform.exitApp();
  36. }, function () {
  37. console.log('DB ready')
  38. });
  39. }).catch(function (readErr) {
  40. ionic.Platform.exitApp();
  41. });
  42. configFactory(function (configuration) {
  43. if (configuration) {
  44. $state.go('app.main');
  45. } else {
  46. $state.go('configuration');
  47. }
  48. }, function (err) {
  49. $state.go('configuration');
  50. });
  51. }
  52. });
  53. })
  54. .config(function (
  55. $stateProvider,
  56. $urlRouterProvider,
  57. $ionicConfigProvider,
  58. $translateProvider,
  59. $ionicFilterBarConfigProvider
  60. ) {
  61. $stateProvider
  62. .state('app', {
  63. url: '/app',
  64. abstract: true,
  65. templateUrl: 'templates/menu.html'
  66. })
  67. .state('app.main', {
  68. url: '/main',
  69. views: {
  70. 'content': {
  71. templateUrl: 'templates/main.html',
  72. controller: 'MainController'
  73. }
  74. }
  75. })
  76. .state('app.sales', {
  77. url: '/sales',
  78. views: {
  79. 'content': {
  80. templateUrl: 'templates/sales/sales.html',
  81. controller: 'SaleController'
  82. }
  83. }
  84. })
  85. .state('app.customers', {
  86. url: '/customers',
  87. views: {
  88. 'content': {
  89. templateUrl: 'templates/sales/customers.html',
  90. controller: 'CustomersController'
  91. }
  92. }
  93. })
  94. .state('app.leads', {
  95. url: '/leads',
  96. views: {
  97. 'content': {
  98. templateUrl: 'templates/sales/leads.html',
  99. controller: 'LeadsController'
  100. }
  101. }
  102. })
  103. .state('app.opportunities', {
  104. url: '/opportunities',
  105. views: {
  106. 'content': {
  107. templateUrl: 'templates/sales/opportunities.html',
  108. controller: 'OpportunitiesController'
  109. }
  110. }
  111. })
  112. .state('app.preferences', {
  113. url: '/preferences',
  114. views: {
  115. 'content': {
  116. templateUrl: 'templates/preferences.html',
  117. controller: 'PreferencesController'
  118. }
  119. }
  120. })
  121. .state('configuration', {
  122. url: '/configuration',
  123. templateUrl: 'templates/configuration.html',
  124. controller: 'ConfigurationController'
  125. });
  126. $translateProvider.translations('es', {
  127. Opportunities: 'Oportunidades',
  128. New: 'Nuevo',
  129. Dead: 'Muerto',
  130. Qualification: 'Calificación',
  131. Proposition: 'Propuesta',
  132. Negotiation: 'Negociación',
  133. Won: 'Ganado',
  134. Lost: 'Perdido'
  135. });
  136. $ionicConfigProvider.spinner.icon('ios');
  137. $ionicFilterBarConfigProvider.theme('positive');
  138. $ionicFilterBarConfigProvider.placeholder('Buscar');
  139. $translateProvider.useSanitizeValueStrategy('escape');
  140. $translateProvider.preferredLanguage('es');
  141. $translateProvider.fallbackLanguage('es');
  142. });