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
};
};
});