ou 'i' objeto tipo
// aguarde - 1 mostrar "Aguarde...", 0 Não mostrar nada
// separador - Separador para array padrao é ','
function faz_pesquizaJQ(pagina,parametro,obj,ret,tipo_obj,aguarde,separador,obj_id = ''){
var obj_array, x, objeto1, qtd;
if(aguarde) aguardeJQ(1);
parametro = parametro + "&jquery=1";
$.ajax({url:pagina+"?"+parametro,success:function(result){
if((separador)&&(separador != 'undefined')){
obj_array = obj.split(separador);
result_array = result.split(separador);
}else{
obj_array = new Array(obj);
result_array = new Array(result);
}
qtd = obj_array.length;
for(x = 0;qtd > x;x++){
objeto1 = obj_array[x];
result1 = result_array[x];
if(tipo_obj == 'i'){
$("#" + objeto1).val(result1);
}else{
$("#" + objeto1).html(result1);
}
}
if(aguarde) aguardeJQ(0);
}});
}
//----------------------------------------------------------------------------
// Função do followup generico em jquery
//----------------------------------------------------------------------------
function recadoJQ(filtro,sistema){
var titulo = "Follow-up";
var pagina = "../../ss3/recado/recado.php";
var parametros = "ajax=1&filtro="+filtro+"&sist="+sistema;
var altura = 520;
var largura = 600;
var mensagem = '
';
janela_generica(0,mensagem,titulo,'',altura,largura,'');
//janelaJQ(titulo, mensagem, altura, largura, '');
$("#formMotivo").load(pagina,parametros);
$("#dialog-message").css('overflow','hidden');
btns = "";
}
//----------------------------------------------------------------------------
// Função centralizar DIV
//----------------------------------------------------------------------------
// Ex $(element).center();
//
jQuery.fn.center = function () {
this.css("position","absolute");
this.css("top", Math.max(0, (($(window).height() - $(this).outerHeight()) / 2) +
$(window).scrollTop()) + "px");
this.css("left", Math.max(0, (($(window).width() - $(this).outerWidth()) / 2) +
$(window).scrollLeft()) + "px");
return this;
}
//----------------------------------------------------------------------------
// Função PERMITIR APENAS NUMEROS IMPUT TEXT
//----------------------------------------------------------------------------
// Ex: $("#yourTextBoxName").numericOnly();
//
jQuery.fn.numericOnly = function(){
return this.each(function(){
$(this).keydown(function(e){
var key = e.charCode || e.keyCode || 0;
// allow backspace, tab, delete, enter, arrows, numbers and keypad numbers ONLY
// home, end, period, and numpad decimal
return (
key == 8 ||
key == 9 ||
key == 13 ||
key == 46 ||
key == 110 ||
key == 190 ||
(key >= 35 && key <= 40) ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
});
});
};
//----------------------------------------------------------------------------
// Função PERMITIR APENAS NUMEROS E PONTO IMPUT TEXT
//----------------------------------------------------------------------------
// Ex: $("#yourTextBoxName").decimaltOnly();
//
jQuery.fn.decimaltOnly = function(){
return this.each(function(){
$(this).keydown(function(e){
var key = e.charCode || e.keyCode || 0;
// allow backspace, tab, delete, enter, arrows, numbers and keypad numbers ONLY
// home, end, period, and numpad decimal
return (
key == 8 ||
key == 9 ||
key == 13 ||
key == 46 ||
key == 110 ||
key == 190 ||
key == 194 ||
(key >= 35 && key <= 40) ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
});
});
};
//----------------------------------------------------------------------------
// Dados do usuario em jquery
//----------------------------------------------------------------------------
function usuDadosJQ(pesNumero){
var titulo = "Dados do Usuário";
var pagina = "../../dqanet/index/resultado.php";
var parametros = "PES_NUMERO="+pesNumero + '&ajax=1&cons=1';
var altura = 380;
var largura = 940;
var btns = {};
ajxJanelaJQ(titulo,pagina,parametros,altura,largura,btns)
//janela_generica(0,mensagem,titulo,'',altura,largura,'');
//janelaJQ(titulo, mensagem, altura, largura, '');
//$("#formMotivo").load(pagina,parametros);
//$("#dialog-message").css('overflow','hidden');
}
//------------------------------------------------------------------------------
// Dialog de confirmação
//------------------------------------------------------------------------------
/*
mensagem - Mensagem da Confirmação,
btConf - função que o botão deve executar.
Exemplo
var btConf = "funcaoExecutar();";
confirmJQ("Deseja confirmar isso?",btns);
*/
function confirmJQ(mensagem,btConf){
var btns = {};
var titulo = 'Confirmar';
var altura = 200;
var largura = 450;
var opcao;
btns['Confirmar'] = function(){
$(this).dialog('close');
if (typeof btConf == 'string') {
eval(btConf);
} else {
btConf();
}
};
btns['Cancelar'] = function(){ $(this).dialog('close'); return false; };
criaObjeto("dialog-confirm");
mensagem = '
'+mensagem+'
';
$("#dialog-confirm").html(mensagem);
$("#dialog-confirm").show();
$("#dialog-confirm").dialog({
autoOpen:true,
height:altura,
width:largura,
title:titulo,
modal:true,
buttons:btns
});
}
function alertJQ(msg,size='M') {
notificacaoJQ(msg,'alert',size.toUpperCase());
}
function alertOkJQ(msg,size='M') {
notificacaoJQ(msg,'confirm',size.toUpperCase());
}
function alertErroJQ(msg,size='M') {
notificacaoJQ(msg,'warning',size.toUpperCase());
}
//------------------------------------------------------------------------------
// notificacaoJQ
//------------------------------------------------------------------------------
/*
msg - Mensagem a ser exibida.
tipo - Tipo da mensagem. 'warning' = Erro,
'alert' = Alerta , (Caso não especificar por padrão é atribuido alerta)
'confirm' = Confirmação
size - Tamanho da janela (Caso não especificar por padrão é atribuido tamanho Médio.
Exemplo
var btConf = "funcaoExecutar();";
confirmJQ("Deseja confirmar isso?",btns);
*/
function notificacaoJQ(msg,tipo='alert',size='M') {
var btns = {};
var width = 600;
var height = 300;
var widthMsg = width - 100;
var tag, src = '', classe = '', classeIco = '', titulo = '';
if(size == 'G') {
width = width + 100;
height = height + 100;
widthMsg = width - 180;
} else if(size == 'P') {
width = width - 150;
height = height - 50;
}
if(tipo == 'warning') {
src = 'icons8-high-priority-96.png';
classe = 'lbMsgWarning';
titulo = 'Erro';
tag = 'img';
} else if (tipo == 'alert') {
src = 'icons8-box-important-96.png';
classe = 'lbMsgAlert';
titulo = 'Alerta';
tag = 'img';
} else if (tipo == 'confirm') {
src = 'icons8-checkmark-96.png';
classe = 'lbMsgConfirm';
titulo = 'Confirmação';
tag = 'img';
}else{
src = 'icons8-box-important-96-BP.svg';
classe = 'lbMsg' + tipo;
titulo = 'Alerta';
tag = 'svg';
}
if(tag == 'svg'){
tag = '
Alert ';
}else{
tag = '
';
}
var heightMsg = height - 115;
var conteudo = '
';
janelaJQNome(titulo,conteudo,height,width,btns,'alertWindow');
}
function savingJQ(pagina,parametro){
var titulo = 'Salvando';
var mensagem = '
Salvando...
';
var altura = 150;
var largura = 400;
var btns = {};
janelaJQNome(titulo,mensagem,altura,largura,btns,'savingWindow');
//$("#savingMsg").load(pagina,parametro);
//window.open(pagina+'?'+parametro);
$.ajax({
dataType: "HTML",
type: "POST",
url: pagina,
data: parametro,
proccessData: false
}).done(function(data){
$("#savingMsg").html(data);
});
}
//------------------------------------------------------------------------------
// Janela JQueryUi Iframe
//------------------------------------------------------------------------------
/* Como usar
-- titulo : Texto do cabeçalho da janela.
-- pagina : Pagina a se chamada no Iframe.
-- parametro: Pararemtros da pagina.
-- altura: Altura da janela. - opcopnal
-- largura: Largura da janela. - opcopnal
-- btns: Botões, usar como arrayEx: - opcopnal
-- var btns = {};
-- btns['Sim'] = function(){ funcaoSim(); };
-- btns['Não'] = function(){ funcaoNao(); };
--------------------
-- O botão sair sempre esta presente
---------------------
*/
function ifmJanelaJQ(titulo, pagina, parametro, altura = '100%', largura = '100%', btns = {}, nomeWin = "dialog-message"){
var idJanela = nomeWin + 'Janela';
var caminho = pagina+'?'+parametro;
var mensagem = '
';
if(!btns) var btns = {};
if(altura == '100%') altura = $(window).height() - 40;
if(largura == '100%') largura = $(window).width() - 40;
janelaJQ(titulo, mensagem, altura, largura, btns, nomeWin);
}
//------------------------------------------------------------------------------
// Janela JQueryUi Ajax
//------------------------------------------------------------------------------
/* Como usar
-- titulo : Texto do cabeçalho da janela.
-- pagina : Pagina a se chamada no Ajax.
-- parametro: Pararemtros da pagina.
-- altura: Altura da janela. - opcopnal
-- largura: Largura da janela. - opcopnal
-- btns: Botões, usar como arrayEx: - opcopnal
-- var btns = {};
-- btns['Sim'] = function(){ funcaoSim(); };
-- btns['Não'] = function(){ funcaoNao(); };
--------------------
-- O botão sair sempre esta presente
---------------------
*/
function ajxJanelaJQ(titulo, pagina, parametro, altura = '100%', largura = '100%', btns = {}, nomeWin = "dialog-message"){
if(nomeWin == "dialog-message")
var idJanela = "ifrJanela"
else
var idJanela = nomeWin + 'Janela';
var mensagem = '
';
if(altura == '100%') altura = $(window).height() - 20;
if(largura == '100%') largura = $(window).width() - 20;
janelaJQ(titulo, mensagem, altura, largura, btns, nomeWin);
paginaAjax(pagina,parametro,"#"+idJanela);
$("#"+idJanela).height(altura-95);
$("#"+idJanela).width(largura-30);
}
/*------------------------------------------------------------------------------
// Busca jason
//------------------------------------------------------------------------------
-- pagina : Pagina a se chamada no Ajax.
-- parametro: Pararemtros da pagina.
-- criar: Cria campos hiden se não encontar.
//------------------------------------------------------------------------------*/
function buscaJQJason(pagina, parametros = '', criar = 0){
var caminho;
caminho = pagina + '?' + parametros;
$.getJSON(caminho, function(result) {
result.erro = '';
aguardeJQ(1);
}).done(function(result){
result.erro = '';
aguardeJQ(0);
populaObjJason(result, criar);
}).fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ", " + error;
aguardeJQ(0);
alertJQ(err);
var result = {'erro': err}
populaObjJason(result);
});
}
function populaObjJason(objeto, criar){
var campo, newObj;
$.each(objeto, function (key, val) {
campo = '#' + key;
newObj = '
';
if(!$(campo).length){
if(criar == 1){
$(body).after(newObj);
}
}else{
if(ckCampo(campo) == 'val'){
$(campo).val(val).trigger('change');
}else{
$(campo).html(val).trigger('change');
}
}
});
}
function ckCampo(campo){
if($(campo).length){
if($(campo).prop("tagName").toUpperCase() == 'INPUT'){
return ('val');
}else{
return ('html');
}
}
}
//------------------------------------------------------------------------------
// Pesquisa Menu
//------------------------------------------------------------------------------
function ajxPesquisaML(form){
var form_menu = $('#pesq_menu_left');
var consulta = $('#consulta_' + form).val();
var pagObj = $("[name='opcao_frm_" + form + "']:checked");
var pagina = pagObj.val();
var target = $('#target_' + pagObj.prop('id').substr(10));
var parametro = form_menu.serialize();
var campo = 'consulta_' + form;
var tam = pagina.length;
if((pagina.substr(tam-3,tam)) == 'php')
pagina = pagina + "?consulta=" + consulta;
else
pagina = pagina + "&consulta=" + consulta;
if(target == "principal")
parent.principal.location.href = pagina + '&' + parametro;
else
frames[target.val()].location.href = pagina + '&' + parametro;
}
//------------------------------------------------------------------------------
// Pesquisa Menu
//------------------------------------------------------------------------------
function ajxPostForm(form){
var url = $(form).prop('action');
var retorno = '', data = $(form).serialize();
retorno = ajxPostPag(url,data);
return(retorno)
}
//------------------------------------------------------------------------------
// Pesquisa Menu
//------------------------------------------------------------------------------
function ajxPostPag(url,data){
var retorno = '', type = 'POST';
$.ajax({
url: url,
type :type,
dataType : 'json',
data : data,
success : function(result) {
if(result){
retorno = result.split("#");
}else{
retorno = "null";
}
},
error: function(xhr, resp, text) {
retorno = "error";
}
})
return(retorno)
}
//------------------------------------------------------------------------------
// json to Array
//------------------------------------------------------------------------------
function json2Array(pagina, parametro, jType = 'GET'){
var result = [];
$.ajax({
type: jType,
url: pagina + '?' + parametro,
async: false,
dataType: "json",
success: function (data) {
result = data;
}
});
return result;
}
//------------------------------------------------------------------------------
// json to Array
//------------------------------------------------------------------------------
function desabilitaJQ(desabilita, objetos = ''){
if(!objetos){
objetos = 'input,select,button,textarea';
}
var x, objArray = objetos.split(',');
for(const element of objArray){
if($(element).length){
$(element).prop('disabled',desabilita);
}
}
}
/*------------------------------------------------------------------------------
// Busca dados API Jason - internas
// url -> caminho da api -> no smarnet
// campos -> array de campos e propiedades do objeto da API
// const campos = [
// ['campo1', 'prop1'],
// ['campo2', 'prop2'],
// ['...', '...']
// ];
// funcao -> chama funcao para excutar ao fim da API
// nome da função sem parametros e sem aspas ex: minhaFunc
------------------------------------------------------------------------------*/
async function buscaDadosAPI(url, campos, funcao = ''){
if(url){
buscaAPI(url)
.then((response) => {
return response.json();
})
.then((data) => {
if(data){
campos.forEach((campo) => {
const idCampo = campo[0];
const atributo = campo[1];
document.getElementById(idCampo).value = data[atributo] || '';
});
if(funcao) funcao();
}else{
alert('API sem retorno!');
}
})
.catch(error => {
alert('API Erro!: ' + error);
throw error;
});
}else{
alert('Informe URL!');
}
}
//--------------------------------------------
// buscaAPI -> internas
// url -> http://API
//--------------------------------------------
function buscaAPI(url){
return fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
},
});
}
//--------------------------------------------
// getJSONData -> internas
// url -> http://API
//--------------------------------------------
function getJSONData(url) {
return $.ajax({
url: url,
method: "GET",
dataType: "json",
});
}
//--------------------------------------------
// getCEP
// cep -> CEP
//--------------------------------------------
async function getCEP(cep) {
const cepAddress = await getJSONData("../../dqanet/_api/index.php?getCEP=" + cep);
return cepAddress;
}
//--------------------------------------------
// tinymceDef
// component -> componente '.' p/ css class '#' p/ id
// height -> altura
//--------------------------------------------
function tinymceDef(component,height = 300){
tinymce.remove(component);
tinymce.init({
selector: component,
content_css: '../../dqanet/funcoes/tinymce5/custom-styles.css',
height: height,
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor',
'searchreplace visualblocks code fullscreen insertdatetime',
'insertdatetime media table paste wordcount searchreplace',
'table wordcount'
],
toolbar1: 'undo redo | fontselect fontsizeselect | ' +
'bold italic underline | alignleft aligncenter ' +
'alignright alignjustify | code removeformat searchreplace',
toolbar2: 'cut copy paste | forecolor insertdatetime table customInsertButton | bullist numlist',
setup: function (editor) {},
fontsize_formats: '8pt 9pt 10pt 11pt 12pt 14pt 18pt 24pt 30pt 36pt 48pt 60pt 72pt 96pt',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }'
});
}
//--------------------------------------------
// observer
// fieldID -> id do campo
// callback -> função a ser chamada quando o campo mudar de valor
//--------------------------------------------
function observer(fieldID, callback) {
const hiddenField = document.getElementById(fieldID);
function onHiddenFieldChange(mutationsList, observer) {
for (const mutation of mutationsList) {
if (mutation.type === 'attributes' && mutation.attributeName === 'value') {
const fieldVal = mutation.target.value;
// Chama a função passada como callback
callback(fieldVal);
}
}
}
const observerConfig = { attributes: true, attributeFilter: ['value'] };
const mutationObserver = new MutationObserver(onHiddenFieldChange);
mutationObserver.observe(hiddenField, observerConfig);
}
//------------------------------------------------------
// permiteSomenteNumerosLetras
// Exemplo de uso:
//var input = document.getElementById("meuInput");
//input.addEventListener("keypress", permiteSomenteNumerosLetras);
function permiteSomenteNumerosLetras(event) {
var charCode = event.which ? event.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57) && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) {
event.preventDefault();
return false;
}
return true;
}
function certificadoOS(order_no) {
var titulo = 'Sensor';
var pagina = "../../plasma_a/certificados/";
var parametro = 'order_no=' + order_no
var altura = '100%';
var largura = '100%';
var btns = {};
ajxJanelaJQ(titulo,pagina,parametro,altura,largura,btns);
}
function imprimeCertificadoOS(cer_codigo, order_no, lin_codigo, ped_codigo = '') {
var pagina = "../../plasma_a/certificados/gera_pdf.php";
var parametro = 'cer_codigo=' + cer_codigo + '&order_no=' + order_no + '&lin_codigo=' + lin_codigo + '&ped_codigo=' + ped_codigo;
var caminho = pagina+'?'+parametro;
var mensagem = '
';
$("#divDocCertificado").html(mensagem);
//ifmJanelaJQ(titulo,pagina,parametro,altura,largura,btns);
}