71
| <![CDATA[<script>
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* GLOBAIS */
/* MAPA */
var leafLetMap; // MAPA
var leafLetMapCenter; // CENTRO DO MAPA
var markers = []; // ARRAY COM SO MARCADORES
var markersAgrupados = {}; // ARRAY COM SO MARCADORES AGRUPADOS
const cidadeLatLng = [-17.2175, -46.8723]; // LAT LNG DA CIDADE
const zoomMax = 18; // ZOOM MAXIMO
const zoomMin = 11; // ZOOM MINIMO
/* MAPA */
/* OBRAS */
const seguirObra = false;
/* OBRAS */
/* LAYOUT */
var divMenuObras;
var botaoMenuDetalhes; // REFERENCIA GLOBAL DO BOTAO DETRALHES
var botaoVerMapa = $("#btn_ver_mapa");
/* LAYOUT */
/* PAGINA */
var $document;
var $window;
var $body;
/* PAGINA */
/* FILTROS */
var dadosExibir; // AUXILIAR PARA EXIBICAO DOS DADOS APOS A FILTRAGEM
var formFiltrar;
var inputPeriodoInicial;
var inputPeriodoFinal;
var inputsBairro;
var inputsLogradouro;
var inputsCategoria;
var inputsSituacao;
var inputPalavraChave;
var selectRelatorioFiltroAno;
var divsRelatorioInfo;
var divRelatorioTotalExecutadas;
var divRelatorioTotalConcluidas;
var divRelatorioTotalEmAndamento;
var divRelatorioTotalSuspensas;
var divRelatorioTotalEmProjeto;
var divRelatorioTotalAcompanhamentos;
var divRelatorioTotalContratos;
var divRelatorioTotalValor;
var filtrosFormulario;
/* FILTROS */
/* LISTAGEM */
var divAreaListagem;
var divResultados;
var spanQtdeResultado;
var spanObrasEncontradas;
var divListagemObras;
/* LISTAGEM */
/* DETALHES */
var divAreaDetalhes;
var btnSeguirObra;
var btnAvaliarObra;
var divCategoriaObra;
var divLocalizacaoObra;
var divEditalObra;
var divContratoObra;
var divEmpresaObra;
var divFiscalObra;
var divValorObra;
var divValorPagoObra;
var spanValorPago;
var divDescricao;
var divFonteRecurso;
var divMotivoParalisacao;
var divExecucaoObra;
var divSituacao;
var spanSituacao;
var divDataInicio;
var divDataFim;
var divObraAtraso;
var divAcompanhamentosObras;
var divTotalAcompanhamentos;
var spanTotalPorcentagem;
var divFotosObra;
var divContFotos;
var divVideosObra;
var divArquivosObra;
var divSecretariasObra;
var divValorContrato;
var spanValorContrato;
var divValorUtilizado;
var spanValorPagoFinal;
// var divPrazoEstimado;
var divPrazoRealizacao;
/* DETALHES */
/* PAGINACAO */
const qtdePorPagina = 100;
var selectPagina;
var divAvancaPagina;
var divVoltaPagina;
/* PAGINACAO */
/* MODELOS */
const htmlSecretariaModelo =
'<a href="" class="obr_secretaria_modelo">'+
'<div class="obr_secretaria_vinculada">'+
'<div class="obr_area_img_secretaria"><img src="" alt=""></div>'+
'<div class="obr_area_info_secretaria">'+
'<div class="obr_nome_secretaria sw_lato_black"></div>'+
'</div>'+
'</div>'+
'</a>';
const secretariaModelo = $(htmlSecretariaModelo);
const htmlArquivoMoldeo =
'<a href="" class="obr_arquivo_modelo" target="_blank">'+
'<div class="sw_arquivo_download">'+
'<div class="sw_icone_arquivo_download"><img src="" alt=""></div>'+
'<div class="sw_info_arquivo_download">'+
'<div class="sw_data_arquivo_download sw_lato"></div>'+
'<div class="sw_nome_arquivo_download sw_lato_bold"></div>'+
'</div>'+
'</div>'+
'</a>';
const arquivoModelo = $(htmlArquivoMoldeo);
const htmlVideoModelo =
'<div class="obr_video_obra obr_video_modelo">'+
'<div class="obr_img_video">'+
'<img src="" alt="">'+
'<span class="swfa fas fa-play"></span>'+
'</div>'+
'<div class="obr_data_video"></div>'+
'<div class="obr_nome_video sw_lato_black"></div>'+
'<div class="obr_assistir_video sw_lato_medium">ASSISTIR</div>'+
'<input type="hidden" value="">'+
'</div>';
const videoModelo = $(htmlVideoModelo);
const htmlFotoModelo =
'<div class="vinc_cont_img_galeria_fotos obr_foto_modelo">'+
'<div class="vinc_img_galeria_fotos">'+
'<span class="swfa fas fa-search-plus" aria-hidden="true"></span>'+
'<img src="" alt="">'+
'</div>'+
'</div>';
const fotoModelo = $(htmlFotoModelo);
const htmlAcompanhamentoModelo =
'<div class="sw_linha_lista_detalhes obr_acompanhamento_info obr_acompanhamento_modelo" style="display: none;">'+
'<div class="obr_cont_acompanhamento_obra">'+
'<div class="obr_area_porcentagem_obra sw_lato_black">'+
'<div class="obr_barra_porcentagem_acompanhamento">'+
'<div class="obr_porcentagem_acompanhamento">'+
'<span style="min-width: 40%">40%</span>'+
'</div>'+
'</div>'+
'</div>'+
'<div class="obr_area_info_acompanhamento_obra">'+
'<div class="sw_lato_medium">'+
'<span class="obr_data_acompanhamento">10 jan 2020</span>'+
'<div class="obr_descricao_acompanhamento sw_lato_bold"></div>'+
'<span class="obr_situacao_acompanhamento"></span>'+
'<div class="obr_link_obra obr_link_ver_fotos"><span class="obr_txt_link_obra">ver fotos</span><span class="swfa fas fa-camera"></span></div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>';
const acompanhamentoModelo = $(htmlAcompanhamentoModelo);
const htmlItemListaObraModelo =
'<div class="obr_item_listagem obr_item_listagem_modelo" data-id="">'+
'<div class="obr_area_titulo_obra">'+
'<div class="obr_categoria_obra sw_lato">'+
'<div class="obr_cont_categoria_obra">'+
'<span class="swfa fa"></span>'+
'<span class="obr_txt_categoria"></span>'+
'</div>'+
'</div>'+
'<div class="obr_titulo_obra sw_lato_black"></div>'+
'</div>'+
'<div class="obr_area_info_obra sw_lato">'+
'<div class="obr_info_obra obr_info_obra_situacao">'+
'<div class="obr_titulo_info sw_lato_black">Situação</div>'+
'<div class="obr_descricao_info"><span class="obr_situacao"></span></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_dt_inicio">'+
'<div class="obr_titulo_info sw_lato_black">Data Início</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_dt_fim">'+
'<div class="obr_titulo_info sw_lato_black">Data Fim</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_valor">'+
'<div class="obr_titulo_info sw_lato_black">Valor</div>'+
'<div class="obr_descricao_info"><span class="obr_valor_obra sw_lato_black"></span></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_contrato">'+
'<div class="obr_titulo_info sw_lato_black">Contrato</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_edital">'+
'<div class="obr_titulo_info sw_lato_black">Edital</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_area_link_obra_listagem">'+
'<div class="obr_link_obra obr_link_ver_obra"><span class="obr_txt_link_obra">ver obra</span><span class="swfa fas fa-search"></span></div>'+
'<div class="obr_link_obra obr_link_ver_fotos"><span class="obr_txt_link_obra">ver fotos</span><span class="swfa fas fa-camera"></span></div>'+
'</div>'+
'</div>'+
'</div>';
const itemListaObraModelo = $(htmlItemListaObraModelo);
/* MODELOS */
/* INICIANDO VARIAVEIS */
$(document).ready(function(){
$document = $(document);
$window = $(window);
$body = $("body");
divMenuObras = $("#obr_menu");
botaoMenuDetalhes = $("button[data-menu=obr_content_detalhes]");
botaoVerMapa = $("#btn_ver_mapa");
formFiltrar = $("#obr_form_filtro");
inputPeriodoInicial = $("#obr_periodo_inicial");
inputPeriodoInicial.datepicker();
inputPeriodoInicial.mask("99/99/9999");
inputPeriodoFinal = $("#obr_periodo_final");
inputPeriodoFinal.datepicker();
inputPeriodoFinal.mask("99/99/9999");
inputsBairro = $(".obr_filtro_bairro");
inputsLogradouro = $(".obr_filtro_logradouro");
inputsCategoria = $(".obr_filtro_categoria");
inputsSituacao = $(".obr_filtro_situacao");
inputPalavraChave = $("#obr_palavra_chave");
selectRelatorioFiltroAno = $("#obr_filtro_ano");
divsRelatorioInfo = $(".obr_area_info_relatorio_obras");
divRelatorioTotalExecutadas = divsRelatorioInfo.find(".obr_total_executadas");
divRelatorioTotalConcluidas = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_concluida");
divRelatorioTotalEmAndamento = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_em_andamento");
divRelatorioTotalSuspensas = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_suspensa");
divRelatorioTotalEmProjeto = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_em_projeto");
divRelatorioTotalAcompanhamentos = divsRelatorioInfo.find(".obr_total_acompanhamentos");
divRelatorioTotalContratos = divsRelatorioInfo.find(".obr_total_contratos");
divRelatorioTotalValor = divsRelatorioInfo.find(".obr_valor_obra");
filtrosFormulario = divMenuObras.find(".obr_formulario_filtro:not(.obr_relatorio)");
divAreaListagem = $(".obr_area_listagem");
divResultados = $(".sw_area_info_resultado_busca");
spanQtdeResultado = $("#span_qtde_obras_encontradas");
spanObrasEncontradas = $("#span_obras_encontradas");
divListagemObras = $(".obr_info_listagem_obras");
divAreaDetalhes = $(".obr_area_detalhes_obra");
btnSeguirObra = divAreaDetalhes.find('#sw_btn_seguir_ferramenta');
btnAvaliarObra = divAreaDetalhes.find('#sw_btn_avaliar');
divCategoriaObra = divAreaDetalhes.find(".obr_categoria_obra");
divLocalizacaoObra = divAreaDetalhes.find(".obr_localizacao");
divEditalObra = divAreaDetalhes.find(".obr_edital");
divContratoObra = divAreaDetalhes.find(".obr_contrato");
divEmpresaObra = divAreaDetalhes.find(".obr_empresa");
divFiscalObra = divAreaDetalhes.find(".obr_fiscal");
divValorObra = divAreaDetalhes.find("div.obr_valor_obra");
divValorPagoObra = divAreaDetalhes.find("div.obr_valor_pago");
divDescricao = divAreaDetalhes.find("div.obr_descricao");
divFonteRecurso = divAreaDetalhes.find("div.obr_fonte_recurso");
divMotivoParalisacao = divAreaDetalhes.find("div.obr_motivo_paralisacao");
spanValorPago = divValorPagoObra.find("span");
divExecucaoObra = divAreaDetalhes.find(".obr_execucao");
divSituacao = divExecucaoObra.find(".obr_situacao_atual");
spanSituacao = divSituacao.find("span.obr_situacao");
divDataInicio = divExecucaoObra.find(".obr_data_inicio");
divDataFim = divExecucaoObra.find(".obr_data_fim");
divObraAtraso = divExecucaoObra.find(".obr_atraso");
divAcompanhamentosObras = divAreaDetalhes.find("div.obr_cont_detalhes.obr_acompanhamentos");
divTotalAcompanhamentos = divAreaDetalhes.find(".sw_linha_lista_detalhes.obr_total_acompanhamentos");
spanTotalPorcentagem = divTotalAcompanhamentos.find(".obra_porcentagem_concluida");
divFotosObra = divAreaDetalhes.find(".obr_obra_fotos");
divContFotos = divFotosObra.find('.vinc_cont_galeria_fotos_vinculada');
divVideosObra = divAreaDetalhes.find("div.obr_obra_videos div.obr_area_videos_obra");
divArquivosObra = divAreaDetalhes.find("div.obr_obra_arquivos");
divSecretariasObra = divAreaDetalhes.find(".obr_obra_secretarias");
divValorContrato = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_valor_contratado");
spanValorContrato = divValorContrato.find("span");
divValorUtilizado = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_valor_utilizado");
spanValorPagoFinal = divValorUtilizado.find("span");
// divPrazoEstimado = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_prazo_dias");
divPrazoRealizacao = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_total_dias");
selectPagina = $(".obr_select_paginacao_listagem");
divAvancaPagina = $(".obr_avanca_pagina");
divVoltaPagina = $(".obr_volta_pagina");
/* CAPTURA DADOS PARA O GRÁFICO DE CATEGORIAS */
var dados_grafico_categorias = $("#dados_grafico_categorias").val();
if(dados_grafico_categorias != undefined)
{
dados_grafico_categorias = decodeURIComponent(dados_grafico_categorias);
dados_grafico_categorias = JSON.parse(dados_grafico_categorias);
// GRÁFICO DE PIZZA -- RELAÇÃO DE OBRAS COM CATEGORIAS
if(dados_grafico_categorias.length > 0)
{
Highcharts.chart('obr_grafico_categoria', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por categorias</span>' },
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
name: 'Quantidade',
colorByPoint: true,
data: dados_grafico_categorias
}],
tooltip: {
pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>'
},
});
}
}
/* CAPTURA DADOS PARA O GRÁFICO DE FONTE DE RECURSO */
var dados_grafico_fonte_recurso = $("#dados_fonte_recurso").val();
if(dados_grafico_fonte_recurso != undefined)
{
dados_grafico_fonte_recurso = decodeURIComponent(dados_grafico_fonte_recurso);
dados_grafico_fonte_recurso = JSON.parse(dados_grafico_fonte_recurso);
// GRÁFICO DE PIZZA -- FONTE DE RECURSO
if(dados_grafico_fonte_recurso.length > 0)
{
Highcharts.chart('obr_grafico_fonte_recurso', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por fonte de recurso</span>' },
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
name: 'Quantidade',
colorByPoint: true,
data: dados_grafico_fonte_recurso
}],
tooltip: {
pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>'
},
});
}
}
/* CAPTURA DADOS PARA O GRÁFICO DOS MOTIVOS DE PARALISAÇÃO */
var dados_grafico_motivo_paralisacao = $("#dados_motivo_paralisacao").val();
if(dados_grafico_motivo_paralisacao != undefined)
{
dados_grafico_motivo_paralisacao = decodeURIComponent(dados_grafico_motivo_paralisacao);
dados_grafico_motivo_paralisacao = JSON.parse(dados_grafico_motivo_paralisacao);
// GRÁFICO DE PIZZA -- MOTIVOS DA PARALISAÇÃO
if(dados_grafico_motivo_paralisacao.length > 0)
{
Highcharts.chart('obr_grafico_motivo_paralisacao', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por motivos de paralisação</span>' },
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
name: 'Quantidade',
colorByPoint: true,
data: dados_grafico_motivo_paralisacao
}],
tooltip: {
pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>'
},
});
}
}
// ADAPTAÇÃO NO MÉTODO 'CONTAINS' DO JQUERY PARA FILTRAR CASE INSENSITIVE E REMOVER ACENTUAÇÃO
jQuery.expr[':'].instarcontains = function(a, i, m) {
return jQuery(a).text()
.replace(/[áàãâä]/gi,"a")
.replace(/[éèê]/gi,"e")
.replace(/[íìïî]/gi,"i")
.replace(/[óòöôõ]/gi,"o")
.replace(/[úùüû]/gi, "u")
.replace(/[ç]/gi, "c")
.replace(/[ñ]/gi, "n")
.replace(/[^a-zA-Z0-9]/g," ")
.toUpperCase()
.indexOf(m[3]
.replace(/[áàãâä]/gi,"a")
.replace(/[éèê]/gi,"e")
.replace(/[íìïî]/gi,"i")
.replace(/[óòöôõ]/gi,"o")
.replace(/[úùüû]/gi, "u")
.replace(/[ç]/gi, "c")
.replace(/[ñ]/gi, "n")
.replace(/[^a-zA-Z0-9]/g," ")
.toUpperCase()
) >= 0;
};
});
/* INICIANDO VARIAVEIS */
/* GLOBAIS */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO CRIA O MAPA */
function Mapa(idElementoMapa, renderizarRelatorio = true)
{
markers = [];
// DADOS
var pontos = [{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-17.2233","longitude":"-46.862","icone":"book","cor_fundo_circulo":"rgba(0, 0, 0, 0.8)","cor_marcador":"#149916","cor_icone":"#ffffff","nome_categoria":"Educação","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes flex obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">CONSTRUÇÃO DA ESCOLA MUNICIPAL CACILDA CAETANO DE SOUZA<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Educação<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Nossa Senhora de Fátima<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Rua do Nascente, 44<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"3\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":3,"situacao":"Em Andamento","bairro":"Nossa Senhora de Fátima","logradouro_completo":"Rua do Nascente, 44","logradouro":"Rua do Nascente","dt_inicio":1658718000,"dt_inicio_string":"25\/07\/2022","dt_fim":1668567600,"dt_fim_string":"16\/11\/2022","valor":"3.885.561,54","valor_pago":null,"titulo":"CONSTRUÇÃO DA ESCOLA MUNICIPAL CACILDA CAETANO DE SOUZA","codigo":3,"acompanhamentos":[],"edital":false,"contrato":false,"fotos":{"747":{"arquivo":"\/fotos\/obras\/3\/83cdbd02384e992193b508bb94da518c.png","legenda":"Fachada Original"}},"secretarias":[],"videos":[],"arquivos":[],"empresa":"","fiscal":"FRANCIELE GONÇALVES CARNEIRO","descricao":"A Escola Cacilda Caetano de Souza atende 628 (Seiscentos e vinte e oito) alunos, funciona no período matutino, vespertino e noturno, oferecendo o ensino fundamental, 1 ao 9 ano no período diurno e no período noturno é um dos polos da Educação de Jovens e Adultos- EJA.\r\n\r\nInaugurada há 32 anos, desde sua criação, sempre funcionou no mesmo imóvel. Durante todo este período a escola nunca foi submetida há grandes reformas, sofreu apenas pequenas manutenções. Devido o passar dos anos suas estruturas se deterioraram tanto que está impossível continuar em funcionamento.\r\n\r\nPara garantir a segurança dos nossos alunos, servidores e demais usuários, é imprescindível que uma nova sede seja construída. O novo projeto foi pensado e projetado a fim de proporcionar ambiente agradável, confortável e adequado a todos os alunos, inclusive aqueles com necessidades especiais, posto que todo projeto foi especialmente criado para atendê-los da melhor forma. Ademais, cabe destacar que, além de todos os benefícios retrocitados, a construção criará aumento significativo no número de vagas, devido ao número de salas amplas e adequadas que foram inseridas no projeto.\r\n\r\nIsto posto, destacamos que tal obra é indispensável para garantir a segurança da edificação e manter a continuidade dos trabalhos oferecidos pela instituição de ensino. Dito isso, fica justificado “sine qua non” a feitura do ato.\r\n","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-17.2245","longitude":"-46.8659","icone":"rocket","cor_fundo_circulo":"rgba(0, 0, 0, 0.8)","cor_marcador":"#279639","cor_icone":"#ffffff","nome_categoria":"Cultura","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes flex obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">RESTAURAÇÃO E REABILITAÇÃO DO ANTIGO AUTOMÓVEL CLUBE DE PARACATU<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Cultura<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Centro<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Rua Américo Macedo, 89<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"4\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":4,"situacao":"Em Andamento","bairro":"Centro","logradouro_completo":"Rua Américo Macedo, 89","logradouro":"Rua Américo Macedo","dt_inicio":1646794800,"dt_inicio_string":"09\/03\/2022","dt_fim":1665111600,"dt_fim_string":"07\/10\/2022","valor":"731.936,03","valor_pago":"203.278,25","titulo":"RESTAURAÇÃO E REABILITAÇÃO DO ANTIGO AUTOMÓVEL CLUBE DE PARACATU","codigo":4,"acompanhamentos":[],"edital":false,"contrato":false,"fotos":{"749":{"arquivo":"\/fotos\/obras\/4\/bbea2eee7d2c054f1642a5701002285d.jpg","legenda":""}},"secretarias":{"23":{"nome":"Secretaria Municipal de Cultura e Turismo","link":"\/portal\/secretarias\/23\/secretaria-municipal-de-cultura-e-turismo","abertura":"_target","imagem":"\/fotos\/d646f201fb6565bd4c78233464e8e523.jpg"}},"videos":[],"arquivos":[],"empresa":"ESSA CONSTRUCOES E SERVICOS EIRELI - ME","fiscal":"ANGÉLICA VASCONCELOS SOUTO SILVA","descricao":"A edificação localizada na Rua Américo Macedo, 19, é da datada de aproximadamente 1940 e sua construção é fruto da influência do estilo ArtDeco, de Goiás e Belo Horizonte, da primeira metade do século XX, atualmente na cidade de Paracatu temos poucos exemplares deste estilo, entre eles se encontra o Automóvel Clube.\r\n\r\nNa edificação funcionaram vários estabelecimentos comerciais, entre eles a tradicional “Casa Crioulo”, alfaiataria e loja de tecidos do proprietário e alfaiate Álvaro da Silva Neiva, até que na década de 1960, o imóvel se tornou a sede social do Automóvel Clube Paracatuense onde se tornou então um importante ponto de encontro para os moradores da cidade. Lá eram realizados bailes de vários estilos, inclusive bailes de carnaval para crianças, as chamadas matinês, e para os adultos que possuíssem quotas do clube. O imóvel também exerceu uma importância política para a cidade, uma vez que parte de sua história passou por aquela edificação. A mesma teria abrigado diversas reuniões do grupo político dos Udenistas, UDN, União Democrática Nacional, conhecida através dos discursos inflamados de Carlos Lacerda contra os políticos getulistas, entre os quais podemos, sem qualquer dúvida, apontar o principal, Juscelino Kubitschek. Enquanto o grupo do PSD (Partido Social Democrático) de JK se reunia no Jóquei Clube Paracatuense, o grupo da UDN se reunia no Automóvel Clube.\r\n\r\nO projeto de restauração e reabilitação do imóvel prevê a instalação de um Centro Cultural, sendo esta etapa referente à implantação de uma cozinha escola, restaurante e área administrativa, onde se visa a utilização do mesmo para o fomento da gastronomia local, bem como abrigar em local adequado as oficinas e projetos de consultoria para os restaurantes da cidade.\r\n","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-17.2372","longitude":"-46.8806","icone":"plus-circle","cor_fundo_circulo":"rgba(0, 0, 0, 0.8)","cor_marcador":"#1f8926","cor_icone":"#ffffff","nome_categoria":"Saúde","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes flex obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">EXECUÇÃO REMANESCENTE DE OBRA DA UBS PARACATUZINHO<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Saúde<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Paracatuzinho<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Rua Ricardo Adjuto, 377<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"5\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":5,"situacao":"Em Andamento","bairro":"Paracatuzinho","logradouro_completo":"Rua Ricardo Adjuto, 377","logradouro":"Rua Ricardo Adjuto","dt_inicio":1656903600,"dt_inicio_string":"04\/07\/2022","dt_fim":1666321200,"dt_fim_string":"21\/10\/2022","valor":"894.520,77","valor_pago":null,"titulo":"EXECUÇÃO REMANESCENTE DE OBRA DA UBS PARACATUZINHO","codigo":5,"acompanhamentos":[],"edital":false,"contrato":false,"fotos":{"750":{"arquivo":"\/fotos\/obras\/5\/43fd4a82472fa97ca082a332bb88cd85.png","legenda":""}},"secretarias":{"32":{"nome":"Secretaria Municipal de Saúde","link":"\/portal\/secretarias\/32\/secretaria-municipal-de-saude","abertura":"_target","imagem":"\/fotos\/18a0213c849879f6a7032b4fb473cfc7.jpg"}},"videos":[],"arquivos":[],"empresa":"CONSTRUTORA COMPASSO EIRELI","fiscal":"FÁBIO COSTA MUNDIM","descricao":"A Unidade Básica de Saúde do PSF Paracatuzinho recentemente passou por um processo de Reforma\/Ampliação cujo o mesmo não foi concluído devido o valor do recurso não atender o valor real da demanda, sendo uma reforma\/ampliação complexa que sofreu constantes alterações de projetos, tais mudanças foram causadas pelas dificuldades encontradas “in loco” devido a topografia do terreno.\r\n\r\nO PSF do Paracatuzinho atualmente necessita que seja realizada uma remanescente obra para que a mesma possa atender a população sendo uma edificação capaz de dar qualidade e\r\nconforto aos servidores e usuários. O PSF Paracatuzinho está locado no maior bairro territorial e populacional do município de Paracatu-MG.","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-17.086299136451334","longitude":"-46.8140290196555","icone":"rocket","cor_fundo_circulo":"rgba(0, 0, 0, 0.8)","cor_marcador":"#1c8731","cor_icone":"#ffffff","nome_categoria":"Agropecuária","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes flex obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">CONSTRUÇÃO DO ABATEDOURO MUNICIPAL DE AVES<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Agropecuária<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">RODOVIA MG 188<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">MG 188<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"6\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"RODOVIA MG 188","logradouro_completo":"MG 188","logradouro":"MG 188","dt_inicio":1657681200,"dt_inicio_string":"13\/07\/2022","dt_fim":0,"dt_fim_string":null,"valor":"1.384.567,12","valor_pago":null,"titulo":"CONSTRUÇÃO DO ABATEDOURO MUNICIPAL DE AVES","codigo":6,"acompanhamentos":[],"edital":false,"contrato":false,"fotos":{"751":{"arquivo":"\/fotos\/obras\/6\/72002bf9f7fadc6703349f182eae5642.jpg","legenda":""},"752":{"arquivo":"\/fotos\/obras\/6\/c74cc0683c79c7fda115e6d34b29d1c7.jpg","legenda":""},"753":{"arquivo":"\/fotos\/obras\/6\/6c5779eaf06f08a75bec901f67ff2bb2.jpg","legenda":""},"754":{"arquivo":"\/fotos\/obras\/6\/e41311bc24983c5905b874b9b4c967c9.jpg","legenda":""},"755":{"arquivo":"\/fotos\/obras\/6\/0c17b2cdf1d7dd803e249412532b9086.jpg","legenda":""}},"secretarias":{"20":{"nome":"Secretaria Municipal de Agropecuária","link":"\/portal\/secretarias\/20\/secretaria-municipal-de-agropecuaria","abertura":"_target","imagem":"\/fotos\/2972f5ee558bcf974ef545f45482262e.jpg"}},"videos":[],"arquivos":[],"empresa":"C & A CONSTRUTORA LTDA","fiscal":"TALLES SOUZA DAMASCENO","descricao":"A garantia de manutenção do mercado de carne de frango consiste no fornecimento de produtos com padrões de qualidade estáveis, visando à satisfação e segurança do consumidor, além de manter o poder aquisitivo. A qualidade e a segurança dos alimentos se tornaram parte integral dos processos de produção relevantes para diminuir as fortes reações negativas dos consumidores e de organizações nas crises recentes do setor de alimentos de origem animal. Além de suas demandas em relação à qualidade e à segurança dos alimentos, os consumidores preocupam-se com sustentabilidade e com aspectos de produção que influenciam as necessidades e os valores da sociedade, como bem-estar animal e proteção ambiental. \r\n\r\nCom os abatedouros foram estabelecidos vários sistemas de controle para gerenciar a qualidade e segurança dos alimentos. Os modernos sistemas de controle incluem todo o processo de produção e, portanto, são estes sistemas integrados que podem ser efetivamente chamados de sistemas de qualidade e segurança de alimentos.\r\n\r\nOs programas de controle integrados incorporam exigências de segurança e garantem a qualidade dos alimentos de origem animal, incluindo os produtos avícolas.","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-17.233445130065558","longitude":"-46.8883708566949","icone":"slack","cor_fundo_circulo":"rgba(0, 0, 0, 0.8)","cor_marcador":"#127d40","cor_icone":"#ffffff","nome_categoria":"Cidadania e Habitação","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes flex obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"> REFORMA E REVITALIZAÇÃO DA PRAÇA DO CENTRO DE ARTES E ESPORTES - CEU<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Cidadania e Habitação<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Bom Pastor<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Rua George Araújo Caldas, 31<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"7\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":7,"situacao":"Em Andamento","bairro":"Bom Pastor","logradouro_completo":"Rua George Araújo Caldas, 31","logradouro":"Rua George Araújo Caldas","dt_inicio":1659322800,"dt_inicio_string":"01\/08\/2022","dt_fim":1664161200,"dt_fim_string":"26\/09\/2022","valor":"218.842,52","valor_pago":null,"titulo":" REFORMA E REVITALIZAÇÃO DA PRAÇA DO CENTRO DE ARTES E ESPORTES - CEU","codigo":7,"acompanhamentos":[],"edital":false,"contrato":false,"fotos":{"785":{"arquivo":"\/fotos\/obras\/7\/bee36ecc3ab4135bccfa4fc4579ab996.png","legenda":null}},"secretarias":{"22":{"nome":"Secretaria Municipal de Cidadania e Habitação","link":"\/portal\/secretarias\/22\/secretaria-municipal-de-cidadania-e-habitacao","abertura":"_target","imagem":"\/fotos\/a77d3622e199b0d6c1e2da82fd17c398.jpg"}},"videos":[],"arquivos":[],"empresa":"\t CONSTRUTORA E INCORPORADORA GWF PARACATU LTDA","fiscal":"FILIPE GOMES GALVÃO","descricao":"Centros de Artes e Esportes Unificados - CEUs (também chamados de Praças Céu das Artes) são parte de um programa do governo federal brasileiro que tem por objetivo integrar, em um mesmo espaço, programas e atividades culturais, esportes e lazer, bem como a formação e qualificação profissional para o mercado de trabalho, oferecendo serviços socioassistenciais e laboratório de informática. Além de estar apoiando o desenvolvimento de ocupações para pesquisa e experimentação com tecnologias livres, cultura e cidade.\r\n\r\nO CEU oferece infraestrutura e espaços para o desenvolvimento de atividades voltadas ao conhecimento da diversidade artística e social em comunidades com população superior a 50 mil habitantes e em áreas consideradas de alta vulnerabilidade social. O Céu das Artes de Paracatu fica localizado no Bairro Bom Pastor, bairro de alta vulnerabilidade social e que precisa de uma atenção redobrada para suas questões sociais, esportivas e culturais. A necessidade de reformar e revitalizar esta praça é com o objetivo de fomentar a participação da sociedade e continuar desenvolvendo a sua função cultural e social no bairro, visto que desde a sua inauguração em 2018 não recebeu alguma intervenção para melhorias e manutenção. ","fonte_recurso":"Próprio, ","motivo_paralisacao":""}];
// CONSTANTES
leafLetMapCenter = cidadeLatLng;
// VARIAVEIS
var elementoMapa;
// VALIDANDO ELEMENTO PARA O MAPA
elementoMapa = document.getElementById(idElementoMapa);
if (!elementoMapa)
{
// ERRO
return false;
}
elementoMapa = $(elementoMapa);
// VERIFICANDO O NAVEGADOR
if (L.Browser.ielt9)
{
elementoMapa.css({
"background-color": "#fff",
"text-align": "center",
"margin-bottom": "15px"
});
elementoMapa.append('<span class="sw_lato_bold">Este navegador não é compatível com o mapa.</span>');
return false;
}
// TILE PROVIDER CONFIGURACAO OpenStreetMap
const tileProvider = {
// URLS COM AS IMAGENS DOS TILES
urls : [
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
'https://{s}.tile.osm.org/{z}/{x}/{y}.png',
'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png',
'https://{s}.tile.openstreetmap.com/{z}/{x}/{y}.png'
],
// FUNCAO QUE RETORNA A PROXIMA URL DISPONIVEL EM 'urls'
getUrl: function(){
var activeUrl = ""+this.urls.shift();
this.urls = this.urls.concat(activeUrl);
return activeUrl;
},
// ATRIBUICAO DE DIREITOS
// OBRIGATORIO
attribution : 'Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a href="https://osm.org/copyright">ODbL 1.0.</a>'
};
// CRIANDO MAPA
leafLetMap = L.map(elementoMapa.get(0) ,{
preferCanvas: true, // USA CANVAS > DESEMPENHO++
center: cidadeLatLng, // CENTRO DO MAPA
zoom: zoomMin, // ZOOM ATUAL
minZoom: zoomMin, // ZOOM MIN
maxZoom: zoomMax, // ZOOM MAX
doubleClickZoom: false // DESATIVA ZOOM DO CLICK DUPLO
});
// TRAVANDO O MAPA
leafLetMap.setMaxBounds(leafLetMap.getBounds());
// OBJETO TileLayer PARA O MAPA
const tiles = L.tileLayer(tileProvider.getUrl(), {
attribution: tileProvider.attribution,
bounds: leafLetMap.getBounds(),
tileSize: 256,
minNativeZoom: zoomMin,
maxNativeZoom: zoomMax,
updateWhenZooming: false,
updateWhenIdle: false,
updateInterval: 1000,
detectRetina: true,
keepBuffer: 15
});
// TRATANDO ERRO AO REQUISITAR UM TILE
// CASO ERRO >> CHAMA FUNCAO TileProvider.getUrl()
tiles.on("tileerror", function(){
tiles.setUrl(tileProvider.getUrl());
}, tiles);
tiles.addTo(leafLetMap);
// PERCORRENDO PONTOS
// for(var indicePonto = 0; indicePonto < pontos.length; indicePonto++){
// var ponto = pontos[indicePonto];
var indicePonto = 0;
pontos.forEach(function(ponto) {
indicePonto++;
// CRIANDO MARCADOR
var markerLeaflet = L.marker(
[ponto.latitude, ponto.longitude],
{
icon: L.FontAwesomeMarker.icon({
icon: ponto.icone,
markerColor: ponto.cor_marcador,
iconColor: ponto.cor_icone,
svgCircleColor: ponto.cor_fundo_circulo
})
}
);
// ADICIONANDO POPUP AO MARCADOR
var markerPopup = $(ponto.conteudo_popup);
var divVerFotosPopup = markerPopup.find(".obr_link_obra.obr_link_ver_fotos");
if (Object.values(ponto.fotos) && Object.values(ponto.fotos).length > 0)
{
divVerFotosPopup.css("display", "inline-block");
var fancyBoxSrc = [];
var fancyBoxOptions = {
buttons : [ 'slideShow', 'close' ],
loop : true,
arrows : true,
slideShow : { autoStart : false, speed : 3500 }
};
Object.values(ponto.fotos).forEach(function(foto, index, arr) {
var legenda = "";
if (foto.legenda && foto.legenda !== "null")
{
legenda = foto.legenda;
}
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divVerFotosPopup.click(function(mouseEvent) {
$.fancybox.open(fancyBoxSrc, fancyBoxOptions);
});
} else {
divVerFotosPopup.hide();
}
markerLeaflet.bindPopup(markerPopup.get(0), {
autoPanPaddingTopLeft: L.point(0, 50),
autoPanPaddingBottomRight: L.point(0, 0)
});
// MARCADOR JS
var marcador = {
marker: markerLeaflet, // MARCADOR LEAFLET
/* DADOS */
seguir_acao: ponto.seguir_acao,
seguir_class: ponto.seguir_class,
seguir_txt: ponto.seguir_txt,
seguir_title: ponto.seguir_title,
categoria: ponto.categoria,
situacao: ponto.situacao,
bairro: ponto.bairro,
logradouro_completo: ponto.logradouro_completo,
logradouro: ponto.logradouro,
dt_inicio: ponto.dt_inicio,
dt_inicio_string: ponto.dt_inicio_string,
dt_fim: ponto.dt_fim,
dt_fim_string: ponto.dt_fim_string,
titulo: ponto.titulo,
valor: ponto.valor,
valor_pago: ponto.valor_pago,
edital: ponto.edital,
icone: ponto.icone,
contrato: ponto.contrato,
nome_categoria: ponto.nome_categoria,
cor_marcador: ponto.cor_marcador,
cor_icone: ponto.cor_icone,
cor_fundo_circulo: ponto.cor_fundo_circulo,
fotos: ponto.fotos,
secretarias: ponto.secretarias,
videos: ponto.videos,
arquivos: ponto.arquivos,
acompanhamentos: ponto.acompanhamentos,
codigo: parseInt(ponto.codigo),
empresa: ponto.empresa,
fiscal: ponto.fiscal,
descricao: ponto.descricao,
fonte_recurso: ponto.fonte_recurso,
motivo_paralisacao: ponto.motivo_paralisacao
/* DADOS */
};
var latLong = [ponto.latitude, ponto.longitude];
if (!markersAgrupados.hasOwnProperty(latLong)){
markersAgrupados[latLong] = [];
}
markersAgrupados[latLong].push(marcador);
markers.push(marcador);
});
// }
for(const chave of Object.keys(markersAgrupados)){
if (markersAgrupados[chave].length === 1){
markersAgrupados[chave].pop().marker.addTo(leafLetMap);
} else {
var markerGroup = L.markerClusterGroup({
spiderLegPolylineOptions: {
color: "#000000"
// ,opacity: "1"
}
});
for(var indicePonto = 0; indicePonto < markersAgrupados[chave].length; indicePonto++){
var ponto = markersAgrupados[chave][indicePonto];
markerGroup.addLayer(ponto.marker)
}
leafLetMap.addLayer(markerGroup);
}
}
// GERA OS OPTIONS PARA O SELECT DO RELATORIO
if (renderizarRelatorio) {
geraOptionsRelatorio();
selectRelatorioFiltroAno.trigger("change");
}
// DEFINE ZOOM
leafLetMap.setZoom((zoomMin + 0.51));
markersAgrupados = {};
return leafLetMap;
}
/* FUNCAO CRIA O MAPA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO QUE EXIBE OS DADOS DA FILTRAGEM */
function exibirDados(pagina)
{
// PADROES
divResultados.hide();
divAreaListagem.hide();
spanQtdeResultado.html(0);
divVoltaPagina.hide();
divAvancaPagina.hide();
selectPagina.hide();
// REVOMENDO TODOS OS MARCADORES DO MAPA
markers.forEach(function(item){
item.marker.removeFrom(leafLetMap);
});
// SE HA DADOS PARA EXIBIR
if (dadosExibir)
{
// MOSTRANDO ALGUMAS DIVS
divAreaListagem.show();
divResultados.show();
var paginacao = paginar(dadosExibir, pagina);
dadosPaginacao = paginacao.dados;
// TRATANDO QTDE DE REGISTROS E QTDE DE PAGINAS
// APENAS PARA O FUNCIONAMENTO DOS BOTOES DE PAGINACAO
if (dadosExibir.length > 1 && paginacao.paginas > pagina)
{
if (pagina === 1)
{
divVoltaPagina.attr("data-pagina", 0);
divVoltaPagina.prop("disabled" , true)
divAvancaPagina.attr("data-pagina", 2);
divAvancaPagina.prop("disabled" , false);
} else {
divVoltaPagina.attr("data-pagina", (pagina - 1));
divVoltaPagina.prop("disabled" , false);
divAvancaPagina.attr("data-pagina", (pagina + 1));
divAvancaPagina.prop("disabled" , false);
}
} else {
divAvancaPagina.attr("data-pagina", 0);
divAvancaPagina.prop("disabled" , true);
divVoltaPagina.attr("data-pagina", (paginacao.paginas - 1));
divVoltaPagina.prop("disabled" , false);
}
selectPagina.find("option[value="+pagina+"]").prop("selected", true);
// QTDE DE RESULTADO
spanQtdeResultado.html(dadosExibir.length);
if (dadosExibir.length === 1)
{
spanObrasEncontradas.text("obra encontrada");
spanObrasEncontradas.show();
divListagemObras.text("Listando 1 de 1");
divVoltaPagina.hide();
divAvancaPagina.hide();
selectPagina.hide();
} else {
if (dadosExibir.length > 0)
{
spanObrasEncontradas.text("obras encontradas");
spanObrasEncontradas.show();
divListagemObras.text("");
divListagemObras.text("Listando "+dadosPaginacao.length+" de "+dadosExibir.length);
if (dadosExibir.length > qtdePorPagina)
{
divVoltaPagina.show();
divAvancaPagina.show();
selectPagina.show();
}
} else {
spanObrasEncontradas.text("Nenhuma obra encontrada");
// spanObrasEncontradas.hide();
divListagemObras.text("");
// divListagemObras.hide();
divVoltaPagina.hide();
divAvancaPagina.hide();
selectPagina.hide();
}
}
// REMOVENDO ELEMENTOS QUE NAO SAO MODELO
divAreaListagem.find(".obr_item_listagem.obr_item_listagem_modelo").remove();
// PERCORRENDO REGISTROS PAGINADOS
dadosPaginacao.forEach(function(item){
// CLONANDO MODELO
var cloneModelo = itemListaObraModelo.clone();
// DATA-ID
cloneModelo.attr("data-id", item.codigo);
/* PARA A CATEGORIA */
var divCategoria = cloneModelo.find(".obr_cont_categoria_obra");
var spansCategoria = divCategoria.find("span");
var spanCategoriaIcone = divCategoria.find("span").first();
var spanCategoriaNome = divCategoria.find("span").last();
// SETANDO ESTILOS
divCategoria.attr("style", "background:"+item.cor_marcador+" !important");
spanCategoriaIcone.addClass("fa-"+item.icone);
spanCategoriaIcone.attr("style", "background:"+item.cor_fundo_circulo+" !important; color:"+item.cor_icone+" !important; border-color:"+item.cor_marcador+" !important");
spanCategoriaNome.text(item.nome_categoria);
spanCategoriaNome.attr("style", "background:"+item.cor_marcador+" !important; "+"color:"+item.cor_icone+" !important;");
/* FIM PARA A CATEGORIA */
// TITULO DA OBRA
var divTituloObra = cloneModelo.find(".obr_titulo_obra");
divTituloObra.text(item.titulo);
/* PARA O CONTRATO */
var divContrato = cloneModelo.find(".obr_info_obra_contrato");
if (item.contrato) {
divContrato.find(".obr_descricao_info").html('<span>'+item.contrato.nome+'</span><a href="'+item.contrato.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Contrato ;<span class="swfa fas fa-search-plus"></span></span></a>');
} else {
divContrato.hide();
}
/* PARA O CONTRATO */
/* PARA O EDITAL */
var divEdital = cloneModelo.find(".obr_info_obra_edital");
if (item.edital) {
divEdital.find(".obr_descricao_info").html('<span>'+item.edital.nome+'</span><a href="'+item.edital.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Edital ;<span class="swfa fas fa-search-plus"></span></span></a>');
} else {
divEdital.hide();
}
/* PARA O EDITAL */
/* PARA A SITUACAO */
var divSituacao = cloneModelo.find(".obr_info_obra_situacao"); // obr_situacao obr_situacao_suspensa
var spanSituacao = divSituacao.find(".obr_situacao");
spanSituacao = $(spanSituacao);
spanSituacao.text(item.situacao);
if (item.situacao === "Suspensa") {
spanSituacao.addClass("obr_situacao_suspensa");
}
else if (item.situacao === "Concluído") {
spanSituacao.addClass("obr_situacao_concluida");
}
else if (item.situacao === "Em Andamento") {
spanSituacao.addClass("obr_situacao_em_andamento");
}
else if (item.situacao === "Em Projeto") {
spanSituacao.addClass("obr_situacao_em_projeto");
}
/* PARA A SITUACAO */
/* PARA AS DATAS */
var divDataInicio = cloneModelo.find(".obr_info_obra_dt_inicio");
if (item.dt_inicio > 0)
{
divDataInicio.find(".obr_descricao_info").text(item.dt_inicio_string);
} else {
divDataInicio.hide();
}
var divDataFim = cloneModelo.find(".obr_info_obra_dt_fim");
if (item.dt_fim > 0)
{
divDataFim.find(".obr_descricao_info").text(item.dt_fim_string);
} else {
divDataFim.hide();
}
/* PARA AS DATAS */
// PARA O VALOR DA OBRA
var divValor = cloneModelo.find(".obr_info_obra_valor");
if (item.valor && parseFloat(item.valor) > 0)
{
divValor.find(".obr_descricao_info").text("R$ "+item.valor);
} else {
divValor.hide();
}
/* PARA AS FOTOS */
var divVerFotos = cloneModelo.find(".obr_link_ver_fotos");
if (item.fotos.length <= 0)
{
divVerFotos.hide();
} else {
var fancyBoxSrc = [];
var fancyBoxOptions = {
buttons : [ 'slideShow', 'close' ],
loop : true,
arrows : true,
slideShow : { autoStart : false, speed : 3500 }
};
Object.values(item.fotos).forEach(function(foto){
var legenda = "";
if (foto.legenda && foto.legenda !== "null")
{
legenda = foto.legenda;
}
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divVerFotos.click(function(){
$.fancybox.open(fancyBoxSrc, fancyBoxOptions);
});
divVerFotos.show();
}
/* PARA AS FOTOS */
// PARA O BOTAO DE VER DETALHES DA OBRA
var divVerObra = cloneModelo.find(".obr_link_ver_obra");
divVerObra.attr("data-codigo", item.codigo);
// ADICIONANDO MODELO NA LISTAGEM E EXIBINDO PONTO NO MAPA
cloneModelo.insertBefore(divVoltaPagina);
cloneModelo.show();
item.marker.addTo(leafLetMap);
});
} else {
spanObrasEncontradas.text("Nenhuma obra encontrada");
spanObrasEncontradas.show();
divResultados.show();
divAreaListagem.show();
divListagemObras.show();
}
}
/* FUNCAO QUE EXIBE OS DADOS DA FILTRAGEM */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO DA PAGINACAO >> RETORNA O ARRAY JA QUEBRADO E A QUANTIDADE DE PAGINAS */
function paginar(dados, pagina) {
var indexComeco = (pagina - 1) * qtdePorPagina;
var indexTermina = indexComeco + qtdePorPagina;
var dadosSlice = dados.slice(indexComeco, indexTermina);
var paginas = Math.ceil(dados.length / qtdePorPagina);
if (selectPagina.children().length !== paginas)
{
selectPagina.empty();
for(var indexPagina = 1; indexPagina <= paginas; indexPagina++)
{
var optionPagina = document.createElement("option");
optionPagina = $(optionPagina);
optionPagina.text(indexPagina);
optionPagina.val(indexPagina);
selectPagina.append(optionPagina);
}
}
return {dados: dadosSlice, paginas: paginas};
}
/* FUNCAO DA PAGINACAO >> RETORNA O ARRAY JA QUEBRADO E A QUANTIDADE DE PAGINAS */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO QUE GERA OS OPTIONS DO SELECT DO RELATORIO */
function geraOptionsRelatorio()
{
var anosOption = [];
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
if (typeof item.dt_inicio_string === "string" && item.dt_inicio_string !== "null" && item.dt_inicio_string !== "31/12/1969")
{
var dataInicio = item.dt_inicio_string;
dataInicio = dataInicio.split("/");
var ano = dataInicio[(dataInicio.length -1)];
ano = parseInt(ano);
if (anosOption.indexOf(ano) === -1)
{
anosOption.push(ano);
}
}
}
if (anosOption.length > 0)
{
var anoAgora = new Date().getUTCFullYear();
var selecionou = false;
anoAgora = parseInt(anoAgora);
anosOption.sort();
anosOption.reverse();
for(var anoIndex = 0; anoIndex < anosOption.length; anoIndex++)
{
var ano = anosOption[anoIndex];
var optionAno = document.createElement("option");
optionAno = $(optionAno);
optionAno.val(ano);
optionAno.text(ano);
if (selecionou === false && ano === anoAgora)
{
optionAno.prop("selected", true);
selecionou = true;
}
selectRelatorioFiltroAno.append(optionAno);
}
if (selecionou === false)
{
selectRelatorioFiltroAno.find("option").first().prop("selected", true);
}
} else {
selectRelatorioFiltroAno.prop("disabled", true);
}
}
/* FUNCAO QUE GERA OS OPTIONS DO SELECT DO RELATORIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO LIMPA STRING */
function limpaStringJS(string) {
if (string === "" || typeof string === typeof undefined) {
return "";
}
string = string.replace(/[áàãâä]/gi,"a"); // REMOVE ACENTOS
string = string.replace(/[éèê]/gi,"e"); // REMOVE ACENTOS
string = string.replace(/[íìïî]/gi,"i"); // REMOVE ACENTOS
string = string.replace(/[óòöôõ]/gi,"o"); // REMOVE ACENTOS
string = string.replace(/[úùüû]/gi, "u"); // REMOVE ACENTOS
string = string.replace(/[ç]/gi, "c"); // REMOVE CEDILHA
string = string.replace(/[ñ]/gi, "n"); // REMOVE ACENTOS
string = string.replace(/[^a-zA-Z0-9]/g," "); // REMOVE TUDO QUE NAO E LETRA OU NUMERO
return string;
}
/* FUNCAO LIMPA STRING */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* EVENTOS */
$(document).ready(function() {
/* SUBMIT DO FORMULARIO DE FILTRAGEM */
formFiltrar.submit(function(formEvent){
// ESCONDE BOTAO DE DETALHES E NAO DEIXA O FORM COMPLETAR O SUBMIT
botaoMenuDetalhes.prop("disabled", true);
formEvent.preventDefault();
leafLetMap.setView(leafLetMapCenter, zoomMin);
leafLetMap.closePopup();
/* VARIAVEIS */
var inputsBairroChecked = $(".obr_filtro_bairro:checked");
var inputsLogradouroChecked = $(".obr_filtro_logradouro:checked");
var inputsCategoriaChecked = $(".obr_filtro_categoria:checked");
var inputsSituacaoChecked = $(".obr_filtro_situacao:checked");
/* VARIAVEIS */
// ARRAY PARA OS REGISTROS ENCONTRADOS
var encontrados = [];
// PERCORRENDO MARCADORES(REGISTROS)
markers.forEach(function(marker){
// REVOMENDO TODOS OS PONTOS DO MAPA
marker.marker.removeFrom(leafLetMap);
// ARRAY PARA AS FUNCOES DE FILTRAGEM
var retornoFiltragem = [];
/* BUSCA POR PALAVRA-CHAVE */
if (inputPalavraChave.val().trim()) {
var palavraChave = limpaStringJS(inputPalavraChave.val());
palavraChave = palavraChave.toLowerCase();
var tituloMarcador = limpaStringJS(marker.titulo);
tituloMarcador = tituloMarcador.toLowerCase();
retornoFiltragem.push((tituloMarcador.indexOf(palavraChave) > -1));
}
/* FIM PALAVRA-CHAVE */
/* BUSCA POR PERIODO */
// OBS DIVIDIMOS O RETORNO DO datepicker POR 1000 POIS ELE RETORNAR DIFERENTE
if (inputPeriodoInicial.val().trim() && inputPeriodoFinal.val().trim()) { // INICIAL E FINAL SELECIONADO
var dataInicial = (inputPeriodoInicial.datepicker("getDate").getTime() / 1000);
var dataFinal = (inputPeriodoFinal.datepicker("getDate").getTime() / 1000);
var dataMarcador = new Date(marker.dt_inicio).getTime();
if (dataInicial && dataFinal) {
retornoFiltragem.push((dataMarcador >= dataInicial && dataMarcador <= dataFinal));
}
} else {
if (inputPeriodoInicial.val().trim()) { // INICIAL
var dataMarcador = new Date(marker.dt_inicio).getTime();
var dataInicial = (inputPeriodoInicial.datepicker("getDate").getTime() / 1000);
retornoFiltragem.push((dataMarcador >= dataInicial));
}
else if (inputPeriodoFinal.val().trim()) { // FINAL
var dataMarcador = new Date(marker.dt_inicio).getTime();
var dataFinal = (inputPeriodoFinal.datepicker("getDate").getTime() / 1000);
retornoFiltragem.push((dataMarcador <= dataFinal));
}
}
/* PERIODO */
/* BUSCA POR BAIRROS */
if (inputsBairroChecked.length > 0) {
var arrayBairros = [];
inputsBairroChecked.each(function(indice, bairro){
arrayBairros.push($(bairro).data("bairro"));
});
retornoFiltragem.push((arrayBairros.indexOf(marker.bairro) >= 0));
}
/* BUSCA POR BAIRROS */
/* BUSCA POR LOGRADOUROS */
if (inputsLogradouroChecked.length > 0) {
var arrayLogradouros = [];
inputsLogradouroChecked.each(function(indice, logradouro){
arrayLogradouros.push($(logradouro).data("logradouro"));
});
retornoFiltragem.push((arrayLogradouros.indexOf(marker.logradouro) >= 0));
}
/* BUSCA POR LOGRADOUROS */
/* BUSCA POR CATEGORIAS */
if (inputsCategoriaChecked.length > 0) {
var arrayCategorias = [];
inputsCategoriaChecked.each(function(indice, categoria){
arrayCategorias.push($(categoria).data("categoria"));
});
retornoFiltragem.push((arrayCategorias.indexOf(marker.categoria) >= 0));
}
/* BUSCA POR CATEGORIAS */
/* BUSCA POR SITUACOES */
if (inputsSituacaoChecked.length > 0) {
var arraySituacoes = [];
inputsSituacaoChecked.each(function(indice, situacao){
arraySituacoes.push($(situacao).data("situacao"));
});
retornoFiltragem.push((arraySituacoes.indexOf(marker.situacao) >= 0));
}
/* BUSCA POR SITUACOES */
if (retornoFiltragem.length === 0)
{
encontrados.push(marker);
}
else
{
var mostrar = true;
for(var indexRetorno = 0; indexRetorno < retornoFiltragem.length; indexRetorno++)
{
var retorno = retornoFiltragem[indexRetorno];
if (retorno === false)
{
mostrar = false;
break;
}
}
if (mostrar)
{
encontrados.push(marker);
}
}
});
// SE ARRAY TEM REGISTROS A EXIBIR
if (encontrados.length > 0) {
dadosExibir = encontrados; // ATRIBUICAO A VARIAVEL GLOBAL dadosExibir
exibirDados(1); // FUNCAO QUE EXIBE OS REGISTROS
} else {
dadosExibir = false;
exibirDados(0);
}
});
/* SUBMIT DO FORMULARIO DE FILTRAGEM */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTAO AVANCA E VOLTA */
$([divAvancaPagina, divVoltaPagina]).each(function(){
$(this).click(function(event){
leafLetMap.setView(leafLetMapCenter, zoomMin);
botaoMenuDetalhes.prop("disabled", true);
var botao = $(this);
var pagina = botao.attr("data-pagina");
pagina = parseInt(pagina);
if (pagina > 0)
{
exibirDados(pagina);
}
});
});
/* BOTAO AVANCA E VOLTA */
/* SELECT CHANGE */
$(selectPagina).change(function(){
leafLetMap.setView(leafLetMapCenter, zoomMin);
botaoMenuDetalhes.prop("disabled", true);
var option = $(this).find(":selected");
var pagina = option.val();
pagina = parseInt(pagina);
if (pagina > 0)
{
exibirDados(pagina);
}
});
/* SELECT CHANGE */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTAO VER MAPA */
botaoVerMapa.click(function(){
// leafLetMap.setView(leafLetMapCenter, zoomMin);
// RENDERIZA MAPA
$(".obr_area_mapa").html('<div id="leaflet_map" class="obr_mapa"></div>');
leafLetMap = Mapa("leaflet_map", false);
leafLetMap.closePopup();
});
/* BOTAO VER MAPA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTOES DO MENU */
divMenuObras.find(".obr_btn_menu").click(function() {
var botao = $(this);
if (!botao.hasClass("ativo"))
{
// SETANDO CLASSE NOS BOTÕES
divMenuObras.find(".obr_btn_menu").removeClass("ativo");
botao.addClass("ativo");
// FORÇAR MENU "FILTRO" ATIVADO QUANDO VIER DO BOTÃO "VOLTAR AO FILTRO" DO RELATÓRIO
if(botao.attr('data-ativar-filtro') == "S") {
$(".obr_btn_filtro").addClass('ativo');
}
// ANALISANDO SE HÁ MENU A EXIBIR
var data_menu = botao.data("menu");
if (data_menu == "obr_content_mapa") {
// MOSTRANDO MENU SELECIONADO
divMenuObras.find(".obr_btn_menu").addClass("disable");
setTimeout(function() {
divMenuObras.find(".obr_content_menu").hide();
divMenuObras.find(".obr_btn_menu").removeClass("disable");
}, 400);
// ABRINDO CONTEÚDO DO MENU
divMenuObras.find(".obr_conteudo_menu").removeClass("show");
}
else {
var menu = $("#" + data_menu);
if (menu.length)
{
// MOSTRANDO MENU SELECIONADO
divMenuObras.find(".obr_content_menu").hide();
menu.show();
// ABRINDO CONTEÚDO DO MENU
divMenuObras.find(".obr_conteudo_menu").addClass("show");
}
}
}
});
/* BOTOES DO MENU */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTAO FECHAR MENU */
divMenuObras.find(".obg_btn_fechar").click(function() {
divMenuObras.find(".obr_btn_mapa").trigger("click");
});
/* BOTAO FECHAR MENU */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FECHAR FORMULARIO */
function fecharFiltro() {
filtrosFormulario.addClass("hide");
filtrosFormulario.find(".obr_cont_formulario").slideUp(400);
// FECHANDO CHECKLIST
filtrosFormulario.find(".obr_checklist").addClass("hide");
}
/* FECHAR FORMULARIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ABRIR FORMULARIO */
function abrirFiltro() {
filtrosFormulario.removeClass("hide");
filtrosFormulario.find(".obr_cont_formulario").slideDown(200);
}
/* ABRIR FORMULARIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ABRE E FECHA FILTROS */
filtrosFormulario.find("#obr_btn_toggle_filtro").click(function() {
if (filtrosFormulario.hasClass("hide")) { abrirFiltro(); }
else { fecharFiltro(); }
});
/* ABRE E FECHA FILTROS */
/* CHECKLIST */
var checklist = filtrosFormulario.find(".obr_checklist");
divMenuObras.on("click", ".obr_titulo_checklist, obr_btn_toggle_checklist", function() {
var this_checklist = $(this).closest(".obr_checklist");
if (this_checklist.hasClass("hide")) {
checklist.addClass("hide");
this_checklist.removeClass("hide");
}
else {
checklist.addClass("hide");
}
});
// CHECKAR TODOS
checklist.find(".obr_checklist_todos").change(function() {
checklist_todos = $(this);
this_checklist = checklist_todos.closest(".obr_checklist");
// RESETANDO CHECKLIST
if (checklist_todos.prop("checked") == true) {
checklist_todos.siblings("label").attr("title", "Desmarcar todos")
this_checklist.find("input[type='checkbox']").prop("checked", true);
}
else {
checklist_todos.siblings("label").attr("title", "Marcar todos")
this_checklist.find("input[type='checkbox']").prop("checked", false);
}
});
// ANALISANDO CHECAGEM INDIVIDUAL
checklist.find(".obr_area_lista_checklist input[type='checkbox']").change(function() {
var this_checkbox = $(this);
var this_checklist = this_checkbox.closest(".obr_checklist");
// ANALISANDO SE TODOS ESTÃO CHECADOS
if (this_checkbox.closest(".obr_area_lista_checklist").find("input[type='checkbox']:checked").length == 0) {
this_checklist.find(".obr_checklist_todos").prop("checked", false);
this_checklist.find(".obr_checklist_todos").siblings("label").attr("title", "Marcar todos");
}
else {
this_checklist.find(".obr_checklist_todos").prop("checked", true);
this_checklist.find(".obr_checklist_todos").siblings("label").attr("title", "Desmarcar todos");
}
});
// BUSCA NA CHECKLIST
checklist.find(".obr_busca_checklist").on("keypress keyup keydown change", function() {
var this_checklist = $(this)
var valor = this_checklist.val();
if (valor != "") {
this_checklist.closest(".obr_checklist").find(".obr_item_checklist").hide();
this_checklist.closest(".obr_checklist").find(".obr_item_checklist:instarcontains("+valor+")").show();
}
else {
this_checklist.closest(".obr_checklist").find(".obr_item_checklist").show();
}
});
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* SUBMISSÃO DO FORMULÁRIO DE FILTRO */
divMenuObras.find("#obr_form_filtro").submit(function(e) {
e.preventDefault();
var filtrosFormulario = $(this)
// EXIBINDO BOTÃO DE RESET
filtrosFormulario.find(".obr_btn_limpar").fadeIn(200);
setTimeout(function() {
// RECOLHENDO FILTRO
fecharFiltro();
}, 300);
});
/* SUBMISSÃO DO FORMULÁRIO DE FILTRO */
/* BOTAO RESET DO FORMULARIO */
divMenuObras.find(".obr_btn_limpar").click(function() {
botaoMenuDetalhes.prop("disabled", true);
// RESETANDO CAMPOS
divMenuObras.find(".obr_checklist").addClass("hide");
setTimeout(function() {
divMenuObras.find(".obr_busca_checklist").val("").change();
}, 300);
// OCULTANDO BOTÃO
$(this).fadeOut(200);
});
/* BOTAO RESET DO FORMULARIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* VIDEOS DA OBRA */
var modal_video = divMenuObras.find(".obr_player_video_modal");
$body.on("click", ".obr_video_obra", function() {
var video = $(this);
// CAPTURANDO INFO DO VÍDEO
var elemento_video = video.find("input").val();
var data_video = video.find(".obr_data_video").text();
var nome_video = video.find(".obr_nome_video").text();
// SETANDO INFO NO IFRAME
modal_video.find(".obr_data_video").text(data_video)
modal_video.find(".obr_nome_video").text(nome_video)
setTimeout(function() {
modal_video.find(".obr_video").html(elemento_video)
}, 1000);
// ABRIR VÍDEO
modal_video.addClass("show");
$window.on("keyup click", fecharModalVideo);
});
// FECHAR VÍDEO
var fecharModalVideo = function(e) {
if ((e.keyCode === 27) || (e.target === modal_video.get(0) || e.target.id === "obr_btn_fechar_modal")) {
modal_video.removeClass("show");
setTimeout(function() {
modal_video.find(".obr_video").html("")
}, 400);
$window.off("keyup click", fecharModalVideo);
}
}
/* VIDEOS DA OBRA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* SELECT DO RELATORIO */
selectRelatorioFiltroAno.change(function(mouseEvent){
divsRelatorioInfo.hide();
var optionSelecionada = $(this).find(":selected");
var anoSelecionado = parseInt(optionSelecionada.val());
var totalObrasExecutadas = 0;
var totalObrasConcluidas = 0;
var totalObrasEmAndamento = 0;
var totalObrasSuspensas = 0;
var totalObrasEmProjeto = 0;
var totalAcompanhamentos = 0;
var totalContratos = 0;
var totalValor = 0;
if (anoSelecionado > 0)
{
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
if (item.dt_inicio > 0)
{
var dataInicio = item.dt_inicio_string;
dataInicio = dataInicio.split("/");
var ano = dataInicio[(dataInicio.length -1)];
ano = parseInt(ano);
if (ano === anoSelecionado)
{
totalObrasExecutadas++;
if (item.situacao === "Concluído")
{
totalObrasConcluidas++;
}
else if (item.situacao === "Em Andamento")
{
totalObrasEmAndamento++;
}
else if (item.situacao === "Suspensa")
{
totalObrasSuspensas++;
}
else if (item.situacao === "Em Projeto")
{
totalObrasEmProjeto++;
}
if (item.contrato && item.contrato.nome)
{
totalContratos++;
}
if (item.acompanhamentos && item.acompanhamentos.length > 0)
{
totalAcompanhamentos = totalAcompanhamentos + item.acompanhamentos.length;
}
var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
if (valorObra > 0.0)
{
totalValor = totalValor + valorObra;
}
}
}
}
} else {
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
totalObrasExecutadas++;
if (item.situacao === "Concluído")
{
totalObrasConcluidas++;
}
else if (item.situacao === "Em Andamento")
{
totalObrasEmAndamento++;
}
else if (item.situacao === "Suspensa")
{
totalObrasSuspensas++;
}
else if (item.situacao === "Em Projeto")
{
totalObrasEmProjeto++;
}
if (item.contrato && item.contrato.nome)
{
totalContratos++;
}
if (item.acompanhamentos && item.acompanhamentos.length > 0)
{
totalAcompanhamentos = totalAcompanhamentos + item.acompanhamentos.length;
}
var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
if (valorObra > 0.0)
{
totalValor = totalValor + valorObra;
}
}
}
divRelatorioTotalExecutadas.text("Obras executadas: "+totalObrasExecutadas);
divRelatorioTotalConcluidas.text(totalObrasConcluidas);
divRelatorioTotalEmAndamento.text(totalObrasEmAndamento);
divRelatorioTotalSuspensas.text(totalObrasSuspensas);
divRelatorioTotalEmProjeto.text(totalObrasEmProjeto);
divRelatorioTotalAcompanhamentos.text("Acompanhamentos: "+totalAcompanhamentos);
divRelatorioTotalContratos.text("Contratos: "+totalContratos);
divRelatorioTotalValor.text("R$ "+totalValor.toLocaleString("pt-BR", { minimumFractionDigits: 2 }));
divsRelatorioInfo.show();
});
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* VISUALIZAR OBRA */
function visualizarObra(codigoObra) {
var fancyBoxOptions = {
buttons : [ 'slideShow', 'close' ],
loop : true,
arrows : true,
slideShow : { autoStart : false, speed : 3500 }
};
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
item.marker.removeFrom(leafLetMap);
item.marker.closePopup();
if (item.codigo === codigoObra)
{
botaoMenuDetalhes.prop("disabled", false);
item.marker.addTo(leafLetMap);
item.marker.openPopup();
leafLetMap.setView(item.marker.getLatLng(), zoomMax);
divCategoriaObra.css("background", item.cor_marcador);
divCategoriaObra.css("color", item.cor_icone);
divCategoriaObra.find(".obr_categoria_icone").removeClass().addClass("obr_categoria_icone");
divCategoriaObra.find(".obr_categoria_icone").addClass("swfa fa fa-"+item.icone);
divCategoriaObra.find(".obr_categoria_icone").css("background", item.cor_fundo_circulo);
divCategoriaObra.find(".obr_categoria_nome").text(item.nome_categoria);
divCategoriaObra.parent().find(".obr_nome_obra").text(item.titulo);
if (seguirObra)
{
btnSeguirObra.removeClass();
btnSeguirObra.addClass("sw_btn_seguir_ferramenta sw_lato_bold "+item.seguir_class);
btnSeguirObra.attr("title", item.seguir_title);
btnSeguirObra.attr("data-id", item.codigo);
btnSeguirObra.attr("data-ferramenta", "obras");
btnSeguirObra.attr("data-seguir-acao", item.seguir_acao);
$(btnSeguirObra.find("span")[1]).text(item.seguir_txt);
} else {
btnSeguirObra.hide();
}
btnAvaliarObra.attr("data-id", item.codigo);
/* BOTAO SEGUIR */
/* INFORMACOES GERIAS */
var logradouro_completo_exibir = "";
if(item.logradouro_completo != "" && item.logradouro_completo != null && item.logradouro_completo != "0") {
logradouro_completo_exibir += item.logradouro_completo;
}
if(item.bairro != "" && item.bairro != null && item.bairro != "0" && item.bairro != "nao_informado") {
logradouro_completo_exibir += item.bairro;
}
if(logradouro_completo_exibir) {
divLocalizacaoObra.find(".sw_descricao_detalhe").text(logradouro_completo_exibir);
divLocalizacaoObra.show();
} else {
divLocalizacaoObra.hide();
}
if (item.edital) {
divEditalObra.find(".sw_descricao_detalhe").html('<div>'+item.edital.nome+'</div><a href="'+item.edital.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Edital ;<span class="swfa fas fa-search-plus"></span></span></a>');
divEditalObra.show();
} else {
divEditalObra.hide();
}
if (item.contrato) {
divContratoObra.find(".sw_descricao_detalhe").html('<div>'+item.contrato.nome+'</div><a href="'+item.contrato.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Contrato ;<span class="swfa fas fa-search-plus"></span></span></a>');
divContratoObra.show();
} else {
divContratoObra.hide();
}
if (item.empresa && item.empresa !== "null") {
divEmpresaObra.find(".sw_descricao_detalhe").text(item.empresa);
divEmpresaObra.show();
} else {
divEmpresaObra.hide();
}
if (item.fiscal && item.fiscal !== "null") {
divFiscalObra.find(".sw_descricao_detalhe").text(item.fiscal);
divFiscalObra.show();
} else {
divFiscalObra.hide();
}
if (item.descricao && item.descricao !== "null") {
divDescricao.find(".sw_descricao_detalhe").text(item.descricao);
divDescricao.show();
} else {
divDescricao.hide();
}
if (item.valor && parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) > 0.0) {
divValorObra.find("span").text("R$ "+item.valor);
divValorObra.show();
} else {
divValorObra.hide();
}
var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
var valorPagoObra = item.valor_pago ? parseFloat(item.valor_pago.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
if (valorPagoObra > 0.0) {
spanValorPago.text("R$ "+item.valor_pago);
if (valorPagoObra > valorObra){
spanValorPago.addClass("obr_valor_superior");
}
else if (valorPagoObra < valorObra){
spanValorPago.addClass("obr_valor_inferior");
} else {
spanValorPago.addClass("obr_valor_obra");
}
divValorPagoObra.show();
} else {
divValorPagoObra.hide();
}
/* INFORMACOES GERIAS */
/* EXECUCAO DA OBRA */
spanSituacao.text(item.situacao);
if (item.situacao === "Em Andamento") {
spanSituacao.addClass("obr_situacao_em_andamento");
}
else if (item.situacao === "Suspensa") {
spanSituacao.addClass("obr_situacao_suspensa");
}
else if (item.situacao === "Concluída") {
spanSituacao.addClass("obr_situacao_concluida");
}
else if (item.situacao === "Em Projeto") {
spanSituacao.addClass("obr_situacao_em_projeto");
}
/* MOTIVO DA SUSPENSÃO */
if (item.motivo_paralisacao && item.motivo_paralisacao !== "null") {
divMotivoParalisacao.find(".sw_descricao_detalhe").text(item.motivo_paralisacao);
divMotivoParalisacao.show();
} else {
divMotivoParalisacao.hide();
}
/* FONTES DE RECURSO */
if (item.fonte_recurso && item.fonte_recurso !== "null") {
var fontes_recursos = item.fonte_recurso.substr(0, item.fonte_recurso.length - 2);
divFonteRecurso.find(".sw_descricao_detalhe").text(fontes_recursos);
divFonteRecurso.show();
} else {
divFonteRecurso.hide();
}
if (item.dt_inicio)
{
divDataInicio.find(".sw_descricao_detalhe").text(item.dt_inicio_string);
} else {
divDataInicio.hide();
}
if (item.dt_fim)
{
divDataFim.find(".sw_descricao_detalhe").text(item.dt_fim_string);
} else {
divDataFim.hide();
}
if (item.dt_inicio && item.dt_fim)
{
var dataItemFim = item.dt_fim;
var dataAgora = Date.now() / 1000;
if (dataAgora > dataItemFim && ((dataAgora - dataItemFim) >= (24 * 60 * 60)))
{
var diferenca = dataAgora - dataItemFim;
var diferencaDias = diferenca / (24 * 60 * 60);
diferencaDias = ~~diferencaDias;
divObraAtraso.find(".sw_descricao_detalhe").html('Esta obra está <strong>'+diferencaDias+' dias</strong> atrasada.');
divObraAtraso.find(".obr_execucao_atraso").show();
divDataFim.find(".sw_descricao_detalhe").append()
divObraAtraso.show();
} else {
divObraAtraso.hide();
}
} else {
divObraAtraso.hide();
divObraAtraso.find(".obr_execucao_atraso").hide();
}
/* EXECUCAO DA OBRA */
/* ACOMPANHAMENTOS */
divAcompanhamentosObras.find(".sw_linha_lista_detalhes.obr_acompanhamento_info.obr_acompanhamento_modelo").remove();
if (item.acompanhamentos.length > 0)
{
var porcentagemConcluido = 0
item.acompanhamentos.forEach(function(acompanhamento){
var divAcompanhamentoModelo = acompanhamentoModelo.clone();
var spanPorcentagem = divAcompanhamentoModelo.find("div.obr_porcentagem_acompanhamento span");
spanPorcentagem.text(acompanhamento.porcentagem+"%");
spanPorcentagem.css("min-width", acompanhamento.porcentagem+"%");
var spanDtConclusao = divAcompanhamentoModelo.find(".obr_data_acompanhamento");
var spanSituacao = divAcompanhamentoModelo.find(".obr_situacao_acompanhamento");
spanSituacao.text(acompanhamento.situacao);
var spanDescricao = divAcompanhamentoModelo.find(".obr_descricao_acompanhamento");
spanDescricao.text(acompanhamento.descricao);
if (acompanhamento.situacao === "Concluído")
{
spanSituacao.addClass("obr_situacao_concluida");
spanSituacao.show();
spanDtConclusao.text(acompanhamento.dt_conclusao);
spanDtConclusao.show();
porcentagemConcluido = porcentagemConcluido + parseInt(acompanhamento.porcentagem);
} else {
spanDtConclusao.hide();
}
var divVerFotosAcompanhamento = divAcompanhamentoModelo.find(".obr_link_obra.obr_link_ver_fotos");
if (acompanhamento.fotos && Object.values(acompanhamento.fotos).length > 0)
{
var fancyBoxSrc = [];
Object.values(acompanhamento.fotos).forEach(function(foto){
var legenda = "";
if (foto.legenda && foto.legenda !== "null")
{
legenda = foto.legenda;
}
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divVerFotosAcompanhamento.click(function(mouseEvent){
$.fancybox.open(fancyBoxSrc, fancyBoxOptions, 0);
});
divVerFotosAcompanhamento.show();
} else {
divVerFotosAcompanhamento.hide();
}
divAcompanhamentoModelo.insertBefore(divTotalAcompanhamentos)
divAcompanhamentoModelo.show();
});
if (porcentagemConcluido > 0)
{
spanTotalPorcentagem.css("min-width", porcentagemConcluido+"%");
spanTotalPorcentagem.text(porcentagemConcluido+"%");
divTotalAcompanhamentos.show();
} else {
divTotalAcompanhamentos.hide();
}
divAcompanhamentosObras.show();
} else {
divAcompanhamentosObras.hide();
}
/* ACOMPANHAMENTOS */
/* FOTOS */
if (Object.values(item.fotos).length > 0)
{
divFotosObra.find("div.vinc_cont_img_galeria_fotos.obr_foto_modelo").remove();
var dataIndex = -1;
var fancyBoxSrc = [];
Object.values(item.fotos).forEach(function(foto){
var divFotoModelo = fotoModelo.clone();
dataIndex = dataIndex + 1;
var legenda = "";
var imgElemento = divFotoModelo.find("img");
imgElemento.attr("src", foto.arquivo);
imgElemento.attr("data-index", dataIndex);
if (foto.legenda && foto.legenda !== "null")
{
imgElemento.attr("alt", foto.legenda);
legenda = foto.legenda;
} else {
imgElemento.attr("alt", "");
}
// divFotoModelo.attr("data-fancybox", "gallery"+item.codigo);
divContFotos.append(divFotoModelo);
divFotoModelo.show();
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divContFotos.find("div.vinc_cont_img_galeria_fotos").click(function(mouseEvent){
var target = mouseEvent.target;
target = $(target);
var indexClick = 0;
if (target.attr("data-index") >=0)
{
indexClick = target.attr("data-index");
}
$.fancybox.open(fancyBoxSrc, fancyBoxOptions, indexClick);
});
var fotosQtde = Object.values(item.fotos).length;
var classeGaleriaFotos = "";
if(fotosQtde < 6) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_l"+fotosQtde; }
else if(fotosQtde % 6 == 5) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr5"; }
else if(fotosQtde % 6 == 4) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr4"; }
else if(fotosQtde % 6 == 3) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr3"; }
else if(fotosQtde % 6 == 2) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr2"; }
else if(fotosQtde % 6 == 1) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr1"; }
divFotosObra.find(".vinc_cont_galeria_fotos_vinculada").addClass(classeGaleriaFotos);
divFotosObra.show();
} else {
divFotosObra.hide();
}
/* FOTOS */
/* VIDEOS */
divVideosObra.find("div.obr_video_obra.obr_video_modelo").remove();
if (Object.values(item.videos).length > 0)
{
Object.values(item.videos).forEach(function(video){
if (video.video && video.video !== "null")
{
var divVideoModelo = videoModelo.clone();
var divImg = divVideoModelo.find(".obr_img_video");
if (video.imagem && video.imagem !== "null")
{
var imgVideo = divImg.find("img");
imgVideo.attr("src", video.imagem);
imgVideo.attr("alt", video.nome);
divImg.show();
} else {
divImg.hide();
}
var divData = divVideoModelo.find(".obr_data_video");
if (video.data && video.data !== "null")
{
divData.text(video.data);
divData.show();
} else {
divData.hide();
}
var divNome = divVideoModelo.find(".obr_nome_video");
if (video.nome && video.nome !== "null")
{
divNome.text(video.nome);
}
var inputHidden = divVideoModelo.find("input[type='hidden']");
inputHidden.val(video.video);
divVideoModelo.show();
divVideosObra.append(divVideoModelo);
}
});
divVideosObra.parent().show();
} else {
divVideosObra.parent().hide();
}
/* VIDEOS */
/* ARQUIVOS */
divArquivosObra.find("a.obr_arquivo_modelo").remove();
if (Object.values(item.arquivos).length > 0)
{
Object.values(item.arquivos).forEach(function(arquivo){
var aModelo = arquivoModelo.clone();
aModelo.attr("href", arquivo.arquivo);
var imgExtensao = aModelo.find("img");
imgExtensao.attr("src", arquivo.img_extensao);
imgExtensao.attr("alt", arquivo.extensao);
var divDataArquivo = aModelo.find(".sw_data_arquivo_download");
if (arquivo.data && arquivo.data !== "null")
{
divDataArquivo.text(arquivo.data);
divDataArquivo.show();
} else {
divDataArquivo.hide();
}
var divNomeArquivo = aModelo.find(".sw_nome_arquivo_download");
if (arquivo.nome && arquivo.nome !== "null")
{
divNomeArquivo.text(arquivo.nome);
divNomeArquivo.show();
} else {
divNomeArquivo.hide();
}
aModelo.show();
divArquivosObra.append(aModelo);
});
divArquivosObra.show();
} else {
divArquivosObra.hide();
}
/* ARQUIVOS */
/* SECRETARIAS */
divSecretariasObra.find("a.obr_secretaria_modelo").remove();
if (Object.values(item.secretarias).length > 0)
{
Object.values(item.secretarias).forEach(function(secretaria){
var aSecretariaModelo = secretariaModelo.clone();
aSecretariaModelo.attr("href", secretaria.link)
aSecretariaModelo.attr("target", secretaria.abertura);
var imgModelo = aSecretariaModelo.find("img");
imgModelo.attr("src", secretaria.imagem);
imgModelo.attr("alt", secretaria.nome);
var divNomeSecretaria = aSecretariaModelo.find(".obr_nome_secretaria");
divNomeSecretaria.text(secretaria.nome);
aSecretariaModelo.show();
divSecretariasObra.append(aSecretariaModelo);
});
divSecretariasObra.show();
} else {
divSecretariasObra.hide();
}
/* SECRETARIAS */
/* VALORES E PRAZOS */
if (item.valor || item.valor_pago)
{
if (valorObra > 0.0 && valorPagoObra > 0.0)
{
spanValorContrato.text("R$ "+item.valor);
spanValorPagoFinal.text("R$ "+item.valor_pago);
if (valorObra >= valorPagoObra)
{
spanValorContrato.css("min-width", "100%");
spanValorPagoFinal.parent().addClass("obr_estatistica_positiva");
spanValorPagoFinal.css("min-width", ((valorPagoObra * 100) / valorObra)+"%");
}
else if (valorObra < valorPagoObra)
{
spanValorPagoFinal.css("min-width", "100%");
spanValorPagoFinal.parent().addClass("obr_estatistica_negativa");
spanValorContrato.css("min-width", ((valorObra * 100) / valorPagoObra)+"%");
}
divValorContrato.show();
divValorUtilizado.show();
} else {
if (valorObra > 0.0)
{
spanValorContrato.text("R$ "+item.valor);
spanValorContrato.css("min-width", "100%");
divValorContrato.show();
divValorUtilizado.hide();
}
else if (valorPagoObra > 0.0)
{
spanValorPagoFinal.text("R$ "+item.valor_pago);
spanValorPagoFinal.css("min-width", "100%");
divValorUtilizado.show();
divValorContrato.hide();
}
else {
divValorContrato.parent().hide();
}
}
divValorContrato.parent().show();
} else {
divValorContrato.parent().hide();
}
if (item.dt_inicio && item.dt_fim)
{
var dataInicio = item.dt_inicio;
var dataFim = item.dt_fim;
var dias = (dataFim - dataInicio) / (24 * 60 * 60);
divPrazoRealizacao.find("span").text(dias+" dias");
divPrazoRealizacao.show();
} else {
divPrazoRealizacao.parent().hide();
}
/* VALORES E PRAZOS */
divAreaDetalhes.show();
$(".obr_btn_detalhes").trigger("click");
}
}
}
$body.on("click", ".obr_link_ver_obra", function(){
botaoMenuDetalhes.prop("disabled", false);
var codigoObra = $(this).data("codigo");
codigoObra = parseInt(codigoObra);
if (codigoObra > 0)
{
visualizarObra(codigoObra);
}
});
/* VISUALIZAR OBRA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* SEGUIR OBRA */
btnSeguirObra.click(function(mouseEvent){
if (seguirObra)
{
if (btnSeguirObra.hasClass("itn_btn_login"))
{
sw_popup("#itn_login", "S");
/* RECUPERAÇÃO DE SENHA */
$("#link_senha").click(function() { sw_abrir_janela("/portal/internautas/recuperar-senha", 450, 600) });
} else {
// TRATANDO TEXTO/AÇÃO DO MODAL
var seguirAcao = btnSeguirObra.attr("data-seguir-acao");
var textoModal = "";
if(seguirAcao == "seguir")
{
textoModal = "Ao seguir este item você receberá por e-mail todas suas atualizações em tempo real."
}
else if(seguirAcao == "deixar_seguir")
{
textoModal = "Ao deixar de seguir este item você deixará de receber por e-mail todas suas atualizações em tempo real.";
}
swal({
title: "Atenção!",
text: textoModal,
icon: "warning",
buttons: ["Cancelar", "OK"],
})
.then(function(acao) {
if(acao === true)
{
var codigo = btnSeguirObra.attr("data-id");
codigo = parseInt(codigo);
var ferramenta = btnSeguirObra.attr("data-ferramenta");
// ANALISANDO SE ESTÁ LOGADO
if (!btnSeguirObra.hasClass("itn_btn_login"))
{
//ANALISANDO AÇÃO
var acao;
if (!btnSeguirObra.hasClass("sw_seguindo"))
{
acao = "cadastrar";
} else {
acao = "remover";
}
$.ajax({
url: "/portal/notificacoes/seguir/ferramentas/",
type: "POST",
data: "acao="+acao+"&ferramenta="+ferramenta+"&codigo="+codigo,
async: false,
beforeSend: function(){
sw_carregando_fs("show");
},
complete: function() {
sw_carregando_fs("hide");
},
success: function(data) {
data = JSON.parse(data);
if(data.erro != "" && data.erro != undefined)
{
swal({
text: data.erro,
icon: "error",
});
}
else
{
// ANALISANDO AÇÃO
if (acao == "cadastrar")
{
btnSeguirObra.addClass("sw_seguindo").attr("title", "Clique para deixar de seguir ").find(".sw_txt_btn").text("Seguindo");
btnSeguirObra.attr("data-seguir-acao","deixar_seguir");
} else {
btnSeguirObra.removeClass("sw_seguindo").attr("title", "Clique para seguir").find(".sw_txt_btn").text("Seguir");
btnSeguirObra.attr("data-seguir-acao","seguir");
}
for(var indexMarcador = 0; indexMarcador < markers.length; indexMarcador++)
{
var item = markers[indexMarcador];
if (item.codigo === codigo)
{
if (acao === "cadastrar")
{
item.seguir_acao = "deixar_seguir";
item.seguir_class = "sw_seguindo btn_seguir_ferramenta";
item.seguir_txt = "Seguindo";
item.seguir_title = "Clique para deixar de seguir.";
} else {
item.seguir_acao = "seguir";
item.seguir_class = "btn_seguir_ferramenta disabled";
item.seguir_txt = "Seguir";
item.seguir_title = "Clique para seguir.";
}
break;
}
}
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
}
}
});
}
}
});
/* SEGUIR OBRA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ACESSIBILIDADE */
//BOTÃO DE CONTRASTE DE COR
$("#obra_contraste").click(function () {
if($("body").hasClass("contraste"))
{
$("body").removeClass("contraste");
$("body").css("background","#FFFFFF");
$("#logo_branca").hide();
$("#logo_mobile").show();
}
else
{
$("body").addClass("contraste");
$("#logo_branca").show();
$("#logo_mobile").hide();
}
});
/* ACESSIBILIDADE */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* CRIANDO MAPA */
leafLetMap = Mapa("leaflet_map");
/* CRIANDO MAPA */
var abrirRelatorio = false;
var codigoObra = 0;
if (abrirRelatorio)
{
var anoSelecionado = 0;
if (anoSelecionado > 0)
{
selectRelatorioFiltroAno.find("option[value='"+anoSelecionado+"']").prop("selected", true);
}
divMenuObras.find("button[data-menu='obr_content_relatorio']").trigger("click");
}
else
{
if (codigoObra > 0)
{
visualizarObra(codigoObra);
}
}
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
// ABRIR MODAL/ALERT CONFIRMAÇÃO
$(".btn_modal_boletim").click(function() {
swal({
title: "Atenção!",
text: "Ao confirmar você será redirecionado para sua área de preferências para que possa gerenciador o Boletim Informativo.",
icon: "warning",
buttons: ["Cancelar", "OK"],
})
.then(function(acao) {
if(acao === true)
{
window.open("/portal/internautas/dados/preferencias/#boletim_informativo", "_blank");
}
});
});
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
});
</script>]]>
|
2654
| <![CDATA[<script>
/* ============================================================================================
FUNÇÃO PARA RETORNO DA VOTAÇÃO DA ENQUETE
============================================================================================ */
function retorna_enquete(data){
if(data != '')
{
$('#votar').hide();
$("#e_cont_enquete").html(data);
}
}
/* ============================================================================================
POPUP
============================================================================================ */
// FUNÇÃO ABRIR PÁGINA
function sw_abrir_janela(pagina, altura, largura) {
var a = (screen.height/2)-(altura/2);
var l = (screen.width/2)-(largura/2);
window.open(pagina,'senha','width='+largura+',height='+altura+',top='+a+',left='+l+',scrollbars=1');
}
// ABRIR POPUP
function sw_abrir_popup(elemento) {
elemento.fadeIn(200);
elemento.find(".sw_popup").animate({"top": "+20px"}, "fast");
$("body").css("overflow", "hidden");
}
// FECHAR POPUP
function sw_fechar_popup(elemento) {
elemento.fadeOut(200);
elemento.find(".sw_popup").animate({"top": "-20px"}, "fast", function() { $(".sw_popup_modal:visible").last().find("input, button").first().focus(); });
setTimeout(function () {
if (!$(".sw_popup_modal:visible").length) {
$("body").css("overflow", "auto");
}
}, 400);
}
// SW POPUP ( ".ELEMENTO / #ELEMENTO" , "SE MODAL PODE SER FECHADO OU NÃO")
function sw_popup(elemento, fechar) {
if (!fechar) { fechar = "S"; }
var id_elemento = elemento.substr(1); // REMOVE O PRIMEIRO CARACTERE (# OU .)
var elemento = $(elemento);
// ABRIR POPUP
sw_abrir_popup(elemento);
// FECHAR POPUP
elemento.find(".sw_btn_fechar_popup").click(function() { sw_fechar_popup(elemento); });
// ANALISANDO SE MODAL PODE SER FECHADO AO CLICAR FORA DA JANELA E AO TECLAR ESC
if (fechar == "S") {
elemento.addClass("keyupmodal")
// FECHAR AO CLICAR NA TELA ESCURA
elemento.mousedown(function(e) {
if (e.target.id == id_elemento) {
sw_fechar_popup(elemento);
}
});
//elemento.click(function() { console.log("fechou!"); sw_fechar_popup(elemento); });
//elemento.find(".sw_popup").on("click", function() { event.stopPropagation(); });
// FECHAR AO CLICAR ESC
$(document).on("keyup", function(e) {
if (e.keyCode === 27) {
var modal_fehcar, zindex_fechar = 0;
$(".sw_popup_modal.keyupmodal:visible").each(function() {
var modal = $(this);
var zindex_modal = parseInt(modal.css("z-index"));
if (zindex_modal > zindex_fechar) {
zindex_fechar = zindex_modal;
modal_fechar = modal;
}
});
// FECHAR MODAL
sw_fechar_popup(modal_fechar);
}
});
}
}
/* ============================================================================================
ACESSIBILIDADE
============================================================================================ */
// SW ACESSIBILIDADE
if (typeof sw_acessibilidade !== "function") {
function sw_acessibilidade(param, callback) {
// ANALISANDO PARÂMETROS
if (typeof param === "undefined" || !param) { param = {} }
if (typeof param.media === "undefined") { param.media = "desktop" }
// ANALISANDO MEDIA
if (
(param.media === "todas" || param.media === "all") ||
(param.media === "desktop" && window.innerWidth > 1000) ||
(param.media === "mobile" && window.innerWidth <= 1000) ||
(window.innerWidth <= param.media)
) {
// ANALISANDO PARÂMETROS
if (typeof param.layout === "undefined") { param.layout = "a1" }
if (typeof param.caminho === "undefined") { param.caminho = "body" }
// FUNÇÕES
if (param.fonte !== false) { param.fonte = true; }
if (param.contraste !== false) { param.contraste = true; }
if (param.mapa !== false) { param.mapa = true; }
if (param.vlibras !== false) { param.vlibras = true; }
if (param.pagina !== false) { param.pagina = true; }
if (param.transicoes !== false) { param.transicoes = true; }
if (param.reset !== false) { param.reset = true; }
if (param.irconteudo !== false) { param.irconteudo = true; }
if (param.irmenu !== false) { param.irmenu = true; }
if (param.irbusca !== false) { param.irbusca = true; }
if (param.irrodape !== false) { param.irrodape = true; }
// CRIANDO ELEMENTOS
var sw_acessibilidade = $("#sw_acessibilidade");
if (!sw_acessibilidade.length) {
sw_acessibilidade = $('<div id="sw_acessibilidade" />');
$(param.caminho).prepend(sw_acessibilidade);
}
sw_acessibilidade.addClass("sw_area_acessibilidade " + param.layout);
// BOTÃO MENU ACESSIBILIDADE
if (!sw_acessibilidade.find("#sw_btn_menu_acessibilidade").length) {
var btn_menu_acessibilidade = $('<div id="sw_btn_menu_acessibilidade" class="sw_btn_menu_acessibilidade" />')
// INSERINDO ÍCONE DE ACESSIBILIDADE E FECHAR
btn_menu_acessibilidade.append('<div class="sw_icone_acessibilidade" />')
.append('<div class="sw_icone_fechar" />');
// INSERINDO BOTÃO MENU
sw_acessibilidade.append(btn_menu_acessibilidade);
}
// CLICK DO BOTÃO
sw_acessibilidade.find("#sw_btn_menu_acessibilidade").on({
"click": function() {
sw_acessibilidade.toggleClass("show");
}
});
sw_acessibilidade.on({
"mouseenter": function() {
if (window.innerWidth >= 1000) {
sw_acessibilidade.addClass("show");
}
},
"mouseleave": function() {
if (window.innerWidth >= 1000) {
sw_acessibilidade.removeClass("show");
}
}
});
// CONT ACESSIBILIDADE
if (!sw_acessibilidade.find(".sw_cont_acessibilidade").length) {
sw_acessibilidade.append('<div class="sw_cont_acessibilidade" />');
}
// TÍTULO ACESSIBILIDADE
if (!sw_acessibilidade.find(".sw_titulo_acessibilidade").length) {
sw_acessibilidade.find(".sw_cont_acessibilidade").append('<div class="sw_titulo_acessibilidade"><span>Acessibilidade</span></div>');
}
// ÁREA BOTÕES
if (!sw_acessibilidade.find(".sw_area_botoes_acessibilidade").length) {
sw_acessibilidade.find(".sw_cont_acessibilidade").append('<div class="sw_area_botoes_acessibilidade" />');
}
// FUNÇÃO INSERE BOTÃO DE ACESSIBILIDADE
function sw_insere_btn_acessibilidade(param_btn) {
if (param_btn.seletor) {
// ANALISANDO SE O ELEMENTO NÃO EXISTE PARA ENTÃO CRIAR
if (!sw_acessibilidade.find(param_btn.seletor).length) {
var item = $(
'<a>'+
'<div></div>'+
'</a>'
).attr(
param_btn.seletor.charAt(0) === '#' ? 'id' : 'class',
param_btn.seletor.substring(1)
);
// CLASSES
if (param_btn.classes) {
item.find("div").addClass(param_btn.classes);
}
// DESCRIÇÃO
if (param_btn.descricao) {
item.find(".sw_btn_acessibilidade").append('<span class="sw_txt_btn_acessibilidade">'+param_btn.descricao+'</span>');
item.attr("title", param_btn.descricao);
}
// ÍCONE
if (param_btn.icone) {
item.find(".sw_btn_acessibilidade").append('<span class="sw_icone_btn tamanho_fixo swfa '+param_btn.icone+'" />')
}
// LINK
if (param_btn.link) {
item.attr("href", param_btn.link);
}
// ACCESSKEY
if (param_btn.accesskey) {
item.attr("accesskey", param_btn.accesskey);
// INSERINDO TECLADO NUMÉRICO
window.addEventListener("keydown", function(e) {
var keyCode = e.keyCode || e.which;
if (e.altKey && keyCode === param_btn.accesskey+96) {
if (param_btn.link) {
window.location.href = param_btn.link;
}
else {
item.trigger("click")
}
}
}, false)
}
// INSERINDO ITEM
sw_acessibilidade.find(".sw_area_botoes_acessibilidade").append(item);
}
}
}
// =============================================================
// BOTÃO AUMENTAR
// =============================================================
if (param.fonte && !sw_acessibilidade.find("#sw_btn_aumentar_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_aumentar_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_aumentar_acessibilidade",
icone: "fas fa-plus",
descricao: "Aumentar fonte"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_aumentar_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// ALTERANDO FONTS
sw_altera_fonts(1);
// REMOVE CARREGANDO FS
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
});
// =============================================================
// BOTÃO DIMINUIR
// =============================================================
if (param.fonte && !sw_acessibilidade.find("#sw_btn_diminuir_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_diminuir_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_diminuir_acessibilidade",
icone: "fas fa-minus",
descricao: "Diminuir fonte"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_diminuir_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// ALTERANDO FONTS
sw_altera_fonts(-1);
// REMOVE CARREGANDO FS
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
});
// =============================================================
// BOTÃO CONTRASTE
// =============================================================
if (param.contraste && !sw_acessibilidade.find("#sw_btn_contraste_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_contraste_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_contraste_acessibilidade",
icone: "fas fa-adjust",
descricao: "Alto contraste",
accesskey: 5
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_contraste_acessibilidade").click(function() {
var action_contraste = (localStorage.getItem("sw_acessibilidade_contraste") === "true") ? false : true;
sw_contraste(action_contraste);
});
// =============================================================
// BOTÃO VLIBRAS
// =============================================================
if (param.vlibras && !sw_acessibilidade.find("#sw_btn_vlibras_acessibilidade").length && $("#vlibras_include img").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_vlibras_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_vlibras_acessibilidade",
icone: "fas fa-sign-language",
descricao: "Habilitar VLibras",
accesskey: 7
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_vlibras_acessibilidade").click(function() {
var action_vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") === "true") ? false : true;
sw_vlibras(action_vlibras);
});
var vlibras_include = $("#vlibras_include");
if (vlibras_include.length) {
// BOTÃO ABRIR VLIBRAS
vlibras_include.on("click", "div[vw-access-button]", function(e) {
setTimeout(function() {
sw_vlibras(true);
}, 100);
});
// BOTÃO FECHAR VLIBRAS
vlibras_include.on("click", "img.vpw-settings-btn-close", function() {
setTimeout(function() {
sw_vlibras(false);
}, 100);
});
}
// =============================================================
// BOTÃO TRANSIÇÕES
// =============================================================
if (param.transicoes && !sw_acessibilidade.find("#sw_btn_transicoes_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_transicoes_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_transicoes_acessibilidade",
icone: "fab fa-delicious",
descricao: "Ativar/Desativar transições"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_transicoes_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// ACIONANDO FUNÇÃO
var action_transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") === "true") ? false : true;
sw_desativa_transicoes(action_transicoes);
// REMOVE CARREGANDO FS
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
});
// =============================================================
// BOTÃO MAPA
// =============================================================
if (param.mapa && !sw_acessibilidade.find("#sw_btn_mapa_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_mapa_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_mapa_acessibilidade",
icone: "fas fa-sitemap",
descricao: "Mapa do site",
link: "/portal/mapa"
});
}
// =============================================================
// BOTÃO ACESSIBILIDADE PÁGINA
// =============================================================
if (param.pagina && !sw_acessibilidade.find("#sw_btn_pagina_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_pagina_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_pagina_acessibilidade",
icone: "fas fa-wheelchair",
descricao: "Página de Acessibilidade",
link: "/portal/acessibilidade",
accesskey: 6
});
}
// =============================================================
// BOTÃO RESET
// =============================================================
if (param.reset && !sw_acessibilidade.find("#sw_btn_reset_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_reset_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_reset_acessibilidade",
icone: "fas fa-undo",
descricao: "Resetar acessibilidade"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_reset_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// RESETANDO ACESSIBILIDADE
var reset = true;
set_acessibilidade(reset);
// REMOVE CARREGANDO
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
}).hide();
// =============================================================
// BOTÃO IR PARA O CONTEÚDO
// =============================================================
if (param.irconteudo && !sw_acessibilidade.find("#sw_btn_irconteudo_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irconteudo_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irconteudo_acessibilidade",
icone: "fas fa-desktop",
descricao: "Ir para o conteúdo",
link: (location.pathname === "/" || location.pathname === "/portal" || location.pathname === "/portal/") ? "#e_conteudo" : "#e_centralizar",
accesskey: 1
});
}
// =============================================================
// BOTÃO IR PARA O MENU
// =============================================================
if (param.irmenu && !sw_acessibilidade.find("#sw_btn_irmenu_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irmenu_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irmenu_acessibilidade",
icone: "fas fa-bars",
descricao: "Ir para o menu",
link: "#e_cont_topo",
accesskey: 2
});
}
// =============================================================
// BOTÃO IR PARA A BUSCA
// =============================================================
if (param.irbusca && !sw_acessibilidade.find("#sw_btn_irbusca_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irbusca_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irbusca_acessibilidade",
icone: "fas fa-search",
descricao: "Ir para a busca",
link: "#e_campo_busca",
accesskey: 3
});
}
// IR PARA BUSCA
$("#irbusca").click(function () {
$("#e_campo_busca").focus();
});
// FORMULÁRIO
$("#formulario_busca").bind('submit',function() {
var busca = ($("#e_campo_busca").val() == "") ? 0 : $("#e_campo_busca").val();
window.location.href = '/portal/busca/' + busca;
return false;
});
// =============================================================
// BOTÃO IR PARA O RODAPÉ
// =============================================================
if (param.irrodape && !sw_acessibilidade.find("#sw_btn_irrodape_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irrodape_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irrodape_acessibilidade",
icone: "fas fa-arrow-down",
descricao: "Ir para o rodapé",
link: "#e_cont_rodape",
accesskey: 4
});
}
}
}
}
// FUNÇÃO AUMENTAR / DIMINUIR FONTS
if (typeof sw_altera_fonts !== "function") {
function sw_altera_fonts(action) {
var elemento;
var body = $("body");
var fonte = (localStorage.getItem("sw_acessibilidade_fonte") !== null) ? parseInt(localStorage.getItem("sw_acessibilidade_fonte")) : 0;
var fontoriginal;
var font_size;
var nova_font_size;
// ANALISANDO SE FONT ORIGINAL E PARÂMETRO SÃO DIFERENTES DE ZERO
if (!((action === 0 || action === false || action === null) && fonte === 0)) {
// CALCULANDO NOVA FONT
nova_font_size = (action === 0) ? 0 : fonte + action;
// PERCORRENDO ELEMENTOS DO BODY E SETANDO FONTS ORIGINAIS
if (nova_font_size >= -5 && nova_font_size <= 5) {
body.find("*").each(function() {
elemento = $(this);
// ANALISANDO | SE ELEMENTO PAI CONTÉM A CLASSE TAMANHO_FIXO | && | SE O ELEMENTO NÃO TEM FONT-SIZE ZERO OU | && | SE O ELEMENTO NÃO TEM A CLASSE TAMANHO_FIXO
if ( (!elemento.parents(".tamanho_fixo").length) && (elemento.css("font-size").replace(/\D/g, "") > 0) && (!elemento.hasClass("tamanho_fixo")) ) {
// ANALISANDO ESTADO ATUAL DAS FONTS
fontoriginal = elemento.attr("data-fontoriginal");
if (typeof fontoriginal === "undefined" || fontoriginal === false) {
// SETANDO ATRIBUTO DATA-FONTSIZE ATUAL
fontoriginal = parseInt(elemento.css("font-size").replace("px", ""));
elemento.attr("data-fontoriginal", fontoriginal)
}
}
});
// PERCORRENDO ELEMENTOS DO BODY E ALTERANDO FONT-SIZE
body.find("[data-fontoriginal]").each(function() {
elemento = $(this);
// ANALISANDO FONT ATUAL DO ELEMENTO
fontoriginal = parseInt(elemento.attr("data-fontoriginal"));
font_size = fontoriginal + nova_font_size;
elemento.css({"font-size" : font_size + "px"});
});
// ATUALIZANDO LOCAL STORAGE
if (nova_font_size == 0) {
localStorage.removeItem("sw_acessibilidade_fonte");
} else {
localStorage.setItem("sw_acessibilidade_fonte", nova_font_size);
}
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
}
}
}
// FUNÇÃO CONTRASTE
if (typeof sw_contraste !== "function") {
function sw_contraste(action) {
var body = $("body");
var contraste = (localStorage.getItem("sw_acessibilidade_contraste") !== null) ? localStorage.getItem("sw_acessibilidade_contraste") : false;
// ANALISANDO SE HÁ MUDANÇA DE AÇÃO
if (typeof action === "undefined" || action === null) {
action = contraste;
}
// REMOVENDO TRANSIÇÕES MOMENTANEAMENTE
body.addClass("transition0s");
setTimeout(function() {
body.removeClass("transition0s");
}, 100);
// ANALISANDO AÇÃO
if (action || action === "true") {
body.addClass("contraste");
// SETANDO LOCAL STORAGE
localStorage.setItem("sw_acessibilidade_contraste", action);
}
else {
body.removeClass("contraste");
// RESETANDO LOCAL STORAGE
localStorage.removeItem("sw_acessibilidade_contraste");
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 200, sw_deb_acessibilidade);
}
}
// FUNÇÃO DESATIVA TRANSIÇÕES
if (typeof sw_desativa_transicoes !== "function") {
function sw_desativa_transicoes(action) {
var contents = $("body >*");
var transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") !== null) ? localStorage.getItem("sw_acessibilidade_transicoes") : false;
// ANALISANDO SE HÁ MUDANÇA DE AÇÃO
if (typeof action === "undefined" || action === null) {
action = transicoes;
}
// ANALISANDO AÇÃO
if (action || action === "true") {
contents.addClass("transition0s");
// SETANDO LOCAL STORAGE
localStorage.setItem("sw_acessibilidade_transicoes", true);
}
else {
contents.removeClass("transition0s");
// RESETANDO LOCAL STORAGE
localStorage.removeItem("sw_acessibilidade_transicoes");
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
}
}
// FUNÇÃO HABILITA VLIBRAS
if (typeof sw_vlibras !== "function") {
function sw_vlibras(action) {
var vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") !== null) ? localStorage.getItem("sw_acessibilidade_vlibras") : false;
var vlibras_include = $("#vlibras_include");
// ANALISANDO SE HÁ MUDANÇA DE AÇÃO
if (typeof action === "undefined" || action === null) {
action = vlibras;
}
// ANALISANDO AÇÃO
if (action || action === "true") {
if (vlibras_include.find("div[vw-access-button]").hasClass("active")) {
vlibras_include.find("div[vw-access-button]").trigger("click");
}
// SETANDO LOCAL STORAGE
localStorage.setItem("sw_acessibilidade_vlibras", action);
}
else {
if (!vlibras_include.find("div[vw-access-button]").hasClass("active")) {
vlibras_include.find("img.vpw-settings-btn-close").trigger("click");
}
// RESETANDO LOCAL STORAGE
localStorage.removeItem("sw_acessibilidade_vlibras");
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
}
}
// FUNÇÃO SET ACESSIBILIDADE // INDICA AO USUÁRIO QUE HÁ FUNÇÕES DE ACESSIBILIDADES ATIVAS OU RESETA FUNÇÕES
if (typeof set_acessibilidade !== "function") {
function set_acessibilidade(reset)
{
// CAPTURANDO ATRIBUTOS
var fonte = (localStorage.getItem("sw_acessibilidade_fonte") !== null) ? localStorage.getItem("sw_acessibilidade_fonte") : 0;
var contraste = (localStorage.getItem("sw_acessibilidade_contraste") !== null) ? localStorage.getItem("sw_acessibilidade_contraste") : false;
var transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") !== null) ? localStorage.getItem("sw_acessibilidade_transicoes") : false;
var vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") !== null) ? localStorage.getItem("sw_acessibilidade_vlibras") : false;
// BOTÕES
var sw_btn_menu_acessibilidade = $("#sw_btn_menu_acessibilidade");
var sw_btn_aumentar_acessibilidade = $("#sw_btn_aumentar_acessibilidade");
var sw_btn_diminuir_acessibilidade = $("#sw_btn_diminuir_acessibilidade");
var sw_btn_contraste_acessibilidade = $("#sw_btn_contraste_acessibilidade");
var sw_btn_transicoes_acessibilidade = $("#sw_btn_transicoes_acessibilidade");
var sw_btn_vlibras_acessibilidade = $("#sw_btn_vlibras_acessibilidade");
var sw_btn_reset_acessibilidade = $("#sw_btn_reset_acessibilidade");
// ANALISANDO RESET
if (reset === true) {
fonte = 0;
contraste = false;
transicoes = false;
vlibras = false;
// RESETANDO ACESSIBILIDADE
sw_altera_fonts(fonte);
sw_contraste(contraste);
sw_desativa_transicoes(transicoes);
sw_vlibras(vlibras);
}
// BOTÃO DE RESET
if (sw_btn_reset_acessibilidade.length) {
if (fonte != 0 || contraste || transicoes || vlibras) {
sw_btn_reset_acessibilidade.show();
}
else {
sw_btn_reset_acessibilidade.hide();
}
}
// ANALISANDO FUNÇÕES INDIVIDUALMENTE
var qtde_funcoes = 0;
// AUMENTAR / DIMINUIR FONTE
if (fonte > 0) {
qtde_funcoes++;
sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", fonte).addClass("ativa");
sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
else if (fonte < 0) {
qtde_funcoes++;
sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", fonte).addClass("ativa");
sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
else {
sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// CONTRASTE
if (contraste) {
qtde_funcoes++;
sw_btn_contraste_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa");
}
else {
sw_btn_contraste_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// TRANSIÇÕES
if (transicoes) {
qtde_funcoes++;
sw_btn_transicoes_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa");
}
else {
sw_btn_transicoes_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// VLIBRAS
if (vlibras) {
qtde_funcoes++;
sw_btn_vlibras_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa");
}
else {
sw_btn_vlibras_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// ANALISANDO QUANTIDADE DE FUNÇÕES
if (qtde_funcoes > 0) {
sw_btn_menu_acessibilidade.addClass("ativa").find(".sw_icone_acessibilidade").attr("data-acessibilidade", qtde_funcoes);
}
else {
sw_btn_menu_acessibilidade.removeClass("ativa").find(".sw_icone_acessibilidade").removeAttr("data-acessibilidade");
}
// ATRIBUINDO TEXTO AOS BOTÕES
if (sw_btn_contraste_acessibilidade.length) {
var txt_btn = (contraste === false) ? "Alto contraste" : "Baixo contraste";
sw_btn_contraste_acessibilidade.attr("title", txt_btn);
sw_btn_contraste_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn);
}
if (sw_btn_transicoes_acessibilidade.length) {
var txt_btn = (transicoes == false) ? "Remover transições" : "Ativar transições";
sw_btn_transicoes_acessibilidade.attr("title", txt_btn);
sw_btn_transicoes_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn);
}
if (sw_btn_vlibras_acessibilidade.length) {
var txt_btn = (vlibras == false) ? "Ativar VLibras" : "Desativar VLibras";
sw_btn_vlibras_acessibilidade.attr("title", txt_btn);
sw_btn_vlibras_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn);
}
}
}
// FUNÇÃO DEBOUNCE
if (typeof sw_debounce !== "function") {
function sw_debounce(funcao, time, debounce_timeout) {
clearTimeout(debounce_timeout);
// A CHAMADA DESSA FUNÇÃO DEVE SER RETORNADA PARA A VARIÁVEL 'debounce_timeout'
// Ex: var debounce_timeout = sw_debounce(funcao, time, debounce_timeout)
return debounce_timeout = setTimeout(funcao, time);
}
}
var sw_deb_acessibilidade;
/* ============================================================================================
ACIONANDO FUNÇÕES ANTES DE CARREGAR A PÁGINA
============================================================================================ */
// CONTRASTE
sw_contraste(null);
// TRANSIÇÕES
sw_desativa_transicoes(null);
/* ============================================================================================
ACIONANDO FUNÇÕES AO CARREGAR A PÁGINA
============================================================================================ */
$(document).ready(function() {
/* ============================================================================================
ACESSIBILIDADE ---- ANTIGO --- REMOVER DEPOIS DE TODOS ALTERADOS
============================================================================================ */
// BOTÃO DE AUMENTAR A FONTE
$(".aumentar").click(function () {
$("*").each(function() {
if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) )
{
var size = $(this).css('font-size');
size = size.replace('px', '');
size = parseInt(size) + 1;
if(size < 18)
{
$(this).animate({'font-size' : size + 'px'});
}
}
});
});
// BOTÃO DE DIMINUIR A FONTE
$(".diminuir").click(function () {
$("*").each(function() {
if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) )
{
var size = $(this).css('font-size');
size = size.replace('px', '');
size = parseInt(size) - 1;
if(size > 10)
{
$(this).animate({'font-size' : size + 'px'});
}
}
});
});
// BOTÃO DE CONTRASTE DE COR
$("#contraste").click(function () {
if($("body").hasClass("contraste"))
{
$("body").removeClass("contraste");
$("body").css("background","#FFFFFF");
$("#logo_branca").hide();
}
else
{
$("body").addClass("contraste");
$("#logo_branca").show();
}
});
// BOTÃO IR PARA BUSCA
$("#irbusca").click(function () {
$("#e_campo_busca").focus();
});
// VLIBRAS
$(".vlibras").click(function() {
$("#vlibras_include div[vw-access-button]").trigger("click");
});
// // SW ACESSIBILIDADE
// var sw_parametros_acessibilidade = {
// layout: "a1"
// };
// // ANALISANDO SE HÁ PARÂMETROS EXCLUSIVOS DO LAYOUT
// if (typeof e_parametros_acessibilidade === "object") {
// sw_parametros_acessibilidade = e_parametros_acessibilidade;
// }
// // ACIONANDO FUNÇÃO DE ACESSIBILIDADE
// sw_acessibilidade(sw_parametros_acessibilidade)
// ACIONANDO FUNÇÃO DE ACESSIBILIDADE AO FIM DO CARREGAMENTO DA PÁGINA
$(window).on("load", function() {
// ALTERAR FONTS
sw_altera_fonts(null);
// VLIBRAS
sw_vlibras(null);
});
// SETANDO ATRIBUTOS
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
/* ============================================================================================
ENQUETE
============================================================================================ */
// CLICK DO BOTÃO COM ID VOTAR DA ENQUETE
$('#votar').click(function(){
var opcao = $("input[name=form_resposta]:checked").val();
opcao = parseInt(opcao);
var recaptcha = "";
//A CLASSE e_captcha_enquete DEVE SER INSERIDA NO HTMLQUE CONTER O CAPTCHA DA ENQUETE, PARA QUE O CÓDIGO CONSIGA LOCALIZAR O RESULTADO REFERENTE AO LOCAL CORRETO
recaptcha = $(".e_captcha_enquete").find("textarea.g-recaptcha-response").val();
//SE EXISTIR OS CAMPOS DE NOME E E-MAIL
if($('#form_nome_enquete').length || $('#form_email_enquete').length || $("#form_cpf_enquete").length || $("#form_data_enquete").length)
{
if(isNaN(opcao))
{
swal({
text: "Enquete: selecione uma resposta.",
icon: "warning"
});
}
else
{
if($("#form_nome_enquete").val() == "" || $("#form_email_enquete").val() == "" || $("#form_cpf_enquete").val() == "" || $("#form_data_enquete").val() == "" || $("#form_data_enquete").val() == "00/00/0000")
{
swal({
text: "Enquete: preencha os campos.",
icon: "warning"
});
}
else
{
var nome = $("#form_nome_enquete").val();
var email = $("#form_email_enquete").val();
var cpf = $("#form_cpf_enquete").val();
var data = $("#form_data_enquete").val();
var invalido = "";
if($("#form_cpf_enquete").val() != '' && $("#form_cpf_enquete").length)
{
if(validarCPF(cpf) == false)
{
swal({
text: "Enquete: CPF informado é inválido.",
icon: "error"
});
invalido = "S";
}
}
if($("#form_email_enquete").val() != '' && $("#form_email_enquete").length)
{
if(validarEmail(email) == false)
{
swal({
text: "Enquete: E-mail informado é inválido.",
icon: "error"
});
invalido = "S";
}
}
if(invalido != "S")
{
$.post('/portal/enquete/votar/',{ enviar: 's', form_resposta: opcao, form_nome: nome, form_email: email, form_cpf: cpf, form_data: data, captcha: recaptcha }, retorna_enquete);
}
}
}
}
else
{
if(!isNaN(opcao))
{
$.post('/portal/enquete/votar/',{ enviar: 's', form_resposta: opcao, captcha: recaptcha }, retorna_enquete);
}
else
{
swal({
text: "Enquete: selecione uma resposta.",
icon: "warning"
});
}
}
});
});
</script>]]>
|