Commit e6c71e98dd1f39305989534c390576c1f696a18f

Authored by erick.sato
1 parent 1eecaa5c
Exists in master

[Redmine #5011]Confirma se deseja fechar aba

cit-portal-web/src/main/java/br/com/centralit/listener/StartupListener.java
... ... @@ -808,6 +808,7 @@ public class StartupListener extends UtilStartup implements ApplicationListener<
808 808 parametros.add(new ConfiguracaoParametroSistema("TERMO_ENCERRAMENTO_INTRODUCAO", INTRODUCAO, configuracao, true));
809 809 parametros.add(new ConfiguracaoParametroSistema("TERMO_ENCERRAMENTO_ENCAMINHAMENTOS", ENCAMINHAMENTOS, configuracao, true));
810 810 parametros.add(new ConfiguracaoParametroSistema("TERMO_ENCERRAMENTO_DECISAO", DECISAO, configuracao, true));
  811 + parametros.add(new ConfiguracaoParametroSistema("VALIDAR_FECHAR_ABA", "true", configuracao, false));
811 812  
812 813 configuracao.setParametros(parametros);
813 814 configuracao = configuracaoService.saveIfNotExist(configuracao);
... ... @@ -1313,6 +1314,8 @@ public class StartupListener extends UtilStartup implements ApplicationListener<
1313 1314 internacionalizacaoList.add(new Internacionalizacao("PORTAL.MSG.EXCLUIR_NAO_PERMITIDO_ACAO_VISUALIZAR", "Não é permitido excluir um item na visualização do registro", dominio, modulo));
1314 1315 internacionalizacaoList.add(new Internacionalizacao("PORTAL.MSG.REMOCAO_GRUPO_NAO_PERMITIDA", "Não é permitido remover este grupo.", dominio, modulo));
1315 1316 internacionalizacaoList.add(new Internacionalizacao("PORTAL.MSG.CHAVE_MENU_DUPLICADA", "A chave do menu já existe", dominio, modulo));
  1317 + internacionalizacaoList.add(new Internacionalizacao("PORTAL.MSG.CONFIRMA_RELOAD_CLOSE_PAGE", "Você deseja mesmo sair? informações fornecidas podem ser perdidas.", dominio, modulo));
  1318 + internacionalizacaoList.add(new Internacionalizacao("PORTAL.MSG.CONFIRMA_CLOSE_WORKSPACE", "Você deseja mesmo fechar essa aba? informações fornecidas podem ser perdidas.", dominio, modulo));
1316 1319  
1317 1320 }
1318 1321  
... ... @@ -1477,7 +1480,7 @@ public class StartupListener extends UtilStartup implements ApplicationListener<
1477 1480 internacionalizacaoList.add(new Internacionalizacao("LABEL.DOCUMENTOS", "Documentos", dominio, modulo));
1478 1481  
1479 1482 internacionalizacaoList.add(new Internacionalizacao("LABEL.CPF_CNPJ", "CPF/CNPJ", dominio, modulo));
1480   -
  1483 + internacionalizacaoList.add(new Internacionalizacao("PORTAL.LABEL.VALIDAR_FECHAR_ABA", "Confirma antes de fechar aba", dominio, modulo));
