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 | ... | ... |