Statistics
| Revision:

root / i3geo60 / admin / js / perfis.js @ 6498

History | View | Annotate | Download (5.56 KB)

1
/*
2
Title: perfis.js
3

4
Funções que controlam a interface do editor de perfis
5

6
Licenca:
7

8
GPL2
9

10
i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
11

12
Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
13
Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
14

15
Este programa é software livre; você pode redistribuí-lo
16
e/ou modificá-lo sob os termos da Licença Pública Geral
17
GNU conforme publicada pela Free Software Foundation;
18

19
Este programa é distribuído na expectativa de que seja útil,
20
porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
21
de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
22
Consulte a Licença Pública Geral do GNU para mais detalhes.
23
Você deve ter recebido uma cópia da Licença Pública Geral do
24
GNU junto com este programa; se não, escreva para a
25
Free Software Foundation, Inc., no endereço
26
59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
27

28
Arquivo:
29

30
i3geo/admin/js/perfis.js
31
*/
32
YAHOO.namespace("admin.container");
33
/*
34
Function: initMenu
35

36
Inicializa o editor
37

38
<ALTERAPERFIS>
39
*/
40
function initMenu()
41
{
42
        core_ativaBotaoAdicionaLinha("../php/menutemas.php?funcao=alteraPerfis");
43
        core_carregando("ativa");
44
        core_ativaPainelAjuda("ajuda","botaoAjuda");
45
        pegaPerfis();
46
}
47
/*
48
Function: pegaPerfis
49

50
Obt&eacute;m a lista de perfis
51

52
<PEGAPERFIS>
53
*/
54
function pegaPerfis()
55
{
56
        core_pegaDados($trad("msgBuscaPerfil",i3GEOadmin.perfis.dicionario),"../php/menutemas.php?funcao=pegaPerfis","montaTabela");
57
}
58
function montaTabela(dados)
59
{
60
        YAHOO.example.InlineCellEditing = new function()
61
        {
62
                // Custom formatter for "address" column to preserve line breaks
63
                var formatTexto = function(elCell, oRecord, oColumn, oData)
64
                {
65
                        elCell.innerHTML = "<p style=width:250px >" + oData + "</p>";
66
                };
67
                var formatTextoId = function(elCell, oRecord, oColumn, oData)
68
                {
69
                        elCell.innerHTML = "<p style=width:20px >" + oData + "</p>";
70
                };
71

    
72
                var formatSalva = function(elCell, oRecord, oColumn)
73
                {
74
                        elCell.innerHTML = "<div class=salvar style='text-align:center' onclick='gravaLinha(\""+oRecord._sId+"\")'></div>";
75
                };
76
                var formatExclui = function(elCell, oRecord, oColumn)
77
                {
78
                        elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";
79
                };
80
                var myColumnDefs = [
81
                        {key:"excluir",label:$trad("excluir",i3GEOadmin.core.dicionario),formatter:formatExclui},
82
                        {label:$trad("salva2",i3GEOadmin.core.dicionario),formatter:formatSalva},
83
                        {label:"id",key:"id_perfil", formatter:formatTextoId},
84
                        {label:$trad("nome",i3GEOadmin.core.dicionario),resizeable:true,key:"perfil", formatter:formatTexto, editor:new YAHOO.widget.TextboxCellEditor({disableBtns:true})}
85
                ];
86
                myDataSource = new YAHOO.util.DataSource(dados);
87
                myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
88
                myDataSource.responseSchema =
89
                {
90
                        fields: ["id_perfil","perfil"]
91
                };
92
                myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource);
93
                // Set up editing flow
94
                myDataTable.highlightEditableCell = function(oArgs)
95
                {
96
                        var elCell = oArgs.target;
97
                        var column = myDataTable.getColumn(oArgs.target);
98
                        if(!YAHOO.lang.isNull(column.editor))
99
                        {
100
                                YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted');
101
                        }
102
                };
103
                myDataTable.unhighlightEditableCell = function(oArgs)
104
                {
105
                        var elCell = oArgs.target;
106
                        if(elCell.style.cursor="pointer")
107
                        {
108
                                YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted');
109
                        }
110
                };
111
                myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell);
112
                myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell);
113
                myDataTable.subscribe('cellClickEvent',function(ev)
114
                {
115
                        var target = YAHOO.util.Event.getTarget(ev);
116
                        var column = this.getColumn(target);
117
                        if(YAHOO.admin.container.panelCK)
118
                        {
119
                                YAHOO.admin.container.panelCK.destroy();
120
                                YAHOO.admin.container.panelCK = null;
121
                        }
122
                        if (column.key == 'excluir')
123
                        {
124
                                var record = this.getRecord(target);
125
                                excluiLinha(record.getData('id_perfil'),target);
126
                        }
127
                        else
128
                        {
129
                                this.onEventShowCellEditor(ev);
130
                        }
131
                });
132
                // Hook into custom event to customize save-flow of "radio" editor
133
                myDataTable.subscribe("editorUpdateEvent", function(oArgs)
134
                {
135
                        if(oArgs.editor.column.key === "active")
136
                        {
137
                                this.saveCellEditor();
138
                        }
139
                });
140
                myDataTable.subscribe("editorSaveEvent", function(oArgs)
141
                {
142
                        if(oArgs.newData != oArgs.oldData){
143
                                var linha = myDataTable.getTrEl(oArgs.editor.getRecord());
144
                                linha.style.color = "blue";
145
                                linha.style.textDecoration = "blink";
146
                        }
147
                });
148

    
149
                myDataTable.subscribe("editorBlurEvent", function(oArgs)
150
                {
151
                        this.cancelCellEditor();
152
                });
153
        };
154
        core_carregando("desativa");
155
}
156
/*
157
Function: gravaLinha
158

159
Aplica as altera&ccedil;&otilde;es feitas em um perfil
160

161
<ALTERAPERFIS>
162
*/
163
function gravaLinha(row)
164
{
165
        var r = myDataTable.getRecordSet().getRecord(row);
166
        var id_perfil = r.getData("id_perfil");
167
        var perfil = r.getData("perfil");
168
        core_carregando("ativa");
169
        var mensagem = $trad("gravaId",i3GEOadmin.core.dicionario)+id_perfil;
170
        var sUrl = "../php/menutemas.php?funcao=alteraPerfis&perfil="+perfil+"&id="+id_perfil;
171
        core_gravaLinha(mensagem,row,sUrl);
172
}
173
function excluiLinha(id,row)
174
{
175
        var mensagem = $trad("msgExclui",i3GEOadmin.core.dicionario)+id;
176
        var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=perfis";
177
        core_excluiLinha(sUrl,row,mensagem);
178
}