1481 1484 }
1482 1485  
1483 1486 /**
... ...
cit-portal-web/src/main/webapp/assets/js/angular/custom/controller/AppController.js
... ... @@ -17,7 +17,7 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
17 17  
18 18 $scope.notificacao = {};
19 19  
20   - //CONSTANTES
  20 + // CONSTANTES
21 21 $scope.MASK_CPF = "999.999.999.99";
22 22 $scope.MASK_CNPJ = "99.999.999/9999-99";
23 23 $scope.LIMITE_FAVORITO_MENU = 5;
... ... @@ -35,6 +35,26 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
35 35 $scope.usuarioLogado.organizacoes = $filter('itemOrganizacaoDistinct')($scope.usuarioLogado.organizacoes, $scope.usuarioLogado.organizacao);
36 36 });
37 37  
  38 + ConfiguracaoParametroSistemaRepository.getParametro("VALIDAR_FECHAR_ABA").then(function(result) {
  39 + if(result.valor){
  40 + $scope.validarFecharAba = result.valor;
  41 + }else{
  42 + $scope.validarFecharAba = false;
  43 + }
  44 +
  45 + if($scope.validarFecharAba && $scope.validarFecharAba == 'true'){
  46 + $(window).on('beforeunload', function() {
  47 + if($scope.workspaces.length > 0){
  48 + return $translate.instant("PORTAL.MSG.CONFIRMA_RELOAD_CLOSE_PAGE");
  49 + }
  50 + });
  51 +
  52 + $(window).unload(function() {
  53 + logout();
  54 + });
  55 + }
  56 + });
  57 +
38 58 ConfiguracaoParametroSistemaRepository.getParametro("TEMPO_GRAVACAO_RASCUNHO").then(function(result) {
39 59 if(result.valor){
40 60 $scope.tempoGravacaoRascunho = result.valor * 1000;
... ... @@ -93,14 +113,14 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
93 113 };
94 114  
95 115  
96   - //Método responsável por abrir a tela inicial de Notificação
  116 + // Método responsável por abrir a tela inicial de Notificação
97 117 $scope.openNotificacoes = function(){
98 118  
99 119 $scope.openMenuPorNome($translate.instant('PORTAL.LABEL.NOTIFICACAO'));
100 120  
101 121 };
102 122  
103   - //Métoto responsável por abir o favorito
  123 + // Métoto responsável por abir o favorito
104 124 $scope.openWorkspaceFavorito = function(titulo, pagina, classePagina, paginaId){
105 125  
106 126 MenuRepository.buscarMenusPorPagina({pagina : pagina}).then(function(result) {
... ... @@ -112,7 +132,7 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
112 132 };
113 133  
114 134  
115   - //Método responsável por abir o menu através do nome
  135 + // Método responsável por abir o menu através do nome
116 136 $scope.openMenuPorNome = function(nome){
117 137  
118 138 MenuRepository.obterPorNome(nome).then(function(result) {
... ... @@ -184,7 +204,8 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
184 204 }
185 205 };
186 206  
187   - //Controla a visualização das notificações individualmente na nav-bar do topo da tela
  207 + // Controla a visualização das notificações individualmente na nav-bar do
  208 + // topo da tela
188 209 $scope.visualizarNotificacao = function(notificacao) {
189 210  
190 211 NotificacaoRepository.visualizar(notificacao.originalElement).then(function(result) {
... ... @@ -393,7 +414,7 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
393 414  
394 415 /**
395 416 * Metodo para mostrar mensagens para o usuario
396   - *
  417 + *
397 418 * type: success|info|warning|error
398 419 */
399 420 $scope.showAlert = function(type, message, title) {
... ... @@ -467,7 +488,8 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
467 488 citsmart: false
468 489 };
469 490  
470   - // CASO CONTENHA A SUBSTRING .load, é uma página citsmart redireciona para o iframe.
  491 + // CASO CONTENHA A SUBSTRING .load, é uma página citsmart redireciona
  492 + // para o iframe.
