From bfb6a03d8affba49e62cd4bbad06db71671e52c3 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 14 Dec 2010 12:41:18 +0000 Subject: [PATCH] Inclusão de ícone de edição da árvore de temas diretamente na interface do mapa. Adaptação dos menus de administração para poderem funcionar dentro da interface do mapa. --- admin/admin.db | Bin 70656 -> 0 bytes admin/html/arvore.html | 1 - admin/html/identifica.html | 2 +- admin/html/menus.html | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin/index.html | 3 ++- admin/js/arvore.js | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------- admin/js/identifica.js | 50 +++----------------------------------------------- admin/js/menu.js | 204 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------- admin/php/menutemas.php | 35 +++++++++++++++++++---------------- classesjs/classe_arvoredetemas.js | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------- 10 files changed, 402 insertions(+), 181 deletions(-) create mode 100644 admin/html/menus.html diff --git a/admin/admin.db b/admin/admin.db index 5a062af..8931f38 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/html/arvore.html b/admin/html/arvore.html index a8241f1..212ba7d 100644 --- a/admin/html/arvore.html +++ b/admin/html/arvore.html @@ -24,7 +24,6 @@

Administração do i3geo - Árvore de temas

-

-

Sistemas existentes: (clique na célula para editar e salve a linha editada)

+

diff --git a/admin/html/menus.html b/admin/html/menus.html new file mode 100644 index 0000000..57fc634 --- /dev/null +++ b/admin/html/menus.html @@ -0,0 +1,100 @@ + + + + + Lista de menus + + + + + +
+
+

Administração do i3geo - Menus

+ +
+ +
+

+ Idioma: + +

+


+

+
+
+ + diff --git a/admin/index.html b/admin/index.html index 2bbce8e..77d0cb4 100644 --- a/admin/index.html +++ b/admin/index.html @@ -79,7 +79,8 @@ essa criação podem ser obtidos no item "Outras opções".

