Commit a99f2613234b88eba7d2038b4416ff19288e8594

Authored by Edmar Moretti
1 parent 77c8aa92

Criação da variável de configuração $i3geoEsquemasWL, utilizada para restringir …

…a montagem de listas de opções no sistema de administração
admin1/js/bdexplorer.js 0 → 100644
... ... @@ -0,0 +1,54 @@
  1 +if (typeof (i3GEOadmin) === 'undefined') {
  2 + var i3GEOadmin = {};
  3 +}
  4 +i3GEOadmin.bdExplorer = {
  5 + popOverTemplate: '<div class="popover" style="width:100%; color: black; background-color:white;" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',
  6 + templateListaPopOver: '<a href="javascript:void(0)" data-name="{{{destino}}}" data-value="{{{valor}}}" class="list-group-item">{{{valor}}}</a>',
  7 + popOver: function(destino, conteudo){
  8 + var pop = $("#modalGeral input[name='" + destino + "']").popover({
  9 + "content": conteudo,
  10 + "placement": function(a){a.style.left = "0px";},
  11 + "title": "",
  12 + "template": i3GEOadmin.bdExplorer.popOverTemplate,
  13 + "html": true,
  14 + "animation": false
  15 + });
  16 + pop.popover('toggle');
  17 + $(".popover").css("left","0px");
  18 + $(".popover").css("top","45px")
  19 + $(".popover").on('click', function (e) {
  20 + $("#modalGeral input[name='" + e.target.getAttribute('data-name') + "']").val(e.target.getAttribute('data-value'));
  21 + $(".popover").popover("destroy");
  22 + })
  23 + },
  24 + listaEsquemas: function(destino){
  25 + if($(".popover").length == 0){
  26 + $.post(
  27 + i3GEO.configura.locaplic + "/admin1/php/bdexplorer.php?funcao=listarEsquemas"
  28 + )
  29 + .done(
  30 + function(data, status){
  31 + var c = "", json = jQuery.parseJSON(data);
  32 + c = Mustache.to_html(
  33 + "{{#data}}" + i3GEOadmin.bdExplorer.templateListaPopOver + "{{/data}}",
  34 + {
  35 + "data":json,
  36 + "destino": destino,
  37 + "valor": function() {
  38 + return this;
  39 + }
  40 + }
  41 + );
  42 + i3GEOadmin.bdExplorer.popOver(destino,c);
  43 + }
  44 + )
  45 + .fail(
  46 + function(data){
  47 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  48 + }
  49 + );
  50 + } else {
  51 + $(".popover").popover("destroy");
  52 + }
  53 + }
  54 +};
0 55 \ No newline at end of file
... ...
admin1/js/core.js
... ... @@ -157,7 +157,12 @@ if(typeof jQuery != &#39;undefined&#39; ){
157 157 }
158 158 }
159 159 };
160   -
  160 + function core_parseMustacheBody (hashMustache){
  161 + var re = new RegExp("&amp;", "g"), m;
  162 + m = Mustache.render(document.body.innerHTML, i3GEO.idioma.objetoIdioma(hashMustache));
  163 + m = m.replace(re, '&');
  164 + document.body.innerHTML = m;
  165 + }
