Commit 62a0e641ec2c514b56a0d91b309e7857a33c63c1
1 parent
82e257a3
Exists in
master
#25 by Eriksen: Corrigido bug em select de funções durante cadastro de novo serv…
…idor. Correção inclui: * Correção e documentação do código javascript do select de funções * Teste funcional com Selenium para verificar correção do bug
Showing
3 changed files
with
318 additions
and
200 deletions
Show diff stats
ieducar/intranet/educar_limpa_sessao_curso_disciplina_servidor.php
1 | -<? | |
1 | +<?php | |
2 | 2 | |
3 | - @session_start(); | |
4 | - unset($_SESSION['cursos_disciplina']); | |
5 | - unset($_SESSION['cursos_servidor']); | |
6 | - unset($_SESSION['cod_servidor']); | |
7 | - @session_write_close(); | |
8 | - echo ""; | |
3 | +/* | |
4 | + * i-Educar - Sistema de gestão de escolas | |
5 | + * | |
6 | + * Copyright (c) 2006 Prefeitura Municipal de Itajaí | |
7 | + * <ctima@itajai.sc.gov.br> | |
8 | + * | |
9 | + * Este programa é software livre; você pode redistribuÃí-lo e/ou modificá-lo | |
10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
12 | + * qualquer versão posterior. | |
13 | + * | |
14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
17 | + * do GNU para mais detalhes. | |
18 | + * | |
19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
22 | + */ | |
9 | 23 | |
10 | -?> | |
11 | 24 | \ No newline at end of file |
25 | +/** | |
26 | + * Apaga variáveis de sessão contendo dados de função do servidor | |
27 | + * | |
28 | + * Arquivo acessado via XMLHttpRequest | |
29 | + * | |
30 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
31 | + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL | |
32 | + * @package Core | |
33 | + * @since Arquivo disponível desde a versão 1.0.0 | |
34 | + * @version $Id$ | |
35 | + */ | |
36 | + | |
37 | +session_start(); | |
38 | +unset($_SESSION['cursos_disciplina']); | |
39 | +unset($_SESSION['cursos_servidor']); | |
40 | +unset($_SESSION['cod_servidor']); | |
41 | +session_write_close(); | |
42 | +echo ""; | |
12 | 43 | \ No newline at end of file | ... | ... |
ieducar/intranet/educar_servidor_cad.php
1 | 1 | <?php |
2 | -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | |
3 | - * * | |
4 | - * @author Prefeitura Municipal de Itajaí * | |
5 | - * @updated 29/03/2007 * | |
6 | - * Pacote: i-PLB Software Público Livre e Brasileiro * | |
7 | - * * | |
8 | - * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí * | |
9 | - * ctima@itajai.sc.gov.br * | |
10 | - * * | |
11 | - * Este programa é software livre, você pode redistribuí-lo e/ou * | |
12 | - * modificá-lo sob os termos da Licença Pública Geral GNU, conforme * | |
13 | - * publicada pela Free Software Foundation, tanto a versão 2 da * | |
14 | - * Licença como (a seu critério) qualquer versão mais nova. * | |
15 | - * * | |
16 | - * Este programa é distribuído na expectativa de ser útil, mas SEM * | |
17 | - * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- * | |
18 | - * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- * | |
19 | - * sulte a Licença Pública Geral GNU para obter mais detalhes. * | |
20 | - * * | |
21 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU * | |
22 | - * junto com este programa. Se não, escreva para a Free Software * | |
23 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * | |
24 | - * 02111-1307, USA. * | |
25 | - * * | |
26 | - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | |
27 | - | |
28 | -require_once ("include/clsBase.inc.php"); | |
29 | -require_once ("include/clsCadastro.inc.php"); | |
30 | -require_once ("include/clsBanco.inc.php"); | |
31 | -require_once( "include/pmieducar/geral.inc.php" ); | |
32 | - | |
33 | -class clsIndexBase extends clsBase | |
34 | -{ | |
35 | - function Formular() | |
36 | - { | |
37 | - $this->SetTitulo( "{$this->_instituicao} i-Educar - Servidor" ); | |
38 | - $this->processoAp = "635"; | |
39 | - } | |
2 | + | |
3 | +/* | |
4 | + * i-Educar - Sistema de gestão de escolas | |
5 | + * | |
6 | + * Copyright (c) 2006 Prefeitura Municipal de Itajaí | |
7 | + * <ctima@itajai.sc.gov.br> | |
8 | + * | |
9 | + * Este programa é software livre; você pode redistribuÃí-lo e/ou modificá-lo | |
10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
12 | + * qualquer versão posterior. | |
13 | + * | |
14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
17 | + * do GNU para mais detalhes. | |
18 | + * | |
19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
22 | + */ | |
23 | + | |
24 | +/** | |
25 | + * Formulário de cadastro de servidor | |
26 | + * | |
27 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
28 | + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL | |
29 | + * @package Core | |
30 | + * @since Arquivo disponível desde a versão 1.0.0 | |
31 | + * @version $Id$ | |
32 | + */ | |
33 | + | |
34 | +require_once 'include/clsBase.inc.php'; | |
35 | +require_once 'include/clsCadastro.inc.php'; | |
36 | +require_once 'include/clsBanco.inc.php'; | |
37 | +require_once 'include/pmieducar/geral.inc.php'; | |
38 | + | |
39 | + | |
40 | +class clsIndexBase extends clsBase { | |
41 | + public function Formular() { | |
42 | + $this->SetTitulo($this->_instituicao . " i-Educar - Servidor"); | |
43 | + $this->processoAp = "635"; | |
44 | + } | |
40 | 45 | } |
41 | 46 | |
42 | 47 | class indice extends clsCadastro |
... | ... | @@ -214,10 +219,10 @@ class indice extends clsCadastro |
214 | 219 | echo "<!--\nErro\nClasse clsCadastroEscolaridade nao encontrada\n-->"; |
215 | 220 | $opcoes = array( "" => "Erro na geracao" ); |
216 | 221 | } |
217 | - | |
222 | + | |
218 | 223 | $script = "javascript:showExpansivelIframe(350, 100, 'educar_escolaridade_cad_pop.php');"; |
219 | 224 | $script = "<img id='img_deficiencia' style='display: \'\'' src='imagens/banco_imagens/escreve.gif' style='cursor:hand; cursor:pointer;' border='0' onclick=\"{$script}\">"; |
220 | - | |
225 | + | |
221 | 226 | $this->campoLista( "ref_idesco", "Escolaridade", $opcoes, $this->ref_idesco,"",false,"",$script,false,false ); |
222 | 227 | |
223 | 228 | /** |
... | ... | @@ -542,180 +547,184 @@ $pagina->addForm( $miolo ); |
542 | 547 | // gera o html |
543 | 548 | $pagina->MakeAll(); |
544 | 549 | ?> |
545 | -<script> | |
546 | - | |
547 | - function getFuncao(id_campo) | |
548 | - { | |
549 | - var campoInstituicao = document.getElementById('ref_cod_instituicao').value; | |
550 | - var campoFuncao = document.getElementById(id_campo); | |
551 | - campoFuncao.length = 1; | |
552 | - | |
553 | - if( campoFuncao ) | |
554 | - { | |
555 | - campoFuncao.disabled = true; | |
556 | - campoFuncao.options[0].text = 'Carregando funções'; | |
557 | - | |
558 | - var xml = new ajax(atualizaLstFuncao,id_campo); | |
559 | - xml.envia("educar_funcao_xml.php?ins="+campoInstituicao+"&professor=true"); | |
560 | - } | |
561 | - else | |
562 | - { | |
563 | - campoFuncao.options[0].text = 'Selecione'; | |
564 | - } | |
565 | - } | |
566 | - | |
567 | - function atualizaLstFuncao(xml) | |
568 | - { | |
569 | - | |
570 | - var campoFuncao = document.getElementById(arguments[1]); | |
571 | - | |
572 | - campoFuncao.length = 1; | |
573 | - campoFuncao.options[0].text = 'Selecione uma função'; | |
574 | - campoFuncao.disabled = false; | |
575 | 550 | |
576 | - funcaoChange(campoFuncao); | |
577 | - | |
578 | - var funcoes = xml.getElementsByTagName('funcao'); | |
579 | - if(funcoes.length) | |
580 | - { | |
581 | - for( var i = 0; i < funcoes.length; i++ ) | |
582 | - { | |
583 | - campoFuncao.options[campoFuncao.options.length] = new Option( funcoes[i].firstChild.data, funcoes[i].getAttribute('cod_funcao'),false,false); | |
584 | - } | |
585 | - } | |
586 | - else | |
587 | - { | |
588 | - campoFuncao.options[0].text = 'A instituição não possui nenhuma função'; | |
589 | - } | |
590 | - | |
591 | - | |
592 | - } | |
593 | - | |
594 | - function funcaoChange(campo) | |
595 | - { | |
596 | - var valor = campo.value.split("-"); | |
597 | - var id = /[0-9]+/.exec(campo.id)[0]; | |
598 | - var professor = valor[1] == true; | |
599 | - | |
600 | - var campo_img = document.getElementById('td_disciplina[0]').lastChild.lastChild; | |
601 | - var campo_img2 = document.getElementById('td_curso[0]').lastChild.lastChild; | |
602 | - | |
603 | - //this.previousSibling.previousSibling.id | |
551 | +<script type="text/javascript"> | |
552 | +/** | |
553 | + * Carrega as opções de um campo select de funções via Ajax | |
554 | + */ | |
555 | +function getFuncao(id_campo) { | |
556 | + var campoInstituicao = document.getElementById('ref_cod_instituicao').value; | |
557 | + var campoFuncao = document.getElementById(id_campo); | |
558 | + campoFuncao.length = 1; | |
559 | + | |
560 | + if (campoFuncao) { | |
561 | + campoFuncao.disabled = true; | |
562 | + campoFuncao.options[0].text = 'Carregando funções'; | |
563 | + | |
564 | + var xml = new ajax(atualizaLstFuncao,id_campo); | |
565 | + xml.envia("educar_funcao_xml.php?ins="+campoInstituicao+"&professor=true"); | |
566 | + } | |
567 | + else { | |
568 | + campoFuncao.options[0].text = 'Selecione'; | |
569 | + } | |
570 | +} | |
604 | 571 | |
605 | - //professor | |
606 | - if(professor) | |
607 | - { | |
608 | - //campo_img = campo_img.lastChild; | |
572 | +/** | |
573 | + * Parse de resultado da chamada Ajax de getFuncao(). Adiciona cada item | |
574 | + * retornado como option do select | |
575 | + */ | |
576 | +function atualizaLstFuncao(xml) { | |
577 | + var campoFuncao = document.getElementById(arguments[1]); | |
578 | + | |
579 | + campoFuncao.length = 1; | |
580 | + campoFuncao.options[0].text = 'Selecione uma função'; | |
581 | + campoFuncao.disabled = false; | |
582 | + | |
583 | + funcaoChange(campoFuncao); | |
584 | + | |
585 | + var funcoes = xml.getElementsByTagName('funcao'); | |
586 | + if (funcoes.length) { | |
587 | + for (var i = 0; i < funcoes.length; i++) { | |
588 | + campoFuncao.options[campoFuncao.options.length] = | |
589 | + new Option(funcoes[i].firstChild.data, funcoes[i].getAttribute('cod_funcao'), false, false); | |
590 | + } | |
591 | + } | |
592 | + else { | |
593 | + campoFuncao.options[0].text = 'A instituição não possui funções de servidores'; | |
594 | + } | |
595 | +} | |
609 | 596 | |
610 | - //document.getElementById('novo_func_tab['+(/[0-9]+/.exec(campo.id))+']').value = document.getElementById('novo_func_tab['+(/[0-9]+/.exec(campo.id))+']').value == '' ? 's' : document.getElementById('novo_func_tab['+(/[0-9]+/.exec(campo.id))+']').value == 'n' ? 's' : 'n'; | |
611 | 597 | |
612 | - /*while(campo_img.tagName != 'IMG') | |
613 | - { | |
614 | - campo_img = campo_img.nextSibling; | |
615 | - }*/ | |
616 | - setVisibility(campo_img, true); | |
617 | - setVisibility(campo_img2, true); | |
618 | - } | |
619 | - else | |
620 | - { | |
621 | - //campo_img = campo_img.childNodes[0]; | |
598 | +/** | |
599 | + * Altera a visibilidade de opções extras | |
600 | + * | |
601 | + * Quando a função escolhida para o servidor for do tipo professor, torna as | |
602 | + * opções de escolha de disciplina e cursos visíveis | |
603 | + * | |
604 | + * É um toggle on/off | |
605 | + */ | |
606 | +function funcaoChange(campo) { | |
607 | + var valor = campo.value.split("-"); | |
608 | + var id = /[0-9]+/.exec(campo.id)[0]; | |
609 | + var professor = (valor[1] == true); | |
610 | + | |
611 | + var campo_img = document.getElementById('td_disciplina['+ id +']').lastChild.lastChild; | |
612 | + var campo_img2 = document.getElementById('td_curso['+ id +']').lastChild.lastChild; | |
613 | + | |
614 | + // Se for professor | |
615 | + if (professor == true) { | |
616 | + setVisibility(campo_img, true); | |
617 | + setVisibility(campo_img2, true); | |
618 | + } | |
619 | + else { | |
620 | + setVisibility(campo_img, false); | |
621 | + setVisibility(campo_img2, false); | |
622 | + } | |
623 | +} | |
622 | 624 | |
623 | - //document.getElementById('novo_func_tab['+(/[0-9]+/.exec(campo.id))+']').value = document.getElementById('novo_func_tab['+(/[0-9]+/.exec(campo.id))+']').value == '' ? 's' : document.getElementById('novo_func_tab['+(/[0-9]+/.exec(campo.id))+']').value == 'n' ? 's' : 'n'; | |
624 | 625 | |
625 | - /*while(campo_img.tagName != 'IMG') | |
626 | - { | |
627 | - campo_img = campo_img.nextSibling; | |
628 | - }*/ | |
626 | +/** | |
627 | + * Chama as funções getFuncao e funcaoChange para todas as linhas da tabela | |
628 | + * de função de servidor | |
629 | + */ | |
630 | +function trocaTodasfuncoes() { | |
631 | + for (var ct = 0; ct < tab_add_1.id; ct++) { | |
632 | + // Não executa durante onload senão, funções atuais são substituídas | |
633 | + if (onloadCallOnce == false) { | |
634 | + getFuncao('ref_cod_funcao[' + ct + ']'); | |
635 | + } | |
636 | + funcaoChange(document.getElementById('ref_cod_funcao[' + ct + ']')); | |
637 | + } | |
638 | +} | |
629 | 639 | |
630 | - setVisibility(campo_img, false); | |
631 | - setVisibility(campo_img2, false); | |
632 | - //!getVisibility(campo) | |
633 | 640 | |
634 | - } | |
641 | +/** | |
642 | + * Verifica se ref_cod_instituicao existe via DOM e dá um bind no evento | |
643 | + * onchange do elemento para executar a função trocaTodasfuncoes() | |
644 | + */ | |
645 | +if (document.getElementById('ref_cod_instituicao')) { | |
646 | + var ref_cod_instituicao = document.getElementById('ref_cod_instituicao'); | |
635 | 647 | |
636 | - } | |
637 | - function popless() | |
638 | - { | |
639 | - var campoInstituicao = document.getElementById('ref_cod_instituicao').value; | |
640 | - var campoServidor = document.getElementById('cod_servidor').value; | |
641 | - pesquisa_valores_popless1('educar_servidor_disciplina_lst.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); | |
642 | - } | |
648 | + // Função anônima para evento onchance do select de instituição | |
649 | + ref_cod_instituicao.onchange = function() { | |
650 | + trocaTodasfuncoes(); | |
651 | + var xml = new ajax(function(){}); | |
652 | + xml.envia("educar_limpa_sessao_curso_disciplina_servidor.php"); | |
653 | + } | |
654 | +} | |
643 | 655 | |
644 | - function popCurso() | |
645 | - { | |
646 | - var campoInstituicao = document.getElementById('ref_cod_instituicao').value; | |
647 | - var campoServidor = document.getElementById('cod_servidor').value; | |
648 | - pesquisa_valores_popless('educar_servidor_curso_lst.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); | |
649 | - } | |
650 | 656 | |
651 | - function pesquisa_valores_popless1(caminho, campo) | |
652 | - { | |
653 | - new_id = DOM_divs.length; | |
654 | - div = 'div_dinamico_' + new_id; | |
655 | - if ( caminho.indexOf( '?' ) == -1 ) | |
656 | - showExpansivel( 850, 500, '<iframe src="' + caminho + '?campo=' + campo + '&div=' + div + '&popless=1" frameborder="0" height="100%" width="100%" marginheight="0" marginwidth="0" name="temp_win_popless"></iframe>', 'Pesquisa de valores' ); | |
657 | - else | |
658 | - showExpansivel( 850, 500, '<iframe src="' + caminho + '&campo=' + campo + '&div=' + div + '&popless=1" frameborder="0" height="100%" width="100%" marginheight="0" marginwidth="0" name="temp_win_popless"></iframe>', 'Pesquisa de valores' ); | |
659 | - } | |
660 | - | |
661 | - tab_add_1.afterAddRow = function () { funcaoChange(document.getElementById('ref_cod_funcao['+(tab_add_1.id-1)+']')); getFuncao('ref_cod_funcao['+(tab_add_1.id-1)+']');} | |
657 | +/** | |
658 | + * Chama as funções funcaoChange e getFuncao após a execução da função addRow | |
659 | + */ | |
660 | +tab_add_1.afterAddRow = function () { | |
661 | + funcaoChange(document.getElementById('ref_cod_funcao['+(tab_add_1.id - 1)+']')); | |
662 | + getFuncao('ref_cod_funcao['+(tab_add_1.id-1)+']'); | |
663 | +} | |
662 | 664 | |
663 | - window.onload = function() | |
664 | - { | |
665 | - trocaTodasfuncoes(); | |
666 | - } | |
667 | 665 | |
668 | - function trocaTodasfuncoes() | |
669 | - { | |
670 | - for(var ct=0;ct<tab_add_1.id;ct++) | |
671 | - { | |
672 | - //funcaoChange(document.getElementById('ref_cod_funcao['+ct+']')); | |
673 | - funcaoChange(document.getElementById('ref_cod_funcao['+ct+']')); | |
674 | - //getFuncao('ref_cod_funcao['+ct+']'); | |
675 | - } | |
676 | - } | |
666 | +/** | |
667 | + * Variável de estado, deve ser checada por funções que queiram executar ou | |
668 | + * não um trecho de código apenas durante o onload | |
669 | + */ | |
670 | +var onloadCallOnce = true; | |
671 | +window.onload = function() { | |
672 | + trocaTodasfuncoes(); | |
673 | + onloadCallOnce = false; | |
674 | +} | |
677 | 675 | |
678 | - if ( document.getElementById( 'ref_cod_instituicao' ) ) { | |
679 | - var ref_cod_instituicao = document.getElementById( 'ref_cod_instituicao' ); | |
680 | - ref_cod_instituicao.onchange = function() { | |
681 | - trocaTodasfuncoes(); | |
682 | - var xml = new ajax(function(){}); | |
683 | - xml.envia("educar_limpa_sessao_curso_disciplina_servidor.php");} | |
684 | - } | |
685 | 676 | |
686 | - function getArrayHora(hora){ | |
687 | - var array_h; | |
688 | - if(hora) | |
689 | - array_h = hora.split(":"); | |
690 | - else | |
691 | - array_h = new Array(0,0); | |
677 | +function getArrayHora(hora) { | |
678 | + var array_h; | |
679 | + if (hora) { | |
680 | + array_h = hora.split(":"); | |
681 | + } | |
682 | + else { | |
683 | + array_h = new Array(0,0); | |
684 | + } | |
692 | 685 | |
693 | - return array_h; | |
686 | + return array_h; | |
687 | +} | |
694 | 688 | |
695 | - } | |
689 | +function acao2() { | |
690 | + var total_horas_alocadas = getArrayHora(document.getElementById('total_horas_alocadas').value); | |
691 | + var carga_horaria = (document.getElementById('carga_horaria').value).replace(',', '.'); | |
696 | 692 | |
697 | - function acao2() | |
698 | - { | |
699 | - var total_horas_alocadas = getArrayHora( document.getElementById( 'total_horas_alocadas' ).value ); | |
693 | + if (parseFloat(total_horas_alocadas) > parseFloat(carga_horaria)) { | |
694 | + alert('Atenção, carga horária deve ser maior que horas alocadas!'); | |
700 | 695 | |
701 | - var carga_horaria = ( document.getElementById( 'carga_horaria' ).value ).replace( ',', '.' ); | |
696 | + return false; | |
697 | + } | |
698 | + else { | |
699 | + acao(); | |
700 | + } | |
701 | +} | |
702 | 702 | |
703 | - //var horas_trabalhadas = Date.UTC( 1970, 01, 01, parseInt( total_horas_alocadas[0], 10 ), parseInt( total_horas_alocadas[1], 10 ), 0 ); | |
703 | +if (document.getElementById('total_horas_alocadas')) { | |
704 | + document.getElementById('total_horas_alocadas').style.textAlign='right'; | |
705 | +} | |
704 | 706 | |
705 | - //var total_horas = Date.UTC( 1970, 01, 01, parseInt( carga_horaria, 10 ), ( carga_horaria - parseInt( carga_horaria, 10 ) ) * 60, 0 ); | |
706 | 707 | |
707 | - if( parseFloat( total_horas_alocadas ) > parseFloat( carga_horaria ) ) | |
708 | - { | |
709 | - alert( 'Atenção, carga horária deve ser maior que horas alocadas!' ); | |
710 | - return false; | |
708 | +function popless() { | |
709 | + var campoInstituicao = document.getElementById('ref_cod_instituicao').value; | |
710 | + var campoServidor = document.getElementById('cod_servidor').value; | |
711 | + pesquisa_valores_popless1('educar_servidor_disciplina_lst.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); | |
712 | +} | |
711 | 713 | |
712 | - } | |
713 | - else | |
714 | - { | |
715 | - acao(); | |
716 | - } | |
717 | - } | |
714 | +function popCurso() { | |
715 | + var campoInstituicao = document.getElementById('ref_cod_instituicao').value; | |
716 | + var campoServidor = document.getElementById('cod_servidor').value; | |
717 | + pesquisa_valores_popless('educar_servidor_curso_lst.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); | |
718 | +} | |
718 | 719 | |
719 | - if ( document.getElementById('total_horas_alocadas') ) | |
720 | - document.getElementById('total_horas_alocadas').style.textAlign='right'; | |
720 | +function pesquisa_valores_popless1(caminho, campo) { | |
721 | + new_id = DOM_divs.length; | |
722 | + div = 'div_dinamico_' + new_id; | |
723 | + if (caminho.indexOf('?') == -1) { | |
724 | + showExpansivel(850, 500, '<iframe src="' + caminho + '?campo=' + campo + '&div=' + div + '&popless=1" frameborder="0" height="100%" width="100%" marginheight="0" marginwidth="0" name="temp_win_popless"></iframe>', 'Pesquisa de valores' ); | |
725 | + } | |
726 | + else { | |
727 | + showExpansivel(850, 500, '<iframe src="' + caminho + '&campo=' + campo + '&div=' + div + '&popless=1" frameborder="0" height="100%" width="100%" marginheight="0" marginwidth="0" name="temp_win_popless"></iframe>', 'Pesquisa de valores' ); | |
728 | + } | |
729 | +} | |
721 | 730 | </script> |
722 | 731 | \ No newline at end of file | ... | ... |
ieducar/tests/functional/ServidorCriarNovoSelectFuncoes.class.php
0 → 100644
... | ... | @@ -0,0 +1,78 @@ |
1 | +<?php | |
2 | + | |
3 | +/* | |
4 | + * i-Educar - Sistema de gestão de escolas | |
5 | + * | |
6 | + * Copyright (c) 2006 Prefeitura Municipal de Itajaí | |
7 | + * <ctima@itajai.sc.gov.br> | |
8 | + * | |
9 | + * Este programa é software livre; você pode redistribuÃí-lo e/ou modificá-lo | |
10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
12 | + * qualquer versão posterior. | |
13 | + * | |
14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
17 | + * do GNU para mais detalhes. | |
18 | + * | |
19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
22 | + */ | |
23 | + | |
24 | + | |
25 | +require_once realpath(dirname(__FILE__) . '/../') . '/FunctionalBaseTest.class.php'; | |
26 | + | |
27 | +/** | |
28 | + * ServidorCriarNovoSelectFuncoes class | |
29 | + * | |
30 | + * Testa se a condição de carregamento de funções via XMLHttpRequest do select | |
31 | + * de funções está funcionando corretamente. Esse comportamento é testado para | |
32 | + * assegurar a correção do bug do {@link http://svn.softwarepublico.gov.br/trac/ieducar/ticket/25 ticket 25} | |
33 | + * | |
34 | + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br> | |
35 | + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL | |
36 | + * @package Test | |
37 | + * @since Classe disponível desde a versão 1.0.2 | |
38 | + * @version $Id$ | |
39 | + */ | |
40 | +class ServidorCriarNovoSelectFuncoes extends FunctionalBaseTest { | |
41 | + | |
42 | + /** | |
43 | + * Testa se o select de funções do cadastro de servidor contém mais de uma | |
44 | + * opção | |
45 | + * | |
46 | + * Esse teste espera que a primeira instituição lista no select | |
47 | + * ref_cod_instituicao tenha funções cadastradas | |
48 | + * | |
49 | + * @see educar_servidor_cad.php | |
50 | + */ | |
51 | + public function testSelectFuncoesWithOptions() { | |
52 | + $this->doLogin(); | |
53 | + $this->open('/intranet/educar_servidor_cad.php'); | |
54 | + | |
55 | + $items = 0; | |
56 | + $timeout = 60; | |
57 | + $this->select("//*[@id=\"ref_cod_instituicao\"]", "index=1"); | |
58 | + | |
59 | + for ($second = 0; ; $second++) { | |
60 | + if ($second >= $timeout) { | |
61 | + $this->fail("Requisição XMLHTTPRequest demorou mais que " . $timeout . | |
62 | + " segundos."); | |
63 | + } | |
64 | + | |
65 | + try { | |
66 | + $items = count($this->getSelectOptions("//*[@id=\"ref_cod_funcao[0]\"]")); | |
67 | + if ($items > 1) { | |
68 | + $this->assertTrue($items > 1); | |
69 | + break; | |
70 | + } | |
71 | + } catch (Exception $e) { | |
72 | + $this->fail("Exception: " . $e); | |
73 | + } | |
74 | + sleep(1); | |
75 | + } | |
76 | + } | |
77 | + | |
78 | +} | |
0 | 79 | \ No newline at end of file | ... | ... |