- + +
Ajuda
Editar a árvore dos menus
Editar a árvore completa dos menus
Editar a lista de menus
diff --git a/admin/js/arvore.js b/admin/js/arvore.js index b33ea5f..6a26a21 100644 --- a/admin/js/arvore.js +++ b/admin/js/arvore.js @@ -5,6 +5,12 @@ Funções que controlam a interface do editor da árvore de temas Atuam no controle dos nós da árvore +Pode-se enviar parâmetros pela URL utilizada na inclusão desse script + +Exemplo: + +http://localhost/i3geo/admin/html/arvore.html?id_menu=1&id_grupo=10&id_subgrupo=3 + Licenca: GPL2 @@ -32,6 +38,21 @@ Arquivo: i3geo/admin/js/arvore.js */ YAHOO.namespace("example.container"); +// +//obtem os parametros da url +// +$id_menu = ""; +$id_grupo = ""; +$id_subgrupo = ""; +try{ + var u = window.location.href.split("?")[1]; + u = u.split("&"); + for(i=0;i"+dados[i].nome_menu+"" - var d = {html:conteudo,id_menu:dados[i].id_menu,tipo:"menu"}; - var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); + if($id_menu == "" || $id_menu == dados[i].id_menu){ + var cor = ""; + if(dados[i].publicado_menu == "NAO") + var cor = "style='color:red'"; + var conteudo = " "+dados[i].nome_menu+"" + var d = {html:conteudo,id_menu:dados[i].id_menu,tipo:"menu"}; + var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); + } } if(redesenha){tree.draw();} + if($id_menu !== "") + {tempNode.expand();} } // //adiciona os grupos em um menu @@ -190,21 +216,28 @@ function montaNosGrupos(idmenu,no,dados,redesenha) if(!tree.getNodeByProperty("etiquetaGrupo","menu_"+idmenu)) { var temp = "menu_"+idmenu - var d = {tipo:"etiqueta","etiquetaGrupo":temp,html:"Grupos"} + var d = {tipo:"etiqueta","etiquetaGrupo":temp,html:"Grupos"} var tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true); tempNodeR.isLeaf = false; - - var conteudo = " Adicionar um novo" + if($id_grupo !== "" || $id_menu !== "") + {tempNodeR.expand();} + var conteudo = " Adicionar um novo" var d = {html:conteudo}; var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); - tempNode.isLeaf = true; + tempNode.isLeaf = true; + if($id_grupo !== "") + {tempNode.expand();} } for (var i=0, j=dados.grupos.length; iSub-grupos"} + var d = {tipo:"etiqueta",etiquetaTemasSubGrupo:no.data.id_n1,html:"Sub-grupos"} var tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true); tempNodeR.isLeaf = false; + if($id_subgrupo !== "" || $id_grupo !== "") + {tempNodeR.expand();} - var conteudo = " Adicionar um novo" + var conteudo = " Adicionar um novo" var d = {html:conteudo} var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); - tempNode.isLeaf = true; + tempNode.isLeaf = true; + if($id_subgrupo !== "") + {tempNode.expand();} } for (var i=0, j=dados.subgrupos.length; iTemas"} + var d = {tipo:"etiqueta",etiquetaTemas:no.data.id_n2,html:"Temas"} var tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true); tempNodeR.isLeaf = false; - var conteudo = " Adicionar um novo" + var conteudo = " Adicionar um novo" var d = {html:conteudo} var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); tempNode.isLeaf = true; @@ -336,10 +377,10 @@ function montaTemasRaiz(no,dados,redesenha) if(!tree.getNodeByProperty("etiquetaTemasRaiz","menu_"+no.data.id_menu)) { var temp = "menu_"+no.data.id_menu; - var d = {id_menu:no.data.id_menu,tipo:"etiqueta",etiquetaTemasRaiz:temp,html:"Temas na raiz do menu"} + var d = {id_menu:no.data.id_menu,tipo:"etiqueta",etiquetaTemasRaiz:temp,html:"Temas na raiz do menu"} var tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true); tempNodeR.isLeaf = false; - var d = {tipo:"etiqueta",html:"Adicionar um novo"} + var d = {tipo:"etiqueta",html:"Adicionar um novo"} var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); tempNode.isLeaf = true; } @@ -364,10 +405,10 @@ function montaTemasRaizGrupo(idmenu,no,dados,redesenha) if(!tree.getNodeByProperty("etiquetaTemasGrupo","grupo_"+no.data.id_n1)) { var temp = "grupo_"+no.data.id_n1; - var d = {etiquetaTemasGrupo:temp,tipo:"etiqueta",html:"Temas na raiz do grupo:"}; + var d = {etiquetaTemasGrupo:temp,tipo:"etiqueta",html:"Temas na raiz do grupo:"}; var tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true); tempNodeR.isLeaf = false; - var d = {tipo:"etiqueta",html:"Adicionar um novo"}; + var d = {tipo:"etiqueta",html:"Adicionar um novo"}; var tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); tempNode.isLeaf = true; } @@ -630,7 +671,7 @@ function editar(tipo,id) } function montaDivGrupo(i) { - var ins = "
Grupo:

" + var ins = "
Escolha o grupo para esse nó:

" ins += "
Buscando...
" ins += "

Perfis que podem ver:

" ins += "

" @@ -645,7 +686,7 @@ function montaDivGrupo(i) } function montaDivSubGrupo(i) { - var ins = "
Sub-Grupo:

" + var ins = "
Escolha o sub-grupo para esse nó:

" ins += "
Buscando...
" ins += "

Perfis que podem ver:

" ins += "

" @@ -660,7 +701,7 @@ function montaDivSubGrupo(i) } function montaDivTema(i) { - var ins = "
Tema:

" + var ins = "
Escolha o tema para esse nó:

" ins += "
Buscando...
" ins += "

Perfis que podem ver:

" ins += "

