<?php
/**
* object_edit.php :: Modelo de página que apresenta um formulário
* para inclusão/alteração de registros.
*
* PHP version 4
*
* phpWAFr version 1.1.2
* copyright (c) 2007 Associação SoftwareLivre.org
*
* phpWAFr is an open source PHP library designed to accelerate
* the development of transactional database Web applications.
*
* phpWAFr is released under the terms of the LGPL license 2.1
* http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPL License 2.1
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* @package phpWAFr
* @version 1.1.2
* @author Marcelo Rezende <hide@address.com>
* @copyright copyright (c) 2007 Associação SoftwareLivre.org
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPL License 2.1
*/
require_once("../inc/common.php");
/*
verificação do nível do usuário
*/
verifyUser(1);
/*
estabelece conexão com o banco de dados
*/
$conn = new db();
$conn->open();
/*
tratamento de campos, caso seja edição.
configure conforme suas necessidades
*/
$id = getParam("id"); // captura a variável que veio de object_list
if (strlen($id) > 0) { // edição
$sql = "SELECT * FROM usuario WHERE usuario_id=" . $id;
$rs = new query($conn, $sql);
if ($rs->getrow()) {
$bd_usuario_id = $rs->field("usuario_id");
$bd_data_cadastro = stod($rs->field("data_cadastro"));
$bd_nome_usuario = $rs->field("nome_usuario");
$bd_senha = $rs->field("senha");
$bd_nivel_acesso = $rs->field("nivel_acesso");
$bd_nome_real = $rs->field("nome_real");
$bd_departamento_id = $rs->field("departamento_id");
$bd_email = $rs->field("email");
$bd_descricao = $rs->field("descricao");
$bd_ativo = $rs->field("ativo");
}
} else { // inclusão
$bd_data_cadastro = date("d/m/Y");
$bd_nivel_acesso = 1;
}
// definição da expressão SQL para a função listbox
$sqlDepartamento = "SELECT departamento_id as id, nome_departamento as val FROM departamento ORDER BY nome_departamento";
// definição do lookup
$dep = new Lookup();
$dep->setTitle( "Departamentos");
$dep->setFormFieldName( "f_departamento_id_teste");
$dep->setTableName( "departamento");
$dep->setKeyFieldName( "departamento_id");
$dep->setShowFieldName( "nome_departamento");
$dep->setShowSecondFieldName("nome_departamento"); // opcional
$dep->setFormFieldValue( $bd_departamento_id);
// definição da lista para o campo RadioField
$list_nivel = array("1,Operador", "2,Manutenção", "3,Administrador");
?>
<html>
<head>
<title>object-edit</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="<?=CSS_CONTENT?>">
<script language="javascript" src="../inc/calendario/popcalendar.js"></script>
<script language="javascript" src="../inc/js/lookup.js"></script>
<script language="JavaScript" src="../inc/js/focus.js"></script>
<script language="JavaScript" src="../inc/js/util.js"></script>
<script language="JavaScript" src="../inc/js/textcounter.js"></script>
<script language='JavaScript'>
/*
função que chama a rotina de salvamento,
altere somente o nome da página
*/
function save() {
parent.content.document.frm.target = "control";
parent.content.document.frm.action = "../content/object_save.php";
parent.content.document.frm.submit();
}
/*
exemplo de função que chama script no frame control para complementar o
processamento dos campos no formulário. normalmente chamado pelo onChange dos
campos do formulário.
*/
function updateField(frm) {
indice = frm.f_field.selectedIndex;
localizacao = "object_combo.php?search=" + frm.f_field.options[indice].value;
parent.control.location = localizacao;
}
/*
função que define o foco inicial do formulário,
altere conforme o campo do formulário
*/
function initiate() {
parent.content.document.frm.f_nome_usuario.focus();
}
// previne a perda de dados na troca de abas //////////////////////////////////////////////////////////////////
var alterou = false;
addEvent(document, 'keyup', function(){alterou=true;});
addEvent(document, 'change', function(){alterou=true;});
function verificaAlteracao(obj) {
if (alterou) {
return confirm('Dados foram alterados, deseja prosseguir?');
}
}
</script>
</head>
<body class="contentBODY" onload="initiate()">
<?php
pageTitle("Objeto","Edição");
/*
botões de ações,
configure conforme suas necessidades
*/
$return = $_SERVER['QUERY_STRING'];
$button = new Button;
$button->addItem(" Salvar ", "javascript:save()", "content");
$button->addItem(" Fechar ", "../content/object_list.php?$return", "content");
echo $button->writeHTML();
/*
controle de abas,
true, se for a aba da página atual,
false, se for qualquer outra aba,
configure conforme o exemplo abaixo
*/
$tabs = new Tabs();
$tabs->setOnclickFunction("return verificaAlteracao()");
$tabs->addItem("Geral", true);
if ($id != "") { // se for inclusão, esconde as outras abas
$tabs->addItem("Associação", false, "../content/object_association.php?id=$id");
$tabs->addItem("Ordenação", false, "../content/object_ordering.php?id=$id");
$tabs->addItem("Detalhe", false, "../content/object_read.php?id=$id");
$tabs->addItem("Lista 1:N", false, "../content/object_list_1n.php?id=$id",3);
}
echo $tabs->writeHTML();
echo "<br>";
/*
Formulário
*/
$form = new Form("frm", "../content/object_save.php", "POST", "control", "100%");
$form->setLabelWidth("20%");
$form->setDataWidth("80%");
$form->addHidden("executed", "s"); // variável de control
$form->addHidden("f_id", $bd_usuario_id); // chave primária
$form->addHidden("page", getParam("page")); // número da página que chamou
$form->addField("Data de cadastro: ", dateField( "f_data_cadastro", $bd_data_cadastro, "readonly"));
$form->addField("Nome do usuário: ", textField( "f_nome_usuario", $bd_nome_usuario, 20, 20));
$form->addField("Senha: ", passwordField( "f_password", $bd_senha, 20, 20) . help("Título da ajuda","Texto de ajuda Texto de ajuda Texto de ajuda Texto de ajuda Texto de ajuda Texto de ajuda"));
$form->addField("Nível de acesso: ", radioField($list_nivel, "f_nivel_acesso", $bd_nivel_acesso));
$form->addField("Nome real: ", textField( "f_nome_real", $bd_nome_real, 50, 50));
$form->addBreak("<b>Exemplo de quebra de formulário</b>");
$form->addField("Departamento: ", listboxField($sqlDepartamento, "f_departamento_id", $bd_departamento_id, "", ""));
$form->addField("Departamento 2: ", $dep->writeHTML());
$form->addField("Departamento 3: ", scrollBlock(multipleCheckboxField("f_departamento_id_teste2", $bd_departamento_id, "departamento", "departamento_id", "nome_departamento"),"60px","150px"));
$form->addField("E-mail: ", textField( "f_email", $bd_email, 50, 100));
$form->addField("Descrição: ", textAreaField( "f_descricao", $bd_descricao, 3, 50, 200));
$form->addField("Ativo: ", checkboxField( "f_ativo", 1, $bd_ativo==1));
$form->addField("Documento: ", fileField( "f_arquivo", "imagem.jpg", 30));
echo $form->writeHTML();
?>
</body>
</html>
<?php
/*
encerra a conexão com o banco de dados
*/
$conn->close();
?>