161 166 //autocomlete
162 167 (function( $ ) {
163 168 $.widget( "custom.combobox", $.ui.autocomplete, {
... ... @@ -269,1662 +274,4 @@ if(typeof jQuery != &#39;undefined&#39; ){
269 274 }
270 275 });
271 276 })( jQuery );
272   -}
273   -
274   -function cabecalhoMetaestat(id,excluir){
275   - var botao,i,n,temp,
276   - ins = "<fieldset><legend>" + $trad("atalhos",i3GEOadmin.core.dicionario) + "</legend>",
277   - u = i3GEO.util.pegaCookie("i3geousuarionome"),
278   - botoes = [
279   - {id:"principal",titulo:$trad("inicio",i3GEOadmin.core.dicionario),link:"../principal.html"},
280   - {id:"arvore",titulo:$trad("arvoreCompleta",i3GEOadmin.core.dicionario),link:"estat_variavel.html"},
281   - {id:"conexao",titulo:$trad("conexoes",i3GEOadmin.core.dicionario),link:"estat_conexao.html"},
282   - {id:"tipo_regiao",titulo:$trad("regioes",i3GEOadmin.core.dicionario),link:"estat_tipo_regiao.html"},
283   - {id:"login",titulo:$trad("login",i3GEOadmin.core.dicionario),js:"i3GEO.login.dialogo.abreLogin()"}
284   - ];
285   - n = botoes.length;
286   - for(i=0;i<n;i++){
287   - if(botoes[i].id !== excluir){
288   - ins += '<input type=button id="'+botoes[i].id+'" value="'+botoes[i].titulo+'" />';
289   - }
290   - }
291   - if(!u){
292   - u = "-";
293   - }
294   - ins += "<div id='i3GEONomeLogin' style=width:100%; > Login: "+u+"</div>";
295   - ins += "</fieldset>";
296   - temp = $i(id);
297   - if(temp){
298   - temp.innerHTML = ins;
299   - for(i=0;i<n;i++){
300   - if(excluir === "principal" && botoes[i].link)
301   - {botoes[i].link = "html/"+botoes[i].link;}
302   - if(botoes[i].id !== excluir){
303   - botao = new YAHOO.widget.Button(botoes[i].id);
304   - botao.addClass("abrir150");
305   - if(botoes[i].link){
306   - eval('$i("'+botoes[i].id+'-button'+'").onclick = function(){window.location = \''+botoes[i].link+'\';}');
307   - }
308   - else{
309   - eval('$i("'+botoes[i].id+'-button'+'").onclick = function(){'+botoes[i].js+';}');
310   - }
311   -
312   - }
313   - }
314   - }
315   - try{
316   - i3GEO.login.recarrega = true;
317   - }
318   - catch(e){ }
319   -}
320   -
321   -function cabecalhoUsuarios(id,excluir){
322   - var botao,i,n,temp,
323   - ins = "<fieldset><legend>" + $trad("atalhos",i3GEOadmin.core.dicionario) + "</legend>",
324   - u = i3GEO.util.pegaCookie("i3geousuarionome"),
325   - botoes = [
326   - {id:"principal",titulo:$trad("inicio",i3GEOadmin.core.dicionario),link:"../principal.html"},
327   - {id:"operacoes",titulo:$trad("operacoes",i3GEOadmin.core.dicionario),link:"operacoes.html"},
328   - {id:"usuarios",titulo:$trad("usuarios",i3GEOadmin.core.dicionario),link:"usuarios.html"},
329   - {id:"gruposusuarios",titulo:$trad("gruposUsuarios",i3GEOadmin.core.dicionario),link:"gruposusuarios.html"},
330   - {id:"login",titulo:$trad("login",i3GEOadmin.core.dicionario),js:"i3GEO.login.dialogo.abreLogin()"}
331   - ];
332   - n = botoes.length;
333   - for(i=0;i<n;i++){
334   - if(botoes[i].id !== excluir){
335   - ins += '<input type=button id="'+botoes[i].id+'" value="'+botoes[i].titulo+'" />';
336   - }
337   - }
338   - if(!u){
339   - u = "-";
340   - }
341   - ins += "<div id='i3GEONomeLogin' style=width:100%; > Login: "+u+"</div>";
342   - ins += "</fieldset>";
343   - temp = $i(id);
344   - if(temp){
345   - temp.innerHTML = ins;
346   - for(i=0;i<n;i++){
347   - if(excluir === "principal" && botoes[i].link)
348   - {botoes[i].link = "html/"+botoes[i].link;}
349   - if(botoes[i].id !== excluir){
350   - botao = new YAHOO.widget.Button(botoes[i].id);
351   - botao.addClass("abrir150");
352   - if(botoes[i].link){
353   - eval('$i("'+botoes[i].id+'-button'+'").onclick = function(){window.location = \''+botoes[i].link+'\';}');
354   - }
355   - else{
356   - eval('$i("'+botoes[i].id+'-button'+'").onclick = function(){'+botoes[i].js+';}');
357   - }
358   -
359   - }
360   - }
361   - }
362   - try{
363   - i3GEO.login.recarrega = true;
364   - }
365   - catch(e){ }
366   - //temp.style.border = "solid 1px gray";
367   - //temp.style.padding = "10px";
368   -}
369   -function cabecalhoGeral(id,excluir,prefixo){
370   - if(!prefixo){
371   - prefixo = "";
372   - }
373   - var botao,i,n,temp,
374   - ins = "<fieldset><legend>" + $trad("atalhos",i3GEOadmin.core.dicionario) + "</legend>",
375   - u = i3GEO.util.pegaCookie("i3geousuarionome"),
376   - botoes = [
377   - {id:"principal",titulo:$trad("inicio",i3GEOadmin.core.dicionario),link:prefixo+"../principal.html"},
378   - {id:"menus",titulo:$trad("menus",i3GEOadmin.core.dicionario),link:prefixo+"menus.html"},
379   - {id:"arvore",titulo:$trad("arvore",i3GEOadmin.core.dicionario),link:prefixo+"arvore.html"},
380   - {id:"editormapfile",titulo:$trad("mapfiles",i3GEOadmin.core.dicionario),link:prefixo+"editormapfile.html"},
381   - {id:"login",titulo:$trad("login",i3GEOadmin.core.dicionario),js:"i3GEO.login.dialogo.abreLogin()"}
382   - ];
383   - n = botoes.length;
384   - for(i=0;i<n;i++){
385   - if(botoes[i].id !== excluir){
386   - ins += '<input type=button id="'+botoes[i].id+'" value="'+botoes[i].titulo+'" />';
387   - }
388   - }
389   - if(!u){
390   - u = "-";
391   - }
392   - ins += "<div id='i3GEONomeLogin' style=width:100%; > Login: "+u+"</div>";
393   - ins += "</fieldset>";
394   - temp = $i(id);
395   - temp.innerHTML = ins;
396   - for(i=0;i<n;i++){
397   - if(excluir === "principal" && botoes[i].link)
398   - {botoes[i].link = "html/"+botoes[i].link;}
399   - if(botoes[i].id !== excluir){
400   - botao = new YAHOO.widget.Button(botoes[i].id);
401   - botao.addClass("abrir150");
402   - if(botoes[i].link){
403   - eval('$i("'+botoes[i].id+'-button'+'").onclick = function(){window.location = \''+botoes[i].link+'\';}');
404   - }
405   - else{
406   - eval('$i("'+botoes[i].id+'-button'+'").onclick = function(){'+botoes[i].js+';}');
407   - }
408   -
409   - }
410   - }
411   - try{
412   - i3GEO.login.recarrega = true;
413   - }
414   - catch(e){ }
415   -}
416   -/*
417   -Function: core_arvore
418   -
419   -Cria uma arvore com base em um objeto contendo as propriedades.
420   -
421   -No objeto com as propriedades, se "url" for igual a "", sera incluido o texto original definido em "text".
422   -
423   -Parametros:
424   -
425   -titulo - {String} cabecalho da arvore
426   -
427   -onde - {String} nome do id doelemento que contera a arvore
428   -
429   -obj - {Object} objeto contendo os parametros, exemplo
430   -
431   - g_listaPropriedades = {
432   -
433   - "propriedades": [
434   -
435   - { text: "p2", url: "javascript:tipoimagem()" }
436   -
437   - ]}
438   -
439   - */
440   -function core_arvore(titulo,onde,obj){
441   - var arvore,root,tempNode,d,c,i,linha,conteudo,j,temaNode;
442   - if(!$i(onde)){return;}
443   - arvore = new YAHOO.widget.TreeView(onde);
444   - root = arvore.getRoot();
445   - try{
446   - tempNode = new YAHOO.widget.TextNode('', root, false);
447   - tempNode.isLeaf = false;
448   - tempNode.enableHighlight = false;
449   - }
450   - catch(e){
451   - if(typeof(console) !== 'undefined'){console.error(e);}
452   - }
453   - titulo = "<table><tr><td><b>"+titulo+"</b></td><td></td></tr></table>";
454   - d = {html:titulo};
455   - tempNode = new YAHOO.widget.HTMLNode(d, root, true,true);
456   - tempNode.enableHighlight = false;
457   - c = obj.propriedades.length;
458   - for (i=0, j=c; i<j; i++){
459   - linha = obj.propriedades[i];
460   - if(linha.url !== "")
461   - {conteudo = "<a href='#' onclick='"+linha.url+"'>"+linha.text+"</a>";}
462   - else
463   - {conteudo = linha.text;}
464   - d = {html:conteudo};
465   - temaNode = new YAHOO.widget.HTMLNode(d, tempNode, false,true);
466   - temaNode.enableHighlight = false;
467   - }
468   - arvore.collapseAll();
469   - arvore.draw();
470   -}
471   -/*
472   -Function: core_movimentaNo
473   -
474   -Movimenta um no para cima ou para baixo na &aacute;rvore.
475   -
476   -Essa fun&ccedil;&atilde;o utiliza uma &aacute;rvore que deve estar armazenada no objeto tree
477   -
478   -Parameters:
479   -
480   -tipo - sobe|desce
481   -
482   -no - objeto no que ser&aacute; movimentado
483   -
484   -Return:
485   -
486   -true|false - se o movimento ocorreu
487   - */
488   -function core_movimentaNo(tipo,no)
489   -{
490   - var movimenta = false;
491   - if(tipo == "sobe")
492   - {
493   - var noanterior = no.previousSibling;
494   - if(noanterior)
495   - {
496   - if(noanterior.previousSibling && noanterior.data.tipo != "etiqueta")
497   - {
498   - tree.popNode(no);
499   - no.insertBefore(noanterior);
500   - tree.draw();
501   - movimenta = true;
502   - }
503   - }
504   - }
505   - if(tipo == "desce")
506   - {
507   - var noseguinte = no.nextSibling;
508   - if(noseguinte)
509   - {
510   - tree.popNode(no);
511   - no.insertAfter(noseguinte);
512   - tree.draw();
513   - movimenta = true;
514   - }
515   - }
516   - return movimenta;
517   -}
518   -/*
519   -Function: core_handleSuccess
520   -
521   -Processa o retorno da chamada em ajax quando tiver sucesso. Esta &eacute; uma
522   -fun&ccedil;&atilde;o gen&eacute;rica, pouco usada.
523   -
524   -Parameters:
525   -
526   -o - string retornada pelo ajax
527   - */
528   -function core_handleSuccess(o)
529   -{
530   - //div onde ser&aacute; mostrado o log
531   - if(!$i('logajax'))
532   - {document.body.innerHTML += "<div id=logajax ></div>";}
533   - log = $i('logajax');
534   - YAHOO.log("The success handler was called. tId: " + o.tId + ".", "info", "example");
535   - if(o.responseText !== undefined)
536   - {
537   - log.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
538   - log.innerHTML += "<li>HTTP status: " + o.status + "</li>";
539   - log.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
540   - log.innerHTML += "<li>HTTP headers: <ul>" + o.getAllResponseHeaders + "</ul></li>";
541   - log.innerHTML += "<li>Server response: " + o.responseText + "</li>";
542   - log.innerHTML += "<li>Argument object: Object ( [foo] => " + o.argument.foo + " [bar] => " + o.argument.bar +" )</li>";
543   - }
544   -}
545   -/*
546   -Function: core_handleFailure
547   -
548   -Processa o retorno da chamada em ajax quando tiver falhado.
549   -
550   -Parameters:
551   -
552   -o - string retornada pelo ajax
553   - */
554   -function core_handleFailure(o,texto)
555   -{
556   - //div onde ser&aacute; mostrado o log
557   - //alert(texto)
558   - if(!$i('logajax'))
559   - {return;}
560   - log = $i('logajax');
561   - //YAHOO.log("The failure handler was called. tId: " + o.tId + ".", "info", "example");
562   - if(o.responseText !== undefined)
563   - {
564   - if(o.statusText != "OK"){
565   - log.innerHTML = "<ul><li>Transaction id: " + o.tId + "</li>";
566   - log.innerHTML += "<li>HTTP status: " + o.status + "</li>";
567   - log.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
568   - log.innerHTML += "<li>PHP message: " + texto + "</li></ul>";
569   - }
570   - }
571   - if (!YAHOO.carregando.container.wait)
572   - {
573   - YAHOO.carregando.container.wait = new YAHOO.widget.Panel("wait",{width: "240px",fixedcenter: true,close: true,draggable: false,zindex:4,modal: true,visible: false});
574   - YAHOO.carregando.container.wait.setHeader("Aguarde...");
575   - YAHOO.carregando.container.wait.render(document.body);
576   - }
577   - else
578   - {YAHOO.carregando.container.wait.setBody(log.innerHTML);}
579   -}
580   -/*
581   -Function: core_makeRequest
582   -
583   -Executa uma chamada em ajax.
584   -
585   -Parameters:
586   -
587   -sUrl - url que ser&aacute; executada
588   -
589   -callback - fun&ccedil;&atilde;o que processar&aacute; o retorno
590   -
591   -tipo - GET ou POST
592   -
593   -postpar - parametros quando o tipo for post
594   - */
595   -function core_makeRequest(sUrl,callback,tipo,postpar)
596   -{
597   - sUrl = escape(sUrl);
598   - re = new RegExp("%3F", "g");
599   - sUrl = sUrl.replace(re,'?');
600   - re = new RegExp("%3D", "g");
601   - sUrl = sUrl.replace(re,'=');
602   - re = new RegExp("%26", "g");
603   - sUrl = sUrl.replace(re,'&');
604   -
605   - re = new RegExp("%3A", "g");
606   - sUrl = sUrl.replace(re,':');
607   -
608   - if(arguments.length == 2)
609   - {tipo = "GET";}
610   - if(postpar){
611   - //YAHOO.util.Connect.setDefaultPostHeader('application/json;charset=ISO-8859-1');
612   - YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postpar);
613   - }
614   - else{
615   - YAHOO.util.Connect.asyncRequest(tipo, sUrl, callback);
616   - }
617   -}
618   -/*
619   -Function: core_carregando
620   -
621   -Mostra uma janela de aguarde
622   -
623   -Parameters:
624   -
625   -tipo - ativa|desativa|string com uma mensagem
626   - */
627   -function core_carregando(tipo)
628   -{
629   -}
630   -/*
631   -Function: core_dialogoContinua
632   -
633   -Mostra um di&aacute;logo do tipo sim n&atilde;o
634   -
635   -Parameters:
636   -
637   -handleYes - fun&ccedil;&atilde;o para sim
638   -
639   -handleNo - fun&ccedil;&atilde;o para n&atilde;o
640   -
641   -mensagem - mensagem do di&aacute;logo
642   -
643   -largura - largura do di&aacute;logo em px
644   - */
645   -function core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho)
646   -{
647   - if(!cabecalho || cabecalho === ""){
648   - cabecalho = "Tem certeza?";
649   - }
650   - // Instantiate the Dialog
651   - YAHOO.namespace("continua.container");
652   - YAHOO.continua.container.simpledialog1 =
653   - new YAHOO.widget.SimpleDialog("simpledialog1",
654   - { width: largura+"px",
655   - fixedcenter: true,
656   - visible: false,
657   - draggable: false,
658   - close: true,
659   - text: mensagem,
660   - icon: YAHOO.widget.SimpleDialog.ICON_HELP,
661   - modal: true,
662   - constraintoviewport: true,
663   - buttons: [ { text:"Sim", handler:handleYes, isDefault:true },
664   - { text:"N&atilde;o", handler:handleNo } ]
665   - } );
666   - YAHOO.continua.container.simpledialog1.setHeader(cabecalho);
667   - YAHOO.continua.container.simpledialog1.render(document.body);
668   - YAHOO.continua.container.simpledialog1.show();
669   -}
670   -/*
671   -Function: core_dialogoPergunta
672   -
673   -Mostra um di&aacute;logo do tipo sim n&atilde;o com uma pergunta
674   -
675   -Parameters:
676   -
677   -handleYes - fun&ccedil;&atilde;o para sim
678   -
679   -handleNo - fun&ccedil;&atilde;o para n&atilde;o
680   -
681   -mensagem - mensagem do di&aacute;logo
682   -
683   -largura - largura do di&aacute;logo em px
684   - */
685   -function core_dialogoPergunta(handleYes,handleNo,mensagem,largura)
686   -{
687   - // Instantiate the Dialog
688   - YAHOO.namespace("continua.container");
689   - YAHOO.continua.container.simpledialog1 =
690   - new YAHOO.widget.SimpleDialog("simpledialog1",
691   - { width: largura+"px",
692   - fixedcenter: true,
693   - visible: false,
694   - draggable: false,
695   - close: true,
696   - text: mensagem,
697   - icon: "",
698   - modal: true,
699   - constraintoviewport: true,
700   - buttons: [ { text:"Continua", handler:handleYes, isDefault:true },
701   - { text:"Cancela", handler:handleNo } ]
702   - } );
703   - //YAHOO.continua.container.simpledialog1.setHeader("Tem certeza?");
704   - YAHOO.continua.container.simpledialog1.render(document.body);
705   - YAHOO.continua.container.simpledialog1.show();
706   -}
707   -/*
708   -Function: core_ativaPainelAjuda
709   -
710   -Parameters:
711   -
712   -id - id do elemento que receber&aacute; o painel
713   -
714   -botao - id do elemento que dever&aacute; ser lcicado para abrir o painel
715   - */
716   -function core_ativaPainelAjuda(id,botao)
717   -{
718   - $i(id).style.display = "block";
719   - if(!YAHOO.admin.container.panelAjuda)
720   - {
721   - YAHOO.admin.container.panelAjuda = new YAHOO.widget.Panel(id, { width:"350px", height:"200px",overflow:"auto", visible:false,constraintoviewport:true } );
722   - YAHOO.admin.container.panelAjuda.render();
723   - }
724   - if(arguments.length == 2)
725   - YAHOO.util.Event.addListener(botao, "click", YAHOO.admin.container.panelAjuda.show, YAHOO.admin.container.panelAjuda, true);
726   - else
727   - YAHOO.admin.container.panelAjuda.show();
728   -}
729   -/*
730   -Function: core_ativaPainelTexto
731   -
732   -Parameters:
733   -
734   -id - id do elemento que receber&aacute; o painel
735   - */
736   -function core_ativaPainelTexto(id)
737   -{
738   - YAHOO.admin.container.panelTexto = new YAHOO.widget.Panel(id, { width:"350px", height:"200px",overflow:"auto", visible:false,constraintoviewport:true } );
739   - YAHOO.admin.container.panelTexto.render();
740   - YAHOO.admin.container.panelTexto.show();
741   -}
742   -/*
743   -function: core_pegaPerfis
744   -
745   -Pega a lista de perfis
746   -
747   -<PEGAPERFIS>
748   -
749   -Parameters:
750   -
751   -funcao - (opcional) string com o nome da funcao que ser&aacute; executada apos a chamada ajax ter tido sucesso
752   -
753   -Return
754   -
755   -$perfis - vari&aacute;vel global com o objeto perfis
756   -
757   -$perfisArray - array com a lista de perfis
758   - */
759   -function core_pegaPerfis(funcao)
760   -{
761   - if(arguments.length == 0)
762   - {funcao = "";}
763   - //pega a lista de perfis
764   - var sUrl = "../php/menutemas.php?funcao=pegaPerfis";
765   - var callback =
766   - {
767   - success:function(o)
768   - {
769   - try
770   - {
771   - $perfis = YAHOO.lang.JSON.parse(o.responseText);
772   - $perfisArray = new Array();
773   - for (var i=0;i<$perfis.length;i++)
774   - {$perfisArray.push($perfis[i].perfil);}
775   - if(funcao != "")
776   - eval(funcao);
777   - }
778   - catch(e){core_handleFailure(o,o.responseText);}
779   - },
780   - failure:core_handleFailure,
781   - argument: { foo:"foo", bar:"bar" }
782   - };
783   - core_makeRequest(sUrl,callback);
784   -}
785   -/*
786   -function: core_pegaMapfiles
787   -
788   -Pega a lista de mapfiles
789   -
790   -<LISTAMAPSTEMAS>
791   -
792   -Parameters:
793   -
794   -funcaoM - (opcional) nome da funcao que ser&aacute; executada ao terminar a busca pelos dados
795   -
796   -letra - (opcional) letra inicial utilizada para filtrar a lista
797   -
798   -filtro - (opcional) string com o filtro, por exemplo, "'download_tema' = 'SIM'"
799   -
800   -checaNomes - (0pcional) bate o nome do mapfile (tema) com o registro no banco
801   -
802   -checaNames - (opcional) bate o nome do mapfile com o nome do layer
803   - */
804   -function core_pegaMapfiles(funcaoM,letra,filtro,checaNomes,checaNames)
805   -{
806   - if(!letra){
807   - letra = "";
808   - }
809   - if(!filtro){
810   - filtro = "";
811   - }
812   - if(!funcaoM){
813   - funcaoM = "";
814   - }
815   - if(!checaNomes){
816   - checaNomes = "false";
817   - }
818   - if(!checaNames){
819   - checaNames = "false";
820   - }
821   - if($i("iniciaisLetras")){
822   - $i("iniciaisLetras").value = letra;
823   - }
824   - var sUrl = "../php/menutemas.php?funcao=listaMapsTemas&letra="+letra+"&filtro="+filtro+"&checaNomes="+checaNomes+"&checaNames="+checaNames;
825   - var callbackM =
826   - {
827   - success:function(o)
828   - {
829   - try
830   - {
831   - $mapfiles = YAHOO.lang.JSON.parse(o.responseText);
832   - if(funcaoM != "")
833   - eval(funcaoM);
834   - }
835   - catch(e){core_handleFailure(o,o.responseText);}
836   - },
837   - failure:core_handleFailure,
838   - argument: { foo:"foo", bar:"bar" }
839   - };
840   - core_makeRequest(sUrl,callbackM);
841   -}
842   -/*
843   -Function: core_comboMapfiles
844   -
845   -Cria um combo para escolha do mapfile
846   -
847   -Parameters:
848   -
849   -onde - id do elemento que receber&aacute; o combo
850   -
851   -id - id do combo que ser&aacute; criado
852   -
853   -marcar - valor que ser&aacute; marcado como selecionado
854   -
855   -funcao - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada no evento onchange
856   -
857   -recarrega {booblean} - for&ccedil;a recarregar o combo de mapfiles
858   - */
859   -function core_comboMapfiles(onde,id,marcar,funcao,recarrega)
860   -{
861   - if(arguments.length == 3)
862   - {funcao = "";}
863   - if(!recarrega)
864   - {recarrega = false;}
865   - if($mapfiles == "" || recarrega === true)
866   - {
867   - core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')");
868   - }
869   - else
870   - {
871   - if (funcao != "")
872   - {funcao = "onchange='"+funcao+"'";}
873   - ins = "<div class='styled-select'><select id='"+id+"' "+funcao+" >";
874   - ins += core_comboObjeto($mapfiles,"codigo","codigo",marcar);
875   - ins += "</select></div>";
876   - $i(onde).innerHTML = ins;
877   - }
878   -}
879   -/*
880   -Function: core_comboPerfis
881   -
882   -Cria um combo para escolha de perfil
883   -
884   -Parameters:
885   -
886   -onde - id do elemento que receber&aacute; o combo
887   -
888   -id - id do combo que ser&aacute; criado
889   -
890   -marcar - valor que ser&aacute; marcado como selecionado
891   -
892   -funcao - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada no evento onchange
893   - */
894   -function core_comboPerfis(onde,id,marcar,funcao)
895   -{
896   - if(arguments.length == 3)
897   - {funcao = "";}
898   - if($perfis == "")
899   - {
900   - core_pegaPerfis("core_comboPerfis('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')");
901   - }
902   - else
903   - {
904   - if (funcao != "")
905   - {funcao = "onchange='"+funcao+"'";}
906   - ins = "<div class='styled-select150'><select id='"+id+"' "+funcao+" >";
907   - ins += core_comboObjeto($perfis,"perfil","perfil",marcar);
908   - ins += "</select></div>";
909   - $i(onde).innerHTML = ins;
910   - }
911   -}
912   -/*
913   -Function: core_comboPranchas
914   -
915   -Cria um combo para escolha de pranchas de um atlas
916   -
917   -<PEGAPRANCHAS>
918   -
919   -Parameters:
920   -
921   -onde - id do elemento que receber&aacute; o combo
922   -
923   -id - id do combo que ser&aacute; criado
924   -
925   -marcar - valor que ser&aacute; marcado como selecionado
926   -
927   -funcao - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada no evento onchange
928   - */
929   -function core_comboPranchas(onde,id,marcar,funcao,id_atlas)
930   -{
931   - var sUrl = "../php/atlas.php?funcao=pegaPranchas&id_atlas="+id_atlas;
932   - var callback =
933   - {
934   - success:function(o)
935   - {
936   - try
937   - {
938   - var valores = YAHOO.lang.JSON.parse(o.responseText);
939   - if(arguments.length == 3)
940   - {funcao = "";}
941   - if (funcao != "")
942   - {funcao = "onchange='"+funcao+"'";}
943   - ins = "<div class='styled-select150'><select id='"+id+"' "+funcao+" >";
944   - ins += core_comboObjeto(valores,"id_prancha","titulo_prancha",marcar);
945   - ins += "</select></div>";
946   - $i(onde).innerHTML = ins;
947   - }
948   - catch(e){core_handleFailure(e,o.responseText);}
949   - },
950   - failure:core_handleFailure,
951   - argument: { foo:"foo", bar:"bar" }
952   - };
953   - core_makeRequest(sUrl,callback);
954   -}
955   -/*
956   -Function: core_comboGrupos
957   -
958   -Cria um combo para escolha de um grupo
959   -
960   -<PEGAGRUPOS>
961   -
962   -Parameters:
963   -
964   -onde - id do elemento que receber&aacute; o combo
965   -
966   -id - id do combo que ser&aacute; criado
967   -
968   -marcar - valor que ser&aacute; marcado como selecionado
969   -
970   -funcao - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada no evento onchange
971   - */
972   -function core_comboGrupos(onde,id,marcar,funcao)
973   -{
974   - var sUrl = "../php/menutemas.php?funcao=pegaGrupos";
975   - var callback =
976   - {
977   - success:function(o)
978   - {
979   - try
980   - {
981   - var valores = YAHOO.lang.JSON.parse(o.responseText);
982   - if(arguments.length == 3)
983   - {funcao = "";}
984   - if (funcao != "")
985   - {funcao = "onchange='"+funcao+"'";}
986   - ins = "<select size=6 style='width:370px;font-size:12px; margin: 0px;' id='"+id+"' "+funcao+" >";
987   - ins += core_comboObjeto(valores,"id_grupo","nome_grupo",marcar);
988   - ins += "</select>";
989   - $i(onde).innerHTML = ins;
990   - }
991   - catch(e){core_handleFailure(e,o.responseText);}
992   - },
993   - failure:core_handleFailure,
994   - argument: { foo:"foo", bar:"bar" }
995   - };
996   - core_makeRequest(sUrl,callback);
997   -}
998   -/*
999   -Function: core_comboSubGrupos
1000   -
1001   -Cria um combo para escolha de um sub-grupo
1002   -
1003   -<PEGASUBGRUPOS>
1004   -
1005   -Parameters:
1006   -
1007   -onde - id do elemento que receber&aacute; o combo
1008   -
1009   -id - id do combo que ser&aacute; criado
1010   -
1011   -marcar - valor que ser&aacute; marcado como selecionado
1012   -
1013   -funcao - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada no evento onchange
1014   - */
1015   -function core_comboSubGrupos(onde,id,marcar,funcao)
1016   -{
1017   - var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos";
1018   - var callback =
1019   - {
1020   - success:function(o)
1021   - {
1022   - try
1023   - {
1024   - var valores = YAHOO.lang.JSON.parse(o.responseText);
1025   - if(arguments.length == 3)
1026   - {funcao = "";}
1027   - if (funcao != "")
1028   - {funcao = "onchange='"+funcao+"'";}
1029   - ins = "<select size=6 style='width:370px; font-size:12px; margin: 0px;' id='"+id+"' "+funcao+" >";
1030   - ins += core_comboObjeto(valores,"id_subgrupo","nome_subgrupo",marcar);
1031   - ins += "</select>";
1032   - $i(onde).innerHTML = ins;
1033   - }
1034   - catch(e){core_handleFailure(e,o.responseText);}
1035   - },
1036   - failure:core_handleFailure,
1037   - argument: { foo:"foo", bar:"bar" }
1038   - };
1039   - core_makeRequest(sUrl,callback);
1040   -}
1041   -/*
1042   -Function: core_comboTemas
1043   -
1044   -Cria um combo para escolha de um tema
1045   -
1046   -<PEGATEMAS2>
1047   -
1048   -Parameters:
1049   -
1050   -onde - id do elemento que receber&aacute; o combo
1051   -
1052   -id - id do combo que ser&aacute; criado
1053   -
1054   -marcar - valor que ser&aacute; marcado como selecionado
1055   -
1056   -funcao - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada no evento onchange
1057   - */
1058   -function core_comboTemas(onde,id,marcar,funcao)
1059   -{
1060   - var sUrl = "../php/menutemas.php?funcao=pegaTemas2";
1061   - var callback =
1062   - {
1063   - success:function(o)
1064   - {
1065   - try
1066   - {
1067   - var valores = YAHOO.lang.JSON.parse(o.responseText);
1068   - if(arguments.length == 3)
1069   - {funcao = "";}
1070   - if (funcao != "")
1071   - {funcao = "onchange='"+funcao+"'";}
1072   - ins = "<select size=6 style='width:355px;font-size:12px; margin: 0px;' id='"+id+"' "+funcao+" >";
1073   - ins += core_comboObjeto(valores,"id_tema","nome_tema",marcar,"codigo_tema");
1074   - ins += "</select>";
1075   - $i(onde).innerHTML = ins;
1076   - }
1077   - catch(e){core_handleFailure(e,o.responseText);}
1078   - },
1079   - failure:core_handleFailure,
1080   - argument: { foo:"foo", bar:"bar" }
1081   - };
1082   - core_makeRequest(sUrl,callback);
1083   -}
1084   -
1085   -/*
1086   -function: core_pegaTags
1087   -
1088   -Pega a lista de tags
1089   -
1090   -<PEGATAGS>
1091   -
1092   -Parameters:
1093   -
1094   -funcao - (opcional) nome da funcao que ser&aacute; executada ao terminar a busca pelos dados
1095   - */
1096   -function core_pegaTags(funcao)
1097   -{
1098   - if(arguments.length == 0)
1099   - {funcao = "";}
1100   - var sUrl = "../php/menutemas.php?funcao=pegaTags";
1101   - var callback =
1102   - {
1103   - success:function(o)
1104   - {
1105   - try
1106   - {
1107   - $tags = YAHOO.lang.JSON.parse(o.responseText);
1108   - if($tags == ""){$tags = " ";}
1109   - if(funcao != "")
1110   - eval(funcao);
1111   - }
1112   - catch(e){core_handleFailure(e,o.responseText);}
1113   - },
1114   - failure:core_handleFailure,
1115   - argument: { foo:"foo", bar:"bar" }
1116   - };
1117   - core_makeRequest(sUrl,callback);
1118   -}
1119   -/*
1120   -Function: core_comboTags
1121   -
1122   -Cria um combo para escolha de tags
1123   -
1124   -Parameters:
1125   -
1126   -onde - id do elemento que receber&aacute; o combo
1127   -
1128   -id - id do combo que ser&aacute; criado
1129   -
1130   -marcar - valor que ser&aacute; marcado como selecionado
1131   -
1132   -change - nome da fun&ccedil;&atilde;o do evento onchange
1133   - */
1134   -function core_comboTags(onde,id,change)
1135   -{
1136   - if($tags == "")
1137   - {
1138   - core_pegaTags("core_comboTags('"+onde+"','"+id+"','"+change+"')");
1139   - }
1140   - else
1141   - {
1142   - ins = "<div class='styled-select'><select onchange=\""+change+"(this.value)\" id='"+id+"' >";
1143   - ins += core_comboObjeto($tags,"nome","nome","");
1144   - ins += "</select></div>";
1145   - $i(onde).innerHTML = ins;
1146   - }
1147   -}
1148   -/*
1149   -Function: gera uma janela flutuante com op&ccedil;&otilde;es de escolha baseadas em checkbox
1150   -
1151   -Parameters:
1152   -
1153   -valores - array com os valores de cada checkbox
1154   -
1155   -textos - array com os nomes de cada checkbox
1156   -
1157   -selecionados - array com os valores marcados
1158   -
1159   -target - objeto para receber o resultado
1160   -
1161   -record - objeto record (utilize "" para escapar)
1162   -
1163   -key - chave (nome do item) (utilize "" para escapar)
1164   -
1165   -unico - sim|nao indicando se apenas um pode ser escolhido
1166   -
1167   -funcaoFinal - (opcional) funcao que sera executada no final do processo
1168   - */
1169   -function core_menuCheckBox(valores,textos,selecionados,target,record,key,unico,funcaoFinal){
1170   - if(!unico){
1171   - unico = "nao";
1172   - }
1173   - function on_menuCheckBoxChange(p_oEvent){
1174   - var cks,i,
1175   - ins = [],
1176   - status = "OK";
1177   - if(p_oEvent && p_oEvent.newValue){
1178   - status = p_oEvent.newValue.get("value");
1179   - }
1180   - if(status == "OK") {
1181   - cks = $i("core_menuCK_bd").getElementsByTagName("input");
1182   - ins = [];
1183   - for (i=0;i<cks.length;i++){
1184   - if(cks[i].checked){
1185   - ins.push(cks[i].value);
1186   - }
1187   - }
1188   - if(record && record != ""){
1189   - target.innerHTML = "<pre ><p>"+ins.toString()+"</pre>";
1190   - record.setData(key,ins.toString());
1191   - }
1192   - else{
1193   - target.value = ins.toString();
1194   - }
1195   - }
1196   - YAHOO.admin.container.panelCK.destroy();
1197   - YAHOO.admin.container.panelCK = null;
1198   - if(funcaoFinal){
1199   - funcaoFinal.call();
1200   - }
1201   - };
1202   - var novoel,ndiv,og_core,onde,ins,i,novoCK,ck,j;
1203   - if(!YAHOO.admin.container.panelCK){
1204   - novoel = document.createElement("div");
1205   - novoel.id = "core_menuCK";
1206   - ndiv = document.createElement("div");
1207   - ndiv.className= "yui-dt-editor";
1208   - ndiv.style.backgroundColor = "white";
1209   - ndiv.style.height = "144px";
1210   - ndiv.style.width = "100%";
1211   - ndiv.style.overflow = "auto";
1212   - ndiv.innerHTML = "<div id='core_botoesCabecalho' ></div><br>" +
1213   - "<div id='core_menuCK_bd' style='background:white;text-align:left;border:1px solid gray'></div>";
1214   - novoel.appendChild(ndiv);
1215   - document.body.appendChild(novoel);
1216   - og_core = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name:"okcancel_checkbox_id", container:"core_botoesCabecalho" });
1217   - og_core.addButtons([
1218   - { label: "OK", value: "OK", checked: false},
1219   - { label: "Fecha", value: "CANCEL", checked: false }
1220   - ]);
1221   - og_core.on("checkedButtonChange", on_menuCheckBoxChange);
1222   - YAHOO.admin.container.panelCK = new YAHOO.widget.Panel("core_menuCK", { draggable:false,modal:false,zindex:"100",close:false,underlay:false,width:"200px", height:"158px",overflow:"auto", visible:false,constraintoviewport:false } );
1223   - YAHOO.admin.container.panelCK.render();
1224   - }
1225   - onde = $i("core_menuCK_bd");
1226   - ins = [];
1227   - onde.innerHTML = "";
1228   - for (i=0;i<valores.length;i++){
1229   - novoCK = document.createElement("div");
1230   - novoCK.onclick = on_menuCheckBoxChange;
1231   - ck = "";
1232   - for(j=0;j<selecionados.length;j++){
1233   - if(selecionados[j] == valores[i])
1234   - ck = "CHECKED";
1235   - }
1236   - if(unico === "nao"){
1237   - ins.push("<input style='cursor:pointer;' type=checkbox id='CK_"+valores[i]+"' value='"+valores[i]+"' "+ck+" />"+textos[i]+"<br>");
1238   - }
1239   - else{
1240   - ins.push("<input style='position:relative;top:2px;cursor:pointer;' type=radio name=escolha_core_menuCheckBox id='CK_"+valores[i]+"' value='"+valores[i]+"' "+ck+" />"+textos[i]+"<br>");
1241   - }
1242   - }
1243   - if(valores.length > 0){
1244   - ins.push("<br>");
1245   - novoCK.innerHTML = ins.join(" ");
1246   - novoCK.style.width = "100%";
1247   - onde.appendChild(novoCK);
1248   - }
1249   - YAHOO.admin.container.panelCK.moveTo(YAHOO.util.Dom.getX(target),YAHOO.util.Dom.getY(target));
1250   - YAHOO.admin.container.panelCK.show();
1251   - $i("core_menuCK_bd").getElementsByTagName("div")[0].style.textAlign = "left";
1252   -}
1253   -/*
1254   -Function: core_combosimnao
1255   -
1256   -Retorna os itens option de um combo sim nao
1257   - */
1258   -function core_combosimnao(marcar)
1259   -{
1260   - var ins = "<option value='' ";
1261   - if (marcar == ""){ins += "selected";}
1262   - ins += ">---</option>";
1263   - ins += "<option value='SIM' ";
1264   - if (marcar == "sim" || marcar == "SIM"){ins += "selected";}
1265   - ins += ">sim</option>";
1266   - ins += "<option value='NAO' ";
1267   - if (marcar == "nao" || marcar == "NAO"){ins += "selected";}
1268   - ins += ">nao</option>";
1269   - return(ins);
1270   -}
1271   -/*
1272   -Function: core_comboObjeto
1273   -
1274   -Retorna os itens option de um combo baseado em um objeto json
1275   - */
1276   -function core_comboObjeto(obj,valor,texto,marcar,texto2,texto3)
1277   -{
1278   - var ins = "<option value='' ";
1279   - var v;
1280   - var t;
1281   - if(!marcar && marcar != ""){
1282   - marcar = 0;
1283   - }
1284   - ins += ">---</option>";
1285   - for (var k=0;k<obj.length;k++){
1286   - if(valor != ""){
1287   - v = obj[k][valor];
1288   - }
1289   - else{
1290   - v = obj[k];
1291   - }
1292   - if(texto != ""){
1293   - t = obj[k][texto];
1294   - }
1295   - else{
1296   - t = obj[k];
1297   - }
1298   - if(texto2){
1299   - t += " ("+eval("obj[k]."+texto2)+")";
1300   - }
1301   - if(texto3){
1302   - t += " ("+eval("obj[k]."+texto3)+")";
1303   - }
1304   - ins += "<option value='"+v+"' ";
1305   - if (marcar == v){
1306   - ins += "selected";
1307   - }
1308   - ins += " title='"+t+"' >"+t+"</option>";
1309   - }
1310   - return(ins);
1311   -}
1312   -/*
1313   -Function: core_geraLinhas
1314   -
1315   -Gera campos de formul&aacute;rio
1316   -
1317   -Parameters:
1318   -
1319   -dados - objeto no formato {"linhas":[{titulo:"Nome do tema:",size:"50",id:"Enome_tema",value:i.nome_tema,tipo:"text",div:""}]}
1320   - */
1321   -function core_geraLinhas(dados)
1322   -{
1323   - var nparam = dados.linhas.length;
1324   - var contaParam = 0;
1325   - var resultado = "";
1326   - core_geralinhasEscondeAjuda = function(id){
1327   - var a = $i(id+"_ajuda"),
1328   - i = $i(id+"_imgajuda");
1329   -
1330   - if(a.style.display == "block"){
1331   - a.style.display = "none";
1332   - i. src = "../../imagens/oxygen/16x16/help-about.png";
1333   - }
1334   - else{
1335   - a.style.display = "block";
1336   - i. src = "../../imagens/oxygen/16x16/help-about.png";
1337   - }
1338   - };
1339   - do{
1340   - var p = dados.linhas[contaParam];
1341   - if(p.tipo == "text" || p.tipo == "cor" || p.tipo == "textarea"){
1342   - if(!p.size){
1343   - p.size = "50";
1344   - }
1345   - if(p.ajuda){
1346   - var idajuda;
1347   - if(p.id !== ""){
1348   - idajuda = p.id + contaParam;
1349   - }
1350   - else{
1351   - idajuda = "a"+parseInt(255*(Math.random()),10);
1352   - }
1353   - resultado += "<div onclick='core_geralinhasEscondeAjuda(\""+idajuda+"\")' style='margin-bottom:6px;cursor:pointer' title='ajuda' ><p><img style='position:relative;top:3px;' id='"+idajuda+"_imgajuda' src='../../imagens/oxygen/16x16/help-about.png' >"+p.titulo+"</p></div>";
1354   - resultado += "<div id='"+idajuda+"_ajuda' style=display:none >"+p.ajuda+"</div>";
1355   - }
1356   - else{
1357   - resultado += "<div><p>"+p.titulo+"</p>";
1358   - }
1359   - if(p.texto){
1360   - resultado += "<span style=color:gray ><p>"+p.texto+"</p></span>";
1361   - }
1362   - if(p.id != ""){
1363   - if(!p.value){
1364   - p.value = "";
1365   - }
1366   - if(p.tipo == "textarea"){
1367   - resultado += "<textarea style=width:90%; id="+p.id+" >"+p.value+"</textarea>";
1368   - }
1369   - else{
1370   - if(p.tipo == "cor"){
1371   - resultado += "<div class='i3geoForm i3geoFormSemIcone'><input type=text id="+p.id+" value=\""+p.value+"\" style='width:90%;'/>";
1372   - }
1373   - else{
1374   - resultado += "<div class='i3geoForm i3geoFormSemIcone'><input type=text id="+p.id+" value=\""+p.value+"\" />";
1375   - }
1376   - }
1377   - if(p.tipo == "cor"){
1378   - resultado += "&nbsp;<img class='lupaBuscar' src='../../imagens/aquarela.gif' style='cursor:pointer;' onclick='core_abreCor(\"\",\""+p.id+"\");' />";
1379   - }
1380   - resultado += "</div>";
1381   - }
1382   - if(p.div){
1383   - resultado += p.div;
1384   - }
1385   - resultado += "</div>";
1386   - }
1387   - contaParam++;
1388   - }
1389   - while(contaParam < nparam);
1390   - return(resultado);
1391   -}
1392   -/*
1393   -Function: core_ativaBotaoAdicionaLinha
1394   -
1395   -Ativa o bot&atilde;o que adiciona uma linha em uma tabela no banco de dados e na interface HTML
1396   -
1397   -Essa fun&ccedil;&atilde;o utiliza o objeto datatable que deve estar armazenado na vari&aacute;vel myDataTable
1398   -
1399   -Parameters:
1400   -
1401   -myDataTable - objeto dataTable do YUI
1402   -
1403   -sUrl - url com o programa que ser&aacute; executado no servidor
1404   -
1405   -idBotao - id do elemento com o bot&atilde;o
1406   -
1407   -nomeFuncao - nome da fun&ccedil;&atilde;o que ser&aacute; executada ao concluir a adi&ccedil;&atilde;o da linha
1408   - */
1409   -function core_ativaBotaoAdicionaLinha(sUrl,idBotao,nomeFuncao)
1410   -{
1411   - if(arguments.length == 1){
1412   - idBotao = "adiciona";
1413   - }
1414   - if(arguments.length < 3){
1415   - nomeFuncao = "";
1416   - }
1417   - var botao, adicionalinha = function(){
1418   - core_carregando("ativa");
1419   - core_carregando(" adicionando um novo registro");
1420   - var callback = {
1421   - success:function(o){
1422   - var texto = "";
1423   - try{
1424   - core_carregando("desativa");
1425   - if(nomeFuncao != ""){
1426   - if(YAHOO.lang.isFunction(nomeFuncao)){
1427   - nomeFuncao.call(o);
1428   - }
1429   - else{
1430   - eval(nomeFuncao+"()");
1431   - }
1432   - }
1433   - else{
1434   - texto = YAHOO.lang.JSON.parse(o.responseText)[0];
1435   - if(texto === ""){
1436   - texto = "Clique para editar";
1437   - }
1438   - myDataTable.addRow(texto,0);
1439   - }
1440   - }
1441   - catch(e){
1442   - core_handleFailure(e,o.responseText);
1443   - }
1444   - },
1445   - failure:core_handleFailure,
1446   - argument: { foo:"foo", bar:"bar" }
1447   - };
1448   - core_makeRequest(sUrl,callback);
1449   - };
1450   - //cria o bot&atilde;o de adi&ccedil;&atilde;o de um novo menu
1451   - botao = new YAHOO.widget.Button(idBotao,{ onclick: { fn: adicionalinha } });
1452   - botao.addClass("rodar");
1453   -}
1454   -/*
1455   -Function: core_pegaDados
1456   -
1457   -Busca dados no servidor via Ajax e executa uma fun&ccedil;&atilde;o de retorno com os daods
1458   -
1459   -Parameters:
1460   -
1461   -mensagem - mensagem que ser&aacute; mostrada na tela
1462   -
1463   -sUrl - url do programa que ser&aacute; executado no servidor
1464   -
1465   -funcaoRetorno - funcao que ser&aacute; executada ao terminar a busca pelos dados
1466   - */
1467   -function core_pegaDados(mensagem,sUrl,funcaoRetorno)
1468   -{
1469   - if("mensagem" != "")
1470   - core_carregando(mensagem);
1471   - var callback =
1472   - {
1473   - success:function(o)
1474   - {
1475   - try
1476   - {
1477   - if(funcaoRetorno != ""){
1478   - if(YAHOO.lang.isFunction(funcaoRetorno)){
1479   - funcaoRetorno.call("",YAHOO.lang.JSON.parse(o.responseText));
1480   - }
1481   - else{
1482   - eval(funcaoRetorno+"(YAHOO.lang.JSON.parse(o.responseText))");
1483   - }
1484   - }
1485   - core_carregando("desativa");
1486   - }
1487   - catch(e)
1488   - {
1489   - if("mensagem" != "")
1490   - {core_carregando("desativa");}
1491   - core_handleFailure(o,o.responseText);
1492   - }
1493   - },
1494   - failure:core_handleFailure,
1495   - argument: { foo:"foo", bar:"bar" }
1496   - };
1497   - core_makeRequest(sUrl,callback);
1498   -}
1499   -/*
1500   -Function: core_gravaLinha
1501   -
1502   -Grava um registro no banco de dados e atualiza o datatable atual
1503   -
1504   -Essa fun&ccedil;&atilde;o utiliza o objeto datatable que deve estar armazenado na vari&aacute;vel myDataTable
1505   -
1506   -Parameters:
1507   -
1508   -mensagem - mensagem que ser&aacute; mostrada na tela
1509   -
1510   -row - objeto row que foi clicado pelo usu&aacute;rio. Utilizado para se obter os daods do recordset
1511   -
1512   -sUrl - url do programa que ser&aacute; executado
1513   -
1514   -nomeFuncao - nome da funcao que sera executada apos gravar os dados (opcional)
1515   - */
1516   -function core_gravaLinha(mensagem,row,sUrl,nomeFuncao)
1517   -{
1518   - core_carregando("ativa");
1519   - core_carregando(mensagem);
1520   - if(arguments.length < 4)
1521   - nomeFuncao = "";
1522   - var callback =
1523   - {
1524   - success:function(o)
1525   - {
1526   - core_carregando("desativa");
1527   - var rec = myDataTable.getRecordSet().getRecord(row);
1528   - var linha = myDataTable.getTrEl(rec);
1529   - if(nomeFuncao != "")
1530   - {
1531   - eval(nomeFuncao+"()");
1532   - try
1533   - {myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]);}
1534   - catch(e){}
1535   - }
1536   - else
1537   - {
1538   - myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]);
1539   - }
1540   - linha.style.color = "";
1541   - linha.style.textDecoration = "none";
1542   - },
1543   - failure:core_handleFailure,
1544   - argument: { foo:"foo", bar:"bar" }
1545   - };
1546   - core_makeRequest(sUrl,callback);
1547   -}
1548   -/*
1549   -Function: core_excluiLinha
1550   -
1551   -Exclu&iacute; um registro no banco de dados e atualiza o datatable.
1552   -
1553   -Essa fun&ccedil;&atilde;o utiliza o objeto datatable que deve estar armazenado na vari&aacute;vel myDataTable
1554   -
1555   -Parameters:
1556   -
1557   -sUrl - url do programa que ser&aacute; executado
1558   -
1559   -row - objeto row de um datatable
1560   -
1561   -mensagem -
1562   - */
1563   -function core_excluiLinha(sUrl,row,mensagem,cabecalho,tabela)
1564   -{
1565   - if(!cabecalho){
1566   - cabecalho = "";
1567   - }
1568   - //dialogo
1569   - // Define various event handlers for Dialog
1570   - var handleYes = function()
1571   - {
1572   - this.hide();
1573   - core_carregando("ativa");
1574   - core_carregando(mensagem);
1575   - var callback =
1576   - {
1577   - success:function(o)
1578   - {
1579   - try
1580   - {
1581   - if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
1582   - {
1583   - core_carregando("<span style=color:red >N&atilde;o foi poss&iacute;vel excluir. Verifique se n&atilde;o existem outras tabelas com registros vinculados a este</span>");
1584   - setTimeout("core_carregando('desativa')",3000);
1585   - }
1586   - else
1587   - {
1588   - if(tabela){
1589   - tabela.deleteRow(row);
1590   - }
1591   - else{
1592   - myDataTable.deleteRow(row);
1593   - }
1594   - core_carregando("desativa");
1595   - }
1596   - }
1597   - catch(e){core_handleFailure(o,o.responseText);}
1598   - },
1599   - failure:core_handleFailure,
1600   - argument: { foo:"foo", bar:"bar" }
1601   - };
1602   - core_makeRequest(sUrl,callback);
1603   - };
1604   - var handleNo = function(){
1605   - this.hide();
1606   - };
1607   - var mensagem = "Exclui o registro?";
1608   - var largura = "300";
1609   - core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho);
1610   -}
1611   -/*
1612   -Function: core_excluiNoTree
1613   -
1614   -Exclu&iacute; um registro no banco de dados e atualiza o treeview.
1615   -
1616   -Essa fun&ccedil;&atilde;o utiliza o objeto treeview que deve estar armazenado na vari&aacute;vel tree
1617   -
1618   -Parameters:
1619   -
1620   -sUrl - url do programa que ser&aacute; executado
1621   -
1622   -no - objeto no de um treeview
1623   -
1624   -mensagem -
1625   - */
1626   -function core_excluiNoTree(sUrl,no,mensagem,cabecalho)
1627   -{
1628   - if(!cabecalho){
1629   - cabecalho = "";
1630   - }
1631   - //dialogo
1632   - // Define various event handlers for Dialog
1633   - var handleYes = function()
1634   - {
1635   - this.hide();
1636   - core_carregando("ativa");
1637   - core_carregando(mensagem);
1638   - var callback =
1639   - {
1640   - success:function(o)
1641   - {
1642   - try
1643   - {
1644   - if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
1645   - {
1646   - core_carregando("<span style=color:red >N&atilde;o foi poss&iacute;vel excluir. Verifique se n&atilde;o existem outras tabelas com registros vinculados a este</span>");
1647   - setTimeout("core_carregando('desativa')",3000);
1648   - }
1649   - else
1650   - {
1651   - if(no){
1652   - tree.removeNode(no);
1653   - tree.draw();
1654   - }
1655   - core_carregando("desativa");
1656   - }
1657   - }
1658   - catch(e){core_handleFailure(o,o.responseText);}
1659   - },
1660   - failure:core_handleFailure,
1661   - argument: { foo:"foo", bar:"bar" }
1662   - };
1663   - core_makeRequest(sUrl,callback);
1664   - };
1665   - var handleNo = function()
1666   - {
1667   - this.hide();
1668   - };
1669   - var mensagem = "Exclui o registro?";
1670   - var largura = "300";
1671   - core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho);
1672   -}
1673   -/**
1674   -Function: core_montaEditor
1675   -
1676   -Monta uma janela flutuante com um formul&aacute;rio.
1677   -
1678   -O editor possui um div com id=editor_bd que deve ser usado para incluir o formul&aacute;rio.
1679   -
1680   -Parameters:
1681   -
1682   -funcaoOK - string com o nome da fun&ccedil;&atilde;o que ser&aacute; executada quando o bot&atilde;o OK for pressionado.
1683   -
1684   -funcaoClose - nome da funcao que ser&aacute; executada quando a janela for fechada. Pode ser "" para escapar.
1685   -
1686   -titulo - titulo da janela
1687   -
1688   -modal - boolean
1689   -
1690   -bsalva - boolean botao salvar
1691   -
1692   -bcancela - boolean botao cancelar
1693   - */
1694   -function core_montaEditor(funcaoOK,w,h,funcaoClose,titulo,modal,bsalva,bcancela)
1695   -{
1696   - if(!funcaoOK){
1697   - funcaoOK = "";
1698   - }
1699   - if(!w){
1700   - w = "400px";
1701   - }
1702   - if(!h){
1703   - h = "354px";
1704   - }
1705   - if(modal == undefined){
1706   - modal = false;
1707   - }
1708   - if(bsalva == undefined){
1709   - bsalva = true;
1710   - }
1711   - if(bcancela == undefined){
1712   - bcancela = true;
1713   - }
1714   - if(!titulo){
1715   - titulo = "Editor";
1716   - }
1717   - if(!funcaoClose){
1718   - funcaoClose = "";
1719   - }
1720   - if(!$i("janela_editor"))
1721   - {
1722   - var ins = "", temp = "", lb,
1723   - salvai = "<input id=okcancel_checkboxOK type='buttom' value='Salva' />",
1724   - cancelai = "<input id=okcancel_checkboxCANCEL type='buttom' value='Cancela' />",
1725   - novoel = document.createElement("div");
1726   - novoel.id = "janela_editor";
1727   - ins = '<div class="hd"><div id="okcancel_checkbox" ></div></div>' +
1728   - "<div class='bd' style='height:"+h+";overflow:auto'>" +
1729   - "<div id='editor_bd'></div>";
1730   - novoel.innerHTML = ins;
1731   - document.body.appendChild(novoel);
1732   - if(funcaoOK != "")
1733   - {
1734   - lb = $i("okcancel_checkbox");
1735   - if(bsalva === true){
1736   - temp += salvai;
1737   - }
1738   - if(bcancela === true){
1739   - temp += cancelai;
1740   - }
1741   - lb.innerHTML = temp + '<span style="margin-left:10px;position:relative;top:-5px">'+titulo+'</span>';
1742   - if(bsalva === true){
1743   - new YAHOO.widget.Button(
1744   - "okcancel_checkboxOK",
1745   - {onclick:{fn: function(){
1746   - if(YAHOO.lang.isFunction(funcaoOK)){
1747   - funcaoOK.call();
1748   - }
1749   - else{
1750   - eval(funcaoOK);
1751   - }
1752   - }}}
1753   - );
1754   - var temp = $i("okcancel_checkbox");
1755   - temp.style.top = "2px";
1756   - temp.style.position = "relative";
1757   - var temp = $i("okcancel_checkboxOK-button");
1758   - temp.style.height = "23px";
1759   - }
1760   - if(bcancela === true){
1761   - new YAHOO.widget.Button(
1762   - "okcancel_checkboxCANCEL",
1763   - {onclick:{fn: function(){
1764   - YAHOO.admin.container.panelEditor.destroy();
1765   - YAHOO.admin.container.panelEditor = null;
1766   - }}}
1767   - );
1768   - }
1769   - }
1770   - YAHOO.admin.container.panelEditor = new YAHOO.widget.Panel("janela_editor", { fixedcenter:"contained",close:true,width:w, overflow:"auto",modal: modal,visible:false,constraintoviewport:true } );
1771   - YAHOO.admin.container.panelEditor.render();
1772   - }
1773   - else
1774   - {
1775   - if($i("editor_bd"))
1776   - {$i("editor_bd").innerHTML == "?";}
1777   - }
1778   - var fecha = function()
1779   - {
1780   - try{
1781   - YAHOO.admin.container.panelEditor.destroy();
1782   - YAHOO.admin.container.panelEditor = null;
1783   - }
1784   - catch(e){}
1785   - try{
1786   - if(YAHOO.lang.isFunction(funcaoClose)){
1787   - funcaoClose.call();
1788   - }
1789   - else if(funcaoClose != ""){
1790   - eval(funcaoClose+"()");
1791   - }
1792   - }
1793   - catch(e){};
1794   - };
1795   - YAHOO.util.Event.addListener(YAHOO.admin.container.panelEditor.close, "click", fecha);
1796   - YAHOO.admin.container.panelEditor.show();
1797   - //registra a janela no gerenciador de janelas default da classe i3GEO.janela caso ela exista
1798   - try{
1799   - YAHOO.i3GEO.janela.manager.register(YAHOO.admin.container.panelEditor);
1800   - }
1801   - catch(e){}
1802   -}
1803   -/*
1804   -Function idiomaSel
1805   -
1806   -Retorna o idioma selecionado pesquisando no elemento select com id = "idioma"
1807   - */
1808   -function idiomaSel(){
1809   - var idioma = "pt";
1810   - if($i("idioma"))
1811   - {idioma = $i("idioma").value;}
1812   - return idioma;
1813   -}
1814   -function core_abreCor(janela,elemento)
1815   -{
1816   - if(i3GEO.configura == undefined )
1817   - {i3GEO.configura = {locaplic: "../.."};}
1818   - i3GEO.util.abreCor("",elemento,"rgb");
1819   - $i("i3geo_janelaCori").style.width = "350px";
1820   - $i("i3geo_janelaCori").style.height = "290px";
1821   - //i3GEO.janela.cria("350px","250px","../../ferramentas/colorpicker/index.htm?doc=&elemento="+elemento+"&tipo=rgb","","","Cor","i3geo_janelaCor",true);
1822   -}
1823   -function core_desativaforms(lista){
1824   - var n = lista.length,
1825   - i,t;
1826   - for (i=0;i<n;i++){
1827   - t = $i(lista[i]);
1828   - if(t){
1829   - //t.style.background = "pink";
1830   - t.disabled = true;
1831   - }
1832   - }
1833   -}
1834   -function core_ativaforms(lista){
1835   - var n = lista.length,
1836   - i,t;
1837   - for (i=0;i<n;i++){
1838   - t = $i(lista[i]);
1839   - if(t){
1840   - //t.style.background = "white";
1841   - t.disabled = false;
1842   - }
1843   - }
1844   -}
1845   -
1846   -function core_filtraLetrasCombo(id,letra){
1847   - if (letra == "Todos") {
1848   - letra = "";
1849   - }
1850   - i3GEO.util.insereCookie("I3GEOletraAdmin", letra);
1851   - if($i("iniciaisLetras")){
1852   - $i("iniciaisLetras").value = letra;
1853   - }
1854   - var combo = $i(id),
1855   - n, i, o, v;
1856   - if(combo){
1857   - o = combo.options;
1858   - n = o.length;
1859   - letra = letra.toLowerCase();
1860   - for(i = 0; i < n; i++){
1861   - v = o[i].text.toLowerCase();
1862   - o[i].style.display = "block";
1863   - if(v.search(letra) < 0 && o[i].value != combo.value ){
1864   - o[i].style.display = "none";
1865   - }
1866   - }
1867   - }
1868   -}
1869   -
1870   -function core_listaDeLetras(onde,nomeFuncao,semLetras,w){
1871   - //letraAtual guarda a ultima letra clicada
1872   - if(!w){
1873   - w = 40;
1874   - }
1875   - var o,i,ins= "<p><b>",
1876   - letras = ["Todos","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","X","Y","Z","_","1","2","3","4","5","6","7","8","9"],
1877   - nletras = letras.length;
1878   - if(!i3GEO.util){
1879   - alert("Erro i3GEO.util ???");
1880   - return;
1881   - }
1882   - letraAtual = "";
1883   - if(i3GEO.util.pegaCookie("I3GEOletraAdmin")) {
1884   - letraAtual = i3GEO.util.pegaCookie("I3GEOletraAdmin");
1885   - }
1886   - if(!semLetras){
1887   - for (i = 0; i < nletras; i++) {
1888   - ins += "<span onclick='"+nomeFuncao+"(\""
1889   - + letras[i]
1890   - + "\")' style='color:blue;cursor:pointer;padding:1px;border: 1px solid #C8C8FA'>"
1891   - + letras[i] + "</span>&nbsp;";
1892   - }
1893   - }
1894   - else{
1895   - ins = "";
1896   - }
1897   - if(onde && onde != ""){
1898   - o = document.getElementById(onde);
1899   - if(o){
1900   - if(!semLetras){
1901   - o.innerHTML = "<fieldset style='padding:2px;margin-left: 0px;' class=letras ><form id=forminiciais ><p><b>Iniciais: <input name='' onchange='' value='"+letraAtual+"' id=iniciaisLetras type=text style=width:" + w + "px;cursor:pointer /></form><div style=position:relative;top:1px; id='_listaDeLetras' >"+ins+"</div></b></fieldset>";
1902   - }
1903   - else{
1904   - o.innerHTML = "<form id=forminiciais >Iniciais: <input name='' onchange='' value='' id=iniciaisLetras type=text style=width:40px;cursor:pointer /></form>";
1905   - }
1906   - if(document.getElementById("forminiciais")){
1907   - document.getElementById("forminiciais").onsubmit = function(){
1908   - var v = document.getElementById("iniciaisLetras").value;
1909   - i3GEO.util.insereCookie("I3GEOletraAdmin", v);
1910   - eval(nomeFuncao+"('"+v+"');");
1911   - return false;
1912   - };
1913   - }
1914   - if(!semLetras){
1915   - document.getElementById("_listaDeLetras").onclick = function(){
1916   - document.getElementById("iniciaisLetras").value = letraAtual;
1917   - };
1918   - }
1919   - }
1920   - }
1921   - else{
1922   - return ins;
1923   - }
1924   -}
1925   -function core_parseMustacheBody (hashMustache){
1926   - var re = new RegExp("&amp;", "g"), m;
1927   - m = Mustache.render(document.body.innerHTML, i3GEO.idioma.objetoIdioma(hashMustache));
1928   - m = m.replace(re, '&');
1929   - document.body.innerHTML = m;
1930   -}
  277 +}