" diff --git a/admin/js/identifica.js b/admin/js/identifica.js index 869bff8..38fc0fa 100644 --- a/admin/js/identifica.js +++ b/admin/js/identifica.js @@ -79,29 +79,6 @@ function montaTabela(dados) fields: ["publicado_i","abrir_i","id_i","nome_i","target_i"] }; myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); - // Set up editing flow - /* - myDataTable.highlightEditableCell = function(oArgs) - { - var elCell = oArgs.target; - var column = myDataTable.getColumn(oArgs.target); - //if(column.editor != "null") - if(!YAHOO.lang.isNull(column.editor)) - { - YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted'); - } - }; - myDataTable.unhighlightEditableCell = function(oArgs) - { - var elCell = oArgs.target; - if(elCell.style.cursor="pointer") - { - YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); - } - }; - myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); - myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); - */ myDataTable.subscribe('cellClickEvent',function(ev) { var target = YAHOO.util.Event.getTarget(ev); @@ -140,28 +117,7 @@ function montaTabela(dados) core_makeRequest(sUrl,callback) } }); - // Hook into custom event to customize save-flow of "radio" editor - myDataTable.subscribe("editorUpdateEvent", function(oArgs) - { - if(oArgs.editor.column.key === "active") - { - this.saveCellEditor(); - - } - }); - myDataTable.subscribe("editorBlurEvent", function(oArgs) - { - this.cancelCellEditor(); - }); - /* - myDataTable.subscribe("editorSaveEvent", function(oArgs) - { - if(oArgs.newData != oArgs.oldData) - var linha = myDataTable.getTrEl(oArgs.editor.getRecord()) - linha.style.color = "blue"; - linha.style.textDecoration = "blink"; - }); - */ + }; core_carregando("desativa"); } @@ -232,9 +188,9 @@ function montaDiv(i) /* Function: gravaDados -Aplica as alterações feitas em um WS +Salva as alterações feitas - + */ function gravaDados(id,recordid) { diff --git a/admin/js/menu.js b/admin/js/menu.js index 4d25a66..7146e3c 100644 --- a/admin/js/menu.js +++ b/admin/js/menu.js @@ -38,6 +38,7 @@ Inicializa o editor */ function initEditorMenu() { + YAHOO.namespace("example.container"); core_ativaBotaoAdicionaLinha("../php/menutemas.php?funcao=alteraMenus&publicado_menu=&perfil=&nome=&desc=&id=&aberto=","adicionaNovoMenu","pegaMenus_M") pegaMenus_M() } @@ -70,9 +71,13 @@ function montaTabela_M(dados) { elCell.innerHTML = "
";//onclick='excluiLinha_M(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'>"; }; + var formatMais = function(elCell, oRecord, oColumn) + { + elCell.innerHTML = "
"; + }; var myColumnDefs = [ {key:"excluir",label:"excluir",formatter:formatExclui}, - {label:"salvar",formatter:formatSalva}, + {key:"mais",label:"editar",formatter:formatMais}, {label:"id",key:"id_menu", formatter:formatTexto}, {label:"nome",resizeable:true,key:"nome_menu", formatter:formatTexto,editor:new YAHOO.widget.TextboxCellEditor({disableBtns:true})}, {label:"en",resizeable:true,key:"en", formatter:formatTexto,editor:new YAHOO.widget.TextboxCellEditor({disableBtns:true})}, @@ -91,25 +96,6 @@ function montaTabela_M(dados) fields: ["it","es","en","publicado_menu","perfil_menu","aberto","desc_menu","id_menu","nome_menu"] }; myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); - // Set up editing flow - myDataTable.highlightEditableCell = function(oArgs) - { - var elCell = oArgs.target; - var column = myDataTable.getColumn(oArgs.target); - //if(column.editor != "null") - if(!YAHOO.lang.isNull(column.editor)) - {YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted');} - }; - myDataTable.unhighlightEditableCell = function(oArgs) - { - var elCell = oArgs.target; - if(elCell.style.cursor="pointer") - { - YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); - } - }; - myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); - myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); myDataTable.subscribe('cellClickEvent',function(ev) { var target = YAHOO.util.Event.getTarget(ev); @@ -124,63 +110,155 @@ function montaTabela_M(dados) var record = this.getRecord(target); excluiLinha_M(record.getData('id_menu'),target); } - else + if (column.key == 'mais') { - if (column.key == 'perfil_menu') + var record = this.getRecord(target); + core_carregando("ativa"); + core_carregando("buscando dados..."); + $clicouId = record.getData('id_menu'); + $recordid = record.getId(); + var sUrl = "../php/menutemas.php?funcao=pegamenus&id_menu="+record.getData('id_menu'); + var callback = { - var record = this.getRecord(target); - var selecionados = record.getData('perfil_menu'); - var selecionados = selecionados.split(","); - core_menuCheckBox($perfisArray,$perfisArray,selecionados,target,record,"perfil_menu"); - } - else - {this.onEventShowCellEditor(ev);} + success:function(o) + { + try + { + montaEditor_M(YAHOO.lang.JSON.parse(o.responseText),$clicouId,$recordid); + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) } }); - // Hook into custom event to customize save-flow of "radio" editor - myDataTable.subscribe("editorUpdateEvent", function(oArgs) - { - if(oArgs.editor.column.key === "active") - {this.saveCellEditor();} - }); - myDataTable.subscribe("editorBlurEvent", function(oArgs) - { - this.cancelCellEditor(); - }); - myDataTable.subscribe("editorSaveEvent", function(oArgs) - { - if(oArgs.newData != oArgs.oldData) - var linha = myDataTable.getTrEl(oArgs.editor.getRecord()) - linha.style.color = "blue"; - linha.style.textDecoration = "blink"; - }); - //destroy }; core_carregando("desativa"); } +function montaEditor_M(dados,id,recordid) +{ + function on_editorCheckBoxChange(p_oEvent) + { + var ins = ""; + if(p_oEvent.newValue.get("value") == "OK") + { + gravaDados_M(id,recordid); + } + else + { + YAHOO.example.container.panelEditor.destroy(); + YAHOO.example.container.panelEditor = null; + } + }; + if(!$i("janela_editor2")) + { + var novoel = document.createElement("div"); + novoel.id = "janela_editor2"; + var ins = '
Editor
'; + ins += "
"; + ins += "
"; + novoel.innerHTML = ins; + document.body.appendChild(novoel); + var editorBotoes = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id2", name: "okcancel_checkbox_id2", container: "okcancel_checkbox2" }); + editorBotoes.addButtons([ + { label: "Salva", value: "OK", checked: false}, + { label: "Cancela", value: "CANCEL", checked: false } + ]); + editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange); + YAHOO.example.container.panelEditor = new YAHOO.widget.Panel("janela_editor2", { fixedcenter:true,close:false,width:"400px", height:"480px",overflow:"auto", visible:false,constraintoviewport:true } ); + YAHOO.example.container.panelEditor.render(); + } + YAHOO.example.container.panelEditor.show(); + $i("editor_bd2").innerHTML = montaDiv_M(dados[0]) + core_carregando("desativa"); +} +function montaDiv_M(i) +{ + var param = { + "linhas":[ + {titulo:"Nome:",id:"Enome_menu",size:"50",value:i.nome_menu,tipo:"text",div:""}, + {titulo:"Descricao:",id:"Edesc_menu",size:"50",value:i.desc_menu,tipo:"text",div:""}, + {titulo:"Inglês:",id:"Een",size:"50",value:i.en,tipo:"text",div:""}, + {titulo:"Espanhol:",id:"Ees",size:"50",value:i.es,tipo:"text",div:""}, + {titulo:"Italiano:",id:"Eit",size:"50",value:i.it,tipo:"text",div:""}, + {titulo:"Perfis:",id:"Eperfil_menu",size:"50",value:i.perfil_menu,tipo:"text",div:""} + ] + }; + var ins = "" + ins += core_geraLinhas(param) + ins += "

Publicado?
" + ins += "