471 493 if(page.indexOf(".load") > -1){
472 494 workspace.grp = false;
473 495 workspace.citsmart = true;
... ... @@ -475,7 +497,7 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
475 497  
476 498 $scope.workspaceRelatorio = angular.copy(workspace);
477 499  
478   - //VALIDA SE A WORKSPACE E FAVORITA
  500 + // VALIDA SE A WORKSPACE E FAVORITA
479 501 isWorkspaceFavorito(workspace);
480 502  
481 503 $scope.workspaces.push(workspace);
... ... @@ -539,13 +561,29 @@ citApp.controller('AppController', ['$scope', '$routeParams', '$timeout', '$loca
539 561 };
540 562  
541 563 $scope.removeWorkspace = function(id) {
  564 +
  565 + if($scope.validarFecharAba && $scope.validarFecharAba != 'true'){
  566 + $scope.closeWorkspace(id);
  567 + }else{
  568 + $scope.$openModalConfirm({
  569 + message: $translate.instant("PORTAL.MSG.CONFIRMA_CLOSE_WORKSPACE"),
  570 + callback: function () {
  571 + $scope.closeWorkspace(id);
  572 + $scope.$modalConfirmInstance.dismiss('cancel');
  573 + }
  574 +
  575 + });
  576 + }
  577 + };
  578 +
  579 + $scope.closeWorkspace = function(id){
542 580 var workspaces = $scope.workspaces,
543   - i;
544   - for (i = 0; i < workspaces.length; i = i + 1) {
  581 + i;
  582 + for (i = 0; i < workspaces.length; i = i + 1) {
545 583 if (id === workspaces[i].id) {
546 584 var workspaceTarget = workspaces[i],
547   - workspaceNext = workspaces[i + 1],
548   - workspacePrev = workspaces[i - 1];
  585 + workspaceNext = workspaces[i + 1],
  586 + workspacePrev = workspaces[i - 1];
549 587  
550 588 if(workspaceTarget.active === true) {
551 589  
... ... @@ -573,7 +611,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
573 611 }
574 612 }
575 613 };
576   - // Método responsável por remover os interval dos widget.
  614 +
  615 + // Método responsável por remover os interval dos widget.
577 616 $scope.removeIntervalDashboard = function () {
578 617  
579 618 if($rootScope.listaWidgetIntervals){
... ... @@ -587,8 +626,9 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
587 626 };
588 627 };
589 628  
590   -// Foi desabilitado o dashboard pelo fato de nao esta ainda funcionado
591   -// $scope.workspaces = [{ id: 1, name: "Dasboard", page: '/cit-portal-web/html/home/home.html', active:true }];
  629 +// Foi desabilitado o dashboard pelo fato de nao esta ainda funcionado
  630 +// $scope.workspaces = [{ id: 1, name: "Dasboard", page:
  631 +// '/cit-portal-web/html/home/home.html', active:true }];
592 632 $scope.workspaces = [];
593 633  
594 634 $scope.addWorkspace = function () {
... ... @@ -597,8 +637,9 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
597 637 };
598 638  
599 639 /**
600   - * Funcao responsavel por validar se a Workspace adicionada ja e favorita - O class do favorito muda de acordo com o booleano
601   - */
  640 + * Funcao responsavel por validar se a Workspace adicionada ja e favorita -
  641 + * O class do favorito muda de acordo com o booleano
  642 + */
602 643 var isWorkspaceFavorito = function(workspace) {
603 644 var paginaUsuario = $scope.recuperarPaginaUsuario(workspace);
604 645  
... ... @@ -606,8 +647,9 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
606 647 };
607 648  
608 649 /**
609   - * Responsável por adicionar a Workspace ativa como favorito ou nao conforme status atual
610   - */
  650 + * Responsável por adicionar a Workspace ativa como favorito ou nao conforme
  651 + * status atual
  652 + */
611 653 $scope.addFavorito = function(workspace){
612 654  
613 655 var favoritoVH = {
... ... @@ -618,18 +660,20 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
618 660 // SALVA OU REMOVE O FAVORITO
619 661 PaginaUsuarioRepository.saveFavorito(favoritoVH).then(function(result){
620 662 workspace.favorito = result.favorito;
621   - // DETERMINA A LISTA DE PAGINAS DO USUARIO COM A ULTIMA VERSAO SALVA.
  663 + // DETERMINA A LISTA DE PAGINAS DO USUARIO COM A ULTIMA VERSAO
  664 + // SALVA.
622 665 $scope.usuarioLogado.paginasUsuario = result.paginasUsuario;
623   - //ATUALIZA AS ABAS REPETIDAS
  666 + // ATUALIZA AS ABAS REPETIDAS
624 667 atualizarWorkspacesFavorito(workspace);
625   - //ATUALIZA A LISTA DE PÁGINAS FAVORITAS MENU
  668 + // ATUALIZA A LISTA DE PÁGINAS FAVORITAS MENU
626 669 $scope.getPaginasFavoritadas();
627 670 });
628 671 };
629 672  
630 673 /**
631   - * Funcao responsavel por atualizar a lista de workspaces apos clicar em favoritar. Util para as abas repetidas
632   - */
  674 + * Funcao responsavel por atualizar a lista de workspaces apos clicar em
  675 + * favoritar. Util para as abas repetidas
  676 + */
633 677 var atualizarWorkspacesFavorito = function(workspace){
634 678  
635 679 for(var index = 0; index < $scope.workspaces.length; index++){
... ... @@ -642,8 +686,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
642 686 };
643 687  
644 688 /**
645   - * Responsavel por obter as páginas favoritas no menu
646   - */
  689 + * Responsavel por obter as páginas favoritas no menu
  690 + */
647 691 $scope.getPaginasFavoritadas = function(){
648 692  
649 693 $scope.paginasUsuarioFavoritoTemp = [];
... ... @@ -739,7 +783,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
739 783  
740 784 var idRelatorioCount = 0;
741 785 $scope.arrayContentReports = new Object();
742   - // Metodo responsavel por fazer a requisicao relatorios no GRP em uma TAB, abrindo uma nova workspace posteriormente
  786 + // Metodo responsavel por fazer a requisicao relatorios no GRP em uma TAB,
  787 + // abrindo uma nova workspace posteriormente
743 788 $scope.visualizarRelatorio = function(url, titleTab) {
744 789  
745 790 $scope.titleReport = titleTab;
... ... @@ -796,7 +841,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
796 841 });
797 842 };
798 843  
799   - // Metodo responsavel por fazer a requisicao relatorios no GRP em uma MODAL, abrindo uma nova $modalRelatorioInstace posteriormente
  844 + // Metodo responsavel por fazer a requisicao relatorios no GRP em uma MODAL,
  845 + // abrindo uma nova $modalRelatorioInstace posteriormente
800 846 $scope.visualizarRelatorioModal = function(url) {
801 847  
802 848 if(url.indexOf("download") < 0){
... ... @@ -872,7 +918,9 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
872 918 });
873 919 };
874 920  
875   - // Método responsável por cortar uma string de visualização em tela para o tamanho definido como parametro se não for definido parametro de tamanho corta para 50 caracteres
  921 + // Método responsável por cortar uma string de visualização em tela para o
  922 + // tamanho definido como parametro se não for definido parametro de tamanho
  923 + // corta para 50 caracteres
876 924 $scope.splitText = function(string, tamanho) {
877 925 if (!tamanho) {
878 926 tamanho = 50;
... ... @@ -905,7 +953,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
905 953 }
906 954 };
907 955  
908   - // Verifica se a data em formato BR da referencia esta dentro da referencia vigente
  956 + // Verifica se a data em formato BR da referencia esta dentro da referencia
  957 + // vigente
909 958 $scope.isDataBRDentroReferenciaVigenteBR = function(data) {
910 959  
911 960 if(data !== undefined){
... ... @@ -926,7 +975,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
926 975 }
927 976 };
928 977  
929   - // Verifica se a data em formato BR da referencia é maior ou igual a data da referencia vigente
  978 + // Verifica se a data em formato BR da referencia é maior ou igual a data da
  979 + // referencia vigente
930 980 $scope.isDataBRMaiorOuIgualReferenciaVigente = function(data) {
931 981  
932 982 if(data !== undefined){
... ... @@ -953,7 +1003,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
953 1003 }
954 1004 };
955 1005  
956   - // Verifica se a data em formato US da referencia esta dentro da referencia vigente
  1006 + // Verifica se a data em formato US da referencia esta dentro da referencia
  1007 + // vigente
957 1008 $scope.isDataUSDentroReferenciaVigente = function(data) {
958 1009  
959 1010 if(data !== undefined){
... ... @@ -974,7 +1025,8 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
974 1025 }
975 1026 };
976 1027  
977   - // Verifica se a data em formato BR da referencia é maior ou igual a data da referencia vigente
  1028 + // Verifica se a data em formato BR da referencia é maior ou igual a data da
  1029 + // referencia vigente
978 1030 $scope.isDataUSMaiorOuIgualReferenciaVigente = function(data) {
979 1031  
980 1032 if(data !== undefined){
... ... @@ -1001,7 +1053,9 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
1001 1053 }
1002 1054 };
1003 1055  
1004   - //TODO refatorar assim que o login estiver pronto. Foi preciso timeout por ter que atualizar o menu com quantidade de favoritos, sem ele o usuario logado ainda nao foi completamente carregado.
  1056 + // TODO refatorar assim que o login estiver pronto. Foi preciso timeout por
  1057 + // ter que atualizar o menu com quantidade de favoritos, sem ele o usuario
  1058 + // logado ainda nao foi completamente carregado.
1005 1059 $timeout(function() {
1006 1060  
1007 1061 $scope.getPaginasFavoritadas();
... ... @@ -1531,7 +1585,7 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
1531 1585 }
1532 1586  
1533 1587 var workspace = undefined;
1534   -// angular.element('#' + idFormEdit).scope().resetForm();
  1588 +// angular.element('#' + idFormEdit).scope().resetForm();
1535 1589 $timeout(function() {
1536 1590 $scope.setLoadingGet(true);
1537 1591 for(var i = 0; i < $scope.workspaces.length; i++){
... ... @@ -1543,7 +1597,7 @@ citApp.controller(&#39;AppController&#39;, [&#39;$scope&#39;, &#39;$routeParams&#39;, &#39;$timeout&#39;, &#39;$loca
1543 1597  
1544 1598 getRascunho(workspace, rascunho.id);
1545 1599 $timeout(function(){
1546   -// workspace.rascunho = rascunho;
  1600 +// workspace.rascunho = rascunho;
1547 1601 angular.element('#' + $scope.nomeFormIdController).scope().setRascunho(JSON.parse(rascunho.json));
1548 1602 $scope.$showPageEditWorkspace(workspace);
1549 1603 $scope.$modalInstance.dismiss('cancel');
... ...
cit-portal-web/src/main/webapp/html/configuracao/configuracao.html
... ... @@ -69,7 +69,7 @@
69 69 <div class="row">
70 70 <div class="col-sm-4">
71 71 <div class="form-group">
72   - <label class="control-label"><translate>LABEL.USUARIO</translate>:</label> <input type="text" class="form-control" ng-model="parametro.EMAIL_LOGIN" />
  72 + <label class="control-label"><translate>LABEL.USUARIO</translate>:</label> <input type="text" class="form-control" id="parametro.EMAIL_LOGIN" ng-model="parametro.EMAIL_LOGIN" />
73 73 </div>
74 74 <!-- .form-control -->
75 75 </div>
... ... @@ -80,7 +80,7 @@
80 80 <div class="row">
81 81 <div class="col-sm-4">
82 82 <div class="form-group">
83   - <label class="control-label"><translate>PORTAL.LABEL.SENHA</translate>:</label> <input type="password" class="form-control" ng-model="parametro.EMAIL_SENHA" />
  83 + <label class="control-label"><translate>PORTAL.LABEL.SENHA</translate>:</label> <input type="password" class="form-control" id="parametro.EMAIL_SENHA" ng-model="parametro.EMAIL_SENHA" />
84 84 </div>
85 85 <!-- .form-control -->
86 86 </div>
... ... @@ -92,7 +92,7 @@
92 92 <div class="col-sm-4">
93 93 <div class="form-group">
94 94 <div class="checkbox" style="margin: 0;">
95   - <label> <input type="checkbox" ng-model="parametro.EMAIL_EXIGE_AUTENTICACAO" ng-true-value="'true'" ng-false-value="'false'" /> <translate>PORTAL.LABEL.EXIGE_AUTENTICACAO</translate>
  95 + <label> <input type="checkbox" id= "parametro.EMAIL_EXIGE_AUTENTICACAO" ng-model="parametro.EMAIL_EXIGE_AUTENTICACAO" ng-true-value="'true'" ng-false-value="'false'" /> <translate>PORTAL.LABEL.EXIGE_AUTENTICACAO</translate>
96 96 </label>
97 97 </div>
98 98 <!-- .checkbox -->
... ... @@ -107,7 +107,7 @@
107 107 <div class="col-sm-4">
108 108 <div class="form-group">
109 109 <div class="checkbox" style="margin: 0;">
110   - <label> <input type="checkbox" ng-model="parametro.EMAIL_TSL_SSL" ng-true-value="'true'" ng-false-value="'false'" /> <translate>PORTAL.LABEL.TSL_SSL</translate>
  110 + <label> <input type="checkbox" id="parametro.EMAIL_TSL_SSL" ng-model="parametro.EMAIL_TSL_SSL" ng-true-value="'true'" ng-false-value="'false'" /> <translate>PORTAL.LABEL.TSL_SSL</translate>
111 111 </label>
112 112 </div>
113 113 <!-- .checkbox -->
... ... @@ -164,7 +164,7 @@
164 164 <div class="col-sm-4">
165 165 <div class="form-group">
166 166 <div class="checkbox" style="margin: 0;">
167   - <label> <input type="checkbox" ng-model="parametro.EMAIL_EXIGE_AUTENTICACAO" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXIGE_AUTENTICACAO</translate>
  167 + <label> <input type="checkbox" id="parametro.EMAIL_EXIGE_AUTENTICACAO" ng-model="parametro.EMAIL_EXIGE_AUTENTICACAO" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXIGE_AUTENTICACAO</translate>
168 168 </label>
169 169 </div>
170 170 <!-- .checkbox -->
... ... @@ -186,7 +186,7 @@
186 186 <div class="col-sm-12">
187 187 <div class="form-group">
188 188 <div class="checkbox" style="margin: 0;">
189   - <label> <input type="checkbox" ng-model="parametro['EXECUTAR_SCRIPT_MENU']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_SCRIPT_MENU</translate>
  189 + <label> <input type="checkbox" id="parametro.EXECUTAR_SCRIPT_MENU" ng-model="parametro['EXECUTAR_SCRIPT_MENU']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_SCRIPT_MENU</translate>
190 190 </label>
191 191 </div>
192 192 <!-- .checkbox -->
... ... @@ -200,7 +200,7 @@
200 200 <div class="col-sm-12">
201 201 <div class="form-group">
202 202 <div class="checkbox" style="margin: 0;">
203   - <label> <input type="checkbox" ng-model="parametro['EXECUTAR_BASE_INICIAL']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_BASE_INICIAL</translate>
  203 + <label> <input type="checkbox" id="parametro.EXECUTAR_BASE_INICIAL" ng-model="parametro['EXECUTAR_BASE_INICIAL']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_BASE_INICIAL</translate>
204 204 </label>
205 205 </div>
206 206 <!-- .checkbox -->
... ... @@ -214,7 +214,7 @@
214 214 <div class="col-sm-12">
215 215 <div class="form-group">
216 216 <div class="checkbox" style="margin: 0;">
217   - <label> <input type="checkbox" ng-model="parametro['EXECUTAR_INTERNACIONALIZACAO']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_INTERNACIONALIZACAO</translate>
  217 + <label> <input type="checkbox" id="parametro.EXECUTAR_INTERNACIONALIZACAO" ng-model="parametro['EXECUTAR_INTERNACIONALIZACAO']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_INTERNACIONALIZACAO</translate>
218 218 </label>
219 219 </div>
220 220 <!-- .checkbox -->
... ... @@ -237,7 +237,7 @@
237 237 <div class="form-group">
238 238 <div class="checkbox" style="margin: 0;">
239 239 <label>
240   - <input type="checkbox" ng-model="parametro['ITSM_ATIVO']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" />
  240 + <input type="checkbox" id="parametro.ITSM_ATIVO" ng-model="parametro['ITSM_ATIVO']" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" />
241 241 <translate>LABEL.ITSM_ATIVO</translate>
242 242 </label>
243 243 </div>
... ... @@ -262,7 +262,7 @@
262 262 <div class="col-sm-12">
263 263 <div class="form-group">
264 264 <div class="checkbox" style="margin: 0;">
265   - <label> <input type="checkbox" ng-model="parametro['EXECUTAR_SCRIPT_MENU-'+modulo.id]" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_SCRIPT_MENU</translate>
  265 + <label> <input type="checkbox" id="parametro.EXECUTAR_SCRIPT_MENU-{{modulo.id}}" ng-model="parametro['EXECUTAR_SCRIPT_MENU-'+modulo.id]" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_SCRIPT_MENU</translate>
266 266 </label>
267 267 </div>
268 268 <!-- .checkbox -->
... ... @@ -276,7 +276,7 @@
276 276 <div class="col-sm-12">
277 277 <div class="form-group">
278 278 <div class="checkbox" style="margin: 0;">
279   - <label> <input type="checkbox" ng-model="parametro['EXECUTAR_BASE_INICIAL-'+modulo.id]" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_BASE_INICIAL</translate>
  279 + <label> <input type="checkbox" id="parametro.EXECUTAR_BASE_INICIAL-{{modulo.id}}" ng-model="parametro['EXECUTAR_BASE_INICIAL-'+modulo.id]" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoModulosForm" /> <translate>PORTAL.LABEL.EXECUTAR_BASE_INICIAL</translate>
280 280 </label>
281 281 </div>
282 282 <!-- .checkbox -->
... ... @@ -478,7 +478,7 @@
478 478 <fieldset>
479 479 <div class="row">
480 480 <div class="col-sm-8">
481   - <label-input-radio ng-label="PORTAL.LABEL.MASCARA_NUMERO_IDENTIFICACAO" list="radioValueList" ng-model="mascara.dominioTipoMascara.codigo" ng-disabled="false" text="descricao" ng-obrigatorio="true"
  481 + <label-input-radio ng-label="PORTAL.LABEL.MASCARA_NUMERO_IDENTIFICACAO" list="radioValueList" ng-model="mascara.dominioTipoMascara.codigo" ng-disabled="false" text="descricao"
482 482 value="codigo" form="configuracaoGeralForm" ng-click="configurarMascara()"></label-input-radio>
483 483 </div>
484 484 <!-- .col -->
... ... @@ -488,7 +488,7 @@
488 488 <div class="row">
489 489 <div class="col-sm-2">
490 490 <label-input-number label-info-tooltip="{{$translate.instant('PORTAL.MSG.INFO_TAMANHO_MASCARA_OPERACAO')}}" ng-id="mascara.tamanhoSequencial" ng-label="PORTAL.LABEL.TAMANHO_MASCARA"
491   - form="configuracaoGeralForm" ng-disabled="false" ng-obrigatorio="true" ng-model="mascara.tamanhoSequencial" ng-custom-maxlength="2" ng-min-number="5" ng-max-number="10"
  491 + form="configuracaoGeralForm" ng-disabled="false" ng-model="mascara.tamanhoSequencial" ng-custom-maxlength="2" ng-min-number="5" ng-max-number="10"
492 492 ng-keyup="configurarMascara()" />
493 493 </div>
494 494 <!-- .col -->
... ... @@ -511,6 +511,20 @@
511 511 </div>
512 512 <!-- .col -->
513 513 </div>
  514 +
  515 + <div class="row">
  516 + <div class="col-sm-12">
  517 + <div class="form-group">
  518 + <div class="checkbox" style="margin: 0;">
  519 + <label> <input type="checkbox" id="parametro.VALIDAR_FECHAR_ABA" ng-model="parametro.VALIDAR_FECHAR_ABA" ng-true-value="'true'" ng-false-value="'false'" form="configuracaoGeralForm" /> <translate>PORTAL.LABEL.VALIDAR_FECHAR_ABA</translate>
  520 + </label>
  521 + </div>
  522 + <!-- .checkbox -->
  523 + </div>
  524 + <!-- .form-control -->
  525 + </div>
  526 + <!-- .col -->
  527 + </div>
514 528 <!-- .row -->
515 529  
516 530 <div class="row margin-top">
... ...