Source: directives/modulo/modulo.service.js

  1. /**
  2. * @ngdoc directives
  3. * @name Modulo
  4. * @module s4c.directives.modulos.ModuloService
  5. *
  6. * @description
  7. * `ModuloService` Componente para acesso ao api do backend e/ou comunicação entre controllers
  8. *
  9. *
  10. */
  11. (function () {
  12. angular.module('s4c.components.modulo')
  13. .factory('Modulo', Modulo);
  14. Modulo.$inject = [
  15. 'MainState',
  16. 'Base',
  17. 'CamadasService'
  18. ];
  19. function Modulo(MainState, Base, CamadasService) {
  20. var service = {
  21. initModulo: initModulo,
  22. reInitModules: reInitModules
  23. };
  24. var modulos = [];
  25. /**
  26. * @method initModulo
  27. * @param {*} modulo
  28. * @param {*} noFilter
  29. */
  30. function initModulo(modulo, noFilter) {
  31. if (!noFilter) {
  32. _initFilters();
  33. }
  34. if (modulo != null) {
  35. if (modulo.Face != null && modulo.Face.menus != null && modulo.Face.menus.length > 0) {
  36. _.each(modulo.Face.menus, function (menu) {
  37. if (menu.url && menu.url.indexOf('incidente') !== -1) { //Só carrega pelo MSI
  38. return;
  39. }
  40. if (menu.urlSubMenus.indexOf('menuCamada/zona_observacao') != -1) {
  41. CamadasService.exibirZonasDeObservacao();
  42. } else {
  43. CamadasService.toggleMenu(menu);
  44. }
  45. });
  46. if (modulos.indexOf(modulo) <= -1) {
  47. modulos.push(modulo);
  48. }
  49. } else if (modulo.FaceId != null && modulo.Face == null) {
  50. Base.obter('faces/' + modulo.FaceId).then(function (response) {
  51. modulo.Face = response;
  52. initModulo(modulo);
  53. });
  54. }
  55. }
  56. }
  57. /**
  58. * @method reInitModules
  59. */
  60. function reInitModules() {
  61. _.each(modulos, function (modulo) {
  62. initModulo(modulo, true);
  63. });
  64. }
  65. /**
  66. * @method _initFilters
  67. */
  68. function _initFilters() {
  69. if (MainState.getDirective('incidentes') != null) {
  70. MainState.getDirective('incidentes').initFilter();
  71. }
  72. }
  73. return service;
  74. }
  75. }());