source: publico/ILSAPL/trunk/skins/sk_sapl/cadastros/parlamentar/parlamentar_form.dtml @ 3988

Última Alteração nesse arquivo desde 3988 foi 3988, incluída por claudiomorale, 11 anos atrás

changeset 3930:3934 - atualizações: ajuda & fieldset

File size: 23.5 KB
Linha 
1<dtml-var standard_html_header>
2<dtml-comment>
3*****************************************************************
4*    Abaixo, declara-se três documentos com os códigos fontes de*
5*  funções em JavaScript usadas neste formulário. Essas funções *
6*  estão em outros documentos por serem de uso genérico usadas  *
7*  em vários formulários.                                       *
8*****************************************************************
9</dtml-comment>
10
11<script type="text/javascript" src="javascript/data_validar_jvsc"></SCRIPT>
12<script type="text/javascript" src="javascript/cpf_validar_jvsc"></SCRIPT>
13<script type="text/javascript" src="javascript/email_validar_jvsc"></SCRIPT>
14<dtml-comment>
15*****************************************************************
16*   Abaixo, declaram-se três funções em JavaScript usadas apenas*
17*  neste formulário.                                            *
18*****************************************************************
19</dtml-comment>
20
21<script type="text/javascript">
22<!--
23   function submeter(endereco){
24      /*-----------------------------
25         Função: Confirma se o usuário deseja salvar os dados ao clicar em
26               link do formulário que não os botões SALVAR ou EXCLUIR.
27         Argumentos: form : formulário - é o formulário em si.
28                     endereco : txt - é o endereço que deve ser renderizado
29                     apos a confirmação ou não de salvar os dados.
30         Retorno: Uma janela de confirmação. Se o usuário confirmar, ele
31                invoca o método parlamentar_salvar_proc.
32                Se ele cancelar, a função apenas renderiza o endereço
33                (caso esteja na atualizacao).
34         Michael Onishi , Daniel C. Azevedo em 23/02/01.
35      ------------------------------*/
36      var form = document.parlamentar_form;
37
38      endereco += '?&cod_parlamentar=' + form.hdn_cod_parlamentar.value;
39
40      if (form.hdn_alterou.value == 1) { 
41         if (confirm("Deseja salvar os dados?")){
42            form.hdn_url.value = endereco;
43            campos_criticar(form);
44            return;
45         }
46      }
47
48      if (form.hdn_cod_parlamentar.value != ""){
49         location.href = endereco;
50      }
51      return;           
52   } 
53  function setar_hdn_file(form){
54      if (form.file_nom_imagem.value != "") {
55         form.hdn_file.value = 1;
56      }
57  }
58  function campos_criticar(form){
59      /*-----------------------------
60         Função: Critica os campos obrigatórios do formulário. É chamada
61                ou pela função submeter acima ou pelo botão btn_parlamentar_salvar
62                do formulário para validação dos campos.
63         Argumentos: form : formulário - é o formulário em si.
64         Retorno: Invoca o SUBMIT do formulário ou retorna valor booleano
65                falso ,caso haja algum campo incorreto, juntamente com uma
66                uma mensagem de erro e o cursor no campo a ser corrigido.
67         Michael Onishi , Daniel C. Azevedo em 23/02/01.
68      ------------------------------*/
69           
70      if (form.txt_nom_parlamentar.value==""){
71          alert("O nome do Parlamentar deve ser preenchido!");
72          form.txt_nom_parlamentar.focus();
73          return false;
74      }
75       
76      if (form.txt_nom_completo.value == "") {
77         alert("O nome completo deve ser preenchido!");
78         form.txt_nom_completo.focus();
79         return false;
80      }
81
82
83
84      if (!(form.rad_sex_parlamentar[0].checked ||
85            form.rad_sex_parlamentar[1].checked)){
86         alert("O sexo do parlamentar deve ser preenchido!");
87         form.rad_sex_parlamentar[0].focus();
88         return false;
89      }
90
91     /*--- comentada pela Man Qi em 16/11/02 ---
92      if (form.txt_dat_nascimento.value == "") {
93         alert("Data de nascimento deve ser preenchida!");
94         form.txt_dat_nascimento.focus();
95         return false;
96      }
97      ----------------------------------------*/
98
99      if (form.txt_dat_nascimento.value != "" && !IsValidDate(form.txt_dat_nascimento.value)){
100         alert("Digite uma data de nascimento válida!");
101         form.txt_dat_nascimento.focus();
102         form.txt_dat_nascimento.select();
103         return false;
104      }           
105
106      /*-----------------------------
107      if (form.txt_num_cpf.value == "") {
108         alert("O campo cpf deve ser preenchido!");
109         form.txt_num_cpf.focus();
110         return false;
111      }
112      -----------------------------*/
113     
114      if (form.txt_num_cpf.value != "" && !cpf_validar(form.txt_num_cpf.value)){
115         alert("Digite um cpf válido!");
116         form.txt_num_cpf.focus();
117         form.txt_num_cpf.select();
118         return false;       
119      }
120
121     /*--- comentada pela Man Qi em 16/11/02 ---
122      if (form.txt_num_rg.value == "") {
123         alert("O campo RG deve ser preenchido!");
124         form.txt_num_rg.focus();
125         return false;
126      }
127
128
129      if (form.txt_num_tit_eleitor.value == "") {
130         alert("O campo Nº. Título Eleitor deve ser preenchido!");
131         form.txt_num_tit_eleitor.focus();
132         return false;
133      }
134      ----------------------------------------*/
135
136      if (form.txt_end_email.value != "" &&
137           !email_validar(form.txt_end_email.value)) {
138         alert("Digite um e-mail válido!");
139         form.txt_end_email.focus();
140         form.txt_end_email.select();
141         return false;
142      }
143
144     /*--- comentada pela Man Qi em 16/11/02 ---
145      if (form.txt_end_residencial.value == "") {
146         alert("O campo Endereço Residencial deve ser preenchido!");
147         form.txt_end_residencial.focus();
148         return false;
149      }
150
151      if (form.txt_num_cep_resid.value == "") {
152         alert("O campo Cep deve ser preenchido!");
153         form.txt_num_cep_resid.focus();
154         return false;
155      }
156
157      if (form.txt_municipio.value == "" || form.lst_sgl_uf.selectedIndex == 0) {
158         alert("Os campos Município e UF devem ser preenchidos!");
159         form.btn_localidade.focus();
160         return false;
161      }
162      ----------------------------------------*/
163
164      /*--- acrescentada pela Man Qi em 16/11/02 ---*/
165      if (form.txt_municipio.value == "" && form.lst_sgl_uf.selectedIndex != 0) {
166         alert("O campo Município deve ser preenchido uma vez que UF está preenchido!");
167         form.txt_municipio.focus();
168         return false;
169      }
170
171      /*--- acrescentada pela Man Qi em 16/11/02 ---*/
172      if (form.txt_municipio.value != "" && form.lst_sgl_uf.selectedIndex == 0) {
173         alert("O campo UF deve ser preenchido uma vez que Município está preenchido!");
174         form.lst_sgl_uf.focus();
175         return false;
176      }
177
178      if (!(form.rad_ind_ativo[0].checked ||
179            form.rad_ind_ativo[1].checked)){
180         alert("A opção 'Ativo na Casa' deve ser preenchida!");
181         return false;
182      }
183      return form.submit();
184    }
185
186  function parlamentar_excluir(){
187      /*-----------------------------
188         Função: Chama o Método DTML de exclusão do parlamanetar
189         Argumentos: ().
190         Retorno: Retorna uma mensagem de exclusão bem sucessida e
191                redireciona à página 'index_html'.
192         Michael Onishi , Daniel C. Azevedo em 23/02/01.
193      ------------------------------*/
194       
195       if (confirm("Deseja realmente excluir?")) {
196          location.href="parlamentar_excluir_proc?cod_parlamentar=<dtml-var cod_parlamentar missing>";
197       }
198       return;
199  }
200
201function fotografia_excluir(){
202      /*-----------------------------
203         Função: Chama o Método DTML de exclusão da Fotografia do
204         Parlamentar: ().
205         Retorno: Retorna uma mensagem de exclusão bem sucedida e
206                  redireciona à página 'parlamentar_form'.
207         Clayton em 13/01/2005
208      ------------------------------*/
209
210       if (confirm("Deseja realmente excluir a Fotografia?")) {
211          location.href=" parlamentar_excluir_foto?cod_parlamentar=<dtml-var cod_parlamentar missing>";
212       }
213       return;
214  }
215
216  function localidade_mostrar(form) {
217     /*-----------------------------
218         Função: Abre uma janela com uma lista de municípios para o
219                 usuário escolher.
220         Argumentos: form : fomulário - o formulário em si.
221         Retorno: Atribui o nome do Município no 'value' do campo do form.
222         Michael Onishi , Daniel C. Azevedo em 23/02/01.
223      ------------------------------*/
224
225     if (form.txt_municipio.value=="") {
226        alert("Preencha parte do município!");
227        form.txt_municipio.focus();
228        return false;
229     }
230
231     if (form.lst_sgl_uf.selectedIndex==0) {
232        alert("Selecione uma UF!");
233        form.lst_sgl_uf.focus();
234        return false;
235     }
236     
237     var municipio = form.txt_municipio.value;
238     var sgl_uf = form.lst_sgl_uf[form.lst_sgl_uf.selectedIndex].value;
239
240     var municipio_pesq = municipio.toUpperCase();
241     municipio_pesq = municipio_pesq.replace(/Ã|Â|Á|À/g, 'A');
242     municipio_pesq = municipio_pesq.replace(/É|Ê|È/g,'E');   
243     municipio_pesq = municipio_pesq.replace(/Í|Ì|Î|Ï/g, 'I');
244     municipio_pesq = municipio_pesq.replace(/Õ|Ô|Ó|Ò/g, 'O');
245     municipio_pesq = municipio_pesq.replace(/Ú|Ù|Û|Ü/g, 'U');
246
247
248     var url="municipio_listar_form?municipio=" + municipio +
249              "&municipio_pesq=" + municipio_pesq + "&sgl_uf=" + sgl_uf;
250     MunicipioWin = window.open(url , "MunicipioWin", "width=350,height=250,resizable=0");
251     return;
252  }
253   
254//-->
255</script>
256
257<dtml-comment>
258******************************************************************
259*     Abaixo, tem-se o código HTML do formulário. Em cada INPUT, *
260*  o VALUE está atribuido para uma tag DTML-VAR que tenta buscar *
261*  o valor do campo no namespace.                                *
262*     Para os SELECT e INPUT do tipo RADIO, a busca do valor se  *
263*  faz com o uso de DTML-IF.                                     *
264*     Os três primeiros INPUT são do tipo hidden por serem trans-*
265*  parentes ao usuário.                                          *
266******************************************************************
267</dtml-comment>
268
269<div class="helpsapl"> <a id="ajuda" href="<dtml-var sapl url>/ajuda/modulo_parlamentares">Ajuda</a> </div>
270<h1 class="firstHeading"> Parlamentares </h1>
271
272
273   <form name="parlamentar_form" method="post"
274   action="parlamentar_salvar_proc" enctype="multipart/form-data" />
275      <input type="hidden" name="hdn_cod_parlamentar" value="<dtml-var
276      cod_parlamentar missing>" />
277      <input type="hidden" name="nom_parlamentar"  value="<dtml-var
278      nom_parlamentar missing>" />
279      <input type="hidden" name="hdn_cod_casa" value="<dtml-var
280      expr="sapl_documentos.props_sapl.cod_casa" missing>" />
281      <input type="hidden" name="hdn_url"
282      value="parlamentar_mostrar_proc?cod_parlamentar=<dtml-var
283      cod_parlamentar missing>" />
284      <input type="hidden" name="hdn_alterou" value=0 />
285
286      <table width="95%" align="center">
287         <tr class="fundo">
288            <td width="35%" align="left" class="form-label">
289               | <a href="javascript:submeter('<dtml-var URL1>/mandato/index_html')"> Mandatos </a> |
290            </td>
291            <td width="30%" align="center" class="form-label">
292               | <a href="javascript:submeter('<dtml-var URL1>/filiacao_partidaria/index_html')"> Filiações Partid&aacute;rias </a> |
293            </td>
294            <td width="35%" align="right" class="form-label">
295               | <a href="javascript:submeter('<dtml-var URL1>/dependente/index_html')"> Dependentes </a> |
296            </td>
297         </tr>
298      </table>
299     <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"></table>
300     <fieldset><legend>Parlamentar</legend>
301      <table width="95%"  align="center">
302         <tr align="center">
303            <td>
304               <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
305                  <tr align="left" style="height:60">
306                     <td colspan="2" class="form-element">
307                        Nome Parlamentar (*)<br />
308                        <input type="text" name="txt_nom_parlamentar" value="<dtml-var nom_parlamentar missing>"
309                               size="50" maxlength="50"
310                               onChange="javascript:form.hdn_alterou.value=1"
311                        />
312                     </td>
313                     <td width="40%" align="center" class="form-text">
314                        <b>Ativo na Casa? (*)</b><br />
315                        <dtml-in expr="[(1,'Sim'),(0,'Não')]">
316                           <input type="radio" name="rad_ind_ativo" value="<dtml-var expr="_['sequence-key']">"
317                            <dtml-if expr="_.has_key('cod_parlamentar')
318                            and ind_ativo==_['sequence-key']">
319                            checked=1</dtml-if>
320                            onChange="javascript:form.hdn_alterou.value=1"
321                           />
322                           <dtml-var expr="_['sequence-item']">
323                        </dtml-in>
324                     </td>
325                  </tr>
326        <tr align="left" style="height:45">
327          <td colspan="3" class="form-element">Nome Completo (*)<br />
328            <input type="text" name="txt_nom_completo"
329            value="<dtml-var nom_completo missing>" size="50"
330            maxlength="50"
331            onChange="javascript:form.hdn_alterou.value=1" /></td>
332        </tr>
333        <tr align="left"  style="height:45">
334          <td width="25%" class="form-element">N&iacute;vel Instru&ccedil;&atilde;o<br />
335            <select name="lst_cod_nivel_instrucao" size="1" onChange="javascript:form.hdn_alterou.value=1">
336                 <option>Selecione</option>
337              <dtml-in expr="zsql.nivel_instrucao_obter_zsql()">
338                 <option 
339                    <dtml-if expr="_.has_key('cod_parlamentar') and cod_nivel_instrucao==parlamentar_form.cod_nivel_instrucao">
340                        selected
341                    </dtml-if>
342                    value="<dtml-var cod_nivel_instrucao>"><dtml-var des_nivel_instrucao>
343                 </option>
344              </dtml-in>
345            </select>
346          </td>
347          <td width="35%" class="form-text"><b>Sexo (*)</b><br />
348            <dtml-in expr="['Masculino', 'Feminino']">
349              <input type="radio" name="rad_sex_parlamentar" value="<dtml-var expr="_['sequence-item'][0]">"
350                     <dtml-if expr="_.has_key('cod_parlamentar') and sex_parlamentar==_['sequence-item'][0]"> checked=1
351                     </dtml-if>
352                     onChange="javascript:form.hdn_alterou.value=1" />
353              <dtml-var expr="_['sequence-item']">
354            </dtml-in></td>
355          <td width="40%" class="form-text"><b>Data Nascimento</b><br />
356            <input type="text" name="txt_dat_nascimento"
357            value="<dtml-var dat_nascimento missing null="">"
358            size="10" maxlength="10"
359            onBlur="formata_data(form.txt_dat_nascimento)"
360            onChange="javascript:form.hdn_alterou.value=1" />
361            <span class="nota">(dd/mm/aaaa)</span></td>
362        </tr>
363        <tr align="left" style="height:45">
364          <td width="25%" class="form-element">C.P.F<br />
365            <input type="text" name="txt_num_cpf" value="<dtml-var
366            num_cpf missing>" size="14" maxlength="14"
367            onChange="javascript:form.hdn_alterou.value=1" /></td>
368          <td width="35%" class="form-element">R.G.<br />
369            <input type="text" name="txt_num_rg" value="<dtml-var
370            num_rg missing>" size="15" maxlength="15"
371            onChange="javascript:form.hdn_alterou.value=1" /></td>
372          <td width="40%" class="form-element">T&iacute;tulo de Eleitor<br />
373            <input type="text" name="txt_num_tit_eleitor"
374            value="<dtml-var num_tit_eleitor missing>"  size="15"
375            maxlength="15"
376            onChange="javascript:form.hdn_alterou.value=1" /></td>
377        </tr>
378        <tr align="left"  style="height:45">
379          <td width="25%" class="form-element">Situa&ccedil;&atilde;o Militar<br />
380            <select name="lst_tip_situacao_militar" size="1" onChange="javascript:form.hdn_alterou.value=1">
381                 <option>Selecione</option>
382              <dtml-in expr="zsql.tipo_situacao_militar_obter_zsql()">             
383                 <option
384                    <dtml-if expr="tip_situacao_militar==parlamentar_form.tip_situacao_militar and _.has_key('cod_parlamentar')">
385                        selected
386                    </dtml-if>
387                    value="<dtml-var tip_situacao_militar>"><dtml-var des_tipo_situacao>
388                 </option>
389              </dtml-in>
390            </select></td>
391          <td colspan="2" class="form-element">Profiss&atilde;o<br />
392            <input type="text" name="txt_nom_profissao"
393            value="<dtml-var nom_profissao missing>" size="25"
394            maxlength="50"
395            onChange="javascript:form.hdn_alterou.value=1" /></td>
396        </tr>
397        <tr align="left"  style="height:45">
398          <td colspan="3" class="form-element">HomePage<br />
399            <input type="text" name="txt_end_web" value="<dtml-var
400            end_web missing>" size="60" maxlength="100"
401            onChange="javascript:form.hdn_alterou.value=1" /></td>
402        </tr>
403        <tr style="height:45">   
404          <td colspan="3" class="form-element">Correio Eletr&ocirc;nico<br />
405            <input type="text" name="txt_end_email" value="<dtml-var
406            end_email missing>" size="60" maxlength="100"
407            onChange="javascript:form.hdn_alterou.value=1" /></td>
408        </tr>
409        <tr align="left" style="height:45">
410          <td width="25%" class="form-element">N&ordm; Gabinete<br />
411            <input type="text" name="txt_num_gab_parlamentar"
412            value="<dtml-var num_gab_parlamentar missing>" size="10"
413            maxlength="10"
414            onChange="javascript:form.hdn_alterou.value=1" /></td>
415          <td width="35%" class="form-element">Telefone /<br />
416            <input type="text" name="txt_num_tel_parlamentar"
417            value="<dtml-var num_tel_parlamentar missing>" size="15"
418            maxlength="50"
419            onChange="javascript:form.hdn_alterou.value=1" /></td>
420          <td width="40%" class="form-element">Fax<br />
421            <input type="text" name="txt_num_fax_parlamentar"
422            value="<dtml-var num_fax_parlamentar missing>" size="15"
423            maxlength="50"
424            onChange="javascript:form.hdn_alterou.value=1" /></td>
425        </tr>
426        <tr align="left" style="height:45">
427          <td colspan="2" valign="top" class="form-element">Endere&ccedil;o Residencial<br />
428            <input type="text" name="txt_end_residencial"
429            value="<dtml-var end_residencial missing>" size="35"
430            maxlength="100"
431            onChange="javascript:form.hdn_alterou.value=1" /></td>
432          <td width="40%" class="form-element">CEP<br />
433            <input type="text" name="txt_num_cep_resid"
434            value="<dtml-var num_cep_resid missing>" size="9"
435            maxlength="9"
436            onChange="javascript:form.hdn_alterou.value=1" /></td>
437        </tr>
438        <tr align="left" style="height:45">
439          <td colspan="2" class="form-element">Munic&iacute;pio<br />
440            <input type="text" name="txt_municipio" value="<dtml-if
441            cod_localidade_resid><dtml-var nom_localidade missing
442            null=""></dtml-if>" size="35" maxlength="50"
443            onChange="javascript:form.hdn_alterou.value=1" />
444            <input type="button" name="btn_localidade" value=" ? "
445            onClick="localidade_mostrar(document.parlamentar_form)" /></td>
446          <td width="40%" class="form-element">UF<br />
447            <select name="lst_sgl_uf" size="1" onChange="javascript:form.hdn_alterou.value=1">
448                <option>Selecione</option>
449              <dtml-in expr="zsql.localidade_obter_zsql(tip_localidade='U')">
450                <option
451                  <dtml-if expr="sgl_uf==parlamentar_form.sgl_uf and _.has_key('cod_parlamentar')">
452                      selected
453                  </dtml-if>
454                  value="<dtml-var sgl_uf>"><dtml-var sgl_uf>
455                </option>
456              </dtml-in>
457            </select></td>
458        </tr>
459        <tr align="left" style="height:45">
460          <td colspan="2" class="form-element">Telefone<br />
461            <input type="text" name="txt_num_tel_resid"
462            value="<dtml-var num_tel_resid missing>" size="15"
463            maxlength="50"
464            onChange="javascript:form.hdn_alterou.value=1" /></td>
465          <td width="40%" class="form-element">Fax<br />
466            <input type="text" name="txt_num_fax_resid"
467            value="<dtml-var num_fax_resid missing>" size="15"
468            maxlength="50"
469            onChange="javascript:form.hdn_alterou.value=1" /></td>
470        </tr>
471        <tr align="left" style="height:45">
472          <td colspan="3" class="form-element">Locais de Atua&ccedil;&atilde;o<br />
473            <input type="text" name="txt_des_local_atuacao"
474            value="<dtml-var des_local_atuacao missing>" size="60"
475            maxlength="100"
476            onChange="javascript:form.hdn_alterou.value=1" /></td>
477        </tr>
478        <tr >
479           <td valign="top" class="form-element" align="left">Fotografia:</td>
480        </tr>
481        <tr>
482           <td colspan="5">
483              <dtml-comment>
484              <dtml-in expr="sapl_documentos.parlamentar.fotos.objectValues('Image')">
485                  <dtml-if expr=" _.str(cod_parlamentar)+'_'+sapl_documentos.parlamentar.fotos.nom_documento == id() ">
486                    <img width="45%" src="<dtml-var absolute_url>">
487                    <input type="button" name="delFoto"
488                    value="Excluir"
489                    onClick="javascript:fotografia_excluir()" />
490                  </dtml-if>
491              </dtml-in>
492              </dtml-comment>
493              <dtml-if cod_parlamentar>
494                 <dtml-call expr="REQUEST.set('id_foto', _.str(cod_parlamentar)+'_foto_parlamentar')">
495                 <dtml-if "_.hasattr(sapl_documentos.parlamentar.fotos,id_foto)">                     
496                    <img src="portal_url/sapl_documentos/parlamentar/fotos/<dtml-var id_foto>">
497                    <input type="button" name="delFoto" class="botao" value="Excluir Fotografia"
498                    onClick="javascript:fotografia_excluir()" />
499                    <input type="hidden" name="hdn_file" value=0 />
500                 <dtml-else>   
501                    <input type="hidden" name="hdn_file" value=0 /> 
502                    <input type="file" name="file_nom_imagem"
503                    size="40" maxlength="100"
504                    onChange="setar_hdn_file(form)" />
505                 </dtml-if>
506              <dtml-else>
507                 <input type="hidden" name="hdn_file" value=0 />
508                 <input type="file" name="file_nom_imagem" size="40"
509                 maxlength="100" onChange="setar_hdn_file(form)" />
510              </dtml-if>
511          </td></tr>
512      </table>
513     </fieldset>
514      <br />
515   
516<dtml-comment>
517******************************************************************
518*   Abaixo estão os dois últimos INPUT do formulário. O primeiro *
519* que executa a função em JAVASCRIPT para validação de alguns    *
520* campos, inclusive todos os obrigatórios. O outro está encarre- *
521* gado de excluir o parlamentar. Esse botão aparecerá no formu-  *
522* lário somente se ele for chamado com os dados de um parlamentar*
523*   O botão executa uma função em JAVASCRIPT para chamar o Método*
524* DTML responsável pela exclusão do parlamentar.                 *
525******************************************************************
526</dtml-comment>
527<tr><td valign="top" align="center">
528      <input type="button" name="btn_parlamentar_salvar" class="botao"
529      value="Salvar"
530      onClick="campos_criticar(document.parlamentar_form)" />
531      <dtml-if cod_parlamentar>
532         &nbsp;&nbsp;<input type="button"
533         name="btn_parlamentar_excluir" class="botao" value="Excluir"
534         onClick="parlamentar_excluir()" />
535      <dtml-else>
536         <input type="hidden" name="hdn_num_leg"
537         value="<dtml-var lst_num_legislatura>" />
538      </dtml-if>
539    </td>
540  </tr>
541</table>
542<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
543         <tr><td height="15"></td></tr>
544      </table>
545
546<dtml-var standard_html_footer>
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.