1931 278 \ No newline at end of file
... ...
admin1/metaestat/regioes/index.js
... ... @@ -256,5 +256,8 @@ Obt&amp;eacute;m a lista de regioes
256 256 //window.history.replaceState(null,null,u);
257 257 //abre a pagina de edicao
258 258 window.location.href = "hierarquia/index.php?codigo_tipo_regiao=" + codigo_tipo_regiao;
  259 + },
  260 + listaEsquemas: function(destino){
  261 + i3GEOadmin.bdExplorer.listaEsquemas(destino);
259 262 }
260 263 };
261 264 \ No newline at end of file
... ...
admin1/metaestat/regioes/index.php
... ... @@ -59,6 +59,7 @@ include(&quot;templates/templateFormLista.php&quot;);
59 59 ?>
60 60 <script type="text/javascript" src="index.js"></script>
61 61 <script type="text/javascript" src="../../dicionario/estat_tipo_regiao.js"></script>
  62 +<script type="text/javascript" src="../../js/bdexplorer.js"></script>
62 63 <script>
63 64 $(document).ready(function(){
64 65 //vem de admin1/index.js
... ...
admin1/metaestat/regioes/templates/templateFormLista.php
... ... @@ -35,9 +35,15 @@
35 35 <div class="form-group form-group-lg">
36 36 <label class="col-md-5 control-label" for="esquemadb" >{{{esquemadbTxt}}}</label>
37 37 <div class="col-md-7">
38   - <input title="{{{esquemadbTxt}}}" type="text" value="{{{esquemadb}}}" class="form-control" name="esquemadb" >
39   - </div>
40   - </div>
  38 + <div class="input-group">
  39 + <input title="{{{esquemadbTxt}}}" type="text" value="{{{esquemadb}}}" class="form-control" name="esquemadb" >
  40 + <div class="input-group-btn">
  41 + <a role="button" class="btn btn-danger btn-fab btn-fab-mini" style="height: 20px;min-width: 20px;width: 20px;" onclick="i3GEOadmin.regioes.listaEsquemas('esquemadb')" href="javascript:void(0)">
  42 + <i class="material-icons md-18">list</i>
  43 + </a>
  44 + </div>
  45 + </div>
  46 + </div>
41 47 </div>
42 48 </div>
43 49 <div class="row">
... ...
admin1/php/bdexplorer.php 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +<?php
  2 +/****************************************************************/
  3 +////include (dirname ( __FILE__ ) . "/../../../ms_configura.php");
  4 +//
  5 +//checa login
  6 +//valida _GET e _POST, juntando em _GET
  7 +//pega algumas variaveis de uso mais comum
  8 +//session_start
  9 +//
  10 +include ("checaLogin.php");
  11 +\admin\php\login\checaLogin();
  12 +//funcoes de administracao
  13 +include ($_SESSION["locaplic"]."/admin1/php/funcoesAdmin.php");
  14 +//
  15 +//carrega outras funcoes e extensoes do PHP
  16 +//
  17 +include ($_SESSION["locaplic"]."/classesphp/carrega_ext.php");
  18 +include ($_SESSION["locaplic"]."/classesphp/classe_bdexplorer.php");
  19 +/***************************************************************/
  20 +$funcao = strtoupper ( $funcao );
  21 +switch ($funcao) {
  22 + case "LISTARESQUEMAS" :
  23 + $bd = new \i3geo\classesphp\bdexplorer\Bdexplorer($_SESSION["locaplic"]);
  24 + $dados = $bd->listaDeEsquemas();
  25 + if ($dados === false) {
  26 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  27 + } else {
  28 + \admin\php\funcoesAdmin\retornaJSON ( $dados );
  29 + }
  30 + break;
  31 + default:
  32 + if(!empty ($funcao)) header ( "HTTP/1.1 500 erro funcao nao existe" );
  33 + break;
  34 +}
  35 +?>
0 36 \ No newline at end of file
... ...
classesphp/classe_bdexplorer.php
... ... @@ -7,6 +7,7 @@
7 7 *
8 8 */
9 9 namespace i3geo\classesphp\bdexplorer;
  10 +use PDO;
10 11 class Bdexplorer{
11 12 /**
12 13 * Nome do esquema no banco de dados utilizado para armazenar as tabelas
... ...
ms_configura.php
... ... @@ -118,6 +118,22 @@ false
118 118  
119 119 */
120 120 $logTransacoes = false;
  121 +/*
  122 + Variale: $i3geoEsquemasWL
  123 +
  124 + Lista com nomes dos esquemas, nos bancos de dados acessiveis pelo sistema de administracao, que podem ser utilizados nas listagens de tabelas e colunas.
  125 +
  126 + O sistema de administracao do i3Geo possui formularios com campos que referem-se a objetos no banco de dados Postgres.
  127 + Essa variavel e uma lista branca, ou seja, permite o acesso apenas aos esquemas e seus objetos que constam na lista.
  128 + Essa lista nao impede o uso desses objetos, apenas evita que os mesmos sejam utilizados para gerar opcoes de selecao para o preenchimento dos formularios.
  129 +
  130 + O usuario dos formularios ainda poderao inserir manualmente os nomes dos objetos mesmo que os esquemas nao constem nessa lista.
  131 +
  132 + Tipo:
  133 + {array}
  134 +*/
  135 +$i3geoEsquemasWL = array("public","i3geosaude");
  136 +
121 137 //TODO documentar moodle
122 138 /*
123 139 Variale: $logExec
... ... @@ -134,7 +150,7 @@ $logExec = array(
134 150 "init" => false, //ms_criamapa mapa_inicia
135 151 "ogc" => false, //servico ogc
136 152 "upload" => false, //ferramentas de upload
137   - "ferramentas" => false, //todas asferramentas que usam safe.php
  153 + "ferramentas" => false, //todas as ferramentas que usam safe.php
138 154 "controle" => false //tudo que passa por mapa_controle.php
139 155 );
140 156 /*
... ...