var app = angular.module('App', [ 'ngCookies', 'ngSanitize', 'angular-loading-bar', 'ngAnimate', 'ui.router', 'ncy-angular-breadcrumb', 'storage.service', 'utilizador.service', 'slugifier', 'upload.service', 'ngTextTruncate', 'angularMoment', 'ui.tinymce', 'ngScrollbars', 'videosharing-embed', 'rmDatepicker', 'angular-google-analytics', 'ui.rCalendar', 'ngCropper', 'angular-owl-carousel-2', 'vcRecaptcha', 'ngImageCompress', 'ui.mask', 'dynamic-states', 'link.service', 'pascalprecht.translate', 'colorbox' ]) .run(['$rootScope', '$state', '$stateParams', '$http', function ($rootScope, $state, $stateParams, $http) { $rootScope.$state = $state; $rootScope.$stateParams = $stateParams; $http.get('version.json') .then(function (response) { $rootScope.appVersion = response.data; }); $rootScope.tituloPagina = "Início"; }]) .config(['$qProvider', '$compileProvider', '$httpProvider', '$stateProvider', '$urlRouterProvider', '$locationProvider', '$breadcrumbProvider', 'ScrollBarsProvider', 'AnalyticsProvider', 'vcRecaptchaServiceProvider', 'uiMask.ConfigProvider', '$translateProvider', function ($qProvider, $compileProvider, $httpProvider, $stateProvider, $urlRouterProvider, $locationProvider, $breadcrumbProvider, ScrollBarsProvider, AnalyticsProvider, vcRecaptchaServiceProvider, uiMaskConfigProvider, $translateProvider) { $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|javascript):/); //config de traducao $translateProvider .useStaticFilesLoader({ prefix: 'app/main/idiomas/', suffix: '.json' }) .registerAvailableLanguageKeys(['PT', 'EN']) .preferredLanguage('PT') .fallbackLanguage('PT') .useSanitizeValueStrategy('escapeParameters') .useLocalStorage(); // qProvider $qProvider.errorOnUnhandledRejections(false); //initialize get if not there if (!$httpProvider.defaults.headers.get) { $httpProvider.defaults.headers.get = {}; } // Answer edited to include suggestions from comments // because previous version of code introduced browser-related errors //disable IE ajax request caching $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT'; // extra $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache'; $httpProvider.defaults.headers.get['Pragma'] = 'no-cache'; // UI Mask uiMaskConfigProvider.maskDefinitions({ 'A': /[a-z]/, '*': /[a-zA-Z0-9]/ }); uiMaskConfigProvider.addDefaultPlaceholder(false); // Google Recaptcha vcRecaptchaServiceProvider.setDefaults({ key: '6LfDAy4UAAAAAMjT7SItakjmnJFfeLUfzT8hMto8', theme: 'light', size: 'normal', lang: 'pt-PT' }); // Google Analytics AnalyticsProvider .setAccount( [{ tracker: 'G-GQ72NH0F8N', name: 'MIREX' }] ) .logAllCalls(true) .setPageEvent('$locationChangeSuccess'); // Scrollbar ScrollBarsProvider.defaults = { theme: 'light', scrollInertia: 0, axis: 'y', scrollButtons: { scrollAmount: 'auto', enable: false }, advanced: { updateOnContentResize: true } }; // Breadcrumb $breadcrumbProvider.setOptions({ prefixStateName: 'home', includeAbstract: true }); // Rotas $locationProvider .html5Mode(false) .hashPrefix('!'); // Rotas Estáticas $stateProvider .state('home', { url: '/', templateUrl: 'app/pages/home.html', controller: 'homeController', ncyBreadcrumb: { label: 'MIREX' } }) // Embaixadas .state('rede-diplomatica.mapa-da-rede-diplomatica.embaixadas', { url: "/embaixadas", ncyBreadcrumb: { label: 'Embaixadas' }, views: { '@': { templateUrl: 'app/pages/embaixadas.html', controller: 'fotosController' } } }) //Newsletter // .state('noticias-e-media.newsletter', { // url: "/newsletter", // sigla: 'NEWS', // anexos: false, // ncyBreadcrumb: { // label: 'Newsletter' // }, // views: { // '@': { // templateUrl: 'app/pages/newsletter.html', // controller: 'NewsletterController' // } // } // }) // Consulados .state('rede-diplomatica.mapa-da-rede-diplomatica.consulados', { url: "/consulados", ncyBreadcrumb: { label: 'Consulados' }, views: { '@': { templateUrl: 'app/pages/consulados.html', controller: 'fotosController' } } }) // Nossa Liderança e Gestão .state('sobre.nossa-lideranca-e-gestao', { url: "/nossa-lideranca-e-gestao", ncyBreadcrumb: { label: 'Nossa Liderança e Gestão' }, views: { '@': { templateUrl: 'app/pages/quem-e-quem.html', controller: 'quemEquemController' } } }) .state('sobre.nossa-lideranca-e-gestao.cdQuemEQuem', { url: "/:cdQuemEQuem/:regimeCarreira/:noQuemEQuem", ncyBreadcrumb: { label: 'Nossa Liderança e Gestão' }, views: { '@': { templateUrl: 'app/pages/quem-e-quem-detalhes.html', controller: 'quemEquemController' } } }) // Mapa do Site .state('mapa-do-site', { url: "/mapa-do-site", abstract: false, templateUrl: 'app/pages/mapa-do-site.html', controller: 'mapaDoSiteController', ncyBreadcrumb: { label: 'Mapa do Site' } }) // Sala de Imprensa .state('sala-de-imprensa', { url: "/sala-de-imprensa", abstract: false, ncyBreadcrumb: { label: 'Sala de Imprensa' } }) .state('sala-de-imprensa.noticias', { url: '/noticias', publicacao: { label: { singular: 'Notícia', plural: 'Notícias' }, template: { sigla: 'NOT', dominio: 'TP_PUBLICACAO' } }, ncyBreadcrumb: { label: 'Notícias' }, views: { '@': { templateUrl: 'app/pages/publicacoes.html', controller: 'publicacoesController' } } }) .state('sala-de-imprensa.noticias.cdPublicacao', { url: '/:cdPublicacao/:slug', publicacao: { label: { singular: 'Notícia', plural: 'Notícias' }, template: { sigla: 'NOT', dominio: 'TP_PUBLICACAO' } }, ncyBreadcrumb: { label: 'Notícia', }, views: { '@': { templateUrl: 'app/pages/publicacao.html', controller: 'publicacoesController' } } }) .state('sala-de-imprensa.agenda', { url: '/agenda', ncyBreadcrumb: { label: 'AGENDA' }, views: { '@': { templateUrl: 'app/pages/eventos.html', controller: 'eventosController' } } }) .state('sala-de-imprensa.agenda.evento', { url: '/:cdPublicacao/:slug', ncyBreadcrumb: { label: ' ' }, views: { '@': { templateUrl: 'app/pages/evento.html', controller: 'eventosController' } } }) // Eventos do Tribunal listado por data. .state('agenda-do-ministro.caledarizado', { url: '/calendario', ncyBreadcrumb: { label: 'Lista de Eventos do Dia' }, views: { '@': { templateUrl: 'app/pages/calendarizacao.html', controller: 'calendarizacaoController' } } }) // Agenda do Ministro .state('agenda-do-ministro', { url: '/agenda-do-ministro', ncyBreadcrumb: { label: 'AGENDA' }, views: { '@': { templateUrl: 'app/pages/agendaMinistro.html', controller: 'agendaMinistroController' } } }) .state('agenda-do-ministro.evento', { url: '/:cdPublicacao/:slug', ncyBreadcrumb: { label: ' ' }, views: { '@': { templateUrl: 'app/pages/evento-ministro.html', controller: 'agendaMinistroController' } } }) //Comunicados .state('nota-de-imprensa', { url: '/nota-de-imprensa', publicacao: { label: { singular: 'Nota de imprensa', plural: 'Notas de imprensa' }, template: { sigla: 'NOTINT', dominio: 'TP_PUBLICACAO' } }, ncyBreadcrumb: { label: 'Notas de imprensa' }, views: { '@': { templateUrl: 'app/pages/comunicados.html', controller: 'comunicadosController' } } }) .state('nota-de-imprensa.cdPublicacao', { url: '/:cdPublicacao/:slug', publicacao: { label: { singular: 'Nota de imprensa', plural: 'Notas de imprensa' }, template: { sigla: 'NOTINT', dominio: 'TP_PUBLICACAO' } }, ncyBreadcrumb: { label: 'Nota de imprensa', }, views: { '@': { templateUrl: 'app/pages/comunicado.html', controller: 'comunicadosController' } } }) // .state('sala-de-imprensa.nota-de-imprensa', { // url: '/notadeimprensa-1', // ncyBreadcrumb: { // label: '' // }, // views: { // '@': { // templateUrl: 'app/pages/comunicados.html', // controller: 'comunicadosController' // } // } // }) //Início Publicações Especiais .state('publicacoes-especiais', { url: '/publicacoes-especiais', publicacao: { label: { singular: 'Publicacão Especial', plural: 'Publicacoes Especiais' }, template: { sigla: 'PUB', dominio: 'TP_PUBLICACAO' } }, ncyBreadcrumb: { label: 'Publicacão Especial' }, views: { '@': { templateUrl: 'app/pages/publicacoes.html', controller: 'publicacoesController' } } }) .state('publicacoes-especiais.cdPublicacao', { url: '/:cdPublicacao/:slug', publicacao: { label: { singular: 'Publicacão Especial', plural: 'Publicacoes Especiais' }, template: { sigla: 'PUB', dominio: 'TP_PUBLICACAO' } }, ncyBreadcrumb: { label: 'Publicação Especial', }, views: { '@': { templateUrl: 'app/pages/publicacao.html', controller: 'publicacoesController' } } }) //Fim da Publicações Especiais //Inicio Boletins Informativos .state('sala-de-imprensa.boletins-informativos', { url: '/boletins-informativos', sigla: 'FORM', ncyBreadcrumb: { label: 'Boletins Informativos' }, views: { '@': { templateUrl: 'app/pages/formularios.html', controller: 'formulariosController' } } }) //Fim dos boletins Informativos //Inicio Publicações .state('noticias-e-media.eventos', { url: '/eventos', publicacao: { label: { singular: 'Evento', plural: 'Eventos' }, template: { sigla: 'ART', dominio: 'TB_ARTIGO' } }, ncyBreadcrumb: { label: 'Eventos' }, views: { '@': { templateUrl: 'app/pages/publicacoes.html', controller: 'publicacoesController1' } } }) .state('noticias-e-media.eventos.cdPublicacao', { url: '/:cdPublicacao/:slug', publicacao: { label: { singular: 'Evento', plural: 'Eventos' }, template: { sigla: 'ART', dominio: 'TB_ARTIGO' } }, ncyBreadcrumb: { label: 'Eventos', }, views: { '@': { templateUrl: 'app/pages/publicacao.html', controller: 'publicacoesController' } } }) //Fim Publicações .state('estudos-e-publicacoes.glossario', { url: '/glossario', anexos: true, ncyBreadcrumb: { label: 'Glossário' }, views: { '@': { templateUrl: 'app/pages/glossario.html', controller: 'glossarioController' } } }) .state('noticias.multimedia', { url: '/multimedia', ncyBreadcrumb: { label: 'Galerias' }, views: { '@': { templateUrl: 'app/pages/multimedia.html', controller: 'fotosController' } } }) // Foto da Galaria .state('noticias-e-media.multimedia', { url: '/multimedia', ncyBreadcrumb: { label: 'Galerias' }, views: { '@': { templateUrl: 'app/pages/fotos.html', controller: 'fotosController' } } }) .state('noticias-e-media.multimedia.cdPublicacao', { url: '/:cdPublicacao/:slug', ncyBreadcrumb: { label: 'Galeria', }, views: { '@': { templateUrl: 'app/pages/foto.html', controller: 'fotosController' } } }) .state('sobre.visita-ao-palacio-do-comercio', { url: '/visita-ao-palacio-do-comercio', ncyBreadcrumb: { label: 'Galerias' }, views: { '@': { templateUrl: 'app/pages/fotos.html', controller: 'fotosController' } } }) // galeria dos ministros .state('sobre.galeria-dos-ex-ministros', { url: '/galeria-dos-ex-ministros', ncyBreadcrumb: { label: 'galeria dos Ex-Ministros' }, views: { '@': { templateUrl: 'app/pages/galeria-ministros.html', controller: 'galeriaMinistrosController' } } }) .state('sala-de-imprensa.newsletter', { url: '/newslatter', ncyBreadcrumb: { label: 'Newsletter' } }) //DIPLONEWS .state('noticias-e-media.diplonews', { url: '/diplonews', // sigla: 'FORM', ncyBreadcrumb: { label: 'Diplonews' }, views: { '@': { templateUrl: 'app/pages/default-diplonews.html', controller: 'formulariosController' } } }) //PUBLICIDADE .state('publicidade', { url: '/publicidade', // sigla: 'FORM', ncyBreadcrumb: { label: 'Publicidade' }, views: { '@': { templateUrl: 'app/pages/eventos.html', controller: 'eventosController' } } }) // .state('publicidade.cdPublicacao', { // url: '/:cdPublicacao/:slug', // ncyBreadcrumb: { // label: 'publicidade', // }, // views: { // '@': { // templateUrl: 'app/pages/eventos.html', // controller: 'eventosController' // } // } // }) .state('noticias-e-media.publicidade', { url: '/publicidade', // sigla: 'FORM', ncyBreadcrumb: { label: 'Publicidade' }, views: { '@': { templateUrl: 'app/pages/publicidade.html', controller: 'formulariosController' } } }) .state('sala-de-imprensa.galerias.cdPublicacao', { url: '/:cdPublicacao/:slug', ncyBreadcrumb: { label: 'Galeria', }, views: { '@': { templateUrl: 'app/pages/foto.html', controller: 'fotosController' } } }) //Vídeos start .state('sala-de-imprensa.videos', { url: '/videos', ncyBreadcrumb: { label: 'Vídeos' }, views: { '@': { templateUrl: 'app/pages/videos.html', controller: 'videosController' } } }) .state('sala-de-imprensa.videos.cdPublicacao', { url: '/:cdPublicacao/:slug', ncyBreadcrumb: { label: 'Vídeo', }, views: { '@': { templateUrl: 'app/pages/video.html', controller: 'videosController' } } }) //Vídeo End .state('noticias-e-media.agenda-do-ministro', { url: '/agenda-do-ministro', ncyBreadcrumb: { label: 'agenda-do-ministro' }, views: { '@': { templateUrl: 'app/pages/eventos.html', controller: 'eventosController' } } }) .state('noticias-e-media.agenda-do-ministro.evento', { url: '/:cdPublicacao/:slug', ncyBreadcrumb: { label: 'Evento' }, views: { '@': { templateUrl: 'app/pages/evento.html', controller: 'eventosController' } } }) // Perguntas Frequentes .state('perguntas-frequentes', { url: '/perguntas-frequentes', sigla: 'ANY', anexos: false, ncyBreadcrumb: { label: 'Perguntas Frequentes' }, views: { '@': { templateUrl: 'app/pages/perguntas-frequentes.html', controller: 'perguntasFrequentesController' } } }) .state('perguntas-frequentes.cdPerguntaFrequente', { url: '/:cdPerguntaFrequente/:slug', sigla: 'ANY', anexos: false, ncyBreadcrumb: { label: 'Perguntas Frequentes' }, views: { '@': { templateUrl: 'app/pages/perguntas-frequentes.html', controller: 'perguntasFrequentesController' } } }) // Contacto .state('contacto', { url: '/contacto', ncyBreadcrumb: { label: 'Contacto' }, views: { '@': { templateUrl: 'app/pages/contacto.html', controller: 'contactoController' } } }) // acesso-restrito .state('dtcmirex21', { url: '/dtcmirex21', ncyBreadcrumb: { label: 'acessoRestrito' }, views: { '@': { templateUrl: 'app/pages/acesso-restrito.html', controller: 'UtilizadorController' } } }) // // Consulados // .state('consulados', { // url: '/consulados', // ncyBreadcrumb: { // label: 'consulados' // }, // views: { // '@': { // templateUrl: 'app/pages/consulados-list.html', // controller: 'defaultInternaController' // } // } // }) .state('estatisticas', { url: "/estatisticas", ncyBreadcrumb: { label: 'Estatísticas' }, views: { '@': { templateUrl: 'app/pages/estatisticas.html', controller: 'estatisticasController' } }, resolve: { checkSession: function ($state, UtilizadorService, StorageService) { var utilizadorLogado = StorageService.get('utilizadorLogado'); if (utilizadorLogado) { return (utilizadorLogado.admin) ? true : false; } else { return false; } } } }); // Rota padrão $urlRouterProvider.otherwise('/'); }]) .run(function ($rootScope, $timeout, UtilizadorService, $window, $http, $state, RequestService, Analytics, AlertaService, dynamicStates, amMoment, $translateLocalStorage, LinkService) { // Configurar Idiona amMoment.changeLocale($translateLocalStorage.get('NG_TRANSLATE_LANG_KEY') === 'PT' ? 'pt' : 'en-ie'); // Constantes $http.get('app/services/offline/pt-BR.json').then(function (response) { $rootScope.const = response.data.dictionary; }); $rootScope.getLinkState = function (link) { if (!link.subPaginas) { return LinkService.target(link.url) ? link.url : $state.href(link.state); } else { return $state.href(MenuService.obterSubLink(link)); } }; $rootScope.getLinkState = function (link) { if (!link.subPaginas) { return (link.state) ? $state.href(link.state) : null; } else { return $state.href(MenuService.obterSubLink(link)); } }; $rootScope.getState = function (state) { return $state.get(state); }; // Carregar menus RequestService.request('GET', '/menu/listar/' + RequestService.portalAPI, null, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.menu = resp.data.menuItemList; $rootScope.contactos = resp.data.contactos; dynamicStates.fetchRoutes(resp.data.menuItemList); } } else { AlertaService.erroRede(); } }); // Checar Permissao $rootScope.checarPermissao = function (grupos) { var check = UtilizadorService.checarPermissao(grupos); return check.$$state.value; } // Ir para o Topo ao carrear página $rootScope.$on("$locationChangeSuccess", function () { $window.scrollTo(0, 0); }); // Setar titulo da página $rootScope.$watch('$state.current.ncyBreadcrumb.label', function () { try { $rootScope.tituloPagina = $state.current.ncyBreadcrumb.label; } catch (error) { // console.log(error); } }); // Fix Bug de Multiplos Modais $(document).on('shown.bs.modal', 'body', function () { $timeout(function () { $('body').addClass('modal-open').css('padding-right', false); }, 100); }); // Versao Frontend e Backend $rootScope.appVersion = {}; $http.get('version.json').then(function (response) { $rootScope.appVersion.frontend = response.data; }); }); var comboGoogleTradutor = null; //Varialvel global function googleTranslateElementInit() { new google.translate.TranslateElement({ pageLanguage: 'pt', includedLanguages: 'en,es,fr,pt,zh-CN', }, 'google_translate_element'); comboGoogleTradutor = (document.getElementById("google_translate_element")) ? document.getElementById("google_translate_element").querySelector(".goog-te-combo") : null; if(comboGoogleTradutor) { comboGoogleTradutor.classList.add("background-color:#000"); } } function changeEvent(el) { if (el.fireEvent) { el.fireEvent('onchange'); } else { var evObj = document.createEvent("HTMLEvents"); evObj.initEvent("change", false, true); el.dispatchEvent(evObj); } // window.location.reload(); var form = document.querySelector(".blocos").classList.add("movercima"); } function trocarIdioma(sigla) { if (sigla == "pt") { document.getElementById('myImage').src = 'app/main/img/globe.svg' document.getElementById("texto-img").innerHTML = "PT"; } if (sigla == "en") { document.getElementById('myImage').src = 'app/main/img/globe.svg' document.getElementById("texto-img").innerHTML = "EN"; } if (sigla == "fr") { document.getElementById('myImage').src = 'app/main/img/globe.svg' document.getElementById("texto-img").innerHTML = "FR"; } if (sigla == "es") { document.getElementById('myImage').src = 'app/main/img/globe.svg' document.getElementById("texto-img").innerHTML = "ES"; } if (sigla == "zh-CN") { document.getElementById('myImage').src = 'app/main/img/globe.svg' document.getElementById("texto-img").innerHTML = "CN"; } if (comboGoogleTradutor) { comboGoogleTradutor.value = sigla; changeEvent(comboGoogleTradutor);//Dispara a troca } } app.component('minfinDefaultHeader', { templateUrl: 'app/partials/minfin-default-header.html', controller: function($translate, $timeout, $window) { this.traducao = function(idioma) { $translate.use(idioma); $timeout(function() { $window.location.reload(); }, 300); } } }); app.component('navigationBar', { templateUrl: 'app/partials/navigation-bar.html', bindings: { menuarray: '=' }, controller: function($rootScope, $state, $scope, StorageService, LinkService) { $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); this.linkarSubMenus = function(menu) { var url = $state.href(menu.state); var target = LinkService.target(menu.url); var urlRetorno = target ? target[0] : url; return urlRetorno; } } }); app.component('carouselVertical', { templateUrl: 'app/partials/carousel-vertical.html', bindings: { itens: '<' }, controller: function($rootScope, $scope, StorageService) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); } }); 'use strict'; app.component('videoList', { templateUrl: 'app/partials/video-list.html', bindings: { itens: '=' }, controller : function($scope) { // Video em Exibição $scope.modalVideo = {}; $scope.openModal = function(video) { $scope.modalVideo = video; } } }); app.component('swalAnimation', { bindings: { tipo : '@' }, template: '' + '
' + '
' + ' ' + ' ' + ' ' + ' ' + '
' + '
' + '
' + '
' + ' ' + ' ' + '
' + '
' + ' ' + ' ' + '
' + '
' + '
' + '
' + '' }); // Exemplo de uso: // app.component('owlCarousel', { templateUrl: 'app/partials/owl-carousel.html', bindings: { data : '<', descricao: '<', qtdItens: '<', bullet : '<', arrow: '<', singleItem : '<', numbered : '<', nome: '@' }, controller : function() { this.$onChanges = function(changes) { if (this.data){ $('.'+this.nome).owlCarousel({ items:this.qtdItens, lazyLoad:true, loop:true, margin:10, dots: this.bullet, nav: this.arrow, navText: [ "", "" ], responsiveClass:true, responsive:{ 0:{ items:this.singleItem? '1' : 1 }, 300: { items:this.singleItem? '1' : 2 }, 600:{ items:this.singleItem? '1' : 3 }, 1000:{ items:this.qtdItens } } }); } }; } }); // 'use strict'; app.component('linksUteis', { templateUrl: 'app/partials/links-uteis-carousel.html', bindings: { data: '<', qtdItens: '<', loop: '=', bullet: '<', arrow: '<', numbered: '<', tipo: '@', titulo: '@' }, controller: function ($location, RequestService) { // Atributos var obj = this; var owlAPi; obj.ready = function ($api) { owlAPi = $api; }; this.$onInit = function ($event) { obj.properties = { items: obj.qtdItens, lazyLoad: true, loop: obj.loop, margin: 10, dots: obj.bullet, nav: obj.arrow, autoplay: obj.bullet, autoplayTimeout: 3000, autoplayHoverPause: true, navText: [ "", "" ], responsiveClass: true, responsive: { 0: { items: obj.tipo =="BAN" ? '1' : 1 }, 300: { items: obj.tipo =="BAN" ? '1' : 2 }, 600: { items: obj.tipo =="BAN" ? '1' : 3 }, 1000: { items: obj.qtdItens } } } } this.target = function (url) { return url.indexOf($location.$$host) > -1 ? "_SELF" : "_BLANK"; } } }); app.component('comunicados', { templateUrl: 'app/partials/comunicados.html', bindings: { itens: '<', qtdItens: '<', data: '<', loop: '=', bullet: '<', arrow: '<', numbered: '<', tipo: '@', titulo: '@', dimensoes: '@', exibirTitulo: '=' }, controller: function($rootScope, $scope, StorageService) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); } }); // 'use strict'; app.component('bannersUteis', { templateUrl: 'app/partials/links-uteis-carousel.html', bindings: { data: '<', qtdItens: '<', bullet: '<', arrow: '<', numbered: '<', tipo: '@', titulo: '@', loop: '<' }, controller: function($rootScope, $scope, $filter, $timeout, $window, RequestService, StorageService, AlertaService, UtilizadorService) { // Atributos var obj = this; var owlAPi; $scope.ready = function($api) { owlAPi = $api; }; this.$onInit = function($event) { $scope.properties = { items: obj.qtdItens, lazyLoad: true, loop: obj.loop, margin: 10, dots: obj.bullet, nav: obj.arrow, autoplay: obj.bullet, autoplayTimeout: 3000, autoplayHoverPause: true, navText: [ "", "" ], responsiveClass: false, responsive: { 0: { items: obj.singleItem ? '1' : 1 }, 300: { items: obj.singleItem ? '1' : 2 }, 600: { items: obj.singleItem ? '1' : 3 }, 1000: { items: obj.qtdItens } } } } } }); app.component('eventosList', { templateUrl: 'app/partials/eventos-list.html', bindings: { data: '<', tipo: '@', qtdItens: '<', truncar: '<' }, controller: function(){ } }); app.component('publicidadeEventosList', { templateUrl: 'app/partials/publicidade-eventos-list.html', bindings: { data: '<', tipo: '@', qtdItens: '<', truncar: '<' }, controller: function() { } }); app.component('perguntasList', { templateUrl: 'app/partials/perguntas-list.html', bindings: { data: '<', qtdItens: '@' }, controller : function($scope) { $scope.getNumber = function(num) { return new Array(num); } } }); app.component('redessociais', { templateUrl: 'app/partials/redes-sociais.html', bindings: { data: '<', tipo: '@', qtdItens: '=' }, controller: function($scope) { $scope.retornaImagemArtigo = function(url) { return (url) ? '' : ''; }; this.$onChanges = function(changes) { $scope.coluna = Math.round(12 / parseInt(this.qtdItens)); } } }); app.component('customFooter', { templateUrl: 'app/partials/custom-footer.html', bindings: { menuarray: '<', contactos: '=' }, controller: function ($rootScope, $scope, StorageService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function (event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); $scope.dataAtual = { agora: new Date() } } }); app.component('cambio', { templateUrl: 'app/partials/cambio.html', bindings: { data: '=' } }); app.component('breadcrumb', { templateUrl: 'app/partials/breadcrumb.html', bindings: { dataItens: '=' } }); app.component('submenuSidebar', { templateUrl: 'app/partials/submenu-sidebar.html', controller: function($rootScope, $state, LinkService) { var menuPrincipal; var menuTop; var current; this.$onChanges = function() { this.menuPrincipal = $rootScope.menu; this.current = $state.$current; var state = $state.$current; while (state.parent) { state = state.parent; if (state.name) { this.menuTop = state; } } }; this.linkarSubMenus = function(menu) { var url = $state.href(menu.state); var target = LinkService.target(menu.url); var urlRetorno = target ? target[0] : url; return urlRetorno; }; this.changeSubMenuItem = function(menu) { menu.aberto = !menu.aberto; }; this.checkSubMenuParent = function(menu) { menu.aberto = false; if (this.current.name.indexOf(menu.state) >= 0) { menu.aberto = true; } } } }); 'use strict'; app.component('defaultInternaEditar', { templateUrl: 'app/partials/default-interna-editar.html', bindings: { pagina: '<', menuAtual: '<', anexos: '=' }, controller: function($rootScope, $scope, $timeout, $q, UtilizadorService, RequestService, AlertaService, StorageService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Iniciar Componente this.$onChanges = function(changes) { $scope.pagina = angular.copy(this.pagina); $scope.menuAtual = this.menuAtual; // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Config $scope.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 300, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | image media | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', image_dimensions: false, image_description: false, nowrap: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); $("input:last").focus(); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { input.val(''); callback(reader.result, { title: ficheiro.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Atualizar Editor try { $scope.tinymceModel = this.pagina.html; } catch (exception) { // console.log(exception) } }; // Ficheiros Permitidos $scope.extensoesPermitidas = ['pdf', 'doc', 'docx', 'xls', 'xlsx']; $scope.tamanhoFicheiro = 15; // Editar Conteudo Dinamico $scope.defaultInternaEditar = function(form) { if (form.$valid && form.$submitted) { var dataJson = { portal: RequestService.portalAPI, data: { cdMenu: $scope.menuAtual.cdMenu, html: $scope.tinymceModel || "", anexoPortalList: $scope.pagina.anexoPortalList } }; $scope.pagina.html = $scope.tinymceModel; RequestService.request('POST', '/menu/salvarConteudoHtml', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; // Adicionar um novo campo Ficheiro $scope.ficheiroAnexoNovo = function() { if (!$scope.pagina.anexoPortalList) { $scope.pagina.anexoPortalList = [{ anexoPortalItemList: [] }]; } var novo = { novo: true, cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }; $scope.pagina.anexoPortalList.push(novo); }; // Excluir Ficheiro Anexo $scope.ficheiroAnexoExcluir = function(anexo, anexoList, index, parentIndex) { if (!anexoList.novo) { AlertaService.confirmar('Confirma Excluir Ficheiro ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdAnexoPortal: anexoList.cdAnexoPortal } }; RequestService.request('POST', '/menu/removerAnexo', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.pagina.anexoPortalList.splice(parentIndex, 1); $rootScope.$broadcast('broadcastHomeReceiver'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }); } else { $scope.pagina.anexoPortalList.splice(parentIndex, 1); } }; // Ler o ficheiro selecionado no Navegador $scope.preUpload = function(anexo, index, parentIndex, $event) { if (angular.isDefined($event)) { if ($event.target.files.length) { var ficheiro = $event.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); if (ficheiro.size > 0) { var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { anexo.nome = ficheiro.name; anexo.base64Anexo = reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''); anexo.extensao = ficheiro.extensao[ficheiro.extensao.length - 1]; anexo.mimeType = ficheiro.type; } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } else { AlertaService.showMensagemRetorno(400, 'O ficheiro está vazio!'); } } } }; } }); app.component('artigosCrud', { templateUrl: 'app/partials/artigos-crud.html', bindings: { itens: '<', artigo: '<' }, controller: function($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService, Cropper, Utils) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $scope.administrador = false; $scope.gestor = false; $scope.publicador = false; $scope.redator = false; $scope.revisor = false; $scope.editor = false; if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } $scope.validaEditar = function(status) { var habilitado = false; if (status == "CRIA" && ($scope.editor || $scope.redator || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "RREV" && ($scope.editor || $scope.redator || $scope.gestor || $scope.administrador)) { habilitado = true; } else if ($scope.administrador) { habilitado = true; } //((editor || redator || gestor|| administrador || publicador || revisor) && (item.flStatusPublicacao.sigla == 'CRIA' || item.flStatusPublicacao.sigla == 'RREV' || item.flStatusPublicacao.sigla == 'REV' || item.flStatusPublicacao.sigla == 'PUB' || item.flStatusPublicacao.sigla == 'AREV' || item.flStatusPublicacao.sigla == 'RPUB')) return habilitado; }; $scope.validaVisualizar = function(status) { var habilitado = false; if (status == "AREV" && ($scope.editor || $scope.redator || $scope.revisor || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "RPUB" && ($scope.revisor || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "REV" && ($scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "PUB" && ($scope.publicador || $scope.editor || $scope.redator || $scope.revisor || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "CRIA" && ($scope.revisor || $scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "RREV" && ($scope.revisor || $scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "REV" && ($scope.revisor || $scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } return habilitado; }; $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } }); $scope.tipo = 'N'; // Atributos var obj = this; // Limpar Formulario e Carregar Lista this.$onInit = function($event) { $(document).on('shown.bs.modal', '#modalGerirArtigos', function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirArtigosNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirArtigosNovo', function() { $scope.exibirForm = true; }); }; // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 300, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | image media | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', image_dimensions: false, image_description: false, nowrap: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { input.val(''); callback(reader.result, { title: ficheiro.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarNoticia = function(form) { if (form.$valid && form.$submitted) { if ($scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo) { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo.substr($scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo.indexOf(',') + 1).replace(/ /g, ''); } $scope.dataJson.portal = RequestService.portalAPI; $scope.dataJson.data.dtInicio = moment($scope.dataJson.data.dtInicio, "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'); $scope.dataJson.data.dtFim = moment($scope.dataJson.data.dtFim, "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'); // Submeter para a API RequestService.request('POST', '/noticia/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { $scope.dataJson = { data: resp.data }; $scope.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; }; // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdPublicacao: item.cdPublicacao } }; RequestService.request('DELETE', '/noticia/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) }; // Noticia por Id $scope.editar = function(item) { RequestService.request('GET', '/noticia/buscar/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.dataJson = { data: resp.data }; $scope.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; $scope.noticiaVisualizada = null; $scope.visualizar = function(item) { $scope.noticiaVisualizada = null; RequestService.request('GET', '/noticia/buscar/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.noticiaVisualizada = resp.data; $scope.noticiaVisualizada.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.noticiaVisualizada.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; $scope.noticiaSelecionada = null; $scope.motivoStatusSelecionado = null; $scope.selecionaMotivoNoticia = function(noticia, status) { $scope.noticiaSelecionada = angular.copy(noticia); $scope.noticiaSelecionada.observacao = null; $scope.motivoStatusSelecionado = status; $scope.formObservacaoArtigo.$setPristine(); Utils.mantemModal("#modalGerirArtigos", false); $timeout(function() { Utils.mantemModal("#modalGerirArtigosObservacao", true); }, 600); }; $scope.limparMotivo = function() { $scope.noticiaSelecionada = null; $scope.motivoStatusSelecionado = null; }; $scope.salvarMotivo = function(form) { if (form.$valid && form.$submitted) { $scope.alterarStatusNoticia($scope.noticiaSelecionada, $scope.motivoStatusSelecionado); } }; $scope.alterarStatusNoticia = function(noticia, status) { AlertaService.confirmar($rootScope.const.CONFIRMA_OPERACAO, function(acao) { if (acao) { $scope.dataJson = { data: angular.copy(noticia) }; $scope.dataJson.data.flStatusPublicacao.sigla = status; $scope.dataJson.data.flStatusPublicacao.descricao = status; $scope.dataJson.data.flStatusPublicacao.detalhe = null; $scope.dataJson.data.flStatusPublicacao.dominio = "FL_STATUS_PUBLICACAO"; if (!$scope.noticiaSelecionada) { $scope.dataJson.data.observacao = null; } $scope.dataJson.portal = RequestService.portalAPI; // Submeter para a API RequestService.request('POST', '/noticia/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { $scope.dataJson = { data: resp.data }; $scope.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); if ($scope.noticiaSelecionada) { $scope.noticiaSelecionada = null; $scope.motivoStatusSelecionado = null; Utils.mantemModal("#modalGerirArtigosObservacao", false); $timeout(function() { Utils.mantemModal("#modalGerirArtigos", true); }, 500); } }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Nov Objeto $scope.setObj = function() { $scope.dataJson = { data: { cdPublicacao: null, descricao: null, dtFim: null, dtInicio: null, autor: null, flStatusPublicacao: { sigla: "CRIA", descricao: "CRIA", detalhe: "Criada", dominio: "FL_STATUS_PUBLICACAO" }, qtdAcesso: 0, sumario: null, titulo: null, anexoPortalList: [{ cdAnexoPortal: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], templatePublicacao: null, dsPortal: RequestService.portalAPI, flDestaque: "N", dtCriacao: null, observacao: null, idAnexo: null, idImagem: null, filePath: null, urlImagemContent: null } } }; // Adicionar um novo campo Ficheiro $scope.ficheiroAnexoNovo = function() { $scope.dataJson.data.anexoPortalList = [{ anexoPortalItemList: [] }]; var novo = { novo: true, cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }; $scope.dataJson.data.anexoPortalList = []; $scope.dataJson.data.anexoPortalList.push(novo); }; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'N'; // Paginar Notícias $scope.paginarRegistos = function() { RequestService.request('GET', '/noticia/listarTodos/' + RequestService.portalAPI + '/' + $scope.exibirDestaques + '/' + ($scope.paginaAtual + 1) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); }; // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('noticiasCrud', { templateUrl: 'app/partials/noticias-crud.html', bindings: { itens: '<', artigo: '<' }, controller: function($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService, Cropper, Utils) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $scope.administrador = false; $scope.gestor = false; $scope.publicador = false; $scope.redator = false; $scope.revisor = false; $scope.editor = false; if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } $scope.validaEditar = function(status) { var habilitado = false; if (status == "CRIA" && ($scope.editor || $scope.redator || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "RREV" && ($scope.editor || $scope.redator || $scope.gestor || $scope.administrador)) { habilitado = true; } else if ($scope.administrador) { habilitado = true; } //((editor || redator || gestor|| administrador || publicador || revisor) && (item.flStatusPublicacao.sigla == 'CRIA' || item.flStatusPublicacao.sigla == 'RREV' || item.flStatusPublicacao.sigla == 'REV' || item.flStatusPublicacao.sigla == 'PUB' || item.flStatusPublicacao.sigla == 'AREV' || item.flStatusPublicacao.sigla == 'RPUB')) return habilitado; }; $scope.validaVisualizar = function(status) { var habilitado = false; if (status == "AREV" && ($scope.editor || $scope.redator || $scope.revisor || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "RPUB" && ($scope.revisor || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "REV" && ($scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "PUB" && ($scope.publicador || $scope.editor || $scope.redator || $scope.revisor || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "CRIA" && ($scope.revisor || $scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "RREV" && ($scope.revisor || $scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } else if (status == "REV" && ($scope.revisor || $scope.publicador || $scope.gestor || $scope.administrador)) { habilitado = true; } return habilitado; }; $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } }); $scope.tipo = 'N'; // Atributos var obj = this; // Limpar Formulario e Carregar Lista this.$onInit = function($event) { $(document).on('shown.bs.modal', '#modalGerirNoticias', function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirNoticiasNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirNoticiasNovo', function() { $scope.exibirForm = true; }); }; // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 300, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | image media | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', image_dimensions: false, image_description: false, nowrap: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { input.val(''); callback(reader.result, { title: ficheiro.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarNoticia = function(form) { if (form.$valid && form.$submitted) { if ($scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo) { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo.substr($scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo.indexOf(',') + 1).replace(/ /g, ''); } $scope.dataJson.portal = RequestService.portalAPI; $scope.dataJson.data.dtInicio = moment($scope.dataJson.data.dtInicio, "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'); $scope.dataJson.data.dtFim = moment($scope.dataJson.data.dtFim, "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'); // Submeter para a API RequestService.request('POST', '/noticia/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { $scope.dataJson = { data: resp.data }; $scope.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; }; // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdPublicacao: item.cdPublicacao } }; RequestService.request('DELETE', '/noticia/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Noticia por Id $scope.editar = function(item) { RequestService.request('GET', '/noticia/buscar/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.dataJson = { data: resp.data }; $scope.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; // Noticia por Id $scope.noticiaVisualizada = null; $scope.visualizar = function(item) { $scope.noticiaVisualizada = null; RequestService.request('GET', '/noticia/buscar/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.noticiaVisualizada = resp.data; $scope.noticiaVisualizada.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.noticiaVisualizada.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; $scope.noticiaSelecionada = null; $scope.motivoStatusSelecionado = null; $scope.selecionaMotivoNoticia = function(noticia, status) { $scope.noticiaSelecionada = angular.copy(noticia); $scope.noticiaSelecionada.observacao = null; $scope.motivoStatusSelecionado = status; $scope.formObservacaoNoticia.$setPristine(); Utils.mantemModal("#modalGerirNoticias", false); $timeout(function() { Utils.mantemModal("#modalGerirNoticiasObservacao", true); }, 600); }; $scope.limparMotivo = function() { $scope.noticiaSelecionada = null; $scope.motivoStatusSelecionado = null; }; $scope.salvarMotivo = function(form) { if (form.$valid && form.$submitted) { $scope.alterarStatusNoticia($scope.noticiaSelecionada, $scope.motivoStatusSelecionado); } }; $scope.alterarStatusNoticia = function(noticia, status) { AlertaService.confirmar($rootScope.const.CONFIRMA_OPERACAO, function(acao) { if (acao) { $scope.dataJson = { data: angular.copy(noticia) }; $scope.dataJson.data.flStatusPublicacao.sigla = status; $scope.dataJson.data.flStatusPublicacao.descricao = status; $scope.dataJson.data.flStatusPublicacao.detalhe = null; $scope.dataJson.data.flStatusPublicacao.dominio = "FL_STATUS_PUBLICACAO"; if (!$scope.noticiaSelecionada) { $scope.dataJson.data.observacao = null; } $scope.dataJson.portal = RequestService.portalAPI; // Submeter para a API RequestService.request('POST', '/noticia/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { $scope.dataJson = { data: resp.data }; $scope.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); $scope.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); if ($scope.noticiaSelecionada) { $scope.noticiaSelecionada = null; $scope.motivoStatusSelecionado = null; Utils.mantemModal("#modalGerirNoticiasObservacao", false); $timeout(function() { Utils.mantemModal("#modalGerirNoticias", true); }, 500); } }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; /* AREV Aguardando Revisão CRIA Criada PUB Publicado REV Revisado RPUB Reprovada Publicador RREV Reprovada Revisor */ // Nov Objeto $scope.setObj = function() { $scope.dataJson = { data: { cdPublicacao: null, descricao: null, dtFim: null, dtInicio: null, autor: null, //flStatusPublicacao: { // sigla: "PUB", // descricao: "PUB", // detalhe: "Publicada", // dominio: "FL_STATUS_PUBLICACAO" //}, flStatusPublicacao: { sigla: "CRIA", descricao: "CRIA", detalhe: "Criada", dominio: "FL_STATUS_PUBLICACAO" }, qtdAcesso: 0, sumario: null, titulo: null, anexoPortalList: [{ cdAnexoPortal: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], templatePublicacao: null, dsPortal: RequestService.portalAPI, flDestaque: "S", dtCriacao: null, observacao: null, idAnexo: null, idImagem: null, filePath: null, urlImagemContent: null } } }; // Adicionar um novo campo Ficheiro $scope.ficheiroAnexoNovo = function() { $scope.dataJson.data.anexoPortalList = [{ anexoPortalItemList: [] }]; var novo = { novo: true, cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }; $scope.dataJson.data.anexoPortalList = []; $scope.dataJson.data.anexoPortalList.push(novo); }; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'S'; // Paginar Notícias $scope.paginarRegistos = function() { RequestService.request('GET', '/noticia/listarTodos/' + RequestService.portalAPI + '/' + $scope.exibirDestaques + '/' + ($scope.paginaAtual + 1) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); }; // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); 'use strict'; app.component('videosCrud', { templateUrl: 'app/partials/videos-crud.html', bindings: { itens: '<', video: '<' }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirVideos', function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirVideosNovo', function() { $scope.exibirForm = false; }); $(document).on('shown.bs.modal', '#modalGerirVideosNovo', function() { $scope.exibirForm = true; }); }; // Nova Noticia $scope.novoVideo = function(form) { if (form.$valid && form.$submitted) { // Submeter para a API RequestService.request('POST', '/video/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); if (!$scope.dataJson.data.cdPublicacao) { form.$$element[0].reset(); } $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } }; // Obj Video $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; } else { $scope.dataJson.data = { cdPublicacao: null, descricao: null, dtFim: null, dtInicio: null, autor: null, flStatusPublicacao: { sigla: "PUB", descricao: "PUB", detalhe: "Publicado", dominio: "FL_STATUS_PUBLICACAO" }, qtdAcesso: 0, sumario: null, titulo: null, anexoPortalList: [{ cdAnexoPortal: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], templatePublicacao: null, dsPortal: RequestService.portalAPI, flDestaque: "N", dtCriacao: null, observacao: null } } }; // Objeto para Persistir $scope.dataJson = {}; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; // Paginar Videos $scope.paginarRegistos = function() { RequestService.request('GET', '/video/listar/' + RequestService.portalAPI + '/' + ($scope.paginaAtual + 1) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); }; // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); }; // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdPublicacao: item.cdPublicacao } }; RequestService.request('DELETE', '/video/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } } }); 'use strict'; app.component('galeriasCrud', { templateUrl: 'app/partials/galerias-crud.html', bindings: { template: '@', label: '@' }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirGaleria', function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirGaleriasNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirGaleriasNovo', function() { $scope.exibirForm = true; }); } // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Nova Galeria $scope.novoFormulario = function(form) { if (form.$valid && form.$submitted) { // Submeter para a API RequestService.request('POST', '/noticia/galeria/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { $scope.setObj(resp.data); }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Ler o ficheiro selecionado no Navegador $scope.preUpload = function($event) { if (angular.isDefined($event)) { if ($event.target.files.length) { angular.forEach($event.target.files, function(ficheiro) { ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { var options = { quality: 0.8, width: 5000 }; var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var novo = { cdAnexoPortal: null, anexoPortalItemList: [{ nome: ficheiro.name, base64Anexo: reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''), extensao: ficheiro.extensao[ficheiro.extensao.length - 1], mimeType: ficheiro.type, url: null, videoUrl: null }] } $scope.dataJson.data.anexoPortalList.push(novo); } } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } } }; $scope.excluirAnexo = function(galeria, anexo, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAnexoPortal: galeria.cdAnexoPortal } } RequestService.request('POST', '/menu/removerAnexo', dataJson, true, function(resp) { $timeout(function() { $scope.dataJson.data.anexoPortalList.splice(index, 1); AlertaService.closeProgressAlert(); $rootScope.$broadcast('broadcastHomeReceiver'); }, 100); }); }) } // Excluir Formulario $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: item.cdPublicacao } }; RequestService.request('DELETE', '/formulario/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Obj Formulario $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; if (!$scope.dataJson.data.anexoPortalList.length) { $scope.dataJson.data.anexoPortalList = []; } } else { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: null, descricao: null, descricaoGaleria: null, dtFim: null, dtInicio: null, flStatusPublicacao: { sigla: "PUB", detalhe: "Publicada", dominio: "FL_STATUS_PUBLICACAO" }, qtdAcesso: 0, sumario: null, titulo: null, templatePublicacao: null, dsPortal: RequestService.portalConfig.portalAPI, flDestaque: "N", autor: null, dtCriacao: null, observacao: null, idAnexo: null, idImagem: null, filePath: null, urlImagemContent: null, anexoPortalList: [] } } } } // Objeto para Persistir $scope.dataJson = {} //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.q = ''; // Paginar Videos $scope.paginarRegistos = function() { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { flDestaque: "N" } } RequestService.request('POST', '/noticia/galeria/listar/', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } } }); 'use strict'; app.component('agendaMinistroCrud', { templateUrl: 'app/partials/agenda-ministro-crud.html', bindings: { template: '@', label: '@' }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirGaleria', function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirGaleriasNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirGaleriasNovo', function() { $scope.exibirForm = true; }); } // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Nova Galeria $scope.novoFormulario = function(form) { if (form.$valid && form.$submitted) { // Submeter para a API RequestService.request('POST', '/noticia/galeria/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { $scope.setObj(resp.data); }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Ler o ficheiro selecionado no Navegador $scope.preUpload = function($event) { if (angular.isDefined($event)) { if ($event.target.files.length) { angular.forEach($event.target.files, function(ficheiro) { ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { var options = { quality: 0.8, width: 5000 }; var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var novo = { cdAnexoPortal: null, anexoPortalItemList: [{ nome: ficheiro.name, base64Anexo: reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''), extensao: ficheiro.extensao[ficheiro.extensao.length - 1], mimeType: ficheiro.type, url: null, videoUrl: null }] } $scope.dataJson.data.anexoPortalList.push(novo); } } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } } }; $scope.excluirAnexo = function(galeria, anexo, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAnexoPortal: galeria.cdAnexoPortal } } RequestService.request('POST', '/menu/removerAnexo', dataJson, true, function(resp) { $timeout(function() { $scope.dataJson.data.anexoPortalList.splice(index, 1); AlertaService.closeProgressAlert(); $rootScope.$broadcast('broadcastHomeReceiver'); }, 100); }); }) } // Excluir Formulario $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: item.cdPublicacao } }; RequestService.request('DELETE', '/formulario/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Obj Formulario $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; if (!$scope.dataJson.data.anexoPortalList.length) { $scope.dataJson.data.anexoPortalList = []; } } else { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: null, descricao: null, descricaoGaleria: null, dtFim: null, dtInicio: null, flStatusPublicacao: { sigla: "PUB", detalhe: "Publicada", dominio: "FL_STATUS_PUBLICACAO" }, qtdAcesso: 0, sumario: null, titulo: null, templatePublicacao: null, dsPortal: RequestService.portalConfig.portalAPI, flDestaque: "N", autor: null, dtCriacao: null, observacao: null, idAnexo: null, idImagem: null, filePath: null, urlImagemContent: null, anexoPortalList: [] } } } } // Objeto para Persistir $scope.dataJson = {} //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.q = ''; // Paginar Videos $scope.paginarRegistos = function() { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { flDestaque: "N" } } RequestService.request('POST', '/noticia/galeria/listar/', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } } }); app.component('galeriaExMinistro', { templateUrl: 'app/partials/galeria-ex-ministro.html', bindings: { label: '<', template: '<' }, controller: function($rootScope, $timeout, RequestService, StorageService, AlertaService) { // Limpar Formulario e Carregar Lista var ctrl = this; // BroadCast para atualizar a Home $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { ctrl.initUtilizador(false); }); // Iniciar componente this.$onInit = function($event) { ctrl.initUtilizador(); // Ficheiros Permitidos ctrl.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; ctrl.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros ctrl.editorImageUpload = {}; // Tiny Editor ctrl.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 200, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', nowrap: false }; // Toggle Form Area Colocacao ctrl.exibirFormAreaColocacao = false; }; // Initializar Utilizador ctrl.initUtilizador = function(pesquisar) { ctrl.utilizador = StorageService.get('utilizadorLogado'); if (pesquisar) { ctrl.paginarRegistos(false); } }; // Resetar Elementos e Formulário de busca ctrl.init = function(pesquisar) { ctrl.registos = []; if (pesquisar) { ctrl.paginarRegistos(true); } }; // Pesquisar ctrl.paginarRegistos = function(loading) { loading = loading ? loading : false; RequestService.request('GET', '/quemEQuem/listar/' + RequestService.portalConfig.portalAPI, null, loading, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { if (loading) { AlertaService.closeProgressAlert(); } ctrl.registos = resp.data; } } else { AlertaService.erroRede(); } }); } // Inserir / Atualizar ctrl.salvarQuemEQuem = function(form, loading) { if (form.$valid) { RequestService.request('POST', '/quemEQuem/salvar', ctrl.dataJson, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { if (loading) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { ctrl.registo(null, resp.data); ctrl.paginarRegistos(false); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { ctrl.paginarRegistos(false); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } // Initializar um novo Registo ctrl.registo = function(form, registo) { if (form) { form.$setPristine(); } ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI } if (registo) { ctrl.dataJson.data = angular.copy(registo); } else { ctrl.dataJson.data = { cdQuemEQuem: null, dsPortal: RequestService.portalConfig.portalAPI, regimeCarreira: null, cdAreaColocacao: null, areaColocacaoItem: null, endereco: ".", filiacao: ".", nacionalidade: null, naturalidade: null, noQuemEQuem: null, quemEQuemItemList: [], anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, cdPublicacao: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, url: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: null }] }] } ctrl.adicionarFormacao(); } // Popular lista de Área de Colocação RequestService.request('GET', '/quemEQuem/listar/area-colocacao/' + RequestService.portalConfig.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.areaColocacaoList = resp.data; if (registo) { ctrl.dataJson.data.cdAreaColocacao = ctrl.dataJson.data.areaColocacaoItem.areaColocacaoDTO.cdAreaColocacao; ctrl.atualizarSelectPosicao(false); } } } else { AlertaService.erroRede(); } }); ctrl.listarRegimeCarreira(function(resp) { if (resp) { ctrl.regimeDeCarreiraList = resp.data; } }); }; // Popular lista de Regime de Carreira ctrl.listarRegimeCarreira = function(callback) { RequestService.request('GET', '/quemEQuem/listar/regime-carreira/' + RequestService.portalConfig.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { callback(resp); } } else { AlertaService.erroRede(); } }); } ctrl.atualizarSelectPosicao = function(loading) { if (ctrl.dataJson.data.cdAreaColocacao) { RequestService.request('GET', '/quemEQuem/listar/area-colocacao-item/' + RequestService.portalConfig.portalAPI + '/' + ctrl.dataJson.data.cdAreaColocacao, null, loading, function(resp) { if (resp) { if (loading) { AlertaService.closeProgressAlert(); } if (resp.retorno.codigo == 200) { ctrl.areaColocacaoListItem = resp.data; } } else { AlertaService.erroRede(); } }); } }; ctrl.adicionarFormacao = function() { ctrl.dataJson.data.quemEQuemItemList.push({ cdQuemEQuemItem: null, dsQuemEQuemItem: null, noQuemEQuemItem: null }); }; ctrl.removerFormacao = function(index) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { $timeout(function() { ctrl.dataJson.data.quemEQuemItemList.splice(index, 1); }, 200); } }); }; // Remover Item ctrl.remover = function(registo) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdQuemEQuem: registo.cdQuemEQuem } }; RequestService.request('DELETE', '/quemEQuem/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(false); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Atualizar Label da Seção ctrl.initEditarLabelAreaColocacao = function(form, item) { form.$setPristine(); item.area.editando = !item.area.editando; } ctrl.editarLabel = function(form, item) { if (form.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacao: item.area.cdAreaColocacao, dsAreaColocacao: item.area.dsAreaColocacao, nuOrdem: item.area.nuOrdem } } RequestService.request('POST', '/quemEQuem/salvar/area-colocacao', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(false); item.editando = false; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } // Atualizar Label da Seção ctrl.initEditarOrdem = function(form, item, parentIndex, index) { form.$setPristine(); item.editando = !item.editando; if (item.editando) { $timeout(function() { angular.element('#inputEditarOrdem_' + parentIndex + '_' + index).focus(); }, 200); } } ctrl.editarOrdem = function(form, item) { if (form.$valid) { ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } ctrl.salvarQuemEQuem(form, false); } } // Area Colocação ctrl.initAreaColocacao = function(form) { form.$setPristine(); ctrl.exibirFormAreaColocacao = !ctrl.exibirFormAreaColocacao; ctrl.novaAreaColocacao = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacao: null, dsAreaColocacao: null, nuOrdem: null } } } ctrl.adicionarArea = function(form) { if (form.$valid) { RequestService.request('POST', '/quemEQuem/salvar/area-colocacao', ctrl.novaAreaColocacao, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(true); ctrl.exibirFormAreaColocacao = !ctrl.exibirFormAreaColocacao; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.excluirAreaColocacao = function(item) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacao: item.area.cdAreaColocacao } }; RequestService.request('DELETE', '/quemEQuem/remover/area-colocacao', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(false); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } ctrl.initGerirPosicoes = function(item) { item.exibirGerirPosicao = !item.exibirGerirPosicao; if (item.exibirGerirPosicao) { RequestService.request('GET', '/quemEQuem/listar/area-colocacao-item/' + RequestService.portalConfig.portalAPI + '/' + item.area.cdAreaColocacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); item.listarAreaPosicoes = resp.data; if (!resp.data.length) { item.adicionandoPosicao = true; } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.removerPosicao = function(posicao, item, index) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacaoItem: posicao.cdAreaColocacaoItem } }; RequestService.request('DELETE', '/quemEQuem/remover/area-colocacao-item', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $timeout(function() { item.listarAreaPosicoes.splice(index, 1); if (!item.listarAreaPosicoes.length) { item.exibirGerirPosicao = false; item.area.temFilho = false; } AlertaService.closeProgressAlert(); }, 200); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } ctrl.initEditarPosicao = function(form, posicao, item, novo) { form.$setPristine(); ctrl.editarPosicao = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacaoItem: posicao ? posicao.cdAreaColocacaoItem : null, dsAreaColocacaoItem: posicao ? posicao.dsAreaColocacaoItem : null, areaColocacaoDTO: { cdAreaColocacao: item.area.cdAreaColocacao, dsAreaColocacao: item.area.dsAreaColocacao, nuOrdem: item.area.nuOrdem } } } angular.forEach(item.listarAreaPosicoes, function(p) { if (posicao) { if (posicao.cdAreaColocacaoItem == p.cdAreaColocacaoItem) { p.editando = !posicao.editando; item.adicionandoPosicao = false; if (p.editando) { $timeout(function() { angular.element('#inputEditarPosicaoLabel_' + p.cdAreaColocacaoItem).focus(); }, 200); } } else { p.editando = false; } } else { p.editando = false; } }); if (angular.isDefined(novo)) { item.adicionandoPosicao = novo; } } ctrl.formSubmitPosicaoDescricao = function(form, item) { if (form.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacaoItem: ctrl.editarPosicao.data.cdAreaColocacaoItem ? ctrl.editarPosicao.data.cdAreaColocacaoItem : null, dsAreaColocacaoItem: ctrl.editarPosicao.data.dsAreaColocacaoItem, areaColocacaoDTO: { cdAreaColocacao: item.area.cdAreaColocacao, dsAreaColocacao: item.area.dsAreaColocacao, nuOrdem: item.area.nuOrdem } } } RequestService.request('POST', '/quemEQuem/salvar/area-colocacao-item', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); item.exibirGerirPosicao = false; item.area.temFilho = true; ctrl.initGerirPosicoes(item); if (item.adicionandoPosicao) { ctrl.initEditarPosicao(form, null, item, true); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.initCargoCarreira = function() { ctrl.listarRegimeCarreira(function(resp) { if (resp) { ctrl.listarCargoCarreira = resp.data; } }); }; ctrl.initEditarCargoCarreira = function(form, cargo) { form.$setPristine(); ctrl.cargoCarreira = { portal: RequestService.portalConfig.portalAPI, data: { cdRegimeCarreira: cargo ? cargo.cdRegimeCarreira : null, cargo: cargo ? cargo.cargo : null, dsPortal: RequestService.portalConfig.portalAPI, flQeq: "S", nivel: { sigla: "CEN", descricao: "CEN", detalhe: "Nivel Central", dominio: "QV_NIVEL" }, nuVagas: 0, posto: { sigla: "CAR", descricao: "CAR", detalhe: "Titulares de Cargos de Direcção e Chefia", dominio: "QV_POSTO" }, regime: { sigla: "GER", descricao: "GER", detalhe: "Utilizador Geral", dominio: "TP_PERFIL" }, subposto: null } } angular.forEach(ctrl.listarCargoCarreira, function(c) { if (cargo) { if (c.cdRegimeCarreira == cargo.cdRegimeCarreira) { cargo.editando = !cargo.editando; } else { c.editando = false; } ctrl.exibirFormCargo = false; } else { c.editando = false; } }); if (!cargo) { ctrl.exibirFormCargo = !ctrl.exibirFormCargo; } else { $timeout(function() { angular.element('#inputEditarCargo_' + cargo.cdRegimeCarreira).focus(); }, 200); } } ctrl.editarCargoCarreira = function(form, cargo) { if (form.$valid) { RequestService.request('POST', '/quemEQuem/salvar/regime-carreira', ctrl.cargoCarreira, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); if (cargo) { cargo.editando = false; ctrl.initCargoCarreira(); } else { ctrl.initEditarCargoCarreira(form); ctrl.exibirFormCargo = false; ctrl.initCargoCarreira(); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.removerCargoCarreira = function(cargo, index) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdRegimeCarreira: cargo.cdRegimeCarreira } } RequestService.request('DELETE', '/quemEQuem/remover/regime-carreira', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $timeout(function() { ctrl.listarCargoCarreira.splice(index, 1); }, 200); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } } }); 'use strict'; app.component('formulariosCrud', { templateUrl: 'app/partials/formularios-crud.html', bindings: { template: '@', label: '@', imgCrop: '=' }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Limpar Formulario e Carregar Lista this.$onInit = function($event) { $(document).on('shown.bs.modal', '#modalGerir' + obj.template, function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerir' + obj.template + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerir' + obj.template + 'Novo', function() { $scope.exibirForm = true; }); }; // Ficheiros Permitidos $scope.extensoesPermitidas = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'jpg', 'png', 'zip', 'rar']; $scope.tamanhoFicheiro = 10; //Imagem Permitidas $scope.extensoesImagensPermitidas = ['jpg', 'jpeg', 'png']; $scope.tamanhoImagemFicheiro = 1; // Nova Noticia $scope.novoFormulario = function(form) { console.log($scope.dataJson) if (form.$valid && form.$submitted) { // Submeter para a API RequestService.request('POST', '/formulario/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $timeout(function() { $scope.setObj(resp.data); }, 1000); }); $rootScope.$broadcast('broadcastHomeReceiver'); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } }; // Ler o ficheiro selecionado no Navegador $scope.preUpload = function(anexo, index, parentIndex, $event) { if (angular.isDefined($event)) { if (angular.isUndefined($event.isTrigger)) { if ($event.target.files.length) { var ficheiro = $event.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].nome = ficheiro.name; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''); $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].extensao = ficheiro.extensao[ficheiro.extensao.length - 1]; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].mimeType = ficheiro.type; } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } } } }; // Ler a Imagem selecionado no Navegador $scope.preUploadImagem = function(imagem, index, parentIndex, $event) { if (angular.isDefined($event)) { if (angular.isUndefined($event.isTrigger)) { if ($event.target.files.length) { var imagem = $event.target.files[0]; imagem.extensao = imagem.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(imagem); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesImagensPermitidas.indexOf(imagem.extensao[imagem.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (imagem.size > $scope.tamanhoImagemFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { $scope.dataJson.data.imagemPortalList[0].imagemPortalItemList[0].nome = imagem.name; $scope.dataJson.data.imagemPortalList[0].imagemPortalItemList[0].base64Anexo = reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''); $scope.dataJson.data.imagemPortalList[0].imagemPortalItemList[0].extensao = imagem.extensao[imagem.extensao.length - 1]; $scope.dataJson.data.imagemPortalList[0].imagemPortalItemList[0].mimeType = imagem.type; } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } } } }; // Excluir Ficheiro Anexo $scope.ficheiroAnexoExcluir = function(anexo, anexoList, index, parentIndex) { if (!anexoList.novo) { AlertaService.confirmar('Confirma Excluir Ficheiro ?', function(acao) { if (acao) { var dataJson = { portal: RequestSer.portalAPI, data: { cdAnexoPortalItem: anexo.cdAnexoPortalItem } }; RequestService.request('POST', '/menu/removerAnexoItem', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0] = { cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } else { $scope.ficheiroAnexoNovo(); } }; // Adicionar um novo campo Ficheiro $scope.ficheiroAnexoNovo = function() { $scope.dataJson.data.anexoPortalList = [{ anexoPortalItemList: [] }]; var novo = { novo: true, cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }; $scope.dataJson.data.anexoPortalList.push(novo); }; // Adicionar um novo campo Imagem $scope.imagemAnexoNovo = function() { $scope.dataJson.data.imagemPortalList = [{ imagemPortalItemList: [] }]; var novo = { novo: true, cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }; $scope.dataJson.data.imagemPortalList.push(novo); }; // Excluir Formulario $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdPublicacao: item.cdPublicacao } }; RequestService.request('DELETE', '/formulario/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) }; // Obj Formulario $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; if (!$scope.dataJson.data.anexoPortalList.length || !$scope.dataJson.data.imagemPortalList.length) { $scope.ficheiroAnexoNovo(); $scope.imagemAnexoNovo(); } else { try { var itensArray = []; angular.forEach($scope.dataJson.data.anexoPortalList[0].anexoPortalItemList, function(anexoPortalItemList) { if (anexoPortalItemList.nome.indexOf('_CAPA_') >= 0) { itensArray[1] = anexoPortalItemList; } else { itensArray[0] = anexoPortalItemList; } }); $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList = itensArray; var itensArrayImagem = []; angular.forEach($scope.dataJson.data.imagemPortalList[0].imagemPortalItemList, function(imagemPortalItemList) { if (imagemPortalItemList.nome.indexOf('_CAPA_') >= 0) { itensArrayImagem[1] = imagemPortalItemList; } else { itensArrayImagem[0] = imagemPortalItemList; } }); $scope.dataJson.data.imagemPortalList[0].imagemPortalItemList = itensArrayImagem; } catch (error) { console.log(error); } } } else { $scope.dataJson = { portal: RequestService.portalAPI, data: { cdPublicacao: null, descricao: 'descricao', dtFim: null, dtInicio: null, flStatusPublicacao: { sigla: "PUB", descricao: "PUB", detalhe: "Publicado", dominio: "FL_STATUS_PUBLICACAO" }, qtdAcesso: 0, sumario: null, titulo: null, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], imagemPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, imagemPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: this.$ctrl.template, descricao: this.$ctrl.template, detalhe: "Formulário", dominio: "TP_FORMULARIO" }, publicacaoList: null, anexoPortalList: null, imagemPortalList: null }, dsPortal: RequestService.portalAPI, flDestaque: null, observacao: null, autor: null, dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100') } } } }; // Objeto para Persistir $scope.dataJson = {}; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; // Paginar Videos $scope.paginarRegistos = function() { var dataJson = { portal: RequestService.portalAPI, data: { paginaAtual: $scope.paginaAtual + 1, itensPorPagina: $scope.paginacaoQtdRegistros, templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: obj.template, descricao: obj.template, detalhe: "Formulário", dominio: "TP_FORMULARIO" } } } }; RequestService.request('POST', '/formulario/listar/', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } } }); app.component('eventosCrud', { templateUrl: 'app/partials/eventos-crud.html', bindings: { itens: '<', artigo: '<' }, controller: function($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); //Ajuste no overflow das modais $(document).on('hidden.bs.modal', function(event) { if ($('.modal:visible').length) { $('body').addClass('modal-open'); } }); // Atributos var obj = this; obj.dados; $scope.exibirForm = true; // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirEventos', function() { $scope.paginarRegistos(); }); /* $(document).on('hidden.bs.modal', '#modalGerirEventosNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirEventosNovo', function() { $scope.exibirForm = true; }); */ } // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'png', 'gif', 'bmp']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { paste_as_text: true, menubar: false, statusbar: false, plugins: 'link image media table lists imagetools paste textcolor', height: 200, toolbar: 'alignleft aligncenter alignright alignjustify | formatselect forecolor | copy paste cleanup | bold italic underline | bullist numlist | link unlink | table | undo redo', automatic_uploads: true, file_picker_types: 'image', fontsize_formats: '8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 20pt 21pt 22pt 23pt 24pt', image_title: false, image_description: false, imagetools_toolbar: 'editimage imageoptions', content_css: 'app/main/css/lato.css', setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); console.log(input); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; obj.dados = this.ficheiro; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { callback(reader.result, { title: ficheiro.name }); } } reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarEvento = function(form) { if (form.$valid && form.$submitted) { $scope.dataJson.data.dtInicial = moment($scope.dataJson.data.dtInicial, "DD-MM-YYYY HH:mm").format('DD-MM-YYYYTHH:mm:ss.000+0100'); $scope.dataJson.data.dtFinal = moment($scope.dataJson.data.dtFinal, "DD-MM-YYYY HH:mm").format('DD-MM-YYYYTHH:mm:ss.000+0100'); // console.log($scope.dataJson); // Submeter para a API RequestService.request('POST', '/evento/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $rootScope.$broadcast('broadcastHomeReceiver'); $scope.paginarRegistos(); $timeout(function() { $scope.setObj(resp.data); }, 1000); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; } // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAgendaEvento: item.cdAgendaEvento } }; RequestService.request('DELETE', '/evento/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Objeto para Persistir $scope.dataJson = {} // Obj Evento $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; $scope.dataJson.data.dtInicial = moment($scope.dataJson.data.dtInicial, "DD-MM-YYYY HH:mm").format('DD/MM/YYYY HH:mm'); $scope.dataJson.data.dtFinal = moment($scope.dataJson.data.dtFinal, "DD-MM-YYYY HH:mm").format('DD/MM/YYYY HH:mm'); } else { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAgendaEvento: null, dsPortal: RequestService.portalConfig.portalAPI, templatePublicacao: null, tituloAgendaEvento: null, localAgendaEvento: null, dsAgendaEvento: null, dtFinal: null, dtInicial: null, flAtivo: "S", anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], anexoPortalListkene: [{ cdAnexoPortalkene: null, cdLinksUteiskene: null, anexoPortalItemListkene: [{ cdAnexoPortalItemkene: null, nomekene: null, mimeTypekene: null, extensaokene: null, base64Anexokene: null, urlkene: null }] }], flStatusPublicacao: { sigla: "PUB", descricao: "PUB", detalhe: "Publicado", dominio: "FL_STATUS_PUBLICACAO" }, cgRefCodes: { sigla: "ACOE", descricao: "ACOE", detalhe: "Sala de Imprensa", dominio: "TP_AGENDA_EVENTO" }, observacao: null, dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'), detalhe: null } } } } // Cadastrar novo Link Útil $scope.toggleActivo = function(item) { $scope.toggle(item); var dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } RequestService.request('POST', '/evento/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } $scope.toggle(item); } } else { AlertaService.erroRede(); $scope.toggle(item); } }); } $scope.toggle = function(item) { if (item.flAtivo == 'S') { item.flAtivo = 'N'; } else if (item.flAtivo == 'N') { item.flAtivo = 'S'; } return item; } //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'S'; // Paginar Notícias $scope.paginarRegistos = function() { RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/T/' + ($scope.paginaAtual) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('publicidadeEventosCrud', { templateUrl: 'app/partials/publicidade-eventos-crud.html', bindings: { itens: '<', artigo: '<' }, controller: function($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Atributos var obj = this; // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirEventos', function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirEventosNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirEventosNovo', function() { $scope.exibirForm = true; }); }; // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'png', 'gif', 'bmp']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { paste_as_text: true, menubar: false, statusbar: false, plugins: 'link image media table lists imagetools paste textcolor', height: 200, toolbar: 'alignleft aligncenter alignright alignjustify | formatselect forecolor | copy paste cleanup | bold italic underline | bullist numlist | link unlink | table | undo redo', automatic_uploads: true, file_picker_types: 'image', image_title: false, image_description: false, imagetools_toolbar: 'editimage imageoptions', content_css: 'app/main/css/lato.css', setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { callback(reader.result, { title: ficheiro.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarEvento = function(form) { if (form.$valid && form.$submitted) { $scope.dataJson.data.dtInicial = moment($scope.dataJson.data.dtInicial, "DD-MM-YYYY HH:mm").format('DD-MM-YYYYTHH:mm:ss.000+0100'); $scope.dataJson.data.dtFinal = moment($scope.dataJson.data.dtFinal, "DD-MM-YYYY HH:mm").format('DD-MM-YYYYTHH:mm:ss.000+0100'); // Submeter para a API RequestService.request('POST', '/evento/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $rootScope.$broadcast('broadcastHomeReceiver'); $scope.paginarRegistos(); $timeout(function() { $scope.setObj(resp.data); }, 1000); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } }; // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; }; // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdAgendaEvento: item.cdAgendaEvento } }; RequestService.request('DELETE', '/evento/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) }; // Objeto para Persistir $scope.dataJson = {}; // Obj Evento $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; $scope.dataJson.data.dtInicial = moment($scope.dataJson.data.dtInicial, "DD-MM-YYYY HH:mm").format('DD/MM/YYYY HH:mm'); $scope.dataJson.data.dtFinal = moment($scope.dataJson.data.dtFinal, "DD-MM-YYYY HH:mm").format('DD/MM/YYYY HH:mm'); } else { $scope.dataJson = { portal: RequestService.portalAPI, data: { cdAgendaEvento: null, dsPortal: RequestService.portalAPI, templatePublicacao: null, tituloAgendaEvento: null, localAgendaEvento: null, dsAgendaEvento: null, dtFinal: null, dtInicial: null, flAtivo: "S", flStatusPublicacao: { sigla: "PUB", descricao: "PUB", detalhe: "Publicado", dominio: "FL_STATUS_PUBLICACAO" }, cgRefCodes: { sigla: "ACOE", descricao: "ACOE", detalhe: "Sala de Imprensa", dominio: "TP_AGENDA_EVENTO" }, observacao: null, dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'), detalhe: null } } } }; // Cadastrar novo Link Útil $scope.toggleActivo = function(item) { $scope.toggle(item); var dataJson = { portal: RequestService.portalAPI, data: item }; RequestService.request('POST', '/evento/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } $scope.toggle(item); } } else { AlertaService.erroRede(); $scope.toggle(item); } }); }; $scope.toggle = function(item) { if (item.flAtivo == 'S') { item.flAtivo = 'N'; } else if (item.flAtivo == 'N') { item.flAtivo = 'S'; } return item; }; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'S'; // Paginar Notícias $scope.paginarRegistos = function() { RequestService.request('GET', '/evento/listar/' + RequestService.portalAPI + '/T/' + ($scope.paginaAtual + 1) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); }; // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); 'use strict'; app.component('linksUteisCrud', { templateUrl: 'app/partials/links-uteis-crud.html', bindings: { tipo: '@', dimensoes: '@', titulo: '@', url: '=', activo: '=', }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService, Utils) { var obj = this; // Limpar Formulario e Carregar Lista var ctrl = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Objeto para Persistir $scope.dataJson = {}; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; //VARIAVEIS LINKS UTEIS $scope.linksUteiSelecionado; $scope.motivoStatusSelecionado; //inicializa component this.$onInit = function($event) { ctrl.initUtilizador(false); } // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerir' + obj.tipo, function() { //Paginação $scope.paginaAtual = 1; $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerir' + obj.tipo + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerir' + obj.tipo + 'Novo', function() { $scope.exibirForm = true; }); } // Initializar Utilizador ctrl.initUtilizador = function(init) { ctrl.utilizador = StorageService.get('utilizadorLogado'); ctrl.administrador = false; ctrl.gestor = false; ctrl.publicador = false; ctrl.redator = false; ctrl.revisor = false; ctrl.editor = false; if (ctrl.utilizador) { ctrl.administrador = Utils.validaPermissao("administrador", ctrl.utilizador.grupos); ctrl.gestor = Utils.validaPermissao("gestor", ctrl.utilizador.grupos); ctrl.publicador = Utils.validaPermissao("publicador", ctrl.utilizador.grupos); ctrl.redator = Utils.validaPermissao("redator", ctrl.utilizador.grupos); ctrl.revisor = Utils.validaPermissao("revisor", ctrl.utilizador.grupos); ctrl.editor = Utils.validaPermissao("editor", ctrl.utilizador.grupos); if (init) { ctrl.init(null, ctrl.utilizador.gestor); } } } //validar sigla ctrl.validaEditar = function(status) { var habilitado = false; if (status == "CRIA" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "RREV" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (ctrl.administrador) { habilitado = true; } // console.log(status) //((editor || redator || gestor|| administrador || publicador || revisor) && (item.flStatusPublicacao.sigla == 'CRIA' || item.flStatusPublicacao.sigla == 'RREV' || item.flStatusPublicacao.sigla == 'REV' || item.flStatusPublicacao.sigla == 'PUB' || item.flStatusPublicacao.sigla == 'AREV' || item.flStatusPublicacao.sigla == 'RPUB')) return habilitado; }; // Ficheiros Permitidos $scope.extensoesPermitidas = ['jpg', 'jpeg', 'png', 'gif']; $scope.tamanhoFicheiro = 1; // Tiny Editor Config $scope.tinymceOptionsUpload = { paste_as_text: true, menubar: false, statusbar: false, //plugins: 'link image media table lists imagetools paste code', plugins: 'link image media table lists paste code', height: 200, toolbar: 'image', automatic_uploads: true, file_picker_types: 'image', fontsize_formats: '8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 20pt 21pt 22pt 23pt 24pt', image_title: false, image_description: false, image_dimensions: false, //imagetools_toolbar: 'editimage imageoptions', nowrap: false, readonly: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); $("input:last").focus(); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImagemLink_' + obj.tipo); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { $scope.ficheiroSelecionado = evento.target.files[0]; $scope.ficheiroSelecionado.extensao = $scope.ficheiroSelecionado.name.split('.'); var reader = new FileReader(); reader.readAsDataURL($scope.ficheiroSelecionado); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf($scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if ($scope.ficheiroSelecionado.size > $scope.tamanhoMaximoPermitido) { reader.onloadend = false; check.tamanho = false; Alertas.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { var base64 = reader.result; $scope.editorImageUpload = base64; input.val(''); callback(base64, { title: $scope.ficheiroSelecionado.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Cadastrar novo Link Útil $scope.novoLinkUtil = function(form) { if (form.$valid && form.$submitted) { if ($scope.editorImageUpload) { var base64 = $scope.editorImageUpload.substr($scope.editorImageUpload.indexOf(',') + 1).replace(/ /g, ''); try { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].nome = $scope.ficheiroSelecionado.name; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].mimeType = $scope.ficheiroSelecionado.type; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].extensao = $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1]; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = base64 } catch (exception) { $scope.dataJson.data.anexoPortalList = [{ anexoPortalList: [{ nome: $scope.ficheiroSelecionado.name, mimeType: $scope.ficheiroSelecionado.type, extensao: $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1], base64: base64 }] }]; } } var dataJson = angular.copy($scope.dataJson); if (obj.tipo == 'IMGALT' && !$scope.dataJson.data.url) { dataJson.data.url = 'semurl'; } RequestService.request('POST', '/linksUteis/salvar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); }); form.$setPristine(); if (!$scope.dataJson.data.cdLinksUteis) { form.$$element[0].reset(); } $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Cadastrar novo Link Útil $scope.toggleActivo = function(item) { $scope.toggle(item); var dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } RequestService.request('POST', '/linksUteis/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } $scope.toggle(item); } } else { AlertaService.erroRede(); $scope.toggle(item); } }); } $scope.toggle = function(item) { if (item.flAtivo == 'S') { item.flAtivo = 'N'; } else if (item.flAtivo == 'N') { item.flAtivo = 'S'; } return item; } // Excluir Video $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdLinksUteis: item.cdLinksUteis } }; RequestService.request('DELETE', '/linksUteis/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Excluir Ficheiro Anexo $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; } // Obj Link $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { if (obj.url == 'semurl') { obj.url = null; } $scope.dataJson.data = obj; } else { $scope.dataJson.data = { cdLinksUteis: null, dsPortal: RequestService.portalConfig.portalAPI, flAtivo: "S", dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'), titulo: null, url: null, flStatusPublicacao: { sigla: "CRIA", descricao: "CRIA", detalhe: "Criada", dominio: "FL_STATUS_PUBLICACAO" }, observacao: null, tpLinksUteis: this.$ctrl.tipo, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }] } } } // submeter Api ctrl.alterarStatusLinksUteis = function(linksUteis, status) { AlertaService.confirmar($rootScope.const.CONFIRMA_OPERACAO, function(acao) { if (acao) { ctrl.dataJson = { data: angular.copy(linksUteis) }; ctrl.dataJson.data.flStatusPublicacao.sigla = status; ctrl.dataJson.data.flStatusPublicacao.descricao = status; ctrl.dataJson.data.flStatusPublicacao.detalhe = null; ctrl.dataJson.data.flStatusPublicacao.dominio = "FL_STATUS_PUBLICACAO"; if (!ctrl.linksUteiSelecionado) { // ctrl.dataJson.data.observacao = null; } ctrl.dataJson.portal = RequestService.portalConfig.portalAPI; // Submeter para a API RequestService.request('POST', '/linksUteis/atualizar-situacao', ctrl.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { ctrl.dataJson = { data: resp.data }; if (ctrl.linksUteiSelecionado) { ctrl.linksUteiSelecionado = null; ctrl.motivoStatusSelecionado = null; Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), false); $timeout(function() { Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), true); }, 500); } }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Modal Cancelar Noticia ctrl.selecionaMotivolinksUteis = function(linksUteis, status, form) { form.$setPristine(); ctrl.linksUteisSelecionada = angular.copy(linksUteis); ctrl.motivoStatusSelecionado = angular.copy(status); // ctrl.linksUteisSelecionada.observacao = null; Utils.mantemModal("#modalGerirslugifyObservacao" + ctrl.tipo, false); $timeout(function() { Utils.mantemModal("#modalGerirslugifyObservacao" + ctrl.tipo, true); }, 600); }; // linksUteiSelecionado ctrl.limparMotivo = function() { ctrl.linksUteisSelecionada = null; ctrl.motivoStatusSelecionado = null; }; // salvar motivo ctrl.salvarMotivo = function(form) { if (form.$valid && form.$submitted) { ctrl.alterarStatusLinksUteis(ctrl.linksUteisSelecionada, ctrl.motivoStatusSelecionado); } }; // Paginar Videos $scope.paginarRegistos = function() { RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalConfig.portalAPI + '/' + obj.tipo + '/T/' + ($scope.paginaAtual) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp.data; $scope.quantidadeTotalItens = (parseInt(resp.quantidadeTotalItens) > 0) ? resp.quantidadeTotalItens : $scope.itensPaginados.length; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) // console.log($scope.itensPaginados) } // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); 'use strict'; app.component('galeriaDosExMinistros', { templateUrl: 'app/partials/galeria-dos-ex-ministros-crud.html', bindings: { tipo: '@', dimensoes: '@', titulo: '@', url: '=', activo: '=', }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService, Utils) { var obj = this; // Limpar Formulario e Carregar Lista var ctrl = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Objeto para Persistir $scope.dataJson = {}; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; //VARIAVEIS LINKS UTEIS $scope.linksUteiSelecionado; $scope.motivoStatusSelecionado; //inicializa component this.$onInit = function($event) { ctrl.initUtilizador(false); } // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerir' + obj.tipo, function() { //Paginação $scope.paginaAtual = 1; $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerir' + obj.tipo + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerir' + obj.tipo + 'Novo', function() { $scope.exibirForm = true; }); } // Initializar Utilizador ctrl.initUtilizador = function(init) { ctrl.utilizador = StorageService.get('utilizadorLogado'); ctrl.administrador = false; ctrl.gestor = false; ctrl.publicador = false; ctrl.redator = false; ctrl.revisor = false; ctrl.editor = false; if (ctrl.utilizador) { ctrl.administrador = Utils.validaPermissao("administrador", ctrl.utilizador.grupos); ctrl.gestor = Utils.validaPermissao("gestor", ctrl.utilizador.grupos); ctrl.publicador = Utils.validaPermissao("publicador", ctrl.utilizador.grupos); ctrl.redator = Utils.validaPermissao("redator", ctrl.utilizador.grupos); ctrl.revisor = Utils.validaPermissao("revisor", ctrl.utilizador.grupos); ctrl.editor = Utils.validaPermissao("editor", ctrl.utilizador.grupos); if (init) { ctrl.init(null, ctrl.utilizador.gestor); } } } //validar sigla ctrl.validaEditar = function(status) { var habilitado = false; if (status == "CRIA" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "RREV" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (ctrl.administrador) { habilitado = true; } // console.log(status) //((editor || redator || gestor|| administrador || publicador || revisor) && (item.flStatusPublicacao.sigla == 'CRIA' || item.flStatusPublicacao.sigla == 'RREV' || item.flStatusPublicacao.sigla == 'REV' || item.flStatusPublicacao.sigla == 'PUB' || item.flStatusPublicacao.sigla == 'AREV' || item.flStatusPublicacao.sigla == 'RPUB')) return habilitado; }; // Ficheiros Permitidos $scope.extensoesPermitidas = ['jpg', 'jpeg', 'png', 'gif']; $scope.tamanhoFicheiro = 1; // Tiny Editor Config $scope.tinymceOptionsUpload = { paste_as_text: true, menubar: false, statusbar: false, //plugins: 'link image media table lists imagetools paste code', plugins: 'link image media table lists paste code', height: 200, toolbar: 'image', automatic_uploads: true, file_picker_types: 'image', fontsize_formats: '8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 20pt 21pt 22pt 23pt 24pt', image_title: false, image_description: false, image_dimensions: false, //imagetools_toolbar: 'editimage imageoptions', nowrap: false, readonly: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); $("input:last").focus(); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImagemLink_' + obj.tipo); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { $scope.ficheiroSelecionado = evento.target.files[0]; $scope.ficheiroSelecionado.extensao = $scope.ficheiroSelecionado.name.split('.'); var reader = new FileReader(); reader.readAsDataURL($scope.ficheiroSelecionado); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf($scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if ($scope.ficheiroSelecionado.size > $scope.tamanhoMaximoPermitido) { reader.onloadend = false; check.tamanho = false; Alertas.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { var base64 = reader.result; $scope.editorImageUpload = base64; input.val(''); callback(base64, { title: $scope.ficheiroSelecionado.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Cadastrar novo Link Útil $scope.novoLinkUtil = function(form) { if (form.$valid && form.$submitted) { if ($scope.editorImageUpload) { var base64 = $scope.editorImageUpload.substr($scope.editorImageUpload.indexOf(',') + 1).replace(/ /g, ''); try { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].nome = $scope.ficheiroSelecionado.name; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].mimeType = $scope.ficheiroSelecionado.type; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].extensao = $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1]; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = base64 } catch (exception) { $scope.dataJson.data.anexoPortalList = [{ anexoPortalList: [{ nome: $scope.ficheiroSelecionado.name, mimeType: $scope.ficheiroSelecionado.type, extensao: $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1], base64: base64 }] }]; } } var dataJson = angular.copy($scope.dataJson); if (obj.tipo == 'BAN' && !$scope.dataJson.data.url) { dataJson.data.url = 'semurl'; } RequestService.request('POST', '/linksUteis/salvar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); }); form.$setPristine(); if (!$scope.dataJson.data.cdLinksUteis) { form.$$element[0].reset(); } $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Cadastrar novo Link Útil $scope.toggleActivo = function(item) { $scope.toggle(item); var dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } RequestService.request('POST', '/linksUteis/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } $scope.toggle(item); } } else { AlertaService.erroRede(); $scope.toggle(item); } }); } $scope.toggle = function(item) { if (item.flAtivo == 'S') { item.flAtivo = 'N'; } else if (item.flAtivo == 'N') { item.flAtivo = 'S'; } return item; } // Excluir Video $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdLinksUteis: item.cdLinksUteis } }; RequestService.request('DELETE', '/linksUteis/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Excluir Ficheiro Anexo $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; } // Obj Link $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { if (obj.url == 'semurl') { obj.url = null; } $scope.dataJson.data = obj; } else { $scope.dataJson.data = { cdLinksUteis: null, dsPortal: RequestService.portalConfig.portalAPI, flAtivo: "S", dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'), titulo: null, observacao: null, url: "https://google.com", flStatusPublicacao: { sigla: "CRIA", descricao: "CRIA", detalhe: "Criada", dominio: "FL_STATUS_PUBLICACAO" }, observacao: null, tpLinksUteis: this.$ctrl.tipo, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }] } } } // submeter Api ctrl.alterarStatusLinksUteis = function(linksUteis, status) { AlertaService.confirmar($rootScope.const.CONFIRMA_OPERACAO, function(acao) { if (acao) { ctrl.dataJson = { data: angular.copy(linksUteis) }; ctrl.dataJson.data.flStatusPublicacao.sigla = status; ctrl.dataJson.data.flStatusPublicacao.descricao = status; ctrl.dataJson.data.flStatusPublicacao.detalhe = null; ctrl.dataJson.data.flStatusPublicacao.dominio = "FL_STATUS_PUBLICACAO"; if (!ctrl.linksUteiSelecionado) { // ctrl.dataJson.data.observacao = null; } ctrl.dataJson.portal = RequestService.portalConfig.portalAPI; // Submeter para a API RequestService.request('POST', '/linksUteis/atualizar-situacao', ctrl.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { ctrl.dataJson = { data: resp.data }; if (ctrl.linksUteiSelecionado) { ctrl.linksUteiSelecionado = null; ctrl.motivoStatusSelecionado = null; Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), false); $timeout(function() { Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), true); }, 500); } }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Modal Cancelar Noticia ctrl.selecionaMotivolinksUteis = function(linksUteis, status, form) { form.$setPristine(); ctrl.linksUteisSelecionada = angular.copy(linksUteis); ctrl.motivoStatusSelecionado = angular.copy(status); // ctrl.linksUteisSelecionada.observacao = null; Utils.mantemModal("#modalGerirslugifyObservacao" + ctrl.tipo, false); $timeout(function() { Utils.mantemModal("#modalGerirslugifyObservacao" + ctrl.tipo, true); }, 600); }; // linksUteiSelecionado ctrl.limparMotivo = function() { ctrl.linksUteisSelecionada = null; ctrl.motivoStatusSelecionado = null; }; // salvar motivo ctrl.salvarMotivo = function(form) { if (form.$valid && form.$submitted) { ctrl.alterarStatusLinksUteis(ctrl.linksUteisSelecionada, ctrl.motivoStatusSelecionado); } }; // Paginar Videos $scope.paginarRegistos = function() { RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalConfig.portalAPI + '/' + obj.tipo + '/T/' + ($scope.paginaAtual) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp.data; console.log($scope.itensPaginados); $scope.quantidadeTotalItens = (parseInt(resp.quantidadeTotalItens) > 0) ? resp.quantidadeTotalItens : $scope.itensPaginados.length; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) // console.log($scope.itensPaginados) } // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('perguntasCrud', { templateUrl: 'app/partials/perguntas-crud.html', bindings: { itens: '<', artigo: '<', sigla: '@', label: '@' }, controller: function($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Atributos var obj = this; // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirPerguntas' + obj.sigla, function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirPerguntas' + obj.sigla + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirPerguntas' + obj.sigla + 'Novo', function() { $scope.exibirForm = true; }); }; // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { // paste_as_text: true, menubar: false, statusbar: false, plugins: 'link image media table lists imagetools paste textcolor code', height: 300, toolbar: 'alignleft aligncenter alignright alignjustify | outdent indent | formatselect forecolor | copy paste cleanup | bold italic underline | bullist numlist | link unlink | table | image media | undo redo | code', automatic_uploads: true, file_picker_types: 'image', image_title: false, image_description: false, imagetools_toolbar: 'editimage imageoptions', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, file_browser_callback: function(field_name, url, type, win) { }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { callback(reader.result, { title: ficheiro.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarPergunta = function(form) { if (form.$valid && form.$submitted) { // Submeter para a API RequestService.request('POST', '/perguntasFrequentes/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } }; // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; }; // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdPerguntaFrequente: item.cdPerguntaFrequente } }; RequestService.request('DELETE', '/perguntasFrequentes/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) }; // Objeto para Persistir $scope.dataJson = {}; // Obj Noticia $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; } else { $scope.dataJson = { portal: RequestService.portalAPI, data: { cdPerguntaFrequente: null, dsPortal: RequestService.portalAPI, dsPerguntaFrequente: null, dsResposta: null, flAtivo: { sigla: "S", descricao: "S", detalhe: "SIM", dominio: "SIM_NAO" }, tpPergunta: { sigla: this.$ctrl.sigla, descricao: this.$ctrl.sigla, detalhe: "NENHUM TIPO DE PERGUNTA", dominio: "TP_PERGUNTA_PORTAL" } } } } }; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'S'; // Paginar Notícias $scope.paginarRegistos = function() { var dataJson = { portal: RequestService.portalAPI, data: { tpPergunta: { sigla: this.$ctrl.sigla, descricao: this.$ctrl.sigla, detalhe: "NENHUM TIPO DE PERGUNTA", dominio: "TP_PERGUNTA_PORTAL" } } }; RequestService.request('POST', '/perguntasFrequentes/listar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); }; // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('comunicadosList', { templateUrl: 'app/partials/comunicados-list.html', bindings: { data: '<', tipo: '@', qtdItens: '=' }, controller: function($scope) { $scope.retornaImagemArtigo = function(url) { return (url) ? '' : ''; }; this.$onChanges = function(changes) { $scope.coluna = Math.round(12 / parseInt(this.qtdItens)); } } }); app.component('comunicadossCrud', { templateUrl: 'app/partials/comunicadoss-crud.html', bindings: { itens: '<', artigo: '<', sigla: '@', label: '@' }, controller: function($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Atributos var obj = this; // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerirPerguntas' + obj.sigla, function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerirPerguntas' + obj.sigla + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirPerguntas' + obj.sigla + 'Novo', function() { $scope.exibirForm = true; }); }; // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { // paste_as_text: true, menubar: false, statusbar: false, plugins: 'link image media table lists imagetools paste textcolor code', height: 300, toolbar: 'alignleft aligncenter alignright alignjustify | outdent indent | formatselect forecolor | copy paste cleanup | bold italic underline | bullist numlist | link unlink | table | image media | undo redo | code', automatic_uploads: true, file_picker_types: 'image', image_title: false, image_description: false, imagetools_toolbar: 'editimage imageoptions', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, file_browser_callback: function(field_name, url, type, win) { }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true }; if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); }); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.closeProgressAlert(function() { AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); }); } if (check.permitir && check.tamanho) { callback(reader.result, { title: ficheiro.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarPergunta = function(form) { if (form.$valid && form.$submitted) { // Submeter para a API RequestService.request('POST', '/perguntasFrequentes/salvar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } }; // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; }; // Excluir Noticia $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalAPI, data: { cdPerguntaFrequente: item.cdPerguntaFrequente } }; RequestService.request('DELETE', '/perguntasFrequentes/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) }; // Objeto para Persistir $scope.dataJson = {}; // Obj Noticia $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; } else { $scope.dataJson = { portal: RequestService.portalAPI, data: { cdPerguntaFrequente: null, dsPortal: RequestService.portalAPI, dsPerguntaFrequente: null, dsResposta: null, flAtivo: { sigla: "S", descricao: "S", detalhe: "SIM", dominio: "SIM_NAO" }, tpPergunta: { sigla: this.$ctrl.sigla, descricao: this.$ctrl.sigla, detalhe: "NENHUM TIPO DE PERGUNTA", dominio: "TP_PERGUNTA_PORTAL" } } } } }; //Paginação $scope.paginaAtual = 0; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'S'; // Paginar Notícias $scope.paginarRegistos = function() { var dataJson = { portal: RequestService.portalAPI, data: { tpPergunta: { sigla: this.$ctrl.sigla, descricao: this.$ctrl.sigla, detalhe: "NENHUM TIPO DE PERGUNTA", dominio: "TP_PERGUNTA_PORTAL" } } }; RequestService.request('POST', '/perguntasFrequentes/listar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) }; // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); }; // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('videoPlayer', { templateUrl: 'app/partials/video-player.html', bindings: { video: '<', height: '@' }, controller: function($scope){ } }); app.component('produtoDestaque', { templateUrl: 'app/partials/produto-destaque.html', bindings: { data : '<' } }); 'use strict'; app.component('formulariosSessaoCrud', { templateUrl: 'app/partials/formularios-sessao-crud.html', bindings: { template: '=', label: '@', imgCrop: '=', cdpagina: '=' }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService, Utils) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); //console.log($scope.utilizador); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Limpar Formulario e Carregar Lista this.$onInit = function($event) { $(document).on('shown.bs.modal', '#modalGerir' + obj.template, function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerir' + obj.template + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerir' + obj.template + 'Novo', function() { $scope.exibirForm = true; }); } // Ficheiros Permitidos $scope.extensoesPermitidas = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'jpg', 'png', 'zip', 'rar']; $scope.tamanhoFicheiro = 10; $scope.extensoesImagensPermitidas = ['jpg', 'jpeg', 'png']; $scope.tamanhoImagemFicheiro = 1; // Ler o ficheiro selecionado no Navegador $scope.preUpload = function(anexo, index, parentIndex, $event) { if (angular.isDefined($event)) { if (angular.isUndefined($event.isTrigger)) { if ($event.target.files.length) { var ficheiro = $event.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].nome = ficheiro.name; $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].nomeFicheiro = angular.copy(ficheiro.name); $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].base64Anexo = reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''); $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].extensao = ficheiro.extensao[ficheiro.extensao.length - 1]; $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].mimeType = ficheiro.type; } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } } } }; /* * * Manter Nova Sessao * */ $scope.dataAgora = moment().format("YYYY-MM-DD"); $scope.initSessao = { cdPublicacao: null, titulo: null, descricao: null, dtinicial: null, nuOrdem: null, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, cdPublicacao: null, cdQuemEQuem: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, url: null, videoUrl: null, ficheiroUrl: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: "N", contentId: null, nuOrdem: 1, }] }] }; $scope.sessao = angular.copy($scope.initSessao); $scope.novaSessaoInit = function() { $scope.sessao = angular.copy($scope.initSessao); }; $scope.editarFormularioSessao = function(sessao) { $scope.sessao = angular.copy(sessao); }; $scope.addFicheiroInput = function() { var novo = { cdAnexoPortalItem: null, nome: null, url: null, videoUrl: null, ficheiroUrl: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: "N", contentId: null, excluir: false, nuOrdem: parseInt($scope.sessao.anexoPortalList[0].anexoPortalItemList.slice(-1)[0].nuOrdem) + 1 }; $scope.sessao.anexoPortalList[0].anexoPortalItemList.push(novo); }; $scope.verificarFicheiroObrigatorio = function(list) { var cont = 0; if (list.length > 0) { angular.forEach(list, function(obj, key) { if (!obj.nome && obj.contentUrlARemover != "S") { cont++; } }); } return (cont > 0) ? false : true; }; $scope.excluirFormularioSessao = function(fomulario) { AlertaService.confirmar($rootScope.const.CONFIRMA_EXCLUIR_SESSAO, function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: fomulario.cdPublicacao } }; RequestService.request('DELETE', '/formularioSecao/remover', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $timeout(function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }, 500); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; $scope.nomeFicheiro = function(anexo) { if (anexo.url && !anexo.nomeFicheiro) { var url = anexo.url.split('/'); return url[url.length - 1]; } else if (anexo.url && !anexo.nome) { var url = anexo.url.split('/'); return url[url.length - 1]; } else if (anexo.nomeFicheiro) { return anexo.nomeFicheiro; } else if (anexo.nome) { return anexo.nome; } else { return "Seleccionar Ficheiro..."; } } // Submit do Form $scope.manterFomularioSessao = function(form) { if (form.$valid && form.$submitted && $scope.verificarFicheiroObrigatorio($scope.sessao.anexoPortalList[0].anexoPortalItemList)) { if (!$scope.sessao.cdPublicacao) { $scope.sessoes.push($scope.sessao); } else { angular.forEach($scope.sessoes, function(sessao, key) { if (sessao.cdPublicacao == $scope.sessao.cdPublicacao) { $scope.sessoes[key] = $scope.sessao; } }); } var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: obj.cdpagina, secoes: null } }; dataJson.data.secoes = $scope.sessoes; // Salvar Formulario Sessão RequestService.request('POST', '/formularioSecao/salvar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(200, $rootScope.const.SESSAO_SALVA_COM_SUCESSO, function() { $timeout(function() { var nomemodal = "#modalGerir" + obj.template + "Novo"; Utils.mantemModal(nomemodal, false); $timeout(function() { Utils.mantemModal("#modalGerir" + obj.template, true); $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); form.$setPristine(); }, 500); }, 500); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; // Excluir Ficheiro Anexo $scope.ficheiroAnexoExcluir = function(anexo, index) { AlertaService.confirmar('Confirma Excluir Ficheiro ?', function(acao) { if (acao) { $timeout(function() { if (anexo.cdAnexoPortalItem) { $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].contentUrlARemover = "S"; } else { $scope.sessao.anexoPortalList[0].anexoPortalItemList.splice(index, 1); } }, 100); } }); }; // Buscar Sessoes de Documentos /* * * Manter Paginacao * */ $scope.dataJson = {} $scope.submitListarDocumentos = function(form) { if (form.$valid) { $scope.paginaAtual = 1; $scope.paginarRegistos(true); } } //Paginação $scope.paginaAtual = 1; $scope.quantidadeTotalItens = 0 $scope.paginacaoQtdRegistros = 10; $scope.paginacaoArray = [10, 20, 50, 100]; $scope.q = ''; // Paginar Sessoes $scope.paginarRegistos = function(loading) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: obj.cdpagina, titulo: null, paginaAtual: $scope.paginaAtual, qtdPaginas: $scope.paginacaoQtdRegistros, ordenacao: "nuOrdem DESC" } }; RequestService.request('POST', '/formularioSecao/listarPaginado', dataJson, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.sessoes = (resp.data.secoes) ? resp.data.secoes : []; $scope.quantidadeTotalItens = resp.quantidadeTotalItens; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } // Atualizar Label da Seção $scope.initEditarOrdem = function(form, sessao, index) { form.$setPristine(); sessao.editando = !sessao.editando; if (sessao.editando) { $timeout(function() { angular.element('#inputEditarOrdem_' + index).focus(); }, 100); } } $scope.editarOrdem = function(form, item) { if (form.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: obj.cdpagina, secoes: [item] } }; RequestService.request('POST', '/formularioSecao/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } } }); 'use strict'; app.component('formulariosSessaoView', { templateUrl: 'app/partials/formularios-sessao-view.html', controller: function($rootScope, $scope, $timeout, $state, $window, RequestService, AlertaService, StorageService) { $rootScope.$on('broadcastHomeReceiver', function(event, args) { $timeout(function() { $scope.init(); }, 1000); }); $scope.init = function() { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: $state.current.cdMenu, titulo: null, paginaAtual: 1, qtdPaginas: 10, ordenacao: "nuOrdem" } } $scope.quantidadeTotalItens = 0; $scope.paginarRegistos(); }; // Paginar Sessoes $scope.paginarRegistos = function() { $scope.quantidadeTotalItens = 0; $scope.sessoes = []; RequestService.request('POST', '/formularioSecao/listarPaginado', $scope.dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.sessoes = resp.data.secoes; $scope.quantidadeTotalItens = resp.quantidadeTotalItens; $window.scrollTo(0, 0); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } }); 'use strict'; app.component('newslatterSessaoCrud', { templateUrl: 'app/partials/newslatter-crud.html', bindings: { template: '=', label: '@', imgCrop: '=', cdpagina: '=' }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService, Utils) { // Atributos var obj = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); //console.log($scope.utilizador); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Limpar Formulario e Carregar Lista this.$onInit = function($event) { $(document).on('shown.bs.modal', '#modalGerir' + obj.template, function() { $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerir' + obj.template + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerir' + obj.template + 'Novo', function() { $scope.exibirForm = true; }); } // Ficheiros Permitidos $scope.extensoesPermitidas = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'jpg', 'png', 'zip', 'rar']; $scope.tamanhoFicheiro = 10; $scope.extensoesImagensPermitidas = ['jpg', 'jpeg', 'png']; $scope.tamanhoImagemFicheiro = 1; // Ler o ficheiro selecionado no Navegador $scope.preUpload = function(anexo, index, parentIndex, $event) { if (angular.isDefined($event)) { if (angular.isUndefined($event.isTrigger)) { if ($event.target.files.length) { var ficheiro = $event.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].nome = ficheiro.name; $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].nomeFicheiro = angular.copy(ficheiro.name); $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].base64Anexo = reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''); $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].extensao = ficheiro.extensao[ficheiro.extensao.length - 1]; $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].mimeType = ficheiro.type; } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } } } }; /* * * Manter Nova Sessao * */ $scope.dataAgora = moment().format("YYYY-MM-DD"); $scope.initSessao = { cdPublicacao: null, titulo: null, descricao: null, dtinicial: null, nuOrdem: null, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, cdPublicacao: null, cdQuemEQuem: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, url: null, videoUrl: null, ficheiroUrl: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: "N", contentId: null, nuOrdem: 1, }, { cdAnexoPortalItem: null, nome: null, url: null, videoUrl: null, ficheiroUrl: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: "N", contentId: null, nuOrdem: 2, } ] }] }; $scope.sessao = angular.copy($scope.initSessao); $scope.novaSessaoInit = function() { $scope.sessao = angular.copy($scope.initSessao); }; $scope.editarFormularioSessao = function(sessao) { $scope.sessao = angular.copy(sessao); }; $scope.addFicheiroInput = function() { var novo = { cdAnexoPortalItem: null, nome: null, url: null, videoUrl: null, ficheiroUrl: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: "N", contentId: null, excluir: false, nuOrdem: parseInt($scope.sessao.anexoPortalList[0].anexoPortalItemList.slice(-1)[0].nuOrdem) + 1 }; $scope.sessao.anexoPortalList[0].anexoPortalItemList.push(novo); }; $scope.verificarFicheiroObrigatorio = function(list) { var cont = 0; if (list.length > 0) { angular.forEach(list, function(obj, key) { if (!obj.nome && obj.contentUrlARemover != "S") { cont++; } }); } return (cont > 0) ? false : true; }; $scope.excluirFormularioSessao = function(fomulario) { AlertaService.confirmar($rootScope.const.CONFIRMA_EXCLUIR_SESSAO, function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: fomulario.cdPublicacao } }; RequestService.request('DELETE', '/formularioSecao/remover', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $timeout(function() { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); }, 500); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; $scope.nomeFicheiro = function(anexo) { if (anexo.url && !anexo.nomeFicheiro) { var url = anexo.url.split('/'); return url[url.length - 1]; } else if (anexo.url && !anexo.nome) { var url = anexo.url.split('/'); return url[url.length - 1]; } else if (anexo.nomeFicheiro) { return anexo.nomeFicheiro; } else if (anexo.nome) { return anexo.nome; } else { return "Seleccionar Ficheiro..."; } } // Submit do Form $scope.manterFomularioSessao = function(form) { if (form.$valid && form.$submitted && $scope.verificarFicheiroObrigatorio($scope.sessao.anexoPortalList[0].anexoPortalItemList)) { if (!$scope.sessao.cdPublicacao) { $scope.sessoes.push($scope.sessao); } else { angular.forEach($scope.sessoes, function(sessao, key) { if (sessao.cdPublicacao == $scope.sessao.cdPublicacao) { $scope.sessoes[key] = $scope.sessao; } }); } var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: obj.cdpagina, secoes: null } }; dataJson.data.secoes = $scope.sessoes; // Salvar Formulario Sessão RequestService.request('POST', '/formularioSecao/salvar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(200, $rootScope.const.SESSAO_SALVA_COM_SUCESSO, function() { $timeout(function() { var nomemodal = "#modalGerir" + obj.template + "Novo"; Utils.mantemModal(nomemodal, false); $timeout(function() { Utils.mantemModal("#modalGerir" + obj.template, true); $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); form.$setPristine(); }, 500); }, 500); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; // Excluir Ficheiro Anexo $scope.ficheiroAnexoExcluir = function(anexo, index) { AlertaService.confirmar('Confirma Excluir Ficheiro ?', function(acao) { if (acao) { $timeout(function() { if (anexo.cdAnexoPortalItem) { $scope.sessao.anexoPortalList[0].anexoPortalItemList[index].contentUrlARemover = "S"; } else { $scope.sessao.anexoPortalList[0].anexoPortalItemList.splice(index, 1); } }, 100); } }); }; // Buscar Sessoes de Documentos /* * * Manter Paginacao * */ $scope.dataJson = {} $scope.submitListarDocumentos = function(form) { if (form.$valid) { $scope.paginaAtual = 1; $scope.paginarRegistos(true); } } //Paginação $scope.paginaAtual = 1; $scope.quantidadeTotalItens = 0 $scope.paginacaoQtdRegistros = 10; $scope.paginacaoArray = [10, 20, 50, 100]; $scope.q = ''; // Paginar Sessoes $scope.paginarRegistos = function(loading) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: obj.cdpagina, titulo: null, paginaAtual: $scope.paginaAtual, qtdPaginas: $scope.paginacaoQtdRegistros, ordenacao: "nuOrdem DESC" } }; RequestService.request('POST', '/formularioSecao/listarPaginado', dataJson, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.sessoes = (resp.data.secoes) ? resp.data.secoes : []; $scope.quantidadeTotalItens = resp.quantidadeTotalItens; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } // Atualizar Label da Seção $scope.initEditarOrdem = function(form, sessao, index) { form.$setPristine(); sessao.editando = !sessao.editando; if (sessao.editando) { $timeout(function() { angular.element('#inputEditarOrdem_' + index).focus(); }, 100); } } $scope.editarOrdem = function(form, item) { if (form.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: obj.cdpagina, secoes: [item] } }; RequestService.request('POST', '/formularioSecao/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } } }); 'use strict'; app.component('newslatterView', { templateUrl: 'app/partials/newslatter-view.html', controller: function ($rootScope, $scope, $timeout, $state, $sce, $window, RequestService, AlertaService, StorageService) { $rootScope.$on('broadcastHomeReceiver', function (event, args) { $timeout(function () { $scope.init(); }, 1000); }); //Paginação $scope.paginaAtual = 1; $scope.quantidadeTotalItens = 0 $scope.paginacaoQtdRegistros = 10; $scope.paginacaoArray = [10, 20, 50, 100]; $scope.q = ''; $scope.cdMenuNew = $rootScope.getState('noticias-e-media.diplonews').cdMenu; $scope.init = function () { $scope.pegarDados = function (dados) { $scope.descricaoVideo = dados; } $scope.currentFile = null; $scope.trustSrc = function (src) { return $sce.trustAsResourceUrl(src); } $scope.getFilePdf = async function (fileUrl) { AlertaService.showProgressAlert(); $scope.clearPdfInIframe(); $scope.currentFile = null; await fetch(fileUrl, { mode: 'cors', method: 'GET' }) .then(response => response.blob()) .then(blob => { AlertaService.closeProgressAlert(); $scope.loadPdfInIframe(blob); }).catch(error => { console.error('Erro:', error) AlertaService.showMensagemRetorno("Erro ao fazer o download do ficheiro. Tente novamente mais"); }); } $scope.loadPdfInIframe = function (blob) { const url = window.URL.createObjectURL(blob); const iframe = document.getElementById('iframeModalNewsLatter'); iframe.src = url; window.URL.revokeObjectURL(url); } $scope.clearPdfInIframe = function () { const iframe = document.getElementById('iframeModalNewsLatter'); iframe.src = ''; } $scope.qtdPaginas = 9; $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: $scope.cdMenuNew, titulo: null, paginaAtual: $scope.paginaAtual, qtdPaginas: 9, ordenacao: "nuOrdem DESC" } } $scope.quantidadeTotalItens = 0; $scope.paginarRegistos(); }; // Paginar Sessoes $scope.paginarRegistos = function (loading) { $scope.quantidadeTotalItens = 0; $scope.diplonews = []; $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: $scope.cdMenuNew, titulo: null, paginaAtual: $scope.paginaAtual, qtdPaginas: 9, ordenacao: "nuOrdem DESC" } } RequestService.request('POST', '/formularioSecao/listarPaginado', $scope.dataJson, loading, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.diplonews = resp.data; $scope.quantidadeTotalItens = resp.quantidadeTotalItens; $window.scrollTo(0, 0); AlertaService.closeProgressAlert(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } }); app.component('quemEQuemCrud', { templateUrl: 'app/partials/quem-e-quem-crud.html', bindings: { label: '<', template: '<' }, controller: function($rootScope, $timeout, RequestService, StorageService, AlertaService) { // Limpar Formulario e Carregar Lista var ctrl = this; // BroadCast para atualizar a Home $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { ctrl.initUtilizador(false); }); // Iniciar componente this.$onInit = function($event) { ctrl.initUtilizador(); // Ficheiros Permitidos ctrl.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; ctrl.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros ctrl.editorImageUpload = {}; // Tiny Editor ctrl.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 200, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', nowrap: false }; // Toggle Form Area Colocacao ctrl.exibirFormAreaColocacao = false; }; // Initializar Utilizador ctrl.initUtilizador = function(pesquisar) { ctrl.utilizador = StorageService.get('utilizadorLogado'); if (pesquisar) { ctrl.paginarRegistos(false); } }; // Resetar Elementos e Formulário de busca ctrl.init = function(pesquisar) { ctrl.registos = []; if (pesquisar) { ctrl.paginarRegistos(true); } }; // Pesquisar ctrl.paginarRegistos = function(loading) { loading = loading ? loading : false; RequestService.request('GET', '/quemEQuem/listar/' + RequestService.portalConfig.portalAPI, null, loading, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { if (loading) { AlertaService.closeProgressAlert(); } ctrl.registos = resp.data; } } else { AlertaService.erroRede(); } }); } // Inserir / Atualizar ctrl.salvarQuemEQuem = function(form, loading) { if (form.$valid) { RequestService.request('POST', '/quemEQuem/salvar', ctrl.dataJson, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { if (loading) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { ctrl.registo(null, resp.data); ctrl.paginarRegistos(false); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { ctrl.registo(null, resp.data); ctrl.paginarRegistos(false); $rootScope.$broadcast('broadcastHomeReceiver'); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } // Initializar um novo Registo ctrl.registo = function(form, registo) { if (form) { form.$setPristine(); } ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI } if (registo) { ctrl.dataJson.data = angular.copy(registo); } else { ctrl.dataJson.data = { cdQuemEQuem: null, dsPortal: RequestService.portalConfig.portalAPI, regimeCarreira: null, cdAreaColocacao: null, areaColocacaoItem: null, endereco: ".", filiacao: ".", nacionalidade: null, naturalidade: null, noQuemEQuem: null, quemEQuemItemList: [], anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, cdPublicacao: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, url: null, base64Anexo: null, mimeType: null, extensao: null, contentUrlARemover: null }] }] } ctrl.adicionarFormacao(); } // Popular lista de Área de Colocação RequestService.request('GET', '/quemEQuem/listar/area-colocacao/' + RequestService.portalConfig.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.areaColocacaoList = resp.data; if (registo) { ctrl.dataJson.data.cdAreaColocacao = ctrl.dataJson.data.areaColocacaoItem.areaColocacaoDTO.cdAreaColocacao; ctrl.atualizarSelectPosicao(false); } } } else { AlertaService.erroRede(); } }); ctrl.listarRegimeCarreira(function(resp) { if (resp) { ctrl.regimeDeCarreiraList = resp.data; } }); }; // Popular lista de Regime de Carreira ctrl.listarRegimeCarreira = function(callback) { RequestService.request('GET', '/quemEQuem/listar/regime-carreira/' + RequestService.portalConfig.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { callback(resp); } } else { AlertaService.erroRede(); } }); } ctrl.atualizarSelectPosicao = function(loading) { if (ctrl.dataJson.data.cdAreaColocacao) { RequestService.request('GET', '/quemEQuem/listar/area-colocacao-item/' + RequestService.portalConfig.portalAPI + '/' + ctrl.dataJson.data.cdAreaColocacao, null, loading, function(resp) { if (resp) { if (loading) { AlertaService.closeProgressAlert(); } if (resp.retorno.codigo == 200) { ctrl.areaColocacaoListItem = resp.data; } } else { AlertaService.erroRede(); } }); } }; ctrl.adicionarFormacao = function() { ctrl.dataJson.data.quemEQuemItemList.push({ cdQuemEQuemItem: null, dsQuemEQuemItem: null, noQuemEQuemItem: null }); }; ctrl.removerFormacao = function(index) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { $timeout(function() { ctrl.dataJson.data.quemEQuemItemList.splice(index, 1); }, 200); } }); }; // Remover Item ctrl.remover = function(registo) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdQuemEQuem: registo.cdQuemEQuem } }; RequestService.request('DELETE', '/quemEQuem/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(false); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Atualizar Label da Seção ctrl.initEditarLabelAreaColocacao = function(form, item) { form.$setPristine(); item.area.editando = !item.area.editando; } ctrl.editarLabel = function(form, item) { if (form.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacao: item.area.cdAreaColocacao, dsAreaColocacao: item.area.dsAreaColocacao, nuOrdem: item.area.nuOrdem } } RequestService.request('POST', '/quemEQuem/salvar/area-colocacao', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(false); item.editando = false; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } // Atualizar Label da Seção ctrl.initEditarOrdem = function(form, item, parentIndex, index) { form.$setPristine(); item.editando = !item.editando; if (item.editando) { $timeout(function() { angular.element('#inputEditarOrdem_' + parentIndex + '_' + index).focus(); }, 200); } } ctrl.editarOrdem = function(form, item) { if (form.$valid) { ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } ctrl.salvarQuemEQuem(form, false); } } // Area Colocação ctrl.initAreaColocacao = function(form) { form.$setPristine(); ctrl.exibirFormAreaColocacao = !ctrl.exibirFormAreaColocacao; ctrl.novaAreaColocacao = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacao: null, dsAreaColocacao: null, nuOrdem: null } } } ctrl.adicionarArea = function(form) { if (form.$valid) { RequestService.request('POST', '/quemEQuem/salvar/area-colocacao', ctrl.novaAreaColocacao, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(true); ctrl.exibirFormAreaColocacao = !ctrl.exibirFormAreaColocacao; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.excluirAreaColocacao = function(item) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacao: item.area.cdAreaColocacao } }; RequestService.request('DELETE', '/quemEQuem/remover/area-colocacao', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(false); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } ctrl.initGerirPosicoes = function(item) { item.exibirGerirPosicao = !item.exibirGerirPosicao; if (item.exibirGerirPosicao) { RequestService.request('GET', '/quemEQuem/listar/area-colocacao-item/' + RequestService.portalConfig.portalAPI + '/' + item.area.cdAreaColocacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); item.listarAreaPosicoes = resp.data; if (!resp.data.length) { item.adicionandoPosicao = true; } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.removerPosicao = function(posicao, item, index) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacaoItem: posicao.cdAreaColocacaoItem } }; RequestService.request('DELETE', '/quemEQuem/remover/area-colocacao-item', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $timeout(function() { item.listarAreaPosicoes.splice(index, 1); if (!item.listarAreaPosicoes.length) { item.exibirGerirPosicao = false; item.area.temFilho = false; } AlertaService.closeProgressAlert(); }, 200); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } ctrl.initEditarPosicao = function(form, posicao, item, novo) { form.$setPristine(); ctrl.editarPosicao = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacaoItem: posicao ? posicao.cdAreaColocacaoItem : null, dsAreaColocacaoItem: posicao ? posicao.dsAreaColocacaoItem : null, areaColocacaoDTO: { cdAreaColocacao: item.area.cdAreaColocacao, dsAreaColocacao: item.area.dsAreaColocacao, nuOrdem: item.area.nuOrdem } } } angular.forEach(item.listarAreaPosicoes, function(p) { if (posicao) { if (posicao.cdAreaColocacaoItem == p.cdAreaColocacaoItem) { p.editando = !posicao.editando; item.adicionandoPosicao = false; if (p.editando) { $timeout(function() { angular.element('#inputEditarPosicaoLabel_' + p.cdAreaColocacaoItem).focus(); }, 200); } } else { p.editando = false; } } else { p.editando = false; } }); if (angular.isDefined(novo)) { item.adicionandoPosicao = novo; } } ctrl.formSubmitPosicaoDescricao = function(form, item) { if (form.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAreaColocacaoItem: ctrl.editarPosicao.data.cdAreaColocacaoItem ? ctrl.editarPosicao.data.cdAreaColocacaoItem : null, dsAreaColocacaoItem: ctrl.editarPosicao.data.dsAreaColocacaoItem, areaColocacaoDTO: { cdAreaColocacao: item.area.cdAreaColocacao, dsAreaColocacao: item.area.dsAreaColocacao, nuOrdem: item.area.nuOrdem } } } RequestService.request('POST', '/quemEQuem/salvar/area-colocacao-item', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); item.exibirGerirPosicao = false; item.area.temFilho = true; ctrl.initGerirPosicoes(item); if (item.adicionandoPosicao) { ctrl.initEditarPosicao(form, null, item, true); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.initCargoCarreira = function() { ctrl.listarRegimeCarreira(function(resp) { if (resp) { ctrl.listarCargoCarreira = resp.data; } }); }; ctrl.initEditarCargoCarreira = function(form, cargo) { form.$setPristine(); ctrl.cargoCarreira = { portal: RequestService.portalConfig.portalAPI, data: { cdRegimeCarreira: cargo ? cargo.cdRegimeCarreira : null, cargo: cargo ? cargo.cargo : null, dsPortal: RequestService.portalConfig.portalAPI, flQeq: "S", nivel: { sigla: "CEN", descricao: "CEN", detalhe: "Nivel Central", dominio: "QV_NIVEL" }, nuVagas: 0, posto: { sigla: "CAR", descricao: "CAR", detalhe: "Titulares de Cargos de Direcção e Chefia", dominio: "QV_POSTO" }, regime: { sigla: "GER", descricao: "GER", detalhe: "Utilizador Geral", dominio: "TP_PERFIL" }, subposto: null } } angular.forEach(ctrl.listarCargoCarreira, function(c) { if (cargo) { if (c.cdRegimeCarreira == cargo.cdRegimeCarreira) { cargo.editando = !cargo.editando; } else { c.editando = false; } ctrl.exibirFormCargo = false; } else { c.editando = false; } }); if (!cargo) { ctrl.exibirFormCargo = !ctrl.exibirFormCargo; } else { $timeout(function() { angular.element('#inputEditarCargo_' + cargo.cdRegimeCarreira).focus(); }, 200); } } ctrl.editarCargoCarreira = function(form, cargo) { if (form.$valid) { RequestService.request('POST', '/quemEQuem/salvar/regime-carreira', ctrl.cargoCarreira, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); if (cargo) { cargo.editando = false; ctrl.initCargoCarreira(); } else { ctrl.initEditarCargoCarreira(form); ctrl.exibirFormCargo = false; ctrl.initCargoCarreira(); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.removerCargoCarreira = function(cargo, index) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdRegimeCarreira: cargo.cdRegimeCarreira } } RequestService.request('DELETE', '/quemEQuem/remover/regime-carreira', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $timeout(function() { ctrl.listarCargoCarreira.splice(index, 1); }, 200); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); } ctrl.toggleActivo = function(form, pessoa) { pessoa.flAtivo = ctrl.flAtivoSNull(pessoa) ? 'S' : 'N'; ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI, data: pessoa } ctrl.salvarQuemEQuem(form, false); } ctrl.flAtivoSNull = function(pessoa) { return pessoa.flAtivo == 'N' || pessoa.flAtivo == null; } } }); 'use strict'; app.component('pesquisaView', { templateUrl: 'app/partials/pesquisa.html', controller: function($timeout, $state, RequestService, AlertaService, Slug) { // Controller var ctrl = this; this.$onInit = function($event) { ctrl.init(); $(document).on('show.bs.modal', '#modalPesquisar', function() { $timeout(function() { $('.input-pesquisa').focus(); }, 300); }); } // Resetar Elementos e Formulário de busca ctrl.init = function(form) { if (form) { form.$setPristine(); } ctrl.filterPesquisa = { pesquisarTexto: null, paginacaoQtdRegistros: 5, resultados: [] }; ctrl.paginaAtual = 1; } ctrl.retornaLinkOrigem = function(resultado) { var linkResultado = { href: null, descricao: resultado.descricao ? resultado.descricao : null }; switch (resultado.flOrigem) { case 'PUBLICACAO': switch (resultado.noTemplate) { case 'TP_PUBLICACAO': linkResultado.href = $state.href('sala-de-imprensa.noticias.cdPublicacao', { cdPublicacao: resultado.codigo, slug: Slug.slugify(resultado.titulo) }, { absolute: true }); break; case 'TP_ANEXO_PUBLICACAO': linkResultado.href = $state.href('home', { cdPublicacao: resultado.codigo, slug: Slug.slugify(resultado.titulo) }, { absolute: true }); break; default: break; } break; case 'LINKS_UTEIS': linkResultado.href = resultado.descricao; break; case 'AGENDA_EVENTO': linkResultado.href = $state.href('sala-de-imprensa.eventos.evento', { cdPublicacao: resultado.codigo, slug: Slug.slugify(resultado.titulo) }, { absolute: true }); break; case 'MENU': linkResultado.href = $state.href(resultado.state, {}, { absolute: true }); try { linkResultado.descricao = $state.get(resultado.state).ncyBreadcrumb.label; } catch (error) { linkResultado.descricao = linkResultado.href; } break; case 'PERGUNTA_FREQUENTE': linkResultado.href = $state.href('perguntas-frequentes', {}, { absolute: true }); break; case 'QUEM_E_QUEM': linkResultado.href = $state.href('ugd.quem-e-quem', {}, { absolute: true }); break; default: break; } return linkResultado; }; ctrl.submitPesquisarConteudo = function(form) { if (form.$valid) { ctrl.paginaAtual = 1; ctrl.pesquisarConteudo(); } } // Submit do Form ctrl.pesquisarConteudo = function() { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { texto: ctrl.filterPesquisa.pesquisarTexto, paginaAtual: ctrl.paginaAtual, qtdPaginas: ctrl.filterPesquisa.paginacaoQtdRegistros } } RequestService.request('POST', '/pesquisar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); ctrl.filterPesquisa.resultados = resp; ctrl.pristineRequest = false; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); }; ctrl.fecharModal = function(e) { $('.modal.in').modal('hide'); }; // Numero de Paginas ctrl.numeroDePaginas = function() { if (angular.isDefined(ctrl.filterPesquisa.resultados)) { if (angular.isDefined(ctrl.filterPesquisa.resultados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil(ctrl.filterPesquisa.resultados.quantidadeTotalItens / ctrl.filterPesquisa.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } } // Numero de Paginas ctrl.setarPaginaAtual = function(index) { ctrl.paginaAtual = index; ctrl.paginarRegistos(true); } // Numero de Paginas ctrl.setarRegistosPorPagina = function(index) { ctrl.filterPesquisa.paginacaoQtdRegistros = index.paginacaoQtdRegistros; ctrl.paginarRegistos(true); } } }); app.component('menuCrud', { transclude: true, retrict: 'E', templateUrl: 'app/partials/menu-crud.html', bindings: { label: '<', template: '<' }, controller: function($rootScope, $filter, $timeout, RequestService, StorageService, AlertaService, dynamicStates, UploadService) { // Limpar Formulario e Carregar Lista var ctrl = this; // BroadCast para atualizar a Home $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { ctrl.initUtilizador(true); }); // Iniciar componente this.$onInit = function($event) { ctrl.initUtilizador(); // Ficheiros Permitidos ctrl.extensoesPermitidasImagens = 'jpg,jpeg,png,gif,svg'; ctrl.tamanhoFicheiroImagem = 1; } // Initializar Utilizador ctrl.initUtilizador = function() { ctrl.utilizador = StorageService.get('utilizadorLogado'); } // Resetar Elementos e Formulário de busca ctrl.init = function(pesquisar) { // Carregar menus if (pesquisar) { RequestService.request('GET', '/menu/listar/' + RequestService.portalConfig.portalAPI, null, true, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { ctrl.menuPrincipal = resp.data.menuItemList; } } else { AlertaService.erroRede(); } }); } } // Novo Item no Menu ctrl.novoItem = function(menuItem, principal) { var nuOrdem = principal ? ctrl.menuPrincipal[ctrl.menuPrincipal.length - 1].nuOrdem + 1 : (menuItem.subPaginas ? menuItem.subPaginas.length + 1 : 1); var subMenu = { displayName: "Novo Menu " + nuOrdem, url: null, state: null, cdMenu: null, contentID: null, nuOrdem: nuOrdem, dsMenu: null, flAtivo: "N", subPaginas: null } subMenu.state = principal ? $filter('slugify')(subMenu.displayName) : menuItem.state + '.' + $filter('slugify')(subMenu.displayName); subMenu.url = '/' + $filter('slugify')(subMenu.displayName); if (principal) { menuItem.push(subMenu); } else { if (!menuItem.subPaginas) { menuItem.subPaginas = []; } menuItem.subPaginas.push(subMenu); } } // Remover menu não gravado ctrl.removerItem = function(menuItem, parent, index) { if (menuItem.cdMenu) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: menuItem.cdMenu } } RequestService.request('POST', '/menu/removerMenu', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $timeout(function() { AlertaService.closeProgressAlert(); try { parent.$parent.$parent.$parent.menuItem.subPaginas.splice(index, 1); } catch (error) { ctrl.menuPrincipal.splice(index, 1); } }, 200); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } else { $timeout(function() { try { parent.$parent.$parent.$parent.menuItem.subPaginas.splice(index, 1); } catch (error) { ctrl.menuPrincipal.splice(index, 1); } }, 200); } } ctrl.salvarMenu = function(menu) { if (menu.$valid) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { menu: ctrl.menuPrincipal } } RequestService.request('POST', '/menu/salvar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { ctrl.atualizarRotas(function() { $rootScope.$broadcast('broadcastHomeReceiver'); }); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } ctrl.atualizarRotas = function(callback) { RequestService.request('GET', '/menu/listar/' + RequestService.portalConfig.portalAPI, null, null, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.menu = resp.data.menuItemList; $rootScope.contactos = resp.data.contactos; ctrl.menuPrincipal = resp.data.menuItemList; dynamicStates.fetchRoutes(resp.data.menuItemList); AlertaService.closeProgressAlert(); if (callback) { callback(); } } } else { AlertaService.erroRede(); } }); } ctrl.preUpload = function(anexo, $event) { UploadService.preUpload(anexo, ctrl.extensoesPermitidasImagens, ctrl.tamanhoFicheiroImagem, $event); }; ctrl.extensoesPermitidasMap = function(extensoesPermitidas) { if (extensoesPermitidas) { return UploadService.extensoesPermitidasMap(extensoesPermitidas.split(',')); } }; ctrl.resetarAnexo = function(item, campo) { item.ficheiro = null; campo.$setPristine(); if (campo.$$attr.id) { angular.element('#' + campo.$$attr.id).val(null); } }; ctrl.removerUrl = function(item) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { $timeout(function() { item.logoContentID = null; }, 100); } }) }; } }); app.component('publicacoesCrud', { templateUrl: 'app/partials/publicacoes-crud.html', bindings: { label: '<', template: '<' }, controller: function($rootScope, $timeout, $filter, RequestService, StorageService, AlertaService, UtilizadorService, Utils) { // Limpar Formulario e Carregar Lista var ctrl = this; // BroadCast para atualizar a Home $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { ctrl.initUtilizador(true); }); // Iniciar componente this.$onInit = function($event) { ctrl.initUtilizador(false); // Ficheiros Permitidos ctrl.extensoesPermitidasImagens = ['pdf','jpg', 'jpeg', 'png']; ctrl.tamanhoFicheiroImagem = 10; // Tiny Editor Ficheiros ctrl.editorImageUpload = {}; // Tiny Editor ctrl.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 300, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | image media | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', image_dimensions: false, image_description: false, nowrap: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImageUpload-' + $filter('slugify')(ctrl.label.plural)); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { var ficheiro = evento.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if (ctrl.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > ctrl.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { input.val(''); callback(reader.result, { title: ficheiro.name }); } } reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; } // Initializar Utilizador ctrl.initUtilizador = function(init) { ctrl.utilizador = StorageService.get('utilizadorLogado'); ctrl.administrador = false; ctrl.gestor = false; ctrl.publicador = false; ctrl.redator = false; ctrl.revisor = false; ctrl.editor = false; if (ctrl.utilizador) { ctrl.administrador = Utils.validaPermissao("administrador", ctrl.utilizador.grupos); ctrl.gestor = Utils.validaPermissao("gestor", ctrl.utilizador.grupos); ctrl.publicador = Utils.validaPermissao("publicador", ctrl.utilizador.grupos); ctrl.redator = Utils.validaPermissao("redator", ctrl.utilizador.grupos); ctrl.revisor = Utils.validaPermissao("revisor", ctrl.utilizador.grupos); ctrl.editor = Utils.validaPermissao("editor", ctrl.utilizador.grupos); if (init) { ctrl.init(null, ctrl.utilizador.gestor); } } } // Resetar Elementos e Formulário de busca ctrl.init = function(form, pesquisar) { if (form) { form.$setPristine(); } ctrl.publicacaoPesquisar = { portal: RequestService.portalConfig.portalAPI, flDestaque: null, tipo: { dominio: ctrl.template.dominio, sigla: ctrl.template.sigla }, status: null, statusTipos: { AREV: 'Aguardando Revisão', CRIA: 'Criada', PUB: 'Publicada', REV: 'Revisado', RPUB: 'Reprovada Publicador', RREV: 'Reprovada Revisor' }, titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 5, paginacaoArray: [5, 10, 15, 20], quantidadeTotalItens: 0 } ctrl.itensPaginados = null; if (pesquisar) { ctrl.pesquisarPublicacao(false); } } ctrl.validaEditar = function(status) { var habilitado = false; if (status == "CRIA" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "RREV" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (ctrl.administrador) { habilitado = true; } //((editor || redator || gestor|| administrador || publicador || revisor) && (item.flStatusPublicacao.sigla == 'CRIA' || item.flStatusPublicacao.sigla == 'RREV' || item.flStatusPublicacao.sigla == 'REV' || item.flStatusPublicacao.sigla == 'PUB' || item.flStatusPublicacao.sigla == 'AREV' || item.flStatusPublicacao.sigla == 'RPUB')) return habilitado; }; ctrl.validaVisualizar = function(status) { var habilitado = false; if (status == "AREV" && (ctrl.editor || ctrl.redator || ctrl.revisor || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "RPUB" && (ctrl.revisor || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "REV" && (ctrl.publicador || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "PUB" && (ctrl.publicador || ctrl.editor || ctrl.redator || ctrl.revisor || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "CRIA" && (ctrl.revisor || ctrl.publicador || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "RREV" && (ctrl.revisor || ctrl.publicador || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "REV" && (ctrl.revisor || ctrl.publicador || ctrl.gestor || ctrl.administrador)) { habilitado = true; } return habilitado; }; // Buscar Publicações via Formulário ctrl.formPublicacaoPesquisarSubmit = function(form) { if (form.$valid) { ctrl.publicacaoPesquisar.paginaAtual = 1; $timeout(function() { ctrl.pesquisarPublicacao(); }); } } // Pesquisar Publicações ctrl.pesquisarPublicacao = function() { ctrl.publicacaoPesquisar.quantidadeTotalItens = 0; RequestService.request('POST', '/publicacao/listar/', ctrl.publicacaoPesquisar, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.itensPaginados = resp; ctrl.publicacaoPesquisar.quantidadeTotalItens = ctrl.itensPaginados.quantidadeTotalItens; AlertaService.closeProgressAlert(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } // Novo Objeto ctrl.setObj = function(form) { if (form) { form.$setPristine(); } ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdPublicacao: null, descricao: null, dtFim: null, dtInicio: null, flStatusPublicacao: { sigla: "CRIA", descricao: "CRIA", detalhe: "Criada", dominio: "FL_STATUS_PUBLICACAO" }, sumario: null, titulo: null, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], templatePublicacao: { cdTemplatePublicacao: null, dsTemplate: null, flAtivo: null, noTemplate: null, token: null, cgRefCodes: { sigla: ctrl.template.sigla, descricao: null, detalhe: null, dominio: ctrl.template.dominio }, publicacaoList: null, anexoPortalList: null }, dsPortal: RequestService.portalConfig.portalAPI, flDestaque: null, autor: null, dtCriacao: null, observacao: null, idAnexo: null, idImagem: null, filePath: null, urlImagemContent: null } } } // Salvar / Editar Noticia ctrl.salvarNoticia = function(form) { if (form.$valid && form.$submitted) { if (ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo) { ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo.substr(ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo.indexOf(',') + 1).replace(/ /g, ''); } ctrl.dataJson.data.dtInicio = moment(ctrl.dataJson.data.dtInicio, "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'); ctrl.dataJson.data.dtFim = moment(ctrl.dataJson.data.dtFim, "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'); ctrl.dataJson.portal = RequestService.portalConfig.portalAPI; // Submeter para a API RequestService.request('POST', '/publicacao/salvar', ctrl.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { ctrl.pesquisarPublicacao(); $timeout(function() { ctrl.dataJson = { data: resp.data }; ctrl.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); ctrl.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } // Excluir Imagem ao Editar ctrl.excluirAnexo = function() { ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; ctrl.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; } // Noticia por Id ctrl.editar = function(item, form) { if (form) { form.$setPristine(); } RequestService.request('GET', '/noticia/buscar/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); ctrl.dataJson = { data: resp.data }; ctrl.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); ctrl.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; // Excluir Noticia ctrl.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { RequestService.request('DELETE', '/publicacao/remover/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.pesquisarPublicacao(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Noticia por Id ctrl.visualizar = function(item) { ctrl.noticiaVisualizada = null; RequestService.request('GET', '/publicacao/buscar/' + item.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); ctrl.noticiaVisualizada = resp.data; ctrl.noticiaVisualizada.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); ctrl.noticiaVisualizada.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; // Modal Cancelar Noticia ctrl.selecionaMotivoNoticia = function(noticia, status, form) { ctrl.noticiaSelecionada = angular.copy(noticia); form.$setPristine(); ctrl.noticiaSelecionada.observacao = null; ctrl.motivoStatusSelecionado = status; Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), false); $timeout(function() { Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural) + "Observacao", true); }, 600); }; ctrl.limparMotivo = function() { ctrl.noticiaSelecionada = null; ctrl.motivoStatusSelecionado = null; }; ctrl.salvarMotivo = function(form) { if (form.$valid && form.$submitted) { ctrl.alterarStatusNoticia(ctrl.noticiaSelecionada, ctrl.motivoStatusSelecionado); } }; ctrl.alterarStatusNoticia = function(noticia, status) { AlertaService.confirmar($rootScope.const.CONFIRMA_OPERACAO, function(acao) { if (acao) { ctrl.dataJson = { data: angular.copy(noticia) }; ctrl.dataJson.data.flStatusPublicacao.sigla = status; ctrl.dataJson.data.flStatusPublicacao.descricao = status; ctrl.dataJson.data.flStatusPublicacao.detalhe = null; ctrl.dataJson.data.flStatusPublicacao.dominio = "FL_STATUS_PUBLICACAO"; if (!ctrl.noticiaSelecionada) { ctrl.dataJson.data.observacao = null; } ctrl.dataJson.portal = RequestService.portalConfig.portalAPI; // Submeter para a API RequestService.request('POST', '/publicacao/atualizar-situacao', ctrl.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { ctrl.pesquisarPublicacao(); $timeout(function() { ctrl.dataJson = { data: resp.data }; ctrl.dataJson.data.dtInicio = moment(resp.data.dtInicio, "DD-MM-YYYY").format('DD/MM/YYYY'); ctrl.dataJson.data.dtFim = moment(resp.data.dtFim, "DD-MM-YYYY").format('DD/MM/YYYY'); if (ctrl.noticiaSelecionada) { ctrl.noticiaSelecionada = null; ctrl.motivoStatusSelecionado = null; Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural) + "Observacao", false); $timeout(function() { Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), true); }, 500); } }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; } }); 'use strict'; app.component('publicidadeCrud', { templateUrl: 'app/partials/publicidade-crud.html', bindings: { tipo: '@', dimensoes: '@', titulo: '@', url: '=', activo: '=', }, controller: function($rootScope, $scope, $timeout, RequestService, AlertaService, StorageService, Utils) { var obj = this; // Limpar Formulario e Carregar Lista var ctrl = this; // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Objeto para Persistir $scope.dataJson = {}; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; //VARIAVEIS LINKS UTEIS $scope.linksUteiSelecionado; $scope.motivoStatusSelecionado; //inicializa component this.$onInit = function($event) { ctrl.initUtilizador(false); } // Limpar Formulario e Carregar Lista this.$onChanges = function($event) { $(document).on('shown.bs.modal', '#modalGerir' + obj.tipo, function() { //Paginação $scope.paginaAtual = 1; $scope.paginarRegistos(); }); $(document).on('hidden.bs.modal', '#modalGerir' + obj.tipo + 'Novo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerir' + obj.tipo + 'Novo', function() { $scope.exibirForm = true; }); } // Initializar Utilizador ctrl.initUtilizador = function(init) { ctrl.utilizador = StorageService.get('utilizadorLogado'); ctrl.administrador = false; ctrl.gestor = false; ctrl.publicador = false; ctrl.redator = false; ctrl.revisor = false; ctrl.editor = false; if (ctrl.utilizador) { ctrl.administrador = Utils.validaPermissao("administrador", ctrl.utilizador.grupos); ctrl.gestor = Utils.validaPermissao("gestor", ctrl.utilizador.grupos); ctrl.publicador = Utils.validaPermissao("publicador", ctrl.utilizador.grupos); ctrl.redator = Utils.validaPermissao("redator", ctrl.utilizador.grupos); ctrl.revisor = Utils.validaPermissao("revisor", ctrl.utilizador.grupos); ctrl.editor = Utils.validaPermissao("editor", ctrl.utilizador.grupos); if (init) { ctrl.init(null, ctrl.utilizador.gestor); } } } //validar sigla ctrl.validaEditar = function(status) { var habilitado = false; if (status == "CRIA" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (status == "RREV" && (ctrl.editor || ctrl.redator || ctrl.gestor || ctrl.administrador)) { habilitado = true; } else if (ctrl.administrador) { habilitado = true; } // console.log(status) //((editor || redator || gestor|| administrador || publicador || revisor) && (item.flStatusPublicacao.sigla == 'CRIA' || item.flStatusPublicacao.sigla == 'RREV' || item.flStatusPublicacao.sigla == 'REV' || item.flStatusPublicacao.sigla == 'PUB' || item.flStatusPublicacao.sigla == 'AREV' || item.flStatusPublicacao.sigla == 'RPUB')) return habilitado; }; // Ficheiros Permitidos $scope.extensoesPermitidas = ['jpg', 'jpeg', 'png', 'gif']; $scope.tamanhoFicheiro = 1; // Tiny Editor Config $scope.tinymceOptionsUpload = { paste_as_text: true, menubar: false, statusbar: false, //plugins: 'link image media table lists imagetools paste code', plugins: 'link image media table lists paste code', height: 200, toolbar: 'image', automatic_uploads: true, file_picker_types: 'image', fontsize_formats: '8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 20pt 21pt 22pt 23pt 24pt', image_title: false, image_description: false, image_dimensions: false, //imagetools_toolbar: 'editimage imageoptions', nowrap: false, readonly: false, setup: function(editor) { editor.on('load', function(e) { $(".mce-btn button").click(function() { $timeout(function() { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); $("input:last").focus(); } }, 100); }); }); }, file_picker_callback: function(callback, value, meta) { var input = angular.element('#editorImagemLink_' + obj.tipo); $timeout(function() { angular.element(input).click(); }, 200); input.on('change', function(evento) { $scope.ficheiroSelecionado = evento.target.files[0]; $scope.ficheiroSelecionado.extensao = $scope.ficheiroSelecionado.name.split('.'); var reader = new FileReader(); reader.readAsDataURL($scope.ficheiroSelecionado); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf($scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if ($scope.ficheiroSelecionado.size > $scope.tamanhoMaximoPermitido) { reader.onloadend = false; check.tamanho = false; Alertas.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { var base64 = reader.result; $scope.editorImageUpload = base64; input.val(''); callback(base64, { title: $scope.ficheiroSelecionado.name }); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; }); } }; // Cadastrar novo Link Útil $scope.novoLinkUtil = function(form) { if (form.$valid && form.$submitted) { if ($scope.editorImageUpload) { var base64 = $scope.editorImageUpload.substr($scope.editorImageUpload.indexOf(',') + 1).replace(/ /g, ''); try { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].nome = $scope.ficheiroSelecionado.name; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].mimeType = $scope.ficheiroSelecionado.type; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].extensao = $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1]; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].base64Anexo = base64 } catch (exception) { $scope.dataJson.data.anexoPortalList = [{ anexoPortalList: [{ nome: $scope.ficheiroSelecionado.name, mimeType: $scope.ficheiroSelecionado.type, extensao: $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1], base64: base64 }] }]; } } var dataJson = angular.copy($scope.dataJson); if (obj.tipo == 'IMGALT' && !$scope.dataJson.data.url) { dataJson.data.url = 'semurl'; } RequestService.request('POST', '/linksUteis/salvar', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); }); form.$setPristine(); if (!$scope.dataJson.data.cdLinksUteis) { form.$$element[0].reset(); } $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Cadastrar novo Link Útil $scope.toggleActivo = function(item) { $scope.toggle(item); var dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } RequestService.request('POST', '/linksUteis/salvar', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } $scope.toggle(item); } } else { AlertaService.erroRede(); $scope.toggle(item); } }); } $scope.toggle = function(item) { if (item.flAtivo == 'S') { item.flAtivo = 'N'; } else if (item.flAtivo == 'N') { item.flAtivo = 'S'; } return item; } // Excluir Video $scope.excluir = function(item, index) { AlertaService.confirmar('Excluir este Registo ?', function(acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdLinksUteis: item.cdLinksUteis } }; RequestService.request('DELETE', '/linksUteis/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Excluir Ficheiro Anexo $scope.excluirAnexo = function() { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; } // Obj Link $scope.setObj = function(obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { if (obj.url == 'semurl') { obj.url = null; } $scope.dataJson.data = obj; } else { $scope.dataJson.data = { cdLinksUteis: null, dsPortal: RequestService.portalConfig.portalAPI, flAtivo: "S", dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'), titulo: null, url: null, flStatusPublicacao: { sigla: "CRIA", descricao: "CRIA", detalhe: "Criada", dominio: "FL_STATUS_PUBLICACAO" }, observacao: null, tpLinksUteis: this.$ctrl.tipo, anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }] } } } // submeter Api ctrl.alterarStatusLinksUteis = function(linksUteis, status) { AlertaService.confirmar($rootScope.const.CONFIRMA_OPERACAO, function(acao) { if (acao) { ctrl.dataJson = { data: angular.copy(linksUteis) }; ctrl.dataJson.data.flStatusPublicacao.sigla = status; ctrl.dataJson.data.flStatusPublicacao.descricao = status; ctrl.dataJson.data.flStatusPublicacao.detalhe = null; ctrl.dataJson.data.flStatusPublicacao.dominio = "FL_STATUS_PUBLICACAO"; if (!ctrl.linksUteiSelecionado) { // ctrl.dataJson.data.observacao = null; } ctrl.dataJson.portal = RequestService.portalConfig.portalAPI; // Submeter para a API RequestService.request('POST', '/linksUteis/atualizar-situacao', ctrl.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { $scope.paginarRegistos(); $timeout(function() { ctrl.dataJson = { data: resp.data }; if (ctrl.linksUteiSelecionado) { ctrl.linksUteiSelecionado = null; ctrl.motivoStatusSelecionado = null; Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), false); $timeout(function() { Utils.mantemModal("#modalGerir" + $filter('slugify')(ctrl.label.plural), true); }, 500); } }, 1000); $rootScope.$broadcast('broadcastHomeReceiver'); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // Modal Cancelar Noticia ctrl.selecionaMotivolinksUteis = function(linksUteis, status, form) { form.$setPristine(); ctrl.linksUteisSelecionada = angular.copy(linksUteis); ctrl.motivoStatusSelecionado = angular.copy(status); // ctrl.linksUteisSelecionada.observacao = null; Utils.mantemModal("#modalGerirslugifyObservacao" + ctrl.tipo, false); $timeout(function() { Utils.mantemModal("#modalGerirslugifyObservacao" + ctrl.tipo, true); }, 600); }; // linksUteiSelecionado ctrl.limparMotivo = function() { ctrl.linksUteisSelecionada = null; ctrl.motivoStatusSelecionado = null; }; // salvar motivo ctrl.salvarMotivo = function(form) { if (form.$valid && form.$submitted) { ctrl.alterarStatusLinksUteis(ctrl.linksUteisSelecionada, ctrl.motivoStatusSelecionado); } }; // Paginar Videos $scope.paginarRegistos = function() { RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalConfig.portalAPI + '/' + obj.tipo + '/T/' + ($scope.paginaAtual) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp.data; $scope.quantidadeTotalItens = (parseInt(resp.quantidadeTotalItens) > 0) ? resp.quantidadeTotalItens : $scope.itensPaginados.length; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) // console.log($scope.itensPaginados) } // Numero de Paginas $scope.numeroDePaginas = function() { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } // Numero de Paginas $scope.carregarRegistrosDestaques = function(index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('paginacao', { templateUrl: 'app/partials/paginacao.html', bindings: { itensPorPagina: '=', paginaAtual: '=', itens: '=', totalRegistros: '<', funcao: '&' }, controller: function($timeout) { var scope = this; // this.$onInit = function(event) { scope.PAGINACAO_gap = 5; } // this.$onChanges = function($event) { if ($event.totalRegistros.currentValue) { scope.totalRegistros = $event.totalRegistros.currentValue; scope.PAGINACAO_groupToPages(); } } scope.PAGINACAO_groupToPages = function() { scope.PAGINACAO_pagedItems = []; for (var i = 0; i < scope.totalRegistros; i++) { if (i % scope.itensPorPagina == 0) { scope.PAGINACAO_pagedItems[Math.floor(i / scope.itensPorPagina)] = [scope.itens[i]]; } else { scope.PAGINACAO_pagedItems[Math.floor(i / scope.itensPorPagina)].push(scope.itens[i]); } } }; scope.PAGINACAO_range = function(size, start, end) { var ret = []; if (size < end) { end = size; if (size <= scope.PAGINACAO_gap) { start = 1; } else { start = size - scope.PAGINACAO_gap; } } for (var i = start; i <= end; i++) { ret.push(i); } return ret; }; scope.PAGINACAO_prevPage = function() { if (scope.paginaAtual > 2) { scope.paginaAtual--; scope.chamarFuncao(); } }; scope.PAGINACAO_nextPage = function() { if (scope.paginaAtual < scope.PAGINACAO_pagedItems.length) { scope.paginaAtual++; scope.chamarFuncao(); } }; scope.PAGINACAO_firstPage = function() { scope.paginaAtual = 1; scope.chamarFuncao(); }; scope.PAGINACAO_lastPage = function() { scope.paginaAtual = scope.PAGINACAO_pagedItems.length; scope.chamarFuncao(); }; scope.PAGINACAO_setPage = function(n) { scope.paginaAtual = n; scope.chamarFuncao(); }; scope.chamarFuncao = function() { $timeout(function() { scope.funcao(); }); } scope.retornaDivisao = function(v1, v2) { if (angular.isDefined(v1) && angular.isDefined(v2)) { return Math.ceil(v1 / v2); } }; } }); // Analytics (function(w, d, s, g, js, fs) { g = w.gapi || (w.gapi = {}); g.analytics = { q: [], ready: function(f) { this.q.push(f); } }; js = d.createElement(s); fs = d.getElementsByTagName(s)[0]; js.src = 'https://apis.google.com/js/platform.js'; fs.parentNode.insertBefore(js, fs); js.onload = function() { g.load('analytics'); }; }(window, document, 'script')); app.component('analytics', { templateUrl: 'app/partials/analytics.html', bindings: { uidportal: '<', trackerid: '<' }, controller: function($rootScope, $scope, RequestService, $window, $timeout, UtilizadorService, AlertaService) { // declare var obj = this; $scope.uidportal = null; $scope.tokenAcessoAnalytics = null; $scope.filter = { dtInicial: null, dtFinal: null }; $scope.getTokenAnalytics = function() { RequestService.request('GET', '/analytics/token', null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { if (resp.data) { AlertaService.closeProgressAlert(); $scope.tokenAcessoAnalytics = resp.data; $timeout(function() { $scope.callGoogleAnalytics(); }, 1000); } } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }) }; $scope.getReportAnalytics = function(form) { if (form.$valid && form.$submitted) { $scope.callGoogleAnalytics(); } }; $scope.callGoogleAnalytics = function() { // Executa o codigo apos o carregamento da API gapi.analytics.ready(function() { var dtInicial = moment($scope.filter.dtInicial, "DD/MM/YYYY").format('YYYY-MM-DD'); var dtFinal = moment($scope.filter.dtFinal, "DD/MM/YYYY").format('YYYY-MM-DD'); // Carrega os IDS, essa variavel pode recerber um unico elemento ou um array com outras views({ga:*,ga:*}) var IDS = $scope.uidportal; // Token de validação do cliente fornecido no Googe OAuth 2.0 (https://developers.google.com/oauthplayground/) var ACCESS_TOKEN = $scope.tokenAcessoAnalytics; //console.log(ACCESS_TOKEN); //console.log(IDS); gapi.analytics.auth.authorize({ serverAuth: { access_token: ACCESS_TOKEN } }); //console.log("OK"); gapi.analytics.auth.on('error', function(response) { $("#infolabelC").css("display", "block"); //console.log(response); }); gapi.analytics.auth.on('success', function(response) { $("#infolabelC").css("display", "none"); $(".painelAnalytics").css("opacity", "1"); gapi.analytics.auth.authorize({ serverAuth: { access_token: response.access_token } }); //console.log(response.access_token); }); if (gapi.analytics.auth.isAuthorized()) { $("#painelAnalytics").css("opacity", "1"); } else { $(".painelAnalytics").css("opacity", "0.4"); } // Busca o todal de paginas visualizadas no periodo informado - RETURN String var reportVisualizacoes = new gapi.analytics.report.Data({ query: { ids: IDS, 'dimensions': 'ga:country', 'metrics': 'ga:sessions', 'start-date': dtInicial, 'end-date': dtFinal, output: 'dataTable' } }); reportVisualizacoes.on('success', function(response) { // Insere o retorno da informacao no bloco info_1 da pagina $("#info_1").html(response.totalsForAllResults['ga:sessions']); }).execute(); // Busca o todal de usuarios que visitaram a pagina - RETURN String var reportUsuarios = new gapi.analytics.report.Data({ query: { ids: IDS, metrics: 'ga:users', dimensions: 'ga:country', 'start-date': dtInicial, 'end-date': dtFinal, output: 'dataTable' } }); reportUsuarios.on('success', function(response) { // Insere o retorno da informacao no bloco info_2 da pagina $("#info_2").html(response.totalsForAllResults['ga:users']); }).execute(); // Converte segundos para o formato HH:mm:ss function pad(str) { return ("0" + str).slice(-2); } function hhmmss(secs) { var minutes = Math.floor(secs / 60); secs = secs % 60; var hours = Math.floor(minutes / 60) minutes = minutes % 60; return pad(hours) + ":" + pad(minutes) + ":" + pad(secs); } // Busca o tempo medio de sessao de todos os usuarios - RETURN Time var reportTempoMedioDeSessao = new gapi.analytics.report.Data({ query: { ids: IDS, metrics: 'ga:avgSessionDuration', dimensions: 'ga:country', 'start-date': dtInicial, 'end-date': dtFinal, output: 'dataTable' } }); reportTempoMedioDeSessao.on('success', function(response) { // Converte os segundos para HH:mm:ss //console.log(response.totalsForAllResults['ga:avgSessionDuration']); var tempoDuracao = hhmmss(Math.floor(response.totalsForAllResults['ga:avgSessionDuration'])); $("#info_3").html(tempoDuracao); }).execute(); // Busca todos novos usuarios - RETURN String var reportNovosUsuarios = new gapi.analytics.report.Data({ query: { ids: IDS, metrics: 'ga:newUsers', dimensions: 'ga:country', 'start-date': dtInicial, 'end-date': dtFinal, output: 'dataTable' } }); reportNovosUsuarios.on('success', function(response) { $("#info_4").html(response.totalsForAllResults['ga:newUsers']); }).execute(); $("#title_grafico_1").html("Quantidade de visualização de páginas:"); // Carrega o grafico de visualizacao de paginas em LINHA var grafico_1 = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'ids': IDS, 'dimensions': 'ga:date', 'metrics': 'ga:pageviews', 'start-date': dtInicial, 'end-date': dtFinal }, chart: { type: 'LINE', container: 'grafico_1', options: { width: 'auto' } } }).execute(); $("#title_grafico_2").html("Acessos por páginas:"); // Carrega o grafico de quantidade de acessos em MAPA var grafico_2 = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'ids': IDS, 'dimensions': 'ga:country', 'metrics': 'ga:sessions,ga:users', 'start-date': dtInicial, 'end-date': dtFinal }, chart: { type: 'GEO', container: 'grafico_2', options: { width: '100%' } } }).execute(); $("#title_grafico_7").html("Dispositivos móveis:"); // Carrega o grafico de visualizacao de paginas em LINHA var grafico_7 = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'ids': IDS, 'dimensions': 'ga:mobileDeviceBranding', 'metrics': 'ga:sessions', 'start-date': dtInicial, 'end-date': dtFinal, 'sort': '-ga:sessions', 'max-results': '5' }, chart: { type: 'PIE', container: 'grafico_7', options: { width: '100%' } } }).execute(); $("#title_grafico_8").html("Acessos por páginas:"); // Carrega o grafico de quantidade de acessos em MAPA var grafico_8 = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'ids': IDS, 'dimensions': 'ga:country', 'metrics': 'ga:sessions,ga:users', 'start-date': dtInicial, 'end-date': dtFinal, 'sort': '-ga:sessions', 'max-results': '8' }, chart: { type: 'TABLE', container: 'grafico_8', options: { width: '100%' } } }).execute(); // Inicia os graficos integrados de acessos por navegador $("#title_grafico_3_4").html("Quantidade de acessos por navegador:"); // Grafico em PIE var mainChart = new gapi.analytics.googleCharts.DataChart({ query: { 'ids': IDS, 'dimensions': 'ga:browser', 'metrics': 'ga:sessions', 'sort': '-ga:sessions', 'max-results': '6' }, chart: { type: 'PIE', container: 'grafico_3', options: { width: '100%' } } }); // Grafico em COLUNA var breakdownChart = new gapi.analytics.googleCharts.DataChart({ query: { 'ids': IDS, 'dimensions': 'ga:date', 'metrics': 'ga:sessions', 'start-date': dtInicial, 'end-date': dtFinal, filters: 'ga:browser==Internet Explorer' }, chart: { type: 'LINE', container: 'grafico_4', options: { title: 'Internet Explorer', width: '100%' } } }); // Carrega o grafico de visualizacao de paginas em LINHA $("#title_grafico_5").html("Visualizações de página:"); var grafico_5 = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'ids': IDS, 'dimensions': 'ga:pageTitle', 'metrics': 'ga:pageviews', 'start-date': dtInicial, 'end-date': dtFinal, 'sort': '-ga:pageviews', 'max-results': '8' }, chart: { type: 'TABLE', container: 'grafico_5', options: { width: '100%' } } }).execute(); $("#title_grafico_6").html("Média de páginas visitadas em cada sessão:"); var grafico_6 = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'ids': IDS, 'dimensions': 'ga:date', 'metrics': 'ga:pageviewsPerSession', 'start-date': dtInicial, 'end-date': dtFinal }, chart: { type: 'COLUMN', container: 'grafico_6', options: { width: '100%' } } }).execute(); // Integracao // Escuta o grafico em PIE var mainChartRowClickListener; // Executa o Grafico em PIE mainChart.execute(); // Quando o grafico e carregado a funcao ON manda um callback de sucesso mainChart.on('success', function(response) { // Pega o retorno com o grafico pronto var chart = response.chart; // Pega os dados do grafico var dataTable = response.dataTable; // Instacia os eventos do visualization e escuta o Chart adicionado na variavel chart quando for selecionado mainChartRowClickListener = google.visualization.events.addListener(chart, 'select', function(event) { // Se o valor for nulo if (!chart.getSelection().length) return; // Pega os dados do dataTable dentro da instancia do chart var row = chart.getSelection()[0].row; var browser = dataTable.getValue(row, 0); var optionsbreak = { query: { filters: 'ga:browser==' + browser }, chart: { options: { title: browser } } }; // Executa o grafico de COLUNAS com o filtro indicado pelo clique no grafico PIE breakdownChart.set(optionsbreak).execute(); }); breakdownChart.execute(); }); }); }; this.$onInit = function($event) { // Obter token do analytics $scope.getTokenAnalytics(); // Setar data Inicial e Final da Pesquisa com range de 1 mês $scope.filter.dtInicial = moment().subtract(1, 'months').format('DD/MM/YYYY'); $scope.filter.dtFinal = moment().format('DD/MM/YYYY'); // Pega o código de tabela do portal fornecido pela Google $scope.uidportal = obj.uidportal; } } }); app.component('glossarioCrud', { templateUrl: 'app/partials/glossario-crud.html', bindings: { label: '<' }, controller: function($rootScope, $timeout, RequestService, StorageService, AlertaService) { // Limpar Formulario e Carregar Lista var ctrl = this; // BroadCast para atualizar a Home $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { ctrl.initUtilizador(false); }); // Iniciar componente this.$onInit = function($event) { ctrl.initUtilizador(); // Ficheiros Permitidos ctrl.extensoesPermitidasImagens = ['jpg', 'jpeg', 'png']; ctrl.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros ctrl.editorImageUpload = {}; // Tiny Editor ctrl.tinymceOptions = { menubar: false, statusbar: false, plugins: 'link image media table lists paste textcolor code', height: 200, toolbar: 'insertfile alignleft aligncenter alignright alignjustify | outdent indent | fontselect fontsizeselect formatselect forecolor | cop/y paste cleanup | bold italic underline | bullist numlist | link unlink | table | undo redo | code', automatic_uploads: true, file_picker_types: 'image', content_css: 'app/main/css/lato.css', font_formats: 'Lato=lato', nowrap: false }; // Toggle Form Area Colocacao ctrl.exibirFormAreaColocacao = false; }; // Initializar Utilizador ctrl.initUtilizador = function(pesquisar) { ctrl.utilizador = StorageService.get('utilizadorLogado'); if (pesquisar) { ctrl.paginarRegistos(false); } }; // Resetar Elementos e Formulário de busca ctrl.init = function(pesquisar) { ctrl.registos = []; ctrl.filter = null; if (pesquisar) { ctrl.paginarRegistos(true); } }; // Pesquisar ctrl.paginarRegistos = function(loading) { loading = loading ? loading : false; RequestService.request('GET', '/glossario/listar/' + RequestService.portalConfig.portalAPI, null, loading, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { if (loading) { AlertaService.closeProgressAlert(); } ctrl.registos = resp.data; ctrl.indices = angular.copy(ctrl.registos); if (!ctrl.filter || !ctrl.indices[ctrl.filter]) { ctrl.filter = Object.keys(ctrl.registos)[0]; } } } else { AlertaService.erroRede(); } }); } // Inserir / Atualizar ctrl.salvarGlossario = function(form, loading) { if (form.$valid) { RequestService.request('POST', '/glossario/salvar', ctrl.dataJson, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { if (loading) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { ctrl.registo(null, resp.data); ctrl.paginarRegistos(false); $rootScope.$broadcast('broadcastHomeReceiver'); }); } else { ctrl.paginarRegistos(false); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } // Initializar um novo Registo ctrl.registo = function(form, registo) { if (form) { form.$setPristine(); } ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI } if (registo) { ctrl.dataJson.data = angular.copy(registo); } else { ctrl.dataJson.data = { cdGlossario: null, tituloGlossario: null, dsGlossario: null } } }; // Remover Item ctrl.remover = function(registo) { AlertaService.confirmar('Excluir este Registo ?', function(confirma) { if (confirma) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdGlossario: registo.cdGlossario } }; RequestService.request('DELETE', '/glossario/remover', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.paginarRegistos(true); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; } }); app.component('eventosMinistroList', { templateUrl: 'app/partials/eventos-ministro-list.html', bindings: { data: '<', tipo: '@', qtdItens: '<', truncar: '<' }, controller: function() { } }); app.component('eventosMinistroCrud', { templateUrl: 'app/partials/eventos-ministro-crud.html', bindings: { itens: '<', artigo: '<' }, controller: function ($rootScope, $scope, $filter, $timeout, RequestService, StorageService, AlertaService, UtilizadorService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function (event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); //Ajuste no overflow das modais $(document).on('hidden.bs.modal', function (event) { if ($('.modal:visible').length) { $('body').addClass('modal-open'); } }); // Atributos var obj = this; obj.dados; $scope.exibirForm = true; // Limpar Formulario e Carregar Lista this.$onChanges = function ($event) { $(document).on('shown.bs.modal', '#modalGerirAgenda', function () { $scope.paginarRegistos(); }); /* $(document).on('hidden.bs.modal', '#modalGerirEventosNovo', function() { $scope.exibirForm = false; }); $(document).on('show.bs.modal', '#modalGerirEventosNovo', function() { $scope.exibirForm = true; }); */ } // Ficheiros Permitidos $scope.extensoesPermitidasImagens = ['jpg', 'png', 'gif', 'bmp']; $scope.tamanhoFicheiroImagem = 1; // Tiny Editor Ficheiros $scope.editorImageUpload = {}; // Tiny Editor $scope.tinymceOptions = { paste_as_text: true, menubar: false, statusbar: false, plugins: 'link image media table lists imagetools paste textcolor', height: 200, toolbar: 'alignleft aligncenter alignright alignjustify | formatselect forecolor | copy paste cleanup | bold italic underline | bullist numlist | link unlink | table | undo redo', automatic_uploads: true, file_picker_types: 'image', fontsize_formats: '8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 20pt 21pt 22pt 23pt 24pt', image_title: false, image_description: false, imagetools_toolbar: 'editimage imageoptions', content_css: 'app/main/css/lato.css', setup: function (editor) { editor.on('load', function (e) { $(".mce-btn button").click(function () { $timeout(function () { var label = $(".mce-title").html(); if (label == "Inserir/editar imagem") { $(".mce-combobox input").attr("readonly", "readonly").addClass("disabled"); } }, 300); }); }); }, file_picker_callback: function (callback, value, meta) { var input = angular.element('#editorImageUpload'); $timeout(function () { angular.element(input).click(); }, 200); // console.log(input); input.on('change', function (evento) { var ficheiro = evento.target.files[0]; obj.dados = this.ficheiro; ficheiro.extensao = ficheiro.name.split('.'); var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function () { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidasImagens.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiroImagem * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { callback(reader.result, { title: ficheiro.name }); } } reader.onloadstart = function () { AlertaService.showProgressAlert(); }; reader.onloadend = function () { AlertaService.closeProgressAlert(); }; reader.onabort = function () { AlertaService.closeProgressAlert(); }; }); } }; // Salvar / Editar Noticia $scope.salvarAgenda = function (form) { if (form.$valid && form.$submitted) { $scope.dataJson.data.dtInicial = moment($scope.dataJson.data.dtInicial, "DD-MM-YYYY HH:mm").format('DD-MM-YYYYTHH:mm:ss.000+0100'); $scope.dataJson.data.dtFinal = moment($scope.dataJson.data.dtFinal, "DD-MM-YYYY HH:mm").format('DD-MM-YYYYTHH:mm:ss.000+0100'); // Submeter para a API RequestService.request('POST', '/evento/salvar', $scope.dataJson, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function () { $rootScope.$broadcast('broadcastHomeReceiver'); $scope.paginarRegistos(); $timeout(function () { $scope.setObj(resp.data); }, 1000); }); form.$setPristine(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } } // Excluir Imagem ao Editar $scope.excluirAnexo = function () { $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].contentUrlARemover = $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url; $scope.dataJson.data.anexoPortalList[0].anexoPortalItemList[0].url = null; } // Excluir Noticia $scope.excluir = function (item, index) { AlertaService.confirmar('Excluir este Registo ?', function (acao) { if (acao) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAgendaEvento: item.cdAgendaEvento } }; RequestService.request('DELETE', '/evento/remover', dataJson, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.paginarRegistos(); $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }) } // Objeto para Persistir $scope.dataJson = {} // Obj Evento $scope.setObj = function (obj) { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: {} }; if (obj) { $scope.dataJson.data = obj; $scope.dataJson.data.dtInicial = moment($scope.dataJson.data.dtInicial, "DD-MM-YYYY HH:mm").format('DD/MM/YYYY HH:mm'); $scope.dataJson.data.dtFinal = moment($scope.dataJson.data.dtFinal, "DD-MM-YYYY HH:mm").format('DD/MM/YYYY HH:mm'); } else { $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdAgendaEvento: null, dsPortal: RequestService.portalConfig.portalAPI, templatePublicacao: null, tituloAgendaEvento: null, localAgendaEvento: null, dsAgendaEvento: null, dtFinal: null, dtInicial: null, flAtivo: "S", anexoPortalList: [{ cdAnexoPortal: null, cdLinksUteis: null, anexoPortalItemList: [{ cdAnexoPortalItem: null, nome: null, mimeType: null, extensao: null, base64Anexo: null, url: null }] }], anexoPortalListkene: [{ cdAnexoPortalkene: null, cdLinksUteiskene: null, anexoPortalItemListkene: [{ cdAnexoPortalItemkene: null, nomekene: null, mimeTypekene: null, extensaokene: null, base64Anexokene: null, urlkene: null }] }], flStatusPublicacao: { sigla: "PUB", descricao: "PUB", detalhe: "Publicado", dominio: "ST_FORMACAO" }, cgRefCodes: { sigla: "AGEINS", descricao: "AGEINS", detalhe: "Agenda do Ministro", dominio: "TP_AGENDA_EVENTO" }, observacao: null, dtCriacao: moment(new Date(), "DD-MM-YYYY").format('DD-MM-YYYYTHH:mm:ss.000+0100'), detalhe: null } } } } // Cadastrar novo Link Útil $scope.toggleActivo = function (item) { $scope.toggle(item); var dataJson = { portal: RequestService.portalConfig.portalAPI, data: item } RequestService.request('POST', '/evento/salvar', dataJson, false, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $rootScope.$broadcast('broadcastHomeReceiver'); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } $scope.toggle(item); } } else { AlertaService.erroRede(); $scope.toggle(item); } }); } $scope.toggle = function (item) { if (item.flAtivo == 'S') { item.flAtivo = 'N'; } else if (item.flAtivo == 'N') { item.flAtivo = 'S'; } return item; } //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; $scope.paginacaoArray = [5, 10, 15, 20]; $scope.q = ''; $scope.exibirDestaques = 'S'; // Paginar Notícias $scope.paginarRegistos = function () { RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/T/' + ($scope.paginaAtual) + '/' + $scope.paginacaoQtdRegistros, null, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.listarAgenda = resp.data.filter(function (agendaMinistro) { return agendaMinistro.cgRefCodes.sigla == "AGEINS"; }); $scope.itensPaginados = { quantidadeTotalItens: $scope.listarAgenda.length, data: $scope.listarAgenda }; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) } // Numero de Paginas $scope.numeroDePaginas = function () { try { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } catch (exception) { // console.log(exception); } } // Numero de Paginas $scope.setarPaginaAtual = function (index) { $scope.paginaAtual = index; $scope.paginarRegistos(); } // Numero de Paginas $scope.setarRegistosPorPagina = function (index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(); } // Numero de Paginas $scope.carregarRegistrosDestaques = function (index) { $scope.exibirDestaques = index.exibirDestaques; $scope.paginarRegistos(); } } }); app.component('gerirUtilizadores', { templateUrl: 'app/partials/gerir-utilizadores.html', bindings: { label: '<', template: '<' }, controller: function($rootScope, $timeout, $scope, RequestService, StorageService, AlertaService, UtilizadorService, Utils) { // Limpar Formulario e Carregar Lista var ctrl = this; $scope.pr = {closed:false }; // BroadCast para atualizar a Home $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { ctrl.initUtilizador(true); }); // Iniciar componente this.$onInit = function($event) { ctrl.initUtilizador(false); } // Initializar Utilizador ctrl.initUtilizador = function(init) { ctrl.utilizador = StorageService.get('utilizadorLogado'); ctrl.administrador = false; ctrl.gestor = false; ctrl.publicador = false; ctrl.redator = false; ctrl.revisor = false; ctrl.editor = false; if (ctrl.utilizador) { ctrl.administrador = Utils.validaPermissao("administrador", ctrl.utilizador.grupos); ctrl.gestor = Utils.validaPermissao("gestor", ctrl.utilizador.grupos); ctrl.publicador = Utils.validaPermissao("publicador", ctrl.utilizador.grupos); ctrl.redator = Utils.validaPermissao("redator", ctrl.utilizador.grupos); ctrl.revisor = Utils.validaPermissao("revisor", ctrl.utilizador.grupos); ctrl.editor = Utils.validaPermissao("editor", ctrl.utilizador.grupos); if (init) { ctrl.init(null, ctrl.utilizador.gestor); } } } // Resetar Elementos e Formulário de busca ctrl.init = function(form, pesquisar) { if (form) { form.$setPristine(); } ctrl.publicacaoPesquisar = { portal: RequestService.portalConfig.portalAPI, data: { noGapUtilizador: null, paginaAtual: 1, qtdPaginas: 10, flAtivo: null, paginacaoArray: [5, 10, 15, 20], quantidadeTotalItens: 0 } } ctrl.itensPaginados = null; if (pesquisar) { ctrl.pesquisarUtilizadores(false); } ctrl.pefisList = []; RequestService.request('GET', '/gestao-utilizador/perfis?portal=' + RequestService.portalConfig.portalAPI,false, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.perfis = resp.data; } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } $scope.GetValue = function () { $scope.perfisList = [];; for (var i = 0; i < $scope.perfis.length; i++) { if ($scope.perfis[i].Selected) { // var fruitId = $scope.perfis[i].FruitId; var noGapPerfil = $scope.perfis[i].noGapPerfil; $scope.perfisList.push(noGapPerfil); } } return $scope.perfisList; } $scope.GetValueUnchecked = function (item) { $scope.perfisCadastrado.forEach( function (element) { if (item == element) { var pos = $scope.perfisCadastrado.indexOf(element); $scope.perfisCadastrado.splice(pos,1); } else { $scope.GetValue(); } } ); } // Buscar Publicações via Formulário ctrl.formPublicacaoPesquisarSubmit = function(form) { if (form.$valid) { ctrl.publicacaoPesquisar.paginaAtual = 1; $timeout(function() { ctrl.pesquisarUtilizadores(); }); } } //Change status of username ctrl.alterarStatusUser = function (item) { if (item.flAtivo == 'S') { RequestService.request('GET', '/gestao-utilizador/inativar/' + RequestService.portalConfig.portalAPI+'/'+item.userName, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); ctrl.pesquisarUtilizadores(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } else { RequestService.request('GET', '/gestao-utilizador/ativar/' + RequestService.portalConfig.portalAPI+'/'+item.userName, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); ctrl.pesquisarUtilizadores(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } } // Pesquisar Publicações ctrl.pesquisarUtilizadores = function() { ctrl.publicacaoPesquisar.quantidadeTotalItens = 0; RequestService.request('POST', '/gestao-utilizador/utilizadores', ctrl.publicacaoPesquisar, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { ctrl.itensPaginados = resp; ctrl.publicacaoPesquisar.quantidadeTotalItens = ctrl.itensPaginados.quantidadeTotalItens; AlertaService.closeProgressAlert(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } // Novo Objeto ctrl.setObj = function(form) { if (form) { form.$setPristine(); } ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { email: null, noGapUtilizador: null, perfis: null } } } ctrl.dataJson = { portal: RequestService.portalConfig.portalAPI, data: { email: null, noGapUtilizador: null, perfis: null } } // Salvar / Editar Utilizador ctrl.salvarUtilizador = function(form) { $scope.GetValue().forEach( function (element) { $scope.perfisCadastrado.push(element); } ); ctrl.dataJson.data.perfis = $scope.GetValue(); if (form.$valid && form.$submitted) { // Submeter para atualizar if (ctrl.dataJson.data.cdGapUtilizador) { $scope.GetValue().forEach( function (element) { $scope.perfisCadastrado.push(element); } ); ctrl.dataJsonUpdateUser = { portal: RequestService.portalConfig.portalAPI, data: { cdGapUtilizador: ctrl.dataJson.data.cdGapUtilizador, noGapUtilizador: ctrl.dataJson.data.noGapUtilizador, perfis: $scope.perfisCadastrado } } RequestService.request('POST', '/gestao-utilizador/atualizar', ctrl.dataJsonUpdateUser, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } else { // Submeter para a API RequestService.request('POST', '/gestao-utilizador/novo', ctrl.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem, function() { }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } } } $scope.perfisCadastrado = []; // Utilizador por Id ctrl.editar = function(item, form) { if (form) { form.$setPristine(); } RequestService.request('GET', '/gestao-utilizador/utilizadores?cdGapUtilizador=' + item.cdGapUtilizador, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); ctrl.dataJson = { data: resp.data }; item.perfis = ctrl.dataJson.data.perfis; item.perfis.forEach( function (element) { $scope.perfisCadastrado.push(element); } ); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; ctrl.dataJsonUser = { portal: RequestService.portalConfig.portalAPI, data: { userName: null } } // Redifinir Senha do Utilizador ctrl.redefinirSenha = function(item) { AlertaService.confirmar('Deseja Redefinir palavra-passe deste Utilizador ?', function(acao) { if (acao) { RequestService.request('POST', '/gestao-utilizador/resetasenha', ctrl.dataJsonUser, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { // ctrl.pesquisarUtilizadores(); // $rootScope.$broadcast('broadcastHomeReceiver'); AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }); }; // $("#modalRecuperarPalavraPasse").on("click", function(e){ // e.preventDefault(); // $("#modalGerirutilizadores").modal('hide').on('hidden.bs.modal', function(){ // $("#modalRecuperarPalavraPasse").modal('show'); // }) // }); } }); app.controller('homeController', function ($rootScope, $scope, $timeout, $sce, $state, RequestService, AlertaService, StorageService, DataService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function (event, args) { if ($state.current.name == 'home') { $timeout(function () { $scope.init(); $scope.initcalendar(); }, 1000); } }); $scope.cdMenuNew = $rootScope.getState('noticias-e-media.diplonews').cdMenu; // Init $scope.init = function () { // NOSSO CANAL $scope.videoPreview = []; $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; $scope.listarVideos = []; // Paginar Videos RequestService.request('GET', '/video/listar/' + RequestService.portalConfig.portalAPI + '/' + $scope.paginaAtual + '/' + $scope.paginacaoQtdRegistros, null, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); // listar todos os videos menos o primeiro video que estará em destaque $scope.videos = resp.data; // usando o metodo shift() vai eliminar o primeiro video e retornar $scope.videoPreview = $scope.videos.shift(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); $scope.pegarDados = function (dados) { $scope.descricaoVideo = dados; } $scope.trustSrc = function (src) { return $sce.trustAsResourceUrl(src); } $scope.getFilePdf = async function (fileUrl) { AlertaService.showProgressAlert(); $scope.clearPdfInIframe(); await fetch(fileUrl, { mode: 'cors', method: 'GET' }).then(response => response.blob()).then(blob => { AlertaService.closeProgressAlert(); $scope.loadPdfInIframe(blob); }).catch(error => { console.error('Erro:', error) AlertaService.showMensagemRetorno("Erro ao fazer o download do ficheiro. Tente novamente mais"); }); } $scope.loadPdfInIframe = function (blob) { const url = window.URL.createObjectURL(blob); const iframe = document.getElementById('iframeModal'); iframe.src = url; window.URL.revokeObjectURL(url); } $scope.clearPdfInIframe = function () { const iframe = document.getElementById('iframeModal'); iframe.src = ''; } RequestService.request('GET', '/menu/listar/' + RequestService.portalConfig.portalAPI, null, true, function (resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.menuPrincipal = resp.data.menuItemList; for (var index = 0; index < $scope.menuPrincipal.length; index++) { var element = $scope.menuPrincipal[index]; if (element.state == "noticias-e-media") { for (var index = 0; index < element.subPaginas.length; index++) { var subPagina = element.subPaginas[index]; if (subPagina.state == "noticias-e-media.diplonews") { $scope.cdMenu = subPagina.cdMenu; } } } } //DiploNews var dataJsonDiploNews = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: $scope.cdMenu, titulo: null, paginaAtual: 1, qtdPaginas: 10, ordenacao: "nuOrdem DESC" } } RequestService.request('POST', '/formularioSecao/listarPaginado', dataJsonDiploNews, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.diploNews = resp.data.secoes[0]; } } }); } } else { AlertaService.erroRede(); } }); // Comunicado RequestService.request('GET', '/menu/listar/' + RequestService.portalConfig.portalAPI, null, true, function (resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.menuPrincipal = resp.data.menuItemList; for (var index = 0; index < $scope.menuPrincipal.length; index++) { var element = $scope.menuPrincipal[index]; if (element.state == "comunicados") { for (var index = 0; index < element.subPaginas.length; index++) { var subPagina = element.subPaginas[index]; if (subPagina.state == "comunicados.comunicadonews") { $scope.cdMenu = subPagina.cdMenu; } } } } //ComunicadosNews var dataJsonComunicadosNews = { portal: RequestService.portalConfig.portalAPI, data: { cdMenu: $scope.cdMenu, titulo: null, paginaAtual: 1, qtdPaginas: 10, ordenacao: "nuOrdem DESC" } } RequestService.request('POST', '/formularioSecao/listarPaginado', dataJsonComunicadosNews, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.comunicadosNews = resp.data.secoes; } } }); } } else { AlertaService.erroRede(); } }); //Listar Galeria var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { flDestaque: "N" } } RequestService.request('POST', '/noticia/galeria/listar/', dataJson, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.proximosGaleria = resp.data; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); // Notícias Recentes var dataJsonNoticiasRecentes = { portal: RequestService.portalConfig.portalAPI, flDestaque: 'S', tipo: { dominio: "TP_PUBLICACAO", sigla: "NOT" }, status: "PUB", titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 5 } // PUBLICIDADE var dataJsonNoticiasRecentes = { portal: RequestService.portalConfig.portalAPI, flDestaque: 'S', tipo: { dominio: "COMUNICACAO", sigla: "COI" }, status: "PUB", titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 5 } RequestService.request('POST', '/publicacao/listarPublico', dataJsonNoticiasRecentes, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.noticiasRecentes = resp.data; } } }); // Divugações var dataJsonPublicacoesEspeciais = { portal: RequestService.portalConfig.portalAPI, flDestaque: 'S', tipo: { dominio: "TP_PUBLICACAO", sigla: "PUB" }, status: "PUB", titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 16 } RequestService.request('POST', '/publicacao/listarPublico', dataJsonPublicacoesEspeciais, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.PublicacaoEspecial = resp.data; } } }); //Fim das Divulgações //Inicio Boletins Informativos // Boletins var dataJsonBoletins = { portal: "SETIC", data: { paginaAtual: 1, itensPorPagina: 5, templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: 'FORM', descricao: 'FORM', detalhe: "Formulário", dominio: "TP_FORMULARIO" } } } } RequestService.request('POST', '/formulario/listar', dataJsonBoletins, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.boletins = resp.data; angular.forEach($scope.boletins, function (publicacao, indexPublicacao) { angular.forEach(publicacao.anexoPortalList, function (anexoPortalList, indexAnexoPortalList) { var itensArray = []; angular.forEach(anexoPortalList.anexoPortalItemList, function (anexoPortalItemList, anexoPortalItemListIndex) { if (anexoPortalItemList.nome.indexOf('_CAPA_') >= 0) { itensArray[1] = anexoPortalItemList; } else { itensArray[0] = anexoPortalItemList; } }); anexoPortalList.anexoPortalItemList = itensArray; }); }); } } else { AlertaService.erroRede(); } }); //Fim Boletins Informativos // PublicacoesArtigos var dataJsonArtigos = { portal: RequestService.portalConfig.portalAPI, flDestaque: 'S', tipo: { dominio: "TB_ARTIGO", sigla: "ART" }, status: "PUB", titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 16 } RequestService.request('POST', '/publicacao/listarPublico', dataJsonArtigos, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.artigos = resp.data; } } }); // Notícias Recentes Destaques var dataJson = { portal: RequestService.portalConfig.portalAPI, flDestaque: 'S', tipo: { dominio: "TP_PUBLICACAO", sigla: "NOT" }, status: "PUB", titulo: null, todos: false, paginaAtual: 1, qtdPaginas: 5 } RequestService.request('POST', '/publicacao/listarPublico', dataJson, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.noticiasRecentes = resp.data; var ids = []; $scope.noticiasRecentes.forEach(function (n, k) { ids.push(n.cdPublicacao); }); // Notícias Recentes Destaques var dataJson = { portal: RequestService.portalConfig.portalAPI, flDestaque: null, tipo: { dominio: "TP_PUBLICACAO", sigla: "NOT" }, removeCdPublicacao: ids, status: "PUB", titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 10 } RequestService.request('POST', '/publicacao/listarPublico', dataJson, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { // $scope.destaquenoticias = resp.data; $scope.maisNoticias = resp.data; } } }); } } }); // Links Úteis RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalAPI + '/LK/S/1/100', null, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.linksUteis = resp.data .filter(function (itemLinks) { if (itemLinks.flStatusPublicacao.sigla === 'PUB') { return itemLinks; } }); } } }); // PUBLICIDADE RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalAPI + '/IMGALT/S/1/100', null, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.publicidades = resp.data .filter(function (itemLinks) { if (itemLinks.flStatusPublicacao.sigla === 'PUB') { return itemLinks; } }); } } }); RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalConfig.portalAPI + '/BAN/S/1/100', null, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.bannerLinks = resp.data .filter(function (itemBanners) { if (itemBanners.flStatusPublicacao.sigla === 'PUB') { return itemBanners; } }); } } }); // Próximos Eventos RequestService.request('GET', '/evento/listar/' + RequestService.portalAPI + '/S/1/4', null, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.proximosEventos = resp.data.filter(function (eventMirex) { return eventMirex.cgRefCodes.sigla == "ACOE"; }); } } }); // Perguntas Frequentes var dataJsonPerguntas = { portal: RequestService.portalAPI, data: { tpPergunta: { sigla: "ANY", descricao: "ANY", detalhe: "NENHUM TIPO DE PERGUNTA", dominio: "TP_PERGUNTA_PORTAL" } } }; RequestService.request('POST', '/perguntasFrequentes/listar', dataJsonPerguntas, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.perguntasFrequentes = resp.data; } } }); // Guias var dataJson = { portal: RequestService.portalAPI, data: { paginaAtual: 1, itensPorPagina: 6, templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: 'GUIA', descricao: 'GUIA', detalhe: "Formulário", dominio: "TP_FORMULARIO" } } } }; $scope.guias = []; RequestService.request('POST', '/formulario/listar', dataJson, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.guias = resp.data; angular.forEach($scope.guias, function (publicacao, indexPublicacao) { angular.forEach(publicacao.anexoPortalList, function (anexoPortalList, indexAnexoPortalList) { var itensArray = []; angular.forEach(anexoPortalList.anexoPortalItemList, function (anexoPortalItemList, anexoPortalItemListIndex) { if (anexoPortalItemList.nome.indexOf('_CAPA_') >= 0) { itensArray[1] = anexoPortalItemList; } else { itensArray[0] = anexoPortalItemList; } }); anexoPortalList.anexoPortalItemList = itensArray; }); }); } } else { AlertaService.erroRede(); } }); $scope.textoButtonCard = 'Ver Mais Serviços'; $scope.isVisible = false; $scope.mostrarCards = function () { $scope.isVisible = !$scope.isVisible; if ($scope.isVisible) { $scope.textoButtonCard = 'Ver Menos Serviços'; } else { $scope.textoButtonCard = 'Ver Mais Serviços'; } } // Comunicados var dataJsonComunicados = { portal: RequestService.portalConfig.portalAPI, flDestaque: 'S', tipo: { dominio: "TP_PUBLICACAO", sigla: "NOTINT" }, status: "PUB", titulo: null, todos: true, paginaAtual: 1, qtdPaginas: 5 } RequestService.request('POST', '/publicacao/listarPublico', dataJsonComunicados, null, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.proximosComunicados = resp.data; } } }); // Próximos Eventos do Ministro RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/T/1/4', null, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.proximosEventosMinistro = resp.data.filter(function (lemAgenda) { return lemAgenda.cgRefCodes.sigla == "AGEINS"; }); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); }; // NOSSO CANAL $scope.visualizarVideo = function (video) { AlertaService.showProgressAlert(); $scope.videoPreview[0] = video; //finalizar carregamento AlertaService.closeProgressAlert(); } $scope.getImgSrcLink = function (url) { return "https://img.youtube.com/vi/" + url.split('/')[url.split('/').length - 1] + "/0.jpg"; } $scope.validarNovoCrip = function () { $scope.numeroCripHome = null; }; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistro = 0; $scope.paginacaoArray = [9, 18, 36]; $scope.initcalendar = function (dataInicial, dataFinal, callback) { var range = moment().range(dataInicial, dataFinal); RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/T/' + $scope.paginaAtual + '/' + $scope.paginacaoQtdRegistro, null, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.evento = resp.data.filter(function (lemAgenda) { return lemAgenda.cgRefCodes.sigla == "AGEINS"; }); if (callback) { callback(resp.data.filter(function (lemAgenda) { return lemAgenda.cgRefCodes.sigla == "AGEINS"; })); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } // Reiniciar a contagem da modificação das datas no DataService DataService.setCount(0); }); 'use strict'; app.controller('defaultInternaController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService, StorageService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $timeout(function() { $scope.init(); }, 1000); }); // $scope.produtosDestaqueItens = []; $scope.pagina = {}; $scope.menuAtual = $state.current; var regex = new RegExp(/[.]/g); $scope.statePaths = regex.test($scope.menuAtual.name); // Init Controller $scope.init = function() { // Página Interna if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, true, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } }); 'use strict'; app.controller('galeriaMinistrosController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'sobre.galeria-dos-ex-ministros') { $timeout(function() { $scope.init(); }, 1000); } }); this.$onInit = function() { $scope.menuAtual = $state.current; } $scope.init = function() { $scope.pagina = {}; $scope.pagina.anexoPortalList = []; $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 5; RequestService.request('GET', '/linksUteis/listar/' + RequestService.portalConfig.portalAPI + '/' + "PC" + '/T/' + ($scope.paginaAtual) + '/' + $scope.paginacaoQtdRegistros, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.itensPaginados = resp.data; $scope.quantidadeTotalItens = (parseInt(resp.quantidadeTotalItens) > 0) ? resp.quantidadeTotalItens : $scope.itensPaginados.length; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }) // Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } }); 'use strict'; app.controller('defaultDiplonewsController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService, StorageService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $timeout(function() { $scope.init(); }, 1000); }); // $scope.produtosDestaqueItens = []; $scope.pagina = {}; $scope.menuAtual = $state.current; var regex = new RegExp(/[.]/g); $scope.statePaths = regex.test($scope.menuAtual.name); // Init Controller $scope.init = function() { console.log($scope.menuAtual.cdMenu); // Página Interna if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, true, function(resp) { if (resp) { // console.log($scope.menuAtual.cdMenu); AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } }); 'use strict'; app.controller('UtilizadorController', function($rootScope, $scope, $state,$timeout, RequestService, AlertaService, StorageService, UtilizadorService, $translate, $translateLocalStorage) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); }); // Login $scope.login = function(form) { if (form.$valid && form.$submitted) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { login: form.$$element[0].formLoginUtilizador.value, "palavra-passe": form.$$element[0].formLoginPalavraPasse.value } } UtilizadorService.login(form, dataJson, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $('.popover').popover().hide(); form.$$element[0].reset(); $state.go('home'); if (resp.data.trocarPalavraPasse) { AlertaService.closeProgressAlert(function() { $('#modalAlterarPalavraPasse').modal('toggle'); }); } else { AlertaService.closeProgressAlert(function() { $scope.setLogin(resp); }); $scope.setLogin(resp); } } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); console.log('5') } }) } } // Login $scope.loginModal = function(form) { if (form.$valid && form.$submitted) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { login: form.$$element[0].formLoginUtilizador.value, "palavra-passe": form.$$element[0].formLoginPalavraPasse.value } } UtilizadorService.login(form, dataJson, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(function() { $('#modalLogin').modal('toggle'); $scope.setLogin(resp); }); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }) } } $scope.setLogin = function(resp) { UtilizadorService.setCookies(resp); } // Logout $scope.logout = function() { AlertaService.confirmar($translate.instant("CONFIRMA_SAIR"), function(acao) { if (acao) { UtilizadorService.logout(function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.utilizador = null; } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }) } // Recuperar palavra-passe $scope.recuperarPalavraPasse = function(form) { if (form.$valid && form.$submitted) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { login: form.$$element[0].formRecuperarPalavraPasseUtilizador.value, } }; RequestService.request('POST', '/acesso/recuperarPalavraPasse', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); form.$$element[0].reset(); angular.element('.close').trigger('click'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } } // Recuperar palavra-passe $scope.alterarPalavraPasse = function(form) { if (form.$valid && form.$submitted) { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { palavraPasseAtual: form.$$element[0].palavraPasseAtual.value, palavraPasseNova: form.$$element[0].palavraPasseNova.value, confirmarPalavraPasseNova: form.$$element[0].confirmarPalavraPasseNova.value } } RequestService.request('POST', '/acesso/alterarPalavraPasse', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); form.$$element[0].reset(); angular.element('.close').trigger('click'); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } } $scope.fecharPopOver = function() { $timeout(function() { angular.element('#exibirPopOverLogin').trigger('click'); }, 500); } $scope.focarInput = function() { $timeout(function() { angular.element('.popover.in').find('input').first().focus() }, 500); } $scope.init = function() { $scope.idiomas = $translate.getAvailableLanguageKeys(); $scope.idiomaAtual = $translateLocalStorage.get('NG_TRANSLATE_LANG_KEY'); } $scope.labelIdioma = function(idioma) { var label = idioma; switch (idioma.toUpperCase()) { case 'PT': label = 'AO'; break; default: break; } return label; } }); 'use strict'; app.controller('perguntasFrequentesController', ['$rootScope', '$scope', '$state', '$stateParams', '$location', '$anchorScroll', '$timeout', 'RequestService', 'AlertaService', function($rootScope, $scope, $state, $stateParams, $location, $anchorScroll, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $timeout(function() { $scope.init(); }, 1000); }); $scope.pagina = {}; $scope.init = function() { $scope.menuAtual = $state.current; $scope.cdPerguntaFrequente = $stateParams.cdPerguntaFrequente; $scope.sigla = $state.current.sigla; $scope.anexos = $state.current.anexos; $scope.label = $state.current.ncyBreadcrumb.label; var dataJson = { portal: RequestService.portalAPI, data: { tpPergunta: { sigla: $scope.sigla, descricao: $scope.sigla, detalhe: "NENHUM TIPO DE PERGUNTA", dominio: "TP_PERGUNTA_PORTAL" } } }; RequestService.request('POST', '/perguntasFrequentes/listar', dataJson, null, function(resp) { if (resp.retorno.codigo == 200) { $scope.perguntasFrequentes = resp.data; if ($scope.cdPerguntaFrequente) { $timeout(function() { $location.hash('pergunta-' + $scope.cdPerguntaFrequente); $anchorScroll(); }, 200); } } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } }); if ($scope.sigla != 'ANY') { // Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } } }]); app.controller('noticiasController', ['$rootScope', '$scope', '$state', '$stateParams', '$timeout', 'RequestService', 'AlertaService', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'sala-de-imprensa.noticias') { $timeout(function() { $scope.init(); }, 1000); } if ($state.current.name == 'sala-de-imprensa.noticias.cdPublicacao') { $timeout(function() { $scope.noticiaCdPublicacao(); }, 1000); } //Artigos if ($state.current.name == 'sala-de-imprensa.artigos') { $timeout(function() { $scope.init(); }, 1000); } if ($state.current.name == 'sala-de-imprensa.artigos.cdPublicacao') { $timeout(function() { $scope.noticiaCdPublicacao(); }, 1000); } }); $scope.formataData = function(data) { var data = moment(data, "DD-MM-YYYY'T'HH:mm:ssZ").format("DD/MM/YYYY"); return data; }; $scope.noticiaTipo = $state.current.noticia; $scope.pagina = {}; // Listar Noticias na Index $scope.init = function() { $scope.menuAtual = $state.current; RequestService.request('GET', '/noticia/listar/' + RequestService.portalAPI + '/' + $scope.noticiaTipo + '/1/2', null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.noticiasDestaques = resp.data; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); // Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } $scope.paginarRegistos(); }; // Noticia por Id $scope.noticiaCdPublicacao = function() { $scope.cdPublicacao = $stateParams.cdPublicacao; if ($scope.cdPublicacao) { RequestService.request('GET', '/noticia/buscar/' + $scope.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.noticia = resp.data; /*$state.current.ncyBreadcrumb = { label: $scope.noticia.titulo };*/ } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 8; $scope.paginacaoArray = [8, 16, 32]; $scope.paginarRegistos = function(loading) { loading = loading ? true : false; RequestService.request('GET', '/noticia/listar/' + RequestService.portalAPI + '/' + $scope.noticiaTipo + '/' + $scope.paginaAtual + '/' + $scope.paginacaoQtdRegistros, null, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); }; // Numero de Paginas $scope.numeroDePaginas = function() { if (angular.isDefined($scope.itensPaginados)) { if (angular.isDefined($scope.itensPaginados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } }; // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(true); }; // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(true); } }]); 'use strict'; app.controller('videosController', ['$rootScope', '$scope', '$state', '$stateParams', '$timeout', 'RequestService', 'AlertaService', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'videos') { $timeout(function() { $scope.init(); }, 1000); } }); //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 8; $scope.paginacaoArray = [8, 16, 32]; $scope.pagina = {}; // Listar Noticias na Index $scope.init = function() { // Pagina $scope.pagina.anexoPortalList = []; $scope.menuAtual = $state.current; if ($scope.menuAtual) { // Página Interna RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, true, function (resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } $scope.paginarRegistos(); } $scope.pagina = {}; // Video por Id $scope.videoCdPublicacao = function() { $scope.cdPublicacao = $stateParams.cdPublicacao; RequestService.request('GET', '/video/buscar/' + $scope.cdPublicacao, null, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.video = resp.data; $state.current.ncyBreadcrumb = { label: $scope.video.titulo }; } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } // Paginar Registos $scope.paginarRegistos = function(loading) { loading = loading ? true : false; RequestService.request('GET', '/video/listar/' + RequestService.portalConfig.portalAPI + '/' + $scope.paginaAtual + '/' + $scope.paginacaoQtdRegistros, null, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } // Numero de Paginas $scope.numeroDePaginas = function() { if (angular.isDefined($scope.itensPaginados)) { if (angular.isDefined($scope.itensPaginados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(true); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(true); } }]); 'use strict'; app.controller('fotosController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { $scope.urls = []; $scope.url = ""; $scope.indice = 0; // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'noticias-e-media.multimedia') { $timeout(function() { $scope.init(); }, 1000); } if ($state.current.name == 'noticias-e-media.multimedia.cdPublicacao') { $timeout(function() { $scope.fotosCdPublicacao(); }, 1000); } }); this.$onInit = function() { $scope.menuAtual = $state.current; } $scope.init = function() { $scope.pagina = {}; $scope.pagina.anexoPortalList = []; var dataEvento = { portal: RequestService.portalConfig.portalAPI, data: { flDestaque: "N" } }; RequestService.request('POST', '/noticia/galeria/listar/', dataEvento, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; // console.log("#=>", resp.data); AlertaService.closeProgressAlert(); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); // Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } $scope.fotosCdPublicacao = function() { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { cdGaleria: $stateParams.cdPublicacao, flDestaque: null } }; RequestService.request('POST', '/noticia/galeria/listar/', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $state.current.ncyBreadcrumb = { label: resp.data[0].descricaoGaleria }; AlertaService.closeProgressAlert(); $scope.galeria = resp.data[0]; //Pegar a url de todas as imagems da galeria $scope.urls = $scope.galeria.anexoPortalList.map( function (foto) { return foto.anexoPortalItemList[0].ficheiroUrl; } ) } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); $scope.colorbox = { maxWidth: '90%', maxHeight: '90%' }; } $scope.mostrarImagem = function(valor) { $scope.indice = (valor < 0 || valor > $scope.urls.length - 1) ? $scope.indice : valor; $scope.url = $scope.urls[$scope.indice]; // console.log($scope.indice, $scope.url); } $scope.proximo = function() { var valor = $scope.indice + 1; $scope.mostrarImagem(valor); } $scope.anterior = function() { var valor = $scope.indice - 1; $scope.mostrarImagem(valor); } }); 'use strict'; app.controller('servicosController', ['$rootScope', '$scope', '$state', '$stateParams', 'RequestService', 'AlertaService', function($rootScope, $scope, $state, $stateParams, RequestService, AlertaService) { $scope.menuAtual = $state.current; $scope.urlBase = function(){ return RequestService.urlLessApi; }; // Init Controller $scope.consultarNif = function(form){ if (form.$submitted && form.$valid) { RequestService.request('GET', '/nif/consultar/' + $scope.nif, null, true, function(resp){ if (resp) { if (resp.retorno.codigo == 200) { if (resp.data) { $scope.consultaResultado = resp.data[0]; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(400, 'NIF não encontrado'); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; // Init Controller $scope.consultarDar = function(form){ if (form.$submitted && form.$valid) { RequestService.request('GET', '/dar/consultar/' + $scope.dar, null, true, function(resp){ if (resp) { if (resp.retorno.codigo == 200) { if (resp.data) { $scope.consultaResultado = resp.data; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(923, 'DAR não encontrado'); } } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); } }; $scope.novaConsulta = function(){ $scope.consultaResultado = null; } }]); 'use strict'; app.controller('eventosController', function($rootScope, $scope, $state, $stateParams, RequestService, AlertaService, $timeout) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'sala-de-imprensa.agenda') { $timeout(function() { $scope.init(); }, 1000); } }); //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 8; $scope.paginacaoArray = [8, 16, 32]; $scope.pagina = {}; // Listar Noticias na Index $scope.init = function() { $scope.menuAtual = $state.current; // Pagina $scope.pagina.anexoPortalList = []; RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); $scope.paginarRegistos(); } // Noticia por Id $scope.eventoCdPublicacao = function() { $scope.cdPublicacao = $stateParams.cdPublicacao; RequestService.request('GET', '/evento/buscar/' + $scope.cdPublicacao, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.evento = resp.data; /* $state.current.ncyBreadcrumb = { label: $scope.galeria.descricaoGaleria }; */ } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } $scope.paginarRegistos = function(loading) { loading = loading ? true : false; RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/S/' + $scope.paginaAtual + '/' + $scope.paginacaoQtdRegistros, null, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } // Numero de Paginas $scope.numeroDePaginas = function() { if (angular.isDefined($scope.itensPaginados)) { if (angular.isDefined($scope.itensPaginados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(true); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index, resetPaginacao) { if (resetPaginacao) { $scope.paginaAtual = 1; } $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(true); } }); 'use strict'; app.controller('agendaMinistroController', function($rootScope, $scope, $state, $stateParams, RequestService, AlertaService, $timeout) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'agenda-do-ministro') { $timeout(function() { $scope.init(); }, 1000); } // if ($state.current.name == 'agenda-do-ministro.cdPublicacao') { // $timeout(function() { // $scope.eventoCdPublicacao(); // }, 1000); // } }); //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 9; $scope.paginacaoArray = [9, 18, 36]; $scope.pagina = {}; // Listar Noticias na Index $scope.init = function() { $scope.menuAtual = $state.current; // Pagina $scope.pagina.anexoPortalList = []; RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); $scope.paginarRegistos(); } // Noticia por Id $scope.eventoCdPublicacao = function() { $scope.cdPublicacao = $stateParams.cdPublicacao; RequestService.request('GET', '/evento/buscar/' + $scope.cdPublicacao, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.evento = resp.data; /* $state.current.ncyBreadcrumb = { label: $scope.galeria.descricaoGaleria }; */ } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } $scope.paginarRegistos = function(loading) { loading = loading ? true : false; RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/T/' + $scope.paginaAtual + '/' + $scope.paginacaoQtdRegistros, null, loading, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp.data.filter(function (agendaMinistro) { return agendaMinistro.cgRefCodes.sigla == "AGEINS"; }); // $scope.itensPaginados = resp; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } // Numero de Paginas $scope.numeroDePaginas = function() { if (angular.isDefined($scope.itensPaginados)) { if (angular.isDefined($scope.itensPaginados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(true); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index, resetPaginacao) { if (resetPaginacao) { $scope.paginaAtual = 1; } $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(true); } }); 'use strict'; app.controller('calendarizacaoController', function ($rootScope, $scope, $state, $timeout, RequestService, AlertaService, StorageService, DataService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function (event, args) { $timeout(function () { $scope.init(); }, 1000); }); $scope.menuAtual = $state.current; $scope.pagina = {}; $scope.DataService = DataService; //Paginação $scope.paginaAtual = 1; $scope.quantidadeItem = 0; $scope.paginacaoQtdRegistros = 9; $scope.paginacaoArray = [9, 18, 36]; $scope.init = function (dataInicial, dataFinal, callback) { // Informação do calendário RequestService.request('GET', '/evento/listar/' + RequestService.portalConfig.portalAPI + '/T/' + $scope.paginaAtual + '/' + $scope.quantidadeItem, null, true, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { // $scope.eventos = resp.data; $scope.eventos = resp.data.filter(function (lemAgenda) { return lemAgenda.cgRefCodes.sigla == "AGEINS"; }); // console.log("Eventos", $scope.eventos); // Filtrar os eventos pela data passada no service $scope.carregarEventos(DataService.getData(), DataService.getData()); if (callback) { callback(resp.data.filter(function (lemAgenda) { return lemAgenda.cgRefCodes.sigla == "AGEINS"; })); } } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); // Página Interna if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function (resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } $scope.carregarEventos = function (dataInicial, dataFinal) { $scope.eventosFiltrados = []; angular.forEach($scope.eventos, function (obj, index) { var evento = { title: obj.imposto, startTime: new Date(moment(obj.dtInicial, "DD-MM-YYYY").format('YYYY-MM-DD')), endTime: new Date(moment(obj.dtInicial, "DD-MM-YYYY").format('YYYY-MM-DD')), source: obj, allDay: false } var objDtFinal = new Date(moment(obj.dtInicial, "DD-MM-YYYY").format('YYYY-MM-DD')); if (new Date(dataInicial.toDateString()) <= new Date(objDtFinal.toDateString()) && new Date(objDtFinal.toDateString()) <= new Date(dataFinal.toDateString())) { $scope.eventosFiltrados.push(evento); } }); }; $scope.init(); }); app.controller('comunicadosController', function ($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function (event, args) { // noticias if ($state.current.name == 'nota-de-imprensa') { $timeout(function () { $scope.init(); }, 1000); } if ($state.current.name == 'nota-de-imprensa.cdPublicacao') { $timeout(function () { $scope.comunicadoCdPublicacao(); }, 1000); } }); this.$onInit = function () { $scope.pagina = {}; $scope.menuAtual = $state.current; var regex = new RegExp(/[.]/g); $scope.statePaths = regex.test($scope.menuAtual.name); } //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 9; // Listar Noticias na Index $scope.init = function () { $scope.pagina.anexoPortalList = []; $scope.paginarRegistos(); // Conteudo Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function (resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } // Noticia por Id $scope.noticiaCdPublicacao = function () { if ($stateParams.cdPublicacao) { RequestService.request('GET', '/publicacao/buscar/' + $stateParams.cdPublicacao, null, false, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.comunicados = resp.data; $state.current.ncyBreadcrumb.label = $scope.comunicados.titulo; } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } } $scope.paginarRegistos = function (loading) { loading = loading ? true : false; //Publicação $scope.dataJson = { portal: RequestService.portalConfig.portalAPI, flDestaque: null, tipo: { sigla: $state.current.publicacao.template.sigla, dominio: $state.current.publicacao.template.dominio }, status: "PUB", titulo: null, todos: true, paginaAtual: $scope.paginaAtual, qtdPaginas: $scope.paginacaoQtdRegistros } $scope.quantidadeTotalItens = 0; $scope.sessoes = []; RequestService.request('POST', '/publicacao/listarPublico', $scope.dataJson, false, function (resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.comunicado = resp.data; $scope.quantidadeTotalItens = resp.quantidadeTotalItens; $window.scrollTo(0, 0); AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }); 'use strict'; app.controller('contactoController', ['$rootScope', '$scope', 'RequestService', 'AlertaService', 'vcRecaptchaService', 'Alertas', '$timeout', '$location', function($rootScope, $scope, RequestService, AlertaService, recaptcha, Alertas, $timeout, $location) { $scope.dataJsonOriginal = { portal: RequestService.portalAPI, data: { nome: null, email: null, telemovel: null, assunto: null, mensagem: null } }; $scope.gRecaptchaResponse = false; // Listar Assuntos $scope.init = function() { $scope.dataJson = angular.copy($scope.dataJsonOriginal); RequestService.request('GET', '/contacto/email/listarAssuntos/' + RequestService.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.listarAssuntos = resp.data; } } else { AlertaService.erroRede(); } }); }; // Enviar Contato $scope.contactoEnviar = function(form) { if (form.$submitted && form.$valid && $scope.gRecaptchaResponse) { RequestService.request('POST', '/contacto/email/enviar', $scope.dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, resp.retorno.mensagem, function() { $timeout(function() { $location.path("/"); }, 400); }); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }; $scope.setResponse = function(response) { $scope.gRecaptchaResponse = response ? true : false; }; }]); 'use strict'; app.controller('formulariosController', function($rootScope, $scope, $state, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $timeout(function() { $scope.init(); }, 1000); }); $scope.pagina = {}; $scope.init = function() { $scope.menuAtual = $state.current; $scope.label = $state.current.ncyBreadcrumb.label; $scope.sigla = $state.current.sigla; // Formulários var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { paginaAtual: 1, itensPorPagina: 1000, templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: $scope.sigla, descricao: $scope.sigla, detalhe: "Formulário", dominio: "TP_FORMULARIO" } } } } RequestService.request('POST', '/formulario/listar', dataJson, null, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.formularios = resp.data; } else { // AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 10; $scope.paginacaoArray = [10,16,32]; $scope.paginarRegistos = function(loading){ loading = loading ? true : false; // Pulicacoes var dataJson = { portal:"SETIC", data:{ paginaAtual: $scope.paginaAtual , itensPorPagina: $scope.paginacaoQtdRegistros, templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: 'FORM', descricao: 'FORM', detalhe: "Formulário", dominio: "TP_FORMULARIO" } } } } RequestService.request('POST', '/formulario/listar', dataJson, null, function(resp){ if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; angular.forEach(resp.data, function(data){ angular.forEach(data.anexoPortalList, function(anexoPortalList){ var itensArray = []; angular.forEach(anexoPortalList.anexoPortalItemList, function(anexoPortalItemList){ if (anexoPortalItemList.nome.indexOf('_CAPA_') >= 0) { itensArray[1] = anexoPortalItemList; } else { itensArray[0] = anexoPortalItemList; } }); anexoPortalList.anexoPortalItemList = itensArray; }); }); AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } // Numero de Paginas $scope.numeroDePaginas = function(){ if (angular.isDefined($scope.itensPaginados)) { if (angular.isDefined($scope.itensPaginados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } } // Numero de Paginas $scope.setarPaginaAtual = function(index){ $scope.paginaAtual = index; $scope.paginarRegistos(true); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index){ $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(true); } }); 'use strict'; app.controller('menuController', function($rootScope, $scope, $window, $timeout, $state, RequestService, AlertaService, Alertas, Utils, $ws, $location, $cookies, Auth) { // declare $scope.caminhoCompleto = $location.path(); $scope.stateName = $state.current.name; $scope.logoutInvestidor = function() { Alertas.confirm($rootScope.const.CONFIRMA_ENCERRAR_SESSAO, $rootScope.const.SIM_ENCERRAR_SESSAO, null, function(isConfirm) { if (isConfirm) { //$scope.logout(); Auth.logoutInvestidor(); } }) }; // Investidor $scope.investidor = null; $scope.getInvestidor = function() { $scope.investidor = Auth.getUtilizador(); }; }); 'use strict'; app.controller('loginInvestidorController', ['$rootScope', '$scope', '$window', '$timeout', '$state', 'RequestService', 'AlertaService', 'Alertas', 'Utils', '$ws', '$location', '$cookies', 'Auth', function($rootScope, $scope, $window, $timeout, $state, RequestService, AlertaService, Alertas, Utils, $ws, $location, $cookies, Auth) { $scope.exibirLogin = true; $scope.exibirMensagemEmail = false; $scope.investidor = { nif: null, nome: null, email: null, confirmacaoEmail: null, senha: null, confirmacaosenha: null, senhalogin: null }; $scope.valida_nif = false; $scope.valida_nome = false; $scope.valida_email = false; $scope.valida_confirmacaoEmail = false; $scope.valida_senha = false; $scope.valida_confirmacaosenha = false; $scope.valida_senhalogin = false; $scope.captchaError = false; $scope.msg_email = 'Informe o e-mail.'; $scope.loginCheck = function(newUser) { if (!$scope.investidor.nif) { $scope.valida_nif = true; } else if (!$scope.investidor.senhalogin && !newUser) { $scope.valida_senhalogin = true; } else { var user = { nif: $scope.investidor.nif, senha: (!newUser) ? $scope.investidor.senhalogin : $scope.investidor.senha }; Alertas.wait(); Auth.login(user, function(response) { if (response.data.retorno.cod == 200) { Auth.setInvestidorSession(function(e) { if (e) { $scope.user = response.data.data; if ($scope.user.nif) { // setar carrinho para o investidor logado $scope.carrinhoTitulos = ($window.localStorage.getItem('carrinhoTitulos')) ? JSON.parse($window.localStorage.getItem('carrinhoTitulos')) : []; $window.localStorage.removeItem($scope.investidor.nif); $window.localStorage.setItem($scope.investidor.nif, JSON.stringify($scope.carrinhoTitulos)); //$window.localStorage.removeItem('carrinhoTitulos'); $timeout(function() { Alertas.closeWait(); $rootScope.$broadcast("userInvestidorReceiver", null); $location.url('/backoffice/simulador'); }, 400); } else { Alertas.statusRetornoErroCallback("Utilizador Inválido!", function() { $timeout(function() { $rootScope.$broadcast("userInvestidorReceiver", null); $location.url('/'); }, 400); }); } } else { Alertas.statusRetornoErro($rootScope.const.ERRO_COMPLETAR_OPERACAO); } }); } else { $rootScope.$broadcast("userInvestidorReceiver", null); Alertas.statusRetornoErro(response.data.retorno.message); } }, function erro(response) { $rootScope.$broadcast("userInvestidorReceiver", null); Alertas.networkError(); }); } }; $scope.enterListener = function(keyEvent) { if (keyEvent.which === 13) $scope.loginCheck(); }; $scope.recuperar = { email: null }; $scope.valida_recuperar_email = false; $scope.validateEmailRecuperar = function() { var email = $scope.recuperar.email; if (email != "") { if (Utils.validEmailReg(email)) { return false; } else { $scope.recuperar.email = ''; $scope.valida_recuperar_email = true; } } }; $scope.recuperarSenha = function() { if (!$scope.recuperar.email) { $scope.valida_recuperar_email = true; } else if (!Utils.validEmailReg($scope.recuperar.email)) { $scope.valida_recuperar_email = true; } else { var dataJson = { email: $scope.recuperar.email }; Alertas.wait(); $ws.post('/rest/perfil/recuperarSenha', dataJson).then(function sucesso(response) { if (response.data.retorno.cod == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.PALAVRA_PASSE_RECUPERADA, function() { $timeout(function() { $scope.recuperar.email = ''; $scope.valida_recuperar_email = false; Utils.mantemModal('#modalRecuperarSenha', false); }, 400); }); } else { Alertas.statusRetornoErro(response.data.retorno.message); } }, function erro(response) { Alertas.networkError(); }); } }; }]); 'use strict'; app.controller('programacaoController', ['$rootScope', '$scope', '$state', '$stateParams', '$timeout', 'RequestService', 'AlertaService', 'StorageService', '$ws', 'Alertas', 'Utils', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService, StorageService, $ws, Alertas, Utils) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $scope.administrador = false; $scope.gestor = false; $scope.publicador = false; $scope.redator = false; $scope.revisor = false; $scope.editor = false; if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } }); $scope.setComponents = function() { $('.moedamask').mask('00.000.000.000,00', { reverse: true }); }; $scope.dataEmissao = moment().format("DD/MM/YYYY HH:mm:ss"); // Filtrar Programações $scope.programacoes = []; $scope.filter = { tipoPesquisaDatas: "M", // values M(Pesquisa por mes) ou E(Pesquisa entre datas), ano: null, mes: null, situacao: null, data: { dtInicial: null, dtFinal: null }, titulo: null, maturidade: null }; $scope.reset = function(form) { if (form) { form.$setPristine(); form.$setUntouched(); } $scope.resetFilterValues(); }; $scope.resetFilterValues = function() { $scope.filter.ano = null; $scope.filter.mes = null; $scope.filter.situacao = null; $scope.filter.data.dtInicial = null; $scope.filter.data.dtFinal = null; $scope.filter.titulo = null; $scope.filter.maturidade = null; $scope.maturidades = []; $scope.mesesValidos = []; $scope.programacoes = []; }; $scope.filtrarProgramacao = function(form) { if (form.$valid && form.$submitted) { $scope.programacoes = []; var dtInicio = ""; var dtFinal = ""; var msg = ""; if ($scope.filter.tipoPesquisaDatas == 'M') { dtInicio = ($scope.filter.ano && $scope.filter.mes) ? moment($scope.filter.ano + "-" + $scope.filter.mes + '-' + '01', "YYYY-MM-DD").format("YYYY-MM-DD") : '%20'; dtFinal = ($scope.filter.ano && $scope.filter.mes) ? moment(moment($scope.filter.ano + "-" + $scope.filter.mes, "YYYY-MM").endOf('month')).format("YYYY-MM-DD") : '%20'; msg = $rootScope.const.AVISO_INFORME_O_MES_E_O_ANO; } else { dtInicio = ($scope.filter.data.dtInicial) ? Utils.formataData($scope.filter.data.dtInicial) : '%20'; dtFinal = ($scope.filter.data.dtFinal) ? Utils.formataData($scope.filter.data.dtFinal) : '%20'; msg = $rootScope.const.AVISO_INFORME_O_PERIODO; } var tituloPublico = ($scope.filter.titulo) ? $scope.filter.titulo.tipo : '%20'; var maturidade = ($scope.filter.maturidade) ? $scope.filter.maturidade.codigoTitulo : '%20'; // Se não estiver logado retorna apenas os aprovados var acessoStatus = ($scope.utilizador) ? '%20' : "APR"; var situacao = ($scope.filter.situacao) ? $scope.filter.situacao : acessoStatus; var url = "/servicos/leilao/programacao/" + dtInicio + "/" + dtFinal + "/" + maturidade + '/' + tituloPublico + '/' + situacao; if (dtInicio == "%20" && dtFinal == "%20") { Alertas.aviso('warning', $rootScope.const.TITLE_AVISO, msg, function() { return false; }); } else { Alertas.wait(); $ws.getStringData(url).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { if (response.data.data) { angular.forEach(response.data.data, function(obj, key) { if (obj.situacao != "EXC") { $scope.programacoes.push(obj); } }); } } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } } }; // Imprimir Programacao $scope.imprimirProgramacao = function()  { $scope.dataEmissao = moment().format("DD/MM/YYYY HH:mm:ss"); window.print(); }; // Obter Tipos de Titulos $scope.tipostitulos = []; $scope.obterTipoTitulos = function() { $scope.tipostitulos = []; Alertas.wait(); $ws.getStringData('/servicos/leilao/obtertipostitulos').then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { $scope.tipostitulos = response.data.data; } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); }; // Obter Maturidades $scope.maturidades = []; $scope.obterMaturidades = function(titulo) { if (titulo) { $scope.maturidades = []; Alertas.wait(); $ws.getStringData('/servicos/leilao/obtermaturidades/' + titulo.tipo).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { $scope.maturidades = response.data.data; } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } else { Alertas.aviso('warning', $rootScope.const.TITLE_AVISO, $rootScope.const.AVISO_TITULO_INFORMADO_E_INVALIDO, function() { return false; }); } }; // Obter Anos $scope.anosValidos = []; $scope.obterAnos = function() { var anoAtual = parseInt(moment().format('Y')); for (var i = 2014; i <= anoAtual; i++) { $scope.anosValidos.push(i); } }; // Obter Meses $scope.mesesValidos = []; $scope.obterMeses = function(ano) { var mesAtual = parseInt(moment().format('MM')); var anoAtual = parseInt(moment().format('Y')); $scope.mesesValidos = []; if (ano == anoAtual) { for (var i = 1; i <= mesAtual; i++) { $scope.mesesValidos.push(i); } } else { for (var i = 1; i <= 12; i++) { $scope.mesesValidos.push(i); } } }; // Obter Nome Mes $scope.obterNomeMes = function(mes) { return (mes) ? moment('01/' + mes + '/2018', "DD/MM/YYYY").format("MMMM") : ''; }; // Gerir Programacao $scope.programacao = { codigoProgramacao: null, situacao: null, data: { dtInicial: null, dtFinal: null }, instrumentos: [] }; $scope.instrumento = { titulo: null, maturidade: null, valorFinanceiro: null }; $scope.limparProgramacao = function() { $scope.formManterProgramacao.$setPristine(); $scope.formManterProgramacao.$setUntouched(); $scope.programacao.codigoProgramacao = null; $scope.programacao.situacao = null; $scope.programacao.data.dtInicial = null; $scope.programacao.data.dtFinal = null; $scope.programacao.instrumentos = []; }; // adiciona Instrumento na programacao $scope.adicionarInstrumento = function() { if (parseFloat(Utils.getFloatMoney($scope.instrumento.valorFinanceiro)) == 0.00 || parseFloat(Utils.getFloatMoney($scope.instrumento.valorFinanceiro)) == 0) { Alertas.aviso('warning', $rootScope.const.TITLE_AVISO, $rootScope.const.O_VALOR_DO_INSTRUMENTO_NAO_PODE_SER_IGUAL_A_ZERO, function() { return false; }); } else { if (!$scope.verificaMaturidadeExiste($scope.instrumento)) { $scope.programacao.instrumentos.push(angular.copy($scope.instrumento)); $scope.instrumento.titulo = null; $scope.instrumento.maturidade = null; $scope.instrumento.valorFinanceiro = null; $scope.maturidades = []; } else { Alertas.aviso('warning', $rootScope.const.TITLE_AVISO, $rootScope.const.INSTRUMENTO_JA_INFORMADO_PARA_PROGRAMACAO_SEMANAL, function() { return false; }); } } }; $scope.verificaMaturidadeExiste = function(instrumento) { var valida = false; angular.forEach($scope.programacao.instrumentos, function(obj, key) { if (obj.maturidade.descricao == instrumento.maturidade.descricao && obj.titulo.tipo == instrumento.titulo.tipo) { valida = true; } }); return valida; }; $scope.removerInstrumento = function(instrumento) { if (instrumento.titulo.codigo) { instrumento.titulo.situacao = "EXC"; instrumento.titulo.temAlteracao = true; } else { if ($scope.programacao.instrumentos.length > 0) { var arrayInstrumento = []; angular.forEach($scope.programacao.instrumentos, function(obj, key) { if (obj != instrumento) { arrayInstrumento.push(obj); } }); $scope.programacao.instrumentos = arrayInstrumento; } } }; // Salvar Programacao $scope.manterProgramacao = function(form) { if (form.$valid && form.$submitted) { var instArray = []; if ($scope.programacao.instrumentos.length > 0) { angular.forEach($scope.programacao.instrumentos, function(obj, key) { var instrumentoParse = { codigo: obj.titulo.codigo, tipo: obj.titulo.tipo, descricao: obj.titulo.descricao, maturidade: { descricao: obj.maturidade.descricao, codigoTitulo: obj.maturidade.codigoTitulo }, valorFinanceiro: obj.valorFinanceiro, situacao: (obj.titulo.codigo) ? obj.titulo.situacao : "ABE", subTotal: obj.titulo.subTotal, listaResultados: obj.titulo.listaResultados, temAlteracao: obj.titulo.temAlteracao }; instArray.push(instrumentoParse); }); } var dataJson = { codigoProgramacao: $scope.programacao.codigoProgramacao, dataInicio: Utils.formataData($scope.programacao.data.dtInicial), dataFim: Utils.formataData($scope.programacao.data.dtInicial), //dataFim: Utils.formataData($scope.programacao.data.dtFinal), situacao: (!$scope.programacao.codigoProgramacao) ? "ABE" : $scope.programacao.situacao, listaTitulos: (instArray.length > 0) ? instArray : [], totalTitulos: null }; Alertas.wait(); $ws.post('/servicos/leilao/programacao', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { var programacao = response.data.data; var msgProgramacao = (dataJson.codigoProgramacao == null) ? $rootScope.const.PROGRAMACAO_SALVA_CONTINUE : $rootScope.const.PROGRAMACAO_SALVA_COM_SUCESSO; Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, msgProgramacao, function() { $timeout(function() { $scope.limparProgramacao(); if (dataJson.codigoProgramacao == null) { $scope.programacao.codigoProgramacao = programacao.codigoProgramacao; $scope.programacao.data.dtInicial = Utils.formataDataNormal(programacao.dataInicio); $scope.programacao.data.dtFinal = Utils.formataDataNormal(programacao.dataFim); $scope.programacao.situacao = programacao.situacao; $scope.programacao.instrumentos = []; if (programacao.listaTitulos) { if (programacao.listaTitulos.length > 0) { angular.forEach(programacao.listaTitulos, function(obj, key) { var instrumento = { titulo: obj, maturidade: obj.maturidade, valorFinanceiro: obj.valorFinanceiro }; $scope.programacao.instrumentos.push(instrumento); }); } } } else { Utils.mantemModal("#modalGerirProgramacao", false); $scope.filtrarProgramacao($scope.filtrarProgramacaoForm); } }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } }; // Acoes da tabela de programacao $scope.editarProgramacao = function(programacao)  { $scope.limparProgramacao(); $timeout(function() { $scope.programacao.codigoProgramacao = programacao.codigoProgramacao; $scope.programacao.data.dtInicial = Utils.formataDataNormal(programacao.dataInicio); $scope.programacao.data.dtFinal = Utils.formataDataNormal(programacao.dataFim); $scope.programacao.situacao = programacao.situacao; if (programacao.listaTitulos) { if (programacao.listaTitulos.length > 0) { angular.forEach(programacao.listaTitulos, function(obj, key) { var instrumento = { titulo: obj, maturidade: obj.maturidade, valorFinanceiro: obj.valorFinanceiro }; $scope.programacao.instrumentos.push(instrumento); }); } } Utils.mantemModal("#modalGerirProgramacao", true); }, 500); }; $scope.excluirProgramacao = function(programacao) { Alertas.confirm($rootScope.const.AVISO_EXCLUIR_PROGRAMACAO, null, null, function(e) { if (e) { var dataJson = angular.copy(programacao); dataJson.situacao = "EXC"; Alertas.wait(); $ws.delete('/servicos/leilao/programacao/' + dataJson.codigoProgramacao, dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.PROGRAMACAO_EXCLUIDA_COM_SUCESSO, function() { $timeout(function() { $scope.filtrarProgramacao($scope.filtrarProgramacaoForm); }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } }); }; $scope.validaExcluirProgramacao = function(programacao) { var temResultados = true; angular.forEach(programacao.listaTitulos, function(obj, key) { if (obj.listaResultados) { if (obj.listaResultados.length > 0) { temResultados = false; } } }); return temResultados; }; // Fluxo da programacao $scope.alterarStatusProgramacao = function(programacao, status) { if (status == "PEN" && programacao.listaTitulos.length == 0) { Alertas.aviso('warning', $rootScope.const.TITLE_AVISO, $rootScope.const.NAO_FOI_POSSIVEL_SUBMETER_A_PROGRAMACAO, function() { return false; }); } else { var msg = $rootScope.const.CONFIRMA_OPERACAO; if (status == "PEN") { msg = $rootScope.const.TEM_CERTEZA_QUE_DESEJA_SUBMETER_ESTA_PROGRAMACAO; } else if (status == "APR") { msg = $rootScope.const.TEM_CERTEZA_QUE_DESEJA_APROVAR_ESTA_PROGRAMACAO; } else if (status == "ABE") { msg = $rootScope.const.TEM_CERTEZA_QUE_DESEJA_REPROVAR_ESTA_PROGRAMACAO; } Alertas.confirm(msg, null, null, function(e) { if (e) { var dataJson = programacao; dataJson.situacao = status; Alertas.wait(); $ws.post('/servicos/leilao/programacao', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.PROGRAMACAO_ALTERADA_COM_SUCESSO, function() { $timeout(function() { $scope.filtrarProgramacao($scope.filtrarProgramacaoForm); }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } }); } }; // Manter Resultados $scope.resultados = []; $scope.resultado = { programacao: { codigoProgramacao: null, dataInicio: null, dataFim: null, listaTitulos: [], situacao: null, totalTitulos: null } }; // Lancar Resultados da Programcao - Por Titutlos $scope.lancarResultados = function(programacao) { $scope.resultado.programacao = angular.copy(programacao); Utils.mantemModal("#modalGerirResultados", true); }; $scope.novoResultado = function() { $scope.limparResultadoInstrumento($scope.formManterResultado); Utils.mantemModal("#modalGerirResultados", false); $timeout(function() { Utils.mantemModal("#modalGerirResultado", true); }, 600); }; $scope.voltarParaResultados = function() { Utils.mantemModal("#modalGerirResultado", false); $timeout(function() { Utils.mantemModal("#modalGerirResultados", true); }, 600); }; $scope.lancarResultado = false; $scope.instSelecionado = null; $scope.lancarResultadoInstrumento = function(instrumento, programacao) { $scope.lancarResultado = true; $scope.instSelecionado = angular.copy(instrumento); $scope.buscarResultadosInstrumento(instrumento); }; $scope.voltarResultado = function() { $scope.lancarResultado = false; $scope.instSelecionado = null; }; $scope.resultadoInstrumento = { cdResultadoLeilao: null, dtEmissao: null, dtVencimento: null, oferta: null, procura: null, montanteColocado: null, valorPago: null, precoUnitario: null, taxaJuros: null, stResultadoLeilao: null, percRacio: null }; $scope.limparResultadoInstrumento = function(form) { $scope.resultadoInstrumento.dtEmissao = null; $scope.resultadoInstrumento.oferta = null; $scope.resultadoInstrumento.procura = null; $scope.resultadoInstrumento.montanteColocado = null; $scope.resultadoInstrumento.valorPago = null; $scope.resultadoInstrumento.precoUnitario = null; $scope.resultadoInstrumento.taxaJuros = null; form.$setPristine(); }; $scope.editarResultado = function(resultado) { var dataFinalFormatadaEmissao = ""; var dataFinalFormatadaVencimento = ""; if (resultado.dtEmissao.length > 28) { var dataArrayEmissao = String(resultado.dtEmissao).split("."); var unicDataEmissao = String(dataArrayEmissao[0]).split("T"); dataFinalFormatadaEmissao = Utils.formataDataNormal(unicDataEmissao[0]); } if (resultado.dtVencimento.length > 28) { var dataArrayVencimento = String(resultado.dtVencimento).split("."); var unicDataVencimento = String(dataArrayVencimento[0]).split("T"); dataFinalFormatadaVencimento = Utils.formataDataNormal(unicDataVencimento[0]); } $scope.resultadoInstrumento.cdResultadoLeilao = resultado.cdResultadoLeilao; $scope.resultadoInstrumento.dtEmissao = dataFinalFormatadaEmissao; $scope.resultadoInstrumento.dtVencimento = dataFinalFormatadaVencimento; $scope.resultadoInstrumento.oferta = Utils.formatKuanza(resultado.vlMontante); $scope.resultadoInstrumento.procura = Utils.formatKuanza(resultado.vlProcura); $scope.resultadoInstrumento.montanteColocado = Utils.formatKuanza(resultado.vlMontanteColocado); $scope.resultadoInstrumento.valorPago = Utils.formatKuanza(resultado.vlPago); $scope.resultadoInstrumento.precoUnitario = Utils.formatKuanza(resultado.vlUnitario); $scope.resultadoInstrumento.taxaJuros = Utils.formatKuanza(resultado.txJuros); $scope.resultadoInstrumento.percRacio = Utils.formatKuanza(resultado.percRacio); $scope.resultadoInstrumento.stResultadoLeilao = resultado.stResultadoLeilao; Utils.mantemModal("#modalGerirResultados", false); $timeout(function() { Utils.mantemModal("#modalGerirResultado", true); }, 600); }; $scope.validarInstrumentos = function(instrumentos) { var valida = false; angular.forEach(instrumentos, function(obj, key) { if (obj.titulo.situacao != 'EXC') { valida = true; } }); return valida; }; $scope.manterResultado = function(form) { if (form.$valid && form.$submitted) { if ($scope.resultadoInstrumento.cdResultadoLeilao) { var dataEmissao = Utils.formataData($scope.resultadoInstrumento.dtEmissao) + 'T' + moment().format("HH:mm:ss"); var maturidade = String($scope.instSelecionado.maturidade.descricao).split(" "); var diasMaturidade = 0; if (maturidade.length > 0)  { if (maturidade[1] == "dias" || maturidade[1] == "dia") { diasMaturidade = parseInt(maturidade[0]) - 2; } else if (maturidade[1] == "anos" || maturidade[1] == "ano") { diasMaturidade = (parseInt(maturidade[0]) * 365) - 2; } } var dataVencimento = moment($scope.resultadoInstrumento.dtEmissao, "DD/MM/YYYY").add(parseInt(diasMaturidade), 'days').format("YYYY-MM-DD") + 'T' + moment().format("HH:mm:ss"); var vlRacio = parseFloat(parseFloat(Utils.getFloatMoney($scope.resultadoInstrumento.procura)) / parseFloat(Utils.getFloatMoney($scope.resultadoInstrumento.oferta))).toFixed(2); var dataJson = { cdResultadoLeilao: $scope.resultadoInstrumento.cdResultadoLeilao, dtEmissao: dataEmissao, dtVencimento: dataVencimento, vlMontante: Utils.getFloatMoney($scope.resultadoInstrumento.oferta), vlProcura: Utils.getFloatMoney($scope.resultadoInstrumento.procura), vlMontanteColocado: Utils.getFloatMoney($scope.resultadoInstrumento.montanteColocado), vlPago: Utils.getFloatMoney($scope.resultadoInstrumento.valorPago), percRacio: vlRacio, txJuros: Utils.getFloatMoney($scope.resultadoInstrumento.taxaJuros), vlUnitario: Utils.getFloatMoney($scope.resultadoInstrumento.precoUnitario), stResultadoLeilao: $scope.resultadoInstrumento.stResultadoLeilao }; Alertas.wait(); $ws.putData('/servicos/leilao/resultado/alterarResultado', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.RESULTADO_ALTERADO_COM_SUCESSO, function() { $timeout(function() { $scope.buscarResultadosInstrumento($scope.instSelecionado); $scope.voltarParaResultados(); }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } else { var dataEmissao = Utils.formataData($scope.resultadoInstrumento.dtEmissao) + 'T' + moment().format("HH:mm:ss"); //2008-09-29T02:49:45 var vlRacio = parseFloat(parseFloat(Utils.getFloatMoney($scope.resultadoInstrumento.procura)) / parseFloat(Utils.getFloatMoney($scope.resultadoInstrumento.oferta))).toFixed(2); var maturidade = String($scope.instSelecionado.maturidade.descricao).split(" "); var diasMaturidade = 0; if (maturidade.length > 0)  { if (maturidade[1] == "dias" || maturidade[1] == "dia") { diasMaturidade = parseInt(maturidade[0]) - 2; } else if (maturidade[1] == "anos" || maturidade[1] == "ano") { diasMaturidade = (parseInt(maturidade[0]) * 365) - 2; } } var dataVencimento = moment($scope.resultadoInstrumento.dtEmissao, "DD/MM/YYYY").add(parseInt(diasMaturidade), 'days').format("YYYY-MM-DD") + 'T' + moment().format("HH:mm:ss"); var dataJson = { cdTituloLeilao: $scope.instSelecionado.codigo, dtEmissao: dataEmissao, vlMontante: Utils.getFloatMoney($scope.resultadoInstrumento.oferta), dtVencimento: dataVencimento, txJuros: Utils.getFloatMoney($scope.resultadoInstrumento.taxaJuros), vlUnitario: Utils.getFloatMoney($scope.resultadoInstrumento.precoUnitario), vlProcura: Utils.getFloatMoney($scope.resultadoInstrumento.procura), percRacio: vlRacio, vlPago: Utils.getFloatMoney($scope.resultadoInstrumento.valorPago), vlMontanteColocado: Utils.getFloatMoney($scope.resultadoInstrumento.montanteColocado), stResultadoLeilao: "ABE" }; Alertas.wait(); $ws.post('/servicos/leilao/resultado/salvarLeilao', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.RESULTADO_REGISTADO_COM_SUCESSO, function() { $timeout(function() { $scope.buscarResultadosInstrumento($scope.instSelecionado); $scope.limparResultadoInstrumento(form); $scope.voltarParaResultados(); }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } } }; $scope.excluirResultado = function(resultado, instrumento) { Alertas.confirm($rootScope.const.AVISO_EXCLUIR_REGISTO, null, null, function(e) { if (e) { if (resultado.cdResultadoLeilao) { $scope.serviceExcluirResultadoLeilao(resultado.cdResultadoLeilao, instrumento); } } }); }; $scope.serviceExcluirResultadoLeilao = function(cdResultadoLeilao, instrumento) { if (cdResultadoLeilao) { var dataJson = { cdResultadoLeilao: cdResultadoLeilao }; Alertas.wait(); $ws.delete('/servicos/leilao/resultado/removerResultadoLeilao', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.RESULTADO_EXCLUIDO_COM_SUCESSO, function() { $timeout(function() { $scope.buscarResultadosInstrumento(instrumento); }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } }; $scope.alterarStatusResultado = function(resultado, instSelecionado, situacao) { var msg = $rootScope.const.CONFIRMA_OPERACAO; if (situacao == "PEN") { msg = $rootScope.const.TEM_CERTEZA_QUE_DESEJA_SUBMETER_O_RESULTADO; } else if (situacao == "APR") { msg = $rootScope.const.TEM_CERTEZA_QUE_DESEJA_APROVAR_O_RESULTADO; } else if (situacao == "ABE") { msg = $rootScope.const.TEM_CERTEZA_QUE_DESEJA_REPROVAR_O_RESULTADO; } Alertas.confirm(msg, null, null, function(e) { if (e) { var dataJson = { cdResultadoLeilao: resultado.cdResultadoLeilao, dtEmissao: resultado.dtEmissao, dtVencimento: resultado.dtVencimento, vlMontante: resultado.vlMontante, vlProcura: resultado.vlProcura, vlMontanteColocado: resultado.vlMontanteColocado, vlPago: resultado.vlPago, percRacio: resultado.percRacio, txJuros: resultado.txJuros, vlUnitario: resultado.vlUnitario, stResultadoLeilao: situacao }; Alertas.wait(); $ws.putData('/servicos/leilao/resultado/alterarResultado', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { Alertas.aviso('success', $rootScope.const.TITLE_SUCESSO, $rootScope.const.RESULTADO_ALTERADO_COM_SUCESSO, function() { $timeout(function() { $scope.buscarResultadosInstrumento(instSelecionado); }, 500); }); } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } }); }; $scope.buscarResultadosInstrumento = function(instrumento) { var dataJson = { cdTituloLeilao: instrumento.codigo, dtEmissao: null, stResultadoLeilao: null }; $scope.resultados = []; Alertas.wait(); $ws.post('/servicos/leilao/resultado/listarResultados', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { if (response.data.data) { $scope.resultados = response.data.data.resultadoLeilaoList; //console.log($scope.resultados); } } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); }; $scope.buscarResultadosInstrumentoCount = function(instrumento, callback) { var dataJson = { cdTituloLeilao: instrumento.codigo, dtEmissao: null, stResultadoLeilao: null }; $scope.resultados = []; $ws.post('/servicos/leilao/resultado/listarResultados', dataJson).then(function sucesso(response) { if (response.data.retorno.codigo == 200) { if (response.data.data) { $scope.resultados = response.data.data.resultadoLeilaoList; if (response.data.data.resultadoLeilaoList.length > 0) { callback(parseInt(response.data.data.resultadoLeilaoList.length)) } else { callback(0) } } } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); }; // Init $scope.init = function() { $scope.obterTipoTitulos(); $scope.obterAnos(); $scope.setComponents(); }; }]); 'use strict'; app.controller('programacaoGerirController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { }); 'use strict'; app.controller('resultadosController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService, StorageService, $ws, Alertas, Utils) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); $scope.administrador = false; $scope.gestor = false; $scope.publicador = false; $scope.redator = false; $scope.revisor = false; $scope.editor = false; if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } $rootScope.$on('broadcastUtilizadorReceiver', function(event, args) { $scope.utilizador = StorageService.get('utilizadorLogado'); if ($scope.utilizador) { $scope.administrador = Utils.validaPermissao("administrador", $scope.utilizador.grupos); $scope.gestor = Utils.validaPermissao("gestor", $scope.utilizador.grupos); $scope.publicador = Utils.validaPermissao("publicador", $scope.utilizador.grupos); $scope.redator = Utils.validaPermissao("redator", $scope.utilizador.grupos); $scope.revisor = Utils.validaPermissao("revisor", $scope.utilizador.grupos); $scope.editor = Utils.validaPermissao("editor", $scope.utilizador.grupos); } }); $scope.setComponents = function() { $('.moedamask').mask('00.000.000,00', { reverse: true }); }; $scope.dataEmissao = moment().format("DD/MM/YYYY H:mm:ss"); // Filtrar Programações $scope.resultados = []; $scope.filter = { dtEmissao: null }; $scope.reset = function(form) { if (form) { form.$setPristine(); form.$setUntouched(); } $scope.resetFilterValues(); }; $scope.resetFilterValues = function() { $scope.filter.dtEmissao = null; $scope.resultados = []; }; // Imprimir Programacao $scope.imprimir = function()  { $scope.dataEmissao = moment().format("DD/MM/YYYY H:mm:ss"); window.print(); }; $scope.filtrarResultados = function(form) { if (form.$valid && form.$submitted) { var dataJson = { cdTituloLeilao: null, dtEmissao: Utils.formataData($scope.filter.dtEmissao), stResultadoLeilao: "APR" }; Alertas.wait(); $ws.post('/servicos/leilao/resultado/listarResultados', dataJson).then(function sucesso(response) { Alertas.closeWait(); if (response.data.retorno.codigo == 200) { $scope.resultados = response.data.data.resultadoLeilaoList; } else { Alertas.statusRetornoErro(response.data.retorno.mensagem); } }, function erro(response) { Alertas.networkError(); }); } }; // Imprimir Programacao $scope.imprimirProgramacao = function(programacao)  { window.print(); }; // Init $scope.init = function() { $scope.setComponents(); }; }); 'use strict'; app.controller('mapaDoSiteController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService, LinkService) { $scope.menuFooter = []; $scope.init = function() { // init angular.forEach($rootScope.menu, function(obj, key) { $scope.menuFooter.push(obj); }); }; $scope.checkUrl = function(itemMenu) { return LinkService.target(itemMenu.url) ? itemMenu.url : $rootScope.getLinkState(itemMenu.state); }; }); 'use strict'; app.controller('quemEquemController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService, StorageService) { // Escutar Utilizador $scope.utilizador = StorageService.get('utilizadorLogado'); // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'sobre.nossa-lideranca-e-gestao') { $timeout(function() { $scope.init(); }, 1000); } if ($state.current.name == 'sobre.nossa-lideranca-e-gestao.cdQuemEQuem') { $timeout(function() { $scope.initVisualizarDetalhes(); }, 1000); } }); $scope.pagina = {}; $scope.menuAtual = $state.current; // Init Controller $scope.init = function() { // Página Interna if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } // Quem é Quem List RequestService.request('GET', '/quemEQuem/listar/' + RequestService.portalConfig.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.quemEQuemList = resp.data; } } else { AlertaService.erroRede(); } }); }; $scope.getEmail = function (email) { var element = document.getElementById("removeIcon"); element.classList.remove("fa-clone"); element.classList.add("fa-check") etTimeout(function () { element.classList.remove("fa-check"); element.classList.add("fa-clone"); }, 3000); var copyText = email; navigator.clipboard.writeText(copyText); }; $scope.getEmai = function (email, index) { var element = document.querySelector('.rm' + index); element.classList.remove("fa-clone"); element.classList.add("fa-check") setTimeout(function () { element.classList.add("fa-clone"); element.classList.remove("fa-check") }, 5000); var copyText = email; navigator.clipboard.writeText(copyText); }; // Visualizar $scope.initVisualizarDetalhes = function() { RequestService.request('GET', '/quemEQuem/buscar/' + $stateParams.cdQuemEQuem, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.detalhe = resp.data; } } else { AlertaService.erroRede(); } }); } }); app.controller('publicacoesController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { // noticias if ($state.current.name == 'sala-de-imprensa.noticias' || $state.current.name == 'sala-de-imprensa.artigos') { $timeout(function() { $scope.init(); }, 1000); } if ($state.current.name == 'sala-de-imprensa.noticias.cdPublicacao' || $state.current.name == 'sala-de-imprensa.artigos.cdPublicacao') { $timeout(function() { $scope.noticiaCdPublicacao(); }, 1000); } }); this.$onInit = function() { $scope.pagina = {}; $scope.menuAtual = $state.current; var regex = new RegExp(/[.]/g); $scope.statePaths = regex.test($scope.menuAtual.name); } // Listar Noticias na Index $scope.init = function() { $scope.pagina.anexoPortalList = []; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 3; $scope.paginarRegistos(); // Conteudo Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } // Noticia por Id $scope.noticiaCdPublicacao = function() { if ($stateParams.cdPublicacao) { RequestService.request('GET', '/publicacao/buscar/' + $stateParams.cdPublicacao, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.noticia = resp.data; $state.current.ncyBreadcrumb.label = $scope.noticia.titulo; } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } } $scope.paginarRegistos = function(loading) { loading = loading ? true : false; //Publicação var dataJson = { portal: RequestService.portalConfig.portalAPI, flDestaque: null, tipo: { sigla: $state.current.publicacao.template.sigla, dominio: $state.current.publicacao.template.dominio }, status: "PUB", titulo: null, todos: true, paginaAtual: $scope.paginaAtual, qtdPaginas: $scope.paginacaoQtdRegistros } RequestService.request('POST', '/publicacao/listarPublico', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }); app.controller('publicacoesController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { // noticias if ($state.current.name == 'sala-de-imprensa.noticias' || $state.current.name == 'sala-de-imprensa.artigos') { $timeout(function() { $scope.init(); }, 1000); } if ($state.current.name == 'sala-de-imprensa.noticias.cdPublicacao' || $state.current.name == 'sala-de-imprensa.artigos.cdPublicacao') { $timeout(function() { $scope.noticiaCdPublicacao(); }, 1000); } }); this.$onInit = function() { $scope.pagina = {}; $scope.menuAtual = $state.current; var regex = new RegExp(/[.]/g); $scope.statePaths = regex.test($scope.menuAtual.name); } // Listar Noticias na Index $scope.init = function() { $scope.pagina.anexoPortalList = []; //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 9; $scope.paginarRegistos(); // Conteudo Pagina if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } // Noticia por Id $scope.noticiaCdPublicacao = function() { if ($stateParams.cdPublicacao) { RequestService.request('GET', '/publicacao/buscar/' + $stateParams.cdPublicacao, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); $scope.noticia = resp.data; $state.current.ncyBreadcrumb.label = $scope.noticia.titulo; } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } } $scope.paginarRegistos = function(loading) { loading = loading ? true : false; //Publicação var dataJson = { portal: RequestService.portalConfig.portalAPI, flDestaque: null, tipo: { sigla: $state.current.publicacao.template.sigla, dominio: $state.current.publicacao.template.dominio }, status: "PUB", titulo: null, todos: true, paginaAtual: $scope.paginaAtual, qtdPaginas: $scope.paginacaoQtdRegistros } RequestService.request('POST', '/publicacao/listarPublico', dataJson, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } }); app.controller('estatisticasController', function($scope, $state, StorageService, checkSession, $location) { //init if (!checkSession) { $location.url('/'); } else { $scope.init = function() { $scope.utilizador = StorageService.get('utilizadorLogado'); if (!$scope.utilizador) { $state.go('home'); } }; } }); 'use strict'; app.controller('glossarioController', function($rootScope, $scope, $state, $stateParams, $location, $anchorScroll, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $timeout(function() { $scope.init(); }, 1000); }); $scope.pagina = {}; $scope.init = function() { $scope.menuAtual = $state.current; RequestService.request('GET', '/glossario/listar/' + RequestService.portalConfig.portalAPI, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.glossarios = resp.data; } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } } else { AlertaService.erroRede(); } }); if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, false, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } } }); 'use strict'; app.controller('NewsletterController', function($rootScope, $scope, $state, $stateParams, $timeout, RequestService, AlertaService) { // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { if ($state.current.name == 'sala-de-imprensa.newsletter') { $timeout(function() { $scope.init(); }, 1000); } }); $scope.pagina = {}; $scope.init = function() { $scope.menuAtual = $state.current; $scope.label = $state.current.ncyBreadcrumb.label; $scope.sigla = $state.current.sigla; if ($scope.menuAtual.cdMenu) { RequestService.request('GET', '/menu/buscarConteudoHtml/' + $scope.menuAtual.cdMenu, null, true, function(resp) { if (resp) { AlertaService.closeProgressAlert(); if (resp.retorno.codigo == 200) { $scope.pagina = resp.data; } } else { AlertaService.erroRede(); } }); } // Paginar Publicacoes $scope.paginarRegistos(); } //Paginação $scope.paginaAtual = 1; $scope.paginacaoQtdRegistros = 8; $scope.paginacaoArray = [8, 16, 32]; $scope.paginarRegistos = function(loading) { loading = loading ? true : false; // Pulicacoes var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { paginaAtual: $scope.paginaAtual, itensPorPagina: $scope.paginacaoQtdRegistros, templatePublicacao: { cdTemplatePublicacao: 38, dsTemplate: null, flAtivo: "S", noTemplate: "TP_FORMULARIO", token: null, cgRefCodes: { sigla: $scope.sigla, descricao: $scope.sigla, detalhe: "Formulário", dominio: "TP_FORMULARIO" } } } } RequestService.request('POST', '/formulario/listar', dataJson, null, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { $scope.itensPaginados = resp; angular.forEach(resp.data, function(data) { angular.forEach(data.anexoPortalList, function(anexoPortalList) { var itensArray = []; angular.forEach(anexoPortalList.anexoPortalItemList, function(anexoPortalItemList) { if (anexoPortalItemList.nome.indexOf('_CAPA_') >= 0) { itensArray[1] = anexoPortalItemList; } else { itensArray[0] = anexoPortalItemList; } }); anexoPortalList.anexoPortalItemList = itensArray; }); }); AlertaService.closeProgressAlert(); } else { AlertaService.showMensagemRetorno(resp.retorno.codigo, resp.retorno.mensagem); } } else { AlertaService.erroRede(); } }); } // Numero de Paginas $scope.numeroDePaginas = function() { if (angular.isDefined($scope.itensPaginados)) { if (angular.isDefined($scope.itensPaginados.quantidadeTotalItens)) { var arrayPages = new Array(Math.ceil($scope.itensPaginados.quantidadeTotalItens / $scope.paginacaoQtdRegistros)); var pages = []; for (var i = 0; i < arrayPages.length; i++) { pages.push(i); } return pages; } } } // Numero de Paginas $scope.setarPaginaAtual = function(index) { $scope.paginaAtual = index; $scope.paginarRegistos(true); } // Numero de Paginas $scope.setarRegistosPorPagina = function(index) { $scope.paginacaoQtdRegistros = index.paginacaoQtdRegistros; $scope.paginarRegistos(true); } }); app .config(['cfpLoadingBarProvider', '$httpProvider', function(cfpLoadingBarProvider, $httpProvider) { cfpLoadingBarProvider.includeSpinner = false; }]) .service('RequestService', function($rootScope, $sce, $http, $timeout, $urlRouter, $q, $translateLocalStorage, AlertaService, StorageService) { var location; var protocol; var context = 'PortalMIREX'; var ip = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"; var lang = $translateLocalStorage.get('NG_TRANSLATE_LANG_KEY'); var separador = (lang == 'PT' || !lang || lang == '') ? '' : '-' + lang; var portalAPI = "MIREX" + separador; if (window.location.hostname.indexOf('localhost') >= 0 || window.location.hostname.match(ip)) { location = 'mirex.dev.minfin.gov.ao'; protocol = 'https:' } else { location = window.location.hostname; protocol = window.location.protocol; } var urlApi = protocol + '//' + location + '/Componentes/api'; var portalConfig = { portalAPI: portalAPI, protocol: protocol, location: location, port: window.location.port, context: context, portalDefault: portalAPI }; var updateToken = function(token) { UtilizadorService.updateToken(token); } var request = function(method, end_point, data, loading, callback) { var url = urlApi + end_point; var cancel = $q.defer(); if (loading) { AlertaService.showProgressAlert('A Carregar...'); } var headers = { 'Content-Type': 'application/json' }; var httpOptions = { method: method, data: data, url: url, timeout: cancel.promise, cancel: cancel, cache: false, withCredentials: true, headers: headers }; $http(httpOptions).then( function successCallback(response) { if (response.data.retorno.codigo == 923) { StorageService.clear(); $rootScope.$broadcast('broadcastUtilizadorReceiver'); AlertaService.showMensagemRetorno(response.data.retorno.codigo, 'Faça Login Novamente para continuar a acção', function() { $timeout(function() { angular.element('#exibirPopOverLogin').trigger('click'); }, 500); if (callback) { callback(response.data); } }); } else { if (callback) { callback(response.data); } if (angular.isDefined(response.data.token)) { if (response.data.token) { updateToken(response.data.token); } } } }, function errorCallback(response) { if (callback) { callback(); } } ).finally(function(response) { // $timeout(function () { // AlertaService.closeProgressAlert(); // }, 500); }) }; var local = function(method, end_point, data, loading, callback) { $http.get('app/services/offline/' + end_point).then(function(response) { callback(response.data) }); }; var download = function(endpoint, data, loading, callback) { if (loading) { AlertaService.showProgressAlert('A Carregar...'); } var url = $sce.trustAsResourceUrl(endpoint + '?callback=JSON_CALLBACK'); var httpOptions = { method: 'GET', url: url, cache: false, responseType: 'blob' }; $http(httpOptions).then( function successCallback(response) { if (callback) { callback(response) } }, function errorCallback(response) { if (callback) { callback(response); } } ).finally(function(response) { // $timeout(function () { // AlertaService.closeProgressAlert(); // }, 500); }) }; var versao = function(end_point, callback) { var url = window.location.protocol + '//' + location + '/' + end_point; var cancel = $q.defer(); var headers = { 'Content-Type': 'application/json' }; var httpOptions = { method: 'GET', url: url, timeout: cancel.promise, cancel: cancel, cache: false, withCredentials: true, headers: headers }; $http(httpOptions).then( function successCallback(response) { if (callback) { callback(response) } }, function errorCallback(response) { if (callback) { callback(); } } ).finally(function(response) { // $timeout(function () { // AlertaService.closeProgressAlert(); // }, 500); }) }; // Cancelar Requests $rootScope.$on('$routeChangeStart', function(event, next, current) { $http.pendingRequests.forEach(function(req) { if (req.cancel) { req.cancel.resolve(); } }); }); return { request: request, download: download, local: local, portalAPI: portalAPI, versao: versao, portalConfig: portalConfig } }); app.service('AlertaService', function($timeout) { swal.setDefaults({ allowOutsideClick: false, allowEscapeKey: true, allowEnterKey: true, confirmButtonColor: '#1f3264', onClose: function() { // }, onOpen: function() { // } }); var showMensagemRetorno = function(codigoRetorno, mensagem, callback) { var swalTipo; switch (codigoRetorno) { case 200: swalTipo = 'success'; break; case 923: swalTipo = 'warning'; break; default: swalTipo = 'warning'; break; } swal( '', mensagem, swalTipo ).then(function(result) { if (callback) { callback(); } }); }; var showProgressAlert = function(mensagem) { swal.showLoading(); }; var closeProgressAlert = function(callback) { $timeout(function() { swal.close(function() { if (callback) { callback(); } }); }, 500); }; var erroRede = function() { swal( '', 'Verifique a sua conexão com a Internet', 'warning' ); }; var confirmar = function(text, callback) { text = text ? text : 'Confirmar a acção ?'; swal({ text: text, cancelButtonText: 'Cancelar', confirmButtonText: 'Sim', type: 'question', showCancelButton: true, }).then(function() { callback(true); }, function(dismiss) { if (dismiss === 'cancel') { callback(false); } }); }; return { showMensagemRetorno: showMensagemRetorno, confirmar: confirmar, showProgressAlert: showProgressAlert, closeProgressAlert: closeProgressAlert, erroRede: erroRede } }); 'use strict'; angular.module('storage.service', ['LocalStorageModule']) .config(function(localStorageServiceProvider){ localStorageServiceProvider .setPrefix('PSETIC') .setNotify(true, true); }) .factory('StorageService', function(localStorageService){ var set = function (key, data) { return localStorageService.set(key, data); }; var get = function (key) { return localStorageService.get(key); }; var remove = function (keys) { return localStorageService.remove(keys); }; var clear = function(){ return localStorageService.clearAll(); }; return { set: set, get: get, remove: remove, clear : clear } }); 'use strict'; angular.module('utilizador.service', []) .factory('UtilizadorService', function($rootScope, $q, StorageService, RequestService, Utils) { var login = function(form, dataJson, callback) { RequestService.request('POST', '/acesso/loginToken', dataJson, true, function(resp) { if (callback) { callback(resp); } }); }; var logout = function(callback) { RequestService.request('GET', '/acesso/logout', null, true, function(resp) { StorageService.clear(); $rootScope.$broadcast('broadcastUtilizadorReceiver'); if (callback) { callback(resp) } }); }; var limparCookies = function(callback) { StorageService.clear(); $rootScope.$broadcast('broadcastUtilizadorReceiver'); if (callback) { callback() } }; var setCookies = function(resp) { /*var utilizador = { grupos: [] }; var grupos = (resp.data.grupos) ? resp.data.grupos : []; angular.forEach(grupos, function(obj, key) { var arrayGrupos = String(obj).split(","); var nomeGrupo = String(arrayGrupos[0]).replace("cn=", ""); utilizador.grupos.push(nomeGrupo); }); resp.data.grupos = utilizador.grupos; $rootScope.utilizador = resp.data; StorageService.set('utilizadorLogado', $rootScope.utilizador); $rootScope.$broadcast('broadcastUtilizadorReceiver');*/ var utilizador = { grupos: [] }; var grupos = (resp.data.grupos) ? resp.data.grupos : []; angular.forEach(grupos, function(obj, key) { var arrayGrupos = String(obj).split(","); var nomeGrupo = String(arrayGrupos[0]).replace("cn=", ""); utilizador.grupos.push(nomeGrupo); }); resp.data.grupos = utilizador.grupos; $rootScope.utilizador = resp.data; $rootScope.utilizador.token = resp.token; $rootScope.utilizador.gestor = Utils.validaPermissao("administrador", utilizador.grupos) || Utils.validaPermissao("gestor", utilizador.grupos) || Utils.validaPermissao("publicador", utilizador.grupos) || Utils.validaPermissao("redator", utilizador.grupos) || Utils.validaPermissao("revisor", utilizador.grupos) || Utils.validaPermissao("editor", utilizador.grupos); $rootScope.utilizador.admin = Utils.validaPermissao("administrador", utilizador.grupos) || Utils.validaPermissao("gestor", utilizador.grupos); StorageService.set('utilizadorLogado', $rootScope.utilizador); $rootScope.$broadcast('broadcastUtilizadorReceiver'); }; var checarPermissao = function(grupos) { var utilizador = StorageService.get('utilizadorLogado'); var deferred = $q.defer(); if (utilizador) { angular.forEach(utilizador.grupos, function(value1) { angular.forEach(grupos, function(value2) { if (value1.toString().toUpperCase() == value2.toString().toUpperCase()) { deferred.resolve(true); } }); }); } else { deferred.resolve(false); } return deferred.promise; } return { login: login, logout: logout, limparCookies: limparCookies, setCookies: setCookies, checarPermissao: checarPermissao } }); 'use strict'; String.prototype.extenso = function(c) { var ex = [ ["zero", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove", "dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove"], ["dez", "vinte", "trinta", "quarenta", "cinqüenta", "sessenta", "setenta", "oitenta", "noventa"], ["cem", "cento", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos"], ["mil", "milhão", "bilhão", "trilhão", "quadrilhão", "quintilhão", "sextilhão", "setilhão", "octilhão", "nonilhão", "decilhão", "undecilhão", "dodecilhão", "tredecilhão", "quatrodecilhão", "quindecilhão", "sedecilhão", "septendecilhão", "octencilhão", "nonencilhão"] ]; var a, n, v, i, n = this.replace(c ? /[^,\d]/g : /\D/g, "").split(","), e = " e ", $ = "real", d = "centavo", sl; for (var f = n.length - 1, l, j = -1, r = [], s = [], t = ""; ++j <= f; s = []) { j && (n[j] = (("." + n[j]) * 1).toFixed(2).slice(2)); if (!(a = (v = n[j]).slice((l = v.length) % 3).match(/\d{3}/g), v = l % 3 ? [v.slice(0, l % 3)] : [], v = a ? v.concat(a) : v).length) continue; for (a = -1, l = v.length; ++a < l; t = "") { if (!(i = v[a] * 1)) continue; i % 100 < 20 && (t += ex[0][i % 100]) || i % 100 + 1 && (t += ex[1][(i % 100 / 10 >> 0) - 1] + (i % 10 ? e + ex[0][i % 10] : "")); s.push((i < 100 ? t : !(i % 100) ? ex[2][i == 100 ? 0 : i / 100 >> 0] : (ex[2][i / 100 >> 0] + e + t)) + ((t = l - a - 2) > -1 ? " " + (i > 1 && t > 0 ? ex[3][t].replace("ão", "ões") : ex[3][t]) : "")); } a = ((sl = s.length) > 1 ? (a = s.pop(), s.join(" ") + e + a) : s.join("") || ((!j && (n[j + 1] * 1 > 0) || r.length) ? "" : ex[0][0])); a && r.push(a + (c ? (" " + (v.join("") * 1 > 1 ? j ? d + "s" : (/0{6,}$/.test(n[0]) ? "de " : "") + $.replace("l", "is") : j ? d : $)) : "")); } return r.join(e); }; app.service('Utils', function($http) { this.retornaValorExtenso = function(c) { var ex = [ ["zero", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove", "dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove"], ["dez", "vinte", "trinta", "quarenta", "cinqüenta", "sessenta", "setenta", "oitenta", "noventa"], ["cem", "cento", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos"], ["mil", "milhão", "bilhão", "trilhão", "quadrilhão", "quintilhão", "sextilhão", "setilhão", "octilhão", "nonilhão", "decilhão", "undecilhão", "dodecilhão", "tredecilhão", "quatrodecilhão", "quindecilhão", "sedecilhão", "septendecilhão", "octencilhão", "nonencilhão"] ]; var a, n, v, i, n = this.replace(c ? /[^,\d]/g : /\D/g, "").split(","), e = " e ", $ = "real", d = "centavo", sl; for (var f = n.length - 1, l, j = -1, r = [], s = [], t = ""; ++j <= f; s = []) { j && (n[j] = (("." + n[j]) * 1).toFixed(2).slice(2)); if (!(a = (v = n[j]).slice((l = v.length) % 3).match(/\d{3}/g), v = l % 3 ? [v.slice(0, l % 3)] : [], v = a ? v.concat(a) : v).length) continue; for (a = -1, l = v.length; ++a < l; t = "") { if (!(i = v[a] * 1)) continue; i % 100 < 20 && (t += ex[0][i % 100]) || i % 100 + 1 && (t += ex[1][(i % 100 / 10 >> 0) - 1] + (i % 10 ? e + ex[0][i % 10] : "")); s.push((i < 100 ? t : !(i % 100) ? ex[2][i == 100 ? 0 : i / 100 >> 0] : (ex[2][i / 100 >> 0] + e + t)) + ((t = l - a - 2) > -1 ? " " + (i > 1 && t > 0 ? ex[3][t].replace("ão", "ões") : ex[3][t]) : "")); } a = ((sl = s.length) > 1 ? (a = s.pop(), s.join(" ") + e + a) : s.join("") || ((!j && (n[j + 1] * 1 > 0) || r.length) ? "" : ex[0][0])); a && r.push(a + (c ? (" " + (v.join("") * 1 > 1 ? j ? d + "s" : (/0{6,}$/.test(n[0]) ? "de " : "") + $.replace("l", "is") : j ? d : $)) : "")); } return r.join(e); }; var mod97 = function(string) { var checksum = string.slice(0, 2), fragment; for (var offset = 2; offset < string.length; offset += 7) { fragment = String(checksum) + string.substring(offset, offset + 7); checksum = parseInt(fragment, 10) % 97; } return checksum; }; /* * Returns 1 if the IBAN is valid * Returns FALSE if the IBAN's length is not as should be (for CY the IBAN Should be 28 chars long starting with CY ) * Returns any other number (checksum) when the IBAN is invalid (check digits do not match) */ var isValidIBANNumber = function(input) { var CODE_LENGTHS = { AD: 24, AE: 23, AT: 20, AZ: 28, BA: 20, BE: 16, BG: 22, BH: 22, BR: 29, CH: 21, CR: 21, CY: 28, CZ: 24, DE: 22, DK: 18, DO: 28, EE: 20, ES: 24, FI: 18, FO: 18, FR: 27, GB: 22, GI: 23, GL: 18, GR: 27, GT: 28, HR: 21, HU: 28, IE: 22, IL: 23, IS: 26, IT: 27, JO: 30, KW: 30, KZ: 20, LB: 28, LI: 21, LT: 20, LU: 20, LV: 21, MC: 27, MD: 24, ME: 22, MK: 19, MR: 27, MT: 31, MU: 30, NL: 18, NO: 15, PK: 24, PL: 28, PS: 29, PT: 25, QA: 29, RO: 24, RS: 22, SA: 24, SE: 24, SI: 19, SK: 24, SM: 27, TN: 24, TR: 26, AO: 25 }; var iban = String(input).toUpperCase().replace(/[^A-Z0-9]/g, ''); var code = iban.match(/^([A-Z]{2})(\d{2})([A-Z\d]+)$/); var digits; // check syntax and length if (!code || iban.length !== CODE_LENGTHS[code[1]]) { return false; } // rearrange country code and check digits, and convert chars to ints digits = (code[3] + code[1] + code[2]).replace(/[A-Z]/g, function(letter) { return letter.charCodeAt(0) - 55; }); // final check return mod97(digits); }; // Validar IBAN this.validarIBAN = function(iban) { var i = 'ao06 ' + iban; return isValidIBANNumber(i); }; this.scrollTopPage = function() { $("html body").scrollTop(0); $('.topoPINV').show(); $('.esconderPINV').hide(); $('.content.bg-color-2.left-sidebar').addClass('bg_ContentInvestidor'); $('.bgPINV').attr('style', 'background: #0a3640;'); }; this.scrollTopPageAt = function(y) { $("html body").animate({ scrollTop: y }, 500); }; this.mantemModal = function(modal, visible) { if (visible) { angular.element(modal).modal('show'); } else { angular.element(modal).modal('hide'); } }; this.initTooltip = function() { $timeout(function() { $('[data-toggle="tooltip"]').tooltip(); }, 300); }; this.getFloatMoney = function(str_param) { var newval = 0; var str = '' + str_param; //console.log(str); // && parseFloat(str) > 0 if (str != '' && str != null) { var arrayValor = str.split(','); var Parte1Array = arrayValor[0].split('.'); var parte1 = ''; $.each(Parte1Array, function(val, key) { parte1 += key; }); newval = parte1 + '.' + arrayValor[1]; } else { newval = 0; } return parseFloat(newval).toFixed(2); }; this.formatKuanza = function(numero) { var tmp1 = numero + ''; if ((parseInt(tmp1.indexOf(".")) >= 1)) { //console.log('aqui'); var arrNum = tmp1.split("."); //console.log(arrNum); var Inicio = arrNum[0]; var Fim = arrNum[1].substr(0, 2); //console.log(Fim); if (parseInt(Fim) < 10) { if (arrNum[1].length < 2) { Fim = Fim + '0'; } else { Fim = Fim; } } tmp1 = (Fim == '00') ? Inicio : Inicio + '.' + Fim; } var tmp = tmp1 + ''; //console.log(tmp1); var neg = false; if (tmp - (Math.round(numero)) == 0) { tmp = tmp + '00'; } if (tmp.indexOf(".")) { tmp = tmp.replace(".", ""); } if (tmp.indexOf("-") == 0) { neg = true; tmp = tmp.replace("-", ""); } if (tmp.length == 1) tmp = "0" + tmp; tmp = tmp.replace(/([0-9]{2})$/g, ",$1"); if (tmp.length > 6) tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2"); if (tmp.length > 9) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g, ".$1.$2,$3"); if (tmp.length > 12) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g, ".$1.$2.$3,$4"); if (tmp.length > 15) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}).([0-9]{3}).([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g, ".$1.$2.$3.$4.$5,$6"); if (tmp.length > 18) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}).([0-9]{3}).([0-9]{3}).([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g, ".$1.$2.$3.$4.$5.$6,$7"); if (tmp.indexOf(".") == 0) tmp = tmp.replace(".", ""); if (tmp.indexOf(",") == 0) tmp = tmp.replace(",", "0,"); return (neg ? '-' + tmp : tmp); }; this.occurrences = function(string, subString, allowOverlapping) { string += ""; subString += ""; if (subString.length <= 0) return (string.length + 1); var n = 0, pos = 0, step = allowOverlapping ? 1 : subString.length; while (true) { pos = string.indexOf(subString, pos); if (pos >= 0) { ++n; pos += step; } else break; } return n; }; this.formataData = function(data) { if (data != "") { var novadata = data.split("/").reverse().join("-"); return novadata; } else { return ""; } }; this.leapYear = function(year) { return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); }; this.formataDataNormal = function(data) { if (data != "") { var novadata = data.split("-").reverse().join("/"); return novadata; } else { return ""; } }; this.validaPermissao = function(permissao, arrayGroup) { var valid = false; if (arrayGroup) { if (arrayGroup.length > 0) { if (arrayGroup.indexOf(permissao) != -1) { valid = true; } } } return valid; }; this.validaData = function ValidarData(CampoData) { var Campo = jQuery('#' + CampoData).val(); if (Campo != "") { if (Campo.length < 10) { swal({ title: "Data inválida", text: "Por favor preencha o campo!", type: "warning", showCancelButton: false, confirmButtonClass: 'btn-danger', confirmButtonText: 'Ok' }, function() { setTimeout(function() { jQuery('#' + CampoData).val(""); jQuery('#' + CampoData).focus(); }, 100); }); } else { var x = Campo.split("/"); if (x[0] > 31) { swal({ title: "Data inválida", text: "Por favor preencha o campo!", type: "warning", showCancelButton: false, confirmButtonClass: 'btn-danger', confirmButtonText: 'Ok' }, function() { setTimeout(function() { jQuery('#' + CampoData).val(""); jQuery('#' + CampoData).focus(); }, 100); }); } else if (x[1] == 2 && x[0] > 28) { swal({ title: "Data inválida", text: "Por favor preencha o campo!", type: "warning", showCancelButton: false, confirmButtonClass: 'btn-danger', confirmButtonText: 'Ok' }, function() { setTimeout(function() { jQuery('#' + CampoData).val(""); jQuery('#' + CampoData).focus(); }, 100); }); } else if (x[1] > 12) { swal({ title: "Data inválida", text: "Por favor preencha o campo!", type: "warning", showCancelButton: false, confirmButtonClass: 'btn-danger', confirmButtonText: 'Ok' }, function() { setTimeout(function() { jQuery('#' + CampoData).val(""); jQuery('#' + CampoData).focus(); }, 100); }); } } } }; this.validarPeriodo = function ValidarPeriodo(inicial, final) { var componenteInicial = $('#' + inicial); var componentefinal = $('#' + final); var retorno = true; if (componenteInicial.val() != '' && componentefinal.val() != '') { var ini = new Date(this.formataData(componenteInicial.val())); var fim = new Date(this.formataData(componentefinal.val())); if (ini > fim) { retorno = false; } } else if (componenteInicial.val() == '' && componentefinal.val() != '') { retorno = false; } return retorno; }; this.validaDataReturnBoolean = function ValidarData(CampoData) { var Campo = jQuery('#' + CampoData).val(); var ret = true; if (Campo != "") { if (Campo.length < 10) { ret = false; } else { var x = Campo.split("/"); if (x[0] > 31) { ret = false; } else if (x[1] == 2 && x[0] > 28) { ret = false; } else if (x[1] > 12) { ret = false; } } } return ret; }; this.validateEmail = function(campo) { var email = jQuery('#' + campo).val(); if (email != "") { var er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/; if (er.exec(email)) { return false; } else { swal({ title: "Aviso", text: "E-mail inválido!", type: "warning", showCancelButton: false, confirmButtonClass: 'btn-danger', confirmButtonText: 'Ok', closeOnConfirm: true, allowOutsideClick: false }, function() { setTimeout(function() { jQuery('#' + campo).val(''); jQuery('#' + campo).focus(); }, 300); }); } } }; this.validEmailReg = function(email) { var retorno = false; var reg = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/; if (reg.exec(email)) { retorno = true; } return retorno; }; }); app.service('Alertas', function($rootScope) { this.wait = function(message) { message = message ? message : 'A processar...'; swal({ html: '

' + message + '

', showConfirmButton: false, allowOutsideClick: false }).done(); }; this.closeWait = function() { swal.close(); }; this.confirm = function(text, confirmButtonText, cancelButtonText, callback) { text = text ? text : 'Confirmar a acção ?'; confirmButtonText = confirmButtonText ? confirmButtonText : 'Sim'; cancelButtonText = cancelButtonText ? cancelButtonText : 'Cancelar'; swal({ text: text, cancelButtonText: cancelButtonText, confirmButtonText: confirmButtonText, type: "warning", showCancelButton: true, confirmButtonColor: "#5cb85c", allowOutsideClick: false }).then(function() { callback(true); }, function(dismiss) { if (dismiss === 'cancel') { callback(false); } }).done(); }; this.networkError = function() { swal({ 'title': $rootScope.const.TITLE_LAMENTAMOS, 'text': $rootScope.const.ERRO_COMPLETAR_OPERACAO, 'type': 'warning', showConfirmButton: false, showCloseButton: true, showCancelButton: true, cancelButtonText: 'OK', }).then(function() { callback(true); }, function(dismiss) { if (dismiss === 'cancel') { return false; } }).done(); }; this.statusRetorno = function(retorno, ok) { ok = ok ? ok : false; timer = ok ? false : 2000; swal({ 'text': retorno, 'type': 'success', showConfirmButton: false, showCloseButton: true, timer: timer, showCancelButton: ok, cancelButtonText: 'Fechar', allowOutsideClick: false }).done(); }; this.statusRetornoErro = function(mensagem) { swal({ 'text': mensagem, 'type': 'warning', showConfirmButton: false, showCloseButton: true, showCancelButton: true, cancelButtonText: 'OK', allowOutsideClick: false }).then(function() { return false; }, function(dismiss) { if (dismiss === 'cancel') { return false; } }).done(); }; this.statusRetornoErroCallback = function(mensagem, callback) { swal({ 'text': mensagem, 'type': 'warning', showConfirmButton: false, showCloseButton: true, cancelButtonText: 'OK', showCancelButton: true, allowOutsideClick: false }).then(function() { callback(true); }, function(dismiss) { if (dismiss === 'cancel') { callback(false); } }).done(); }; this.aviso = function(type, title, msg, callback) { swal({ 'title': title, 'text': msg, 'type': type, showConfirmButton: false, showCloseButton: true, cancelButtonText: 'OK', showCancelButton: true, allowOutsideClick: false }).then( function() { callback(true); }, function(dismiss) { callback(true); }).done(); }; this.msgError = function(titulo, mensagem) { swal({ 'title': titulo, 'text': mensagem, 'type': 'warning', showConfirmButton: false, showCloseButton: true, cancelButtonText: 'OK', showCancelButton: true }).done(); }; }); 'use strict'; angular.module('link.service', []) .factory('LinkService', function() { var target = function(url) { var regex = RegExp(/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi); var itsAMatch = url.match(regex); return itsAMatch; }; return { target: target } }); 'use strict'; angular.module('upload.service', []) .factory('UploadService', function() { var preUpload = function(evento){ var reader = new FileReader(); if(evento.target.files){ reader.readAsDataURL(evento.target.files[0]); } return reader; }; var validarFicheiro = function(){ }; var adicionarAnexos = function(anexoLista) { var anexoItem = { ivNoFicheiro: null, ivNoUsuario: null, ivTokenId: null, ivUrl: null, inCdTpAnexoSigfe: null, excluir: false } anexoLista.push(anexoItem); }; var removerAnexos = function(anexoLista, indice) { if (anexoLista[indice].ivUrl || anexoLista[indice].base64) { AlertaService.confirmar("Deseja excluir anexo?", function(acao) { if (acao) { anexoLista[indice].excluir = true; if (anexoLista[indice].base64) { $timeout(function() { anexoLista.splice(indice, 1); }, 100); } } }); } else { $timeout(function() { anexoLista.splice(indice, 1); }, 100); } }; var preUploadMenu = function(anexo, extensoesPermitidas, tamanhoFicheiro, $event, callback) { if (angular.isDefined($event)) { if ($event.target.files.length) { var ficheiro = $event.target.files[0]; ficheiro.extensao = ficheiro.name.split('.'); if (ficheiro.size > 0) { var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if (extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, "Tipo do ficheiro inválido"); } if (ficheiro.size > tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, "Tamanho do ficheiro invalido."); } if (check.permitir && check.tamanho) { anexo.nome = ficheiro.name; anexo.base64Anexo = reader.result.substr(reader.result.indexOf(',') + 1).replace(/ /g, ''); anexo.extensao = ficheiro.extensao.slice(-1)[0]; anexo.mimeType = ficheiro.type; } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); if (callback) { callback(); } }; reader.onabort = function() { AlertaService.closeProgressAlert(); if (callback) { callback(); } }; } } } }; var extensoesPermitidasMap = function(extensoesPermitidas) { var ext = extensoesPermitidas .map(function(el) { return '.' + el }) return ext.join(','); }; var upload = function(anexoLista, loading, callback) { RequestService.servicoComum('POST', '/privado/content/add', anexoLista, loading, function(resp) { if (resp) { var parse = resp.data.map(function(el) { return { ivNoFicheiro: null, ivNoUsuario: "null", ivTokenId: el, ivUrl: null, inCdTpAnexoSigfe: null } }); resp.parse = parse; callback(resp); } }); }; var getListaAnexos = function(anexoLista, callback) { var ivTokenIds = []; anexoLista.map(function(anexo) { ivTokenIds.push(anexo.ivTokenId); }); RequestService.servicoComum('POST', '/privado/content/dados', ivTokenIds, false, function(resp) { if (resp.retorno.codigo == 200) { resp.data.map(function(anexo) { anexo.excluir = false; }); callback(resp.data); } }); } return { preUpload : preUpload, validarFicheiro : validarFicheiro, adicionarAnexos: adicionarAnexos, removerAnexos: removerAnexos, preUploadMenu: preUploadMenu, extensoesPermitidasMap: extensoesPermitidasMap, upload: upload, getListaAnexos: getListaAnexos } }); app.service('DataService', function ($state, $location) { var data= new Date(); var count = 0; var getData = function(){ return data; } var getCount = function(){ return count; } var setCount = function(newCount){ count = newCount; } var setData = function(novaData){ data = novaData; count++; $state.go("agenda-do-ministro.caledarizado"); } return{ getData: getData, setData: setData, getCount: getCount, setCount: setCount } }); app.directive('popover', function($compile, $window){ return { restrict : 'A', link : function(scope, elem){ $(elem).popover({ html : true, content: function() { var content = $(elem).attr("data-popover-content"); var compile = $compile($(content).children(".popover-body").html())(scope); return compile; }, title: function() { var title = $(elem).attr("data-popover-content"); return $(title).children(".popover-heading").html(); } }); } } }); app.directive('zoomIn', function($compile, $window){ return { restrict : 'A', link : function(scope, elem){ elem.on('mouseenter', function() { elem.removeClass('zoomOut').addClass('zoomIn'); }); elem.on('mouseleave', function() { elem.removeClass('zoomIn').addClass('zoomOut'); }); } } }); app.directive('validFile', function () { return { require: 'ngModel', link: function (scope, el, attrs, ngModel) { ngModel.$render = function () { ngModel.$setViewValue(el.val()); }; el.bind('change', function () { scope.$apply(function () { ngModel.$render(); }); }); } }; }); app.directive('datePicker', function () { return { restrict: "A", scope:{ ngModel: "=" }, link: function($scope, element, attrs) { var options = { format: attrs.dateFormat, language: 'pt', autoclose: true, todayHighlight: true, clearBtn: true }; element.datepicker(options); } } }); app.directive('dateTimePicker', function($parse, $timeout) { return { restrict: 'A', require: 'ngModel', link: function(scope, element, attrs) { // Configurar Input var options = { locale: 'pt', format: attrs.dateFormat }; element.datetimepicker(options); // Focar no Input element.next().find('button').bind('click', function() { element.focus(); }); // Atualizar Model element.on('blur', function(event) { scope.$apply(function() { var model = $parse(attrs.ngModel); model.assign(scope, element[0].value); }); }); element.on('hide', function(event) { // debugger; }); // Validar Menor e maior element.on('click', function(event) { //debugger; element.datetimepicker(options); $timeout(function() { if (attrs.datamax) { var dtMax = moment(moment(attrs.datamax, "YYYY-MM-DD")); $('#' + attrs.id).data("DateTimePicker").maxDate(dtMax); } if (attrs.datamin) { var dtMin = moment(moment(attrs.datamin, "YYYY-MM-DD")); $('#' + attrs.id).data("DateTimePicker").minDate(dtMin); } }, 100); }); element.on('dp.change', function(event) { //debugger; if (attrs.datamin) { var dtMin = moment(moment(attrs.datamin, "YYYY-MM-DD")); $('#' + attrs.id).data("DateTimePicker").minDate(dtMin); } if (attrs.datamax) { var dtMax = moment(moment(attrs.datamax, "YYYY-MM-DD")); $('#' + attrs.id).data("DateTimePicker").maxDate(dtMax); } if (moment(event.date).isValid()) { try { $timeout(function() { // min date if (attrs.minDate) { angular.element(attrs.minDate).data('DateTimePicker').minDate(event.date); } // Max date if (attrs.maxDate) { angular.element(attrs.maxDate).data('DateTimePicker').maxDate(event.date); } }, 100); } catch (exception) { // console.log(exception); } } }); } } }); /*app.directive('backImg', function(){ return function(scope, element, attrs){ var url = attrs.backImg; element.css({ 'background-image': 'url(' + url +')' }); }; });*/ app.directive('backImg', function() { return function(scope, element, attrs) { var url = attrs.backImg; element .css({ 'background-image': 'url(' + url + ')' }) .addClass('image-background'); }; }); app.directive('ngUploadChange',function(){ return{ scope:{ ngUploadChange:"&" }, link:function($scope, $element, $attrs){ $element.on('change',function(event){ $scope.ngUploadChange({$event: event}) }) } } }); app.directive('iconFile', function($compile, $window){ return { restrict : 'A', link : function(scope, element, attributes){ var extensaoSplit = attributes.ngHref.split('.'); var extensao = extensaoSplit[extensaoSplit.length -1].toLowerCase(); var classe; switch(extensao){ case 'doc': case 'docx': classe = 'fa-file-word-o'; break; case 'xls': case 'xlsx': classe = 'fa-file-excel-o'; break; case 'pdf': classe = 'fa-file-pdf-o'; break; case 'txt': classe = 'fa-file-text-o'; break; case 'html': classe = 'fa-globe'; break; case 'jpg': case 'jpeg': case 'gif': case 'png': case 'bmp': classe = 'fa-image'; break; default: classe = 'fa-download'; break; } element.prepend(' ') } } }); app.directive('inputFileMask', function($compile, $window){ return { restrict : 'A', link : function(scope, element, attributes){ element.prepend(' ') } } }); 'use strict'; app.directive('calendario', function (DataService, $timeout, $location) { return { restrict: 'EA', replace: false, templateUrl: 'app/partials/calendario.html', scope: { eventos: '=', eventosDoDia: '=', dtInicial : '=', carregarEventos: '=', mesSelecionado: '=' }, link: function (scope, element, attrs, ctrls) { scope.mesSelecionado = null; scope.onTimeSelected = function(selectedTime, events){ scope.mesSelecionado = null; scope.eventosDoDia = []; scope.eventos = []; scope.dataSelecionada = selectedTime; //Modificar data DataService.setData(selectedTime); if (angular.isDefined(events)) { scope.eventosDoDia = events; } } scope.rangeChanged = function(dataInicial, dataFinal){ scope.eventosDoDia = []; scope.eventos = []; scope.carregarEventos(dataInicial, dataFinal, function(eventos){ scope.parseEventos = []; scope.eventos = eventos; angular.forEach(eventos, function(obj, index){ var data = new Date(moment(obj.dtInicial, "DD-MM-YYYY").format('YYYY-MM-DD')); var dataF = new Date(moment(obj.dtInicial, "DD-MM-YYYY").format('YYYY-MM-DD')); var hoje = new Date(); if(data.getMonth() < hoje.getMonth()){ dataF = new Date(dataF.getFullYear() + "-" + (dataF.getMonth() + 1) +"-"+ (dataF.getDate() + 1)); } var evento = { title: obj.evento, startTime: data, endTime: dataF, source : obj, allDay: false } scope.parseEventos.push(evento); }); }); } } } }); app.directive('cropImg', function() { return { templateUrl: 'app/partials/crop-img.html', restrict: 'E', scope: { obj: '=', anexoIndice: '<', extensoesPermitidas: '<', tamanhoFicheiro: '<', obrigatorio: '=' }, controller: function($rootScope, $scope, $timeout, AlertaService, RequestService, Cropper) { this.$onInit = function() { $scope.uniqueId = new Date().getTime(); }; // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $scope.editarImagemDestaque = false; }); $scope.exibirCropper = false; $scope.dataUrl = null; $scope.file = null; $scope.data = null; $scope.onFile = function($event) { if (angular.isUndefined($event.isTrigger)) { var ficheiro = $event.target.files[0]; if (angular.isDefined(ficheiro)) { ficheiro.extensao = ficheiro.name.split('.'); var check = { permitir: true, tamanho: true } var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { $scope.atualizarFicheiro(ficheiro, true); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } } }; $scope.atualizarFicheiro = function(ficheiro, local) { $scope.ficheiroSelecionado = ficheiro; $scope.editarImagemDestaque = true; $scope.ficheiroLocalorigem = local; var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { Cropper.encode(($scope.file = ficheiro)).then(function(dataUrl) { $scope.dataUrl = dataUrl; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].base64Anexo = dataUrl.substr(dataUrl.indexOf(',') + 1).replace(/ /g, ''); if ($scope.ficheiroLocalorigem) { $scope.ficheiroSelecionado.extensao = $scope.ficheiroSelecionado.name.split('.'); $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].nome = '_CAPA_' + $scope.ficheiroSelecionado.name; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].extensao = $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1]; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].mimeType = $scope.ficheiroSelecionado.type; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url = null; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].ficheiroUrl = null; $scope.ficheiroSelecionado = null; } else { var extensao = $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].nome.split('.'); $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].extensao = extensao[extensao.length - 1]; $scope.excluirAnexo(); } $timeout(function() { $scope.toogleCropper() }, 300); }); } } // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].contentUrlARemover = $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url = null; } // Atualizar Imagem $scope.atualizarImagemDestaque = function() { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { anexos: [{ url: $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url }] } } RequestService.request('POST', '/anexo/bytes', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); var ficheiroNome = $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url.split('/'); var binary = atob(resp.data[0].bytesFicheiro); var length = binary.length; var arrayBuffer = new ArrayBuffer(length); var dataView = new Uint8Array(arrayBuffer); var i; for (i = 0; i < length; i++) { dataView[i] = binary.charCodeAt(i); } var ficheiro = new File([dataView], ficheiroNome[ficheiroNome.length - 1], { type: 'image/jpg' }); $scope.atualizarFicheiro(ficheiro); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(400, 'Erro ao aceder ficheiro'); } } } else { AlertaService.erroRede(); } }); } /** * Croppers container object should be created in controller's scope * for updates by directive via prototypal inheritance. * Pass a full proxy name to the `ng-cropper-proxy` directive attribute to * enable proxing. */ $scope.cropper = {}; $scope.cropperProxy = 'cropper.first'; /** * When there is a cropped image to show encode it to base64 string and * use as a source for an image element. */ $scope.preview = function() { if (!$scope.file || !$scope.data) return; Cropper.crop($scope.file, $scope.data) .then(Cropper.encode) .then(function(dataUrl) { $scope.dataUrl = dataUrl; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].base64Anexo = dataUrl.substr(dataUrl.indexOf(',') + 1).replace(/ /g, ''); }).then(function() { $scope.toogleCropper(); }) }; /** * Use cropper function proxy to call methods of the plugin. * See https://github.com/fengyuanchen/cropper#methods */ $scope.clear = function(degrees) { if (!$scope.cropper.first) return; $scope.cropper.first('clear'); }; $scope.scale = function(width) { Cropper.crop($scope.file, $scope.data).then(function(blob) { return Cropper.scale(blob, { width: width }); }).then(Cropper.encode).then(function(dataUrl) { ($scope.preview || ($scope.preview = {})).dataUrl = dataUrl; }); }; /** * Object is used to pass options to initalize a cropper. * More on options - https://github.com/fengyuanchen/cropper#options */ $scope.options = { maximize: true, aspectRatio: 4 / 3, crop: function(dataNew) { $scope.data = dataNew; } }; /** * Showing (initializing) and hiding (destroying) of a cropper are started by * events. The scope of the `ng-cropper` directive is derived from the scope of * the controller. When initializing the `ng-cropper` directive adds two handlers * listening to events passed by `ng-cropper-show` & `ng-cropper-hide` attributes. * To show or hide a cropper `$broadcast` a proper event. */ $scope.showEvent = 'show'; $scope.hideEvent = 'hide'; $scope.toggleCropperstatus = false; $scope.toogleCropper = function() { if ($scope.toggleCropperstatus) { $scope.$broadcast($scope.hideEvent); } else { $scope.$broadcast($scope.showEvent); } $scope.toggleCropperstatus = !$scope.toggleCropperstatus; } } }; }); app.directive('cropComunicado', function() { return { templateUrl: 'app/partials/crop-comunicado.html', restrict: 'E', scope: { obj: '=', anexoIndice: '<', extensoesPermitidas: '<', tamanhoFicheiro: '<', obrigatorio: '=' }, controller: function($rootScope, $scope, $timeout, AlertaService, RequestService, Cropper) { this.$onInit = function() { $scope.uniqueId = new Date().getTime(); }; // BroadCast para atualizar a Home $rootScope.$on('broadcastHomeReceiver', function(event, args) { $scope.editarImagemDestaque = false; }); $scope.exibirCropper = false; $scope.dataUrl = null; $scope.file = null; $scope.data = null; $scope.onFile = function($event) { if (angular.isUndefined($event.isTrigger)) { var ficheiro = $event.target.files[0]; if (angular.isDefined(ficheiro)) { ficheiro.extensao = ficheiro.name.split('.'); var check = { permitir: true, tamanho: true } var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { var check = { permitir: true, tamanho: true } if ($scope.extensoesPermitidas.indexOf(ficheiro.extensao[ficheiro.extensao.length - 1].toLowerCase()) < 0) { reader.onloadend = false; check.permitir = false; AlertaService.showMensagemRetorno(400, 'Tipo do ficheiro inválido'); } if (ficheiro.size > $scope.tamanhoFicheiro * 1048576) { reader.onloadend = false; check.tamanho = false; AlertaService.showMensagemRetorno(400, 'Ultrapassou o limite do tamanho do ficheiro'); } if (check.permitir && check.tamanho) { $scope.atualizarFicheiro(ficheiro, true); } }; reader.onloadstart = function() { AlertaService.showProgressAlert(); }; reader.onloadend = function() { AlertaService.closeProgressAlert(); }; reader.onabort = function() { AlertaService.closeProgressAlert(); }; } } }; $scope.atualizarFicheiro = function(ficheiro, local) { $scope.ficheiroSelecionado = ficheiro; $scope.editarImagemDestaque = true; $scope.ficheiroLocalorigem = local; var reader = new FileReader(); reader.readAsDataURL(ficheiro); reader.onload = function() { Cropper.encode(($scope.file = ficheiro)).then(function(dataUrl) { $scope.dataUrl = dataUrl; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].base64Anexo = dataUrl.substr(dataUrl.indexOf(',') + 1).replace(/ /g, ''); if ($scope.ficheiroLocalorigem) { $scope.ficheiroSelecionado.extensao = $scope.ficheiroSelecionado.name.split('.'); $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].nome = '_CAPA_' + $scope.ficheiroSelecionado.name; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].extensao = $scope.ficheiroSelecionado.extensao[$scope.ficheiroSelecionado.extensao.length - 1]; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].mimeType = $scope.ficheiroSelecionado.type; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url = null; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].ficheiroUrl = null; $scope.ficheiroSelecionado = null; } else { var extensao = $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].nome.split('.'); $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].extensao = extensao[extensao.length - 1]; $scope.excluirAnexo(); } $timeout(function() { $scope.toogleCropper() }, 300); }); } } // Excluir Imagem ao Editar $scope.excluirAnexo = function() { $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].contentUrlARemover = $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url = null; } // Atualizar Imagem $scope.atualizarImagemDestaque = function() { var dataJson = { portal: RequestService.portalConfig.portalAPI, data: { anexos: [{ url: $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url }] } } RequestService.request('POST', '/anexo/bytes', dataJson, true, function(resp) { if (resp) { if (resp.retorno.codigo == 200) { AlertaService.closeProgressAlert(); var ficheiroNome = $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].url.split('/'); var binary = atob(resp.data[0].bytesFicheiro); var length = binary.length; var arrayBuffer = new ArrayBuffer(length); var dataView = new Uint8Array(arrayBuffer); var i; for (i = 0; i < length; i++) { dataView[i] = binary.charCodeAt(i); } var ficheiro = new File([dataView], ficheiroNome[ficheiroNome.length - 1], { type: 'image/jpg' }); $scope.atualizarFicheiro(ficheiro); } else { if (resp.retorno.codigo != 923) { AlertaService.showMensagemRetorno(400, 'Erro ao aceder ficheiro'); } } } else { AlertaService.erroRede(); } }); } /** * Croppers container object should be created in controller's scope * for updates by directive via prototypal inheritance. * Pass a full proxy name to the `ng-cropper-proxy` directive attribute to * enable proxing. */ $scope.cropper = {}; $scope.cropperProxy = 'cropper.first'; /** * When there is a cropped image to show encode it to base64 string and * use as a source for an image element. */ $scope.preview = function() { if (!$scope.file || !$scope.data) return; Cropper.crop($scope.file, $scope.data) .then(Cropper.encode) .then(function(dataUrl) { $scope.dataUrl = dataUrl; $scope.obj.data.anexoPortalList[0].anexoPortalItemList[$scope.anexoIndice].base64Anexo = dataUrl.substr(dataUrl.indexOf(',') + 1).replace(/ /g, ''); }).then(function() { $scope.toogleCropper(); }) }; /** * Use cropper function proxy to call methods of the plugin. * See https://github.com/fengyuanchen/cropper#methods */ $scope.clear = function(degrees) { if (!$scope.cropper.first) return; $scope.cropper.first('clear'); }; $scope.scale = function(width) { Cropper.crop($scope.file, $scope.data).then(function(blob) { return Cropper.scale(blob, { width: width }); }).then(Cropper.encode).then(function(dataUrl) { ($scope.preview || ($scope.preview = {})).dataUrl = dataUrl; }); }; /** * Object is used to pass options to initalize a cropper. * More on options - https://github.com/fengyuanchen/cropper#options */ $scope.options = { maximize: true, aspectRatio: 4 / 3, crop: function(dataNew) { $scope.data = dataNew; } }; /** * Showing (initializing) and hiding (destroying) of a cropper are started by * events. The scope of the `ng-cropper` directive is derived from the scope of * the controller. When initializing the `ng-cropper` directive adds two handlers * listening to events passed by `ng-cropper-show` & `ng-cropper-hide` attributes. * To show or hide a cropper `$broadcast` a proper event. */ $scope.showEvent = 'show'; $scope.hideEvent = 'hide'; $scope.toggleCropperstatus = false; $scope.toogleCropper = function() { if ($scope.toggleCropperstatus) { $scope.$broadcast($scope.hideEvent); } else { $scope.$broadcast($scope.showEvent); } $scope.toggleCropperstatus = !$scope.toggleCropperstatus; } } }; }); app.directive('form', function () { return { restrict: "E", link: function(scope, element) { element.on('submit', function () { var invalido = element[0].querySelector('.ng-invalid'); if (invalido) { invalido.focus(); } }); } } }); app.directive('checkHref', function(LinkService) { return function(scope, element, attrs) { if (attrs.checkHref) { var url = attrs.checkHref; if (LinkService.target(url)) { element.attr('href', url).attr('target', '_blank'); } else { if (url) { if (url.indexOf('#!') == -1) { url = "#!" + url; } element.attr('href', url); } else { element.removeAttr('href'); } } } }; }); app.directive('numeros', function() { return { require: 'ngModel', link: function(scope, element, attr, ngModelCtrl) { function fromUser(text) { if (text) { var transformedInput = text.replace(/[^0-9]/g, ''); if (transformedInput !== text) { ngModelCtrl.$setViewValue(transformedInput); ngModelCtrl.$render(); } return transformedInput; } return undefined; } ngModelCtrl.$parsers.push(fromUser); } }; }); app.directive('removeCaracteres', function() { return { require: 'ngModel', restrict: 'A', link: function(scope, element, attrs, modelCtrl) { modelCtrl.$parsers.push(function(inputValue) { if (inputValue == null) return ''; var cleanInputValue = inputValue.replace(/[^\w\s\/\d]/gi, ''); if (cleanInputValue != inputValue) { modelCtrl.$setViewValue(cleanInputValue); modelCtrl.$render(); } return cleanInputValue; }); } } }); app.directive('mask', function() { return { restrict: 'A', link: function(scope, element, attrs) { element.mask(attrs.mask); } } }); app.directive('validaValorMonetario', function(Utils, Alertas, $timeout, $rootScope) { return { restrict: 'A', link: function(scope, element, attrs) { $(element).blur(function() { var valor = $(this).val(); var that = $(this); if (valor != '')  { if (parseFloat(Utils.getFloatMoney(valor)) == 0.00 || parseFloat(Utils.getFloatMoney(valor)) == 0) { Alertas.aviso('warning', $rootScope.const.TITLE_AVISO, $rootScope.const.O_VALOR_NAO_PODE_SER_ZERO, function() { $timeout(function() { that.val(''); }, 300); }); } } }); } } }); app .filter('to_trusted', function($sce) { return function(text) { return $sce.trustAsHtml(text); }; }) .filter('startFrom', function() { return function(input, start) { try { start = +start; return input.slice(start); } catch (exception) { } } }) .filter('texto', function() { return function(input) { var textFormat = "--"; if (input) { textFormat = input; } return textFormat; } }) .filter('htmlToPlaintext', function() { return function(text) { return text ? String(text).replace(/<[^>]+>/gm, '') : ''; }; }) .filter('capitalize', function() { return function(input) { return (!!input) ? input.charAt(0).toUpperCase() + input.substr(1).toLowerCase() : ''; } }) .filter('valor', function(Utils) { return function(input) { var moedaFormat = "0,00"; if (input) { moedaFormat = Utils.formatKuanza(input); } return moedaFormat; } }) .filter('valorCambio', function(Utils) { return function(input) { var moedaFormat = "0,000"; if (input) { var a = String(input).split('.'); var moedaFormat = a[0] + ',' + a[1].substr(0, 3); } return moedaFormat; } }); 'use strict'; angular.module('dynamic-states', []) .provider('dynamicStates', function ($stateProvider, $urlRouterProvider) { $urlRouterProvider.deferIntercept(); var addRoute = function (state, menu) { try { $stateProvider.state(state, menu); } catch (error) { console.log(error); } }; var addRoutes = function (menu, callback) { var abstract = menu.subPaginas ? true : false; var url = menu.url ? menu.url : false; var state = { abstract: abstract, url: url, cdMenu: menu.cdMenu, dsMenu: menu.dsMenu, flAtivo: menu.flAtivo, displayName: menu.displayName, contentId: menu.contentID, flBotaoServico: menu.flBotaoServico, siglaServico: menu.siglaServico, cache: false, urlLogoContentID: menu.urlLogoContentID, ncyBreadcrumb: { label: menu.displayName }, subPaginas: menu.subPaginas }; if (!abstract) { state.views = { '@': { templateUrl: 'app/pages/default-interna.html', controller: 'defaultInternaController' } } } addRoute(menu.state, state); if (callback) { callback(); } }; this.addRoute = addRoute; this.addRoutes = addRoutes; this.$get = function dynamicRoutesFactory($q, $state, $http, $urlRouter, $rootScope) { var defered = $q.defer(); var fetchRoutes = function (response) { angular.forEach(response, function (menu, index) { var state = $state.get(menu.state); if (state) { state.ncyBreadcrumb = { label: menu.displayName } state.cdMenu = menu.cdMenu; state.displayName = menu.displayName; state.dsMenu = menu.dsMenu; state.contentID = menu.contentID; state.nuOrdem = menu.nuOrdem; state.flAtivo = menu.flAtivo; state.subPaginas = menu.subPaginas; state.flBotaoServico = menu.flBotaoServico; state.siglaServico = menu.siglaServico; state.urlLogoContentID = menu.urlLogoContentID; if (menu.subPaginas) { fetchRoutes(menu.subPaginas); } } else { addRoutes(menu, function () { if (menu.subPaginas) { fetchRoutes(menu.subPaginas); } if (index == (response.length - 1)) { defered.resolve(); } }); } }); defered.promise.then(function () { $rootScope.$evalAsync(function () { $urlRouter.sync(); $urlRouter.listen(); }); }); return response; }; return { fetchRoutes: fetchRoutes }; }; });