MG
Conteúdo da página está triplicando ao exibir o form
Estou com a seguinte situação: Tenho o código abaixo onde estou utilizando notebook para exibir outros conteúdos de um cliente, mas o container principal está sendo exibido 3 vezes.
Eu já repassei o código e não consegui identificar onde isso pode estar ocorrendo.
Peço ajuda dos mais experientes, segue código e anexo a imagem do que está acontecendo:
Eu já repassei o código e não consegui identificar onde isso pode estar ocorrendo.
Peço ajuda dos mais experientes, segue código e anexo a imagem do que está acontecendo:
- <?php
- <?php
- /**
- * Cliente form
- * @author Marcelo Gomes
- */
- class ClienteForm extends TPage
- {
- private $form;
- private $notebook;
- private $datagrid_doc;
- public function __construct()
- {
- parent::__construct();
- // cria o form
- $this->form = new TForm('form_clientes');
- $this->form->class = 'tform';
- $this->form->style = 'width: 100%';
- // cria as abas (tabelas)
- $table_principal = new TTable;
- $table_documentos = new TTable;
- $table_contatos = new TTable;
- $table_principal->style = 'width: 100%';
- //$table_principal->class = 'table table-responsive';
- $table_documentos->style = 'width: 100%';
- //$table_documentos->class = 'table table_responsie';
- $table_contatos->style = 'width: 100%';
- //$table_contatos->class = 'table table_responsie';
- // cria o notebook
- $this->notebook = new BootstrapNotebookWrapper(new TNotebook('100%'));
- // adiciona o notebook ao form
- $this->form->add($this->notebook);
- // campos tela principal
- $id = new TEntry('id');
- $razao_social = new TEntry('razao_social');
- $nome_fantasia = new TEntry('nome_fantasia');
- $tipo_pessoa_id = new TDBCombo('tipo_pessoa_id','eventos','TipoPessoas','id','descricao','id');
- $cpf_cnpj = new TEntry('cpf_cnpj');
- $cep = new TEntry('cep');
- $logradouro = new TEntry('logradouro');
- $numero = new TEntry('numero');
- $complemento = new TEntry('complemento');
- $bairro = new TEntry('bairro');
- $cidade = new TEntry('cidade');
- $estado = new TEntry('estado');
- $ie = new TEntry('ie');
- $contato = new TEntry('contato');
- $boleto = new TCombo('boleto');
- $pedidocompra = new TCombo('pedidocompra');
- $prazopagto = new TEntry('prazopagto');
- $regrafaturamento = new TEntry('regrafaturamento');
- $observacaofaturamento = new THtmlEditor('observacaofaturamento');
- $observacao = new THtmlEditor('observacao');
- $apelido_id = new ">TDBSeekButton('apelido_id','eventos','form_clientes','Apelidos','descricao','id','nome_apelido');
- $nome_apelido = new TEntry('nome_apelido');
- $segmento_id = new TDBCombo('segmento_id','eventos','Segmento','id','descricao','descricao');
- $situacao = new TCombo('situacao');
- // config campos
- $id->setSize('100%');
- $id->setEditable(FALSE);
- $razao_social->setSize('100%');
- $razao_social->id = 'razao_social';
- $nome_fantasia->setSize('100%');
- $nome_fantasia->id = 'nome_fantasia';
- $tipo_pessoa_id->setValue(1);
- $tipo_pessoa_id->setSize('100%');
- $cpf_cnpj->setMask('999.999.999-99');
- $cep->setMask('99999-999');
- $cep->setSize('100%');
- $numero->setMask('9!');
- $estado->id = 'estado'; // => define id para o javascript poder manipular maiusculo
- $logradouro->setSize('100%');
- $numero->setSize('100%');
- $complemento->setSize('100%');
- $complemento->id = 'complemento';
- $cidade->setSize('100%');
- $cidade->id = 'cidade';
- $estado->setSize('100%');
- $bairro->setSize('100%');
- $bairro->id = 'bairro';
- $ie->setSize('100%');
- $boleto->setSize('100%');
- $pedidocompra->setSize('100%');
- $prazopagto->setSize('100%');
- $regrafaturamento->setSize('100%');
- $observacao->setSize('100%','200');
- $apelido_id->setSize('80');
- $nome_apelido->setSize('100%');
- $nome_apelido->setEditable(FALSE);
- $segmento_id->setSize('100%');
- $situacao->setSize('100%');
- $observacaofaturamento->setSize('100%','200');
- // opcoes
- $sim_nao = array('S'=>'Sim','N'=>'Não');
- $op_situacao = array('A'=>'Ativo', 'I'=>'Inativo', 'B'=>'Bloqueado');
- $boleto->addItems($sim_nao);
- $pedidocompra->addItems($sim_nao);
- $situacao->addItems($op_situacao);
- // desabilita o id
- $id->setEditable(false);
- //script para definir a mascara do cpf/cn
- $script = new TElement('script');
- $script->type = 'text/javascript';
- $javascript = "
- $(document).on('change','select[name=\"tipo_pessoa_id\"]' , function(event){
- //alert('Entrou');
- $('input[name=\"cpf_cnpj\"]').val('');
- $('select[name=\"tipo_pessoa_id\"] > option:selected').each(function(){
- tipoPessoa = $(this).text();
- });
- if(tipoPessoa.toLowerCase() == 'física') {
- $('input[name=\"cpf_cnpj\"]').val('');
- $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return tentry_mask(this,event,\"999.999.999-99\")'});
- }
- if(tipoPessoa.toLowerCase() == 'jurídica') {
- $('input[name=\"cpf_cnpj\"]').val('');
- $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return tentry_mask(this,event,\"99.999.999/9999-99\")'});
- }
- });";
- $script->add($javascript);
- $tableScriptPessoa = new TTable;
- $tableScriptPessoa->addRow()->addCell($script);
- //*****************************************************************
- // scripts letra maiscula na descricao
- $script = new TElement('script');
- $script->type = 'text/javascript';
- $javascript = "
- $('#razao_social').keyup(function(event){
- $(this).val($(this).val().toUpperCase());
- });
- $('#nome_fantasia').keyup(function(event){
- $(this).val($(this).val().toUpperCase());
- });
- $('#estado').keyup(function(event){
- $(this).val($(this).val().toUpperCase());
- });
- $('#complemento').keyup(function(event){
- $(this).val($(this).val().toUpperCase());
- });
- $('#bairro').keyup(function(event){
- $(this).val($(this).val().toUpperCase());
- });
- $('#cidade').keyup(function(event){
- $(this).val($(this).val().toUpperCase());
- });
- ";
- $script->add($javascript);
- $tableScript = new TTable;
- $tableScript->addRow()->addCell($script);
- //******************************************************************
- // validacoes
- $razao_social->addValidation('Razão social', new TRequiredValidator);
- $nome_fantasia->addValidation('Nome', new TRequiredValidator);
- $cpf_cnpj->addValidation('CPF/CNPJ', new TRequiredValidator);
- $situacao->addValidation('Situação', new TRequiredValidator);
- #+------------------------------------------------------------------
- #| Buscar cep e popular os campos
- #+------------------------------------------------------------------
- $buscaCep = new TAction(array($this, 'onCep'));
- $cep->setExitAction($buscaCep);
- #+FIM---------------------------------------------------------------
- #+------------------------------------------------------------------
- #| Validar CPF/CNPJ
- #+------------------------------------------------------------------
- $validarCpf = new TAction(array($this,'onValidaCpfCnpj'));
- $cpf_cnpj->setExitAction($validarCpf);
- //**** FIM DEFINICAO E CONFIG DOS CAMPO PANEL PRINCIPAL *************
- $div_container = MGUtil::div('ui-fluid');
- //$div_panel = MGUtil::div('col-lg-12');
- // adiciona um linha
- // $lb = MGUtil::row();
- // $lb->add(MGUtil::space());
- // $div_panel->add($lb);
- //
- // $div_panel->add(MGUtil::row());
- // $div_panel->add(MGUtil::row());
- //
- // 1 linha
- $r1 = MGUtil::row();
- $div_lbl_id = MGUtil::div('col-lg-1',new TLabel('Código'));
- $div_lbl_id->add(MGUtil::br());
- $div_lbl_id->add($id);
- $r1->add($div_lbl_id);
- # cor campo obrigatorio
- $verm_bold = 'color: red; font-weight:bold;';
- // razao social
- $lbl_razao_social = new TLabel('Razão Social (*)');
- $lbl_razao_social->style = $verm_bold;
- $div_lbl_razao = MGUtil::div('col-lg-3', $lbl_razao_social);
- $div_lbl_razao->add(MGUtil::br());
- $div_lbl_razao->add($razao_social);
- $r1->add($div_lbl_razao);
- // nome fantasia
- $lbl_nome = new TLabel('Nome Fantasia (*)');
- $lbl_nome->style = $verm_bold;
- $div_lbl_nome = MGUtil::div('col-lg-3', $lbl_nome);
- $div_lbl_nome->add(MGUtil::br());
- $div_lbl_nome->add($nome_fantasia);
- $r1->add($div_lbl_nome);
- # apelido
- $lbl_apelido = new TLabel('Apelido (*)');
- $lbl_apelido->style = 'color:red; font-weight:bold;';
- $div_lbl_apelido = MGUtil::div('col-lg-1',$lbl_apelido);
- $div_lbl_apelido->add(MGUtil::br());
- $div_lbl_apelido->add($apelido_id);
- $r1->add($div_lbl_apelido);
- # nome_apelido
- $div_nome_apelido = MGUtil::div('col-lg-2', new TLabel('Descrição'));
- $div_nome_apelido->add(MGUtil::br());
- $div_nome_apelido->add($nome_apelido);
- $r1->add($div_nome_apelido);
- # linha 6 documentos
- $r6 = MGUtil::row();
- $r6->add(MGUtil::br());
- // Tipo de Pessoa
- $div_lbl_tipo_pessoa = MGUtil::div('col-lg-1',new TLabel('Tipo Pessoa'));
- $div_lbl_tipo_pessoa->add(MGUtil::br());
- $div_lbl_tipo_pessoa->add($tipo_pessoa_id);
- $r6->add($div_lbl_tipo_pessoa);
- // CPF CNPJ
- $lbl_cpf = new TLabel('CPF/CNPJ (*)');
- $lbl_cpf->style = $verm_bold;
- $div_cpf = MGUtil::div('col-lg-2', $lbl_cpf);
- $div_cpf->add(MGUtil::br());
- $div_cpf->add($cpf_cnpj);
- $r6->add($div_cpf);
- // ie
- $div_ie = MGUtil::div('col-lg-2', new TLabel('IE'));
- $div_ie->add(MGUtil::br());
- $div_ie->add($ie);
- $r6->add($div_ie);
- # segmento
- $div_lbl_segmento = MGUtil::div('col-lg-2',new TLabel('Segmento'));
- $div_lbl_segmento->add(MGUtil::br());
- $div_lbl_segmento->add($segmento_id);
- $r6->add($div_lbl_segmento);
- // linha 2
- $r2 = MGUtil::row();
- $r2->add(MGUtil::br());
- // CEP
- $div_cep = MGUtil::div('col-lg-1',new TLabel('CEP'));
- $div_cep->add(MGUtil::br());
- $div_cep->add($cep);
- $r2->add($div_cep);
- // logradouro
- $div_logra = MGUtil::div('col-lg-4', new TLabel('Logradouro'));
- $div_logra->add(MGUtil::br());
- $div_logra->add($logradouro);
- $r2->add($div_logra);
- // numero
- //$div_numero = MGUtil::div('col-lg-1', new TLabel('Número'));
- //$div_numero->add(MGUtil::br());
- //$div_numero->add($numero);
- //$r2->add($div_numero);
- // complemento
- $div_comp = MGUtil::div('col-lg-4', new TLabel('Complemento'));
- $div_comp->add(MGUtil::br());
- $div_comp->add($complemento);
- $r2->add($div_comp);
- // linha 3
- $r3 = MGUtil::row();
- $r3->add(MGUtil::br());
- // bairro
- $div_bairro = MGUtil::div('col-lg-5', new TLabel('Bairro'));
- $div_bairro->add(MGUtil::br());
- $div_bairro->add($bairro);
- $r3->add($div_bairro);
- // cidade
- $div_cidade = MGUtil::div('col-lg-5', new TLabel('Cidade'));
- $div_cidade->add(MGUtil::br());
- $div_cidade->add($cidade);
- $r3->add($div_cidade);
- // estado
- $div_estado = MGUtil::div('col-lg-1', new TLabel('UF'));
- $div_estado->add(MGUtil::br());
- $div_estado->add($estado);
- $r3->add($div_estado);
- // linha 4
- $r4 = MGUtil::row();
- $r4->add(MGUtil::br());
- # boleto
- $div_boleto = MGUtil::div('col-lg-1',new TLabel('Boleto'));
- $div_boleto->add(MGUtil::br());
- $div_boleto->add($boleto);
- $r4->add($div_boleto);
- # pedido de compra
- $div_pedido_compra = MGUtil::div('col-lg-2',new TLabel('Pedido de Compra'));
- $div_pedido_compra->add(MGUtil::br());
- $div_pedido_compra->add($pedidocompra);
- $r4->add($div_pedido_compra);
- # prazo pagto
- $div_prazo_pagto = MGUtil::div('col-lg-3', new TLabel('Prazo de Pagamento'));
- $div_prazo_pagto->add(MGUtil::br());
- $div_prazo_pagto->add($prazopagto);
- $r4->add($div_prazo_pagto);
- # regrafaturamento
- $div_regra = MGUtil::div('col-lg-5',new TLabel('Regra de Faturamento'));
- $div_regra->add(MGUtil::br());
- $div_regra->add($regrafaturamento);
- $r4->add($div_regra);
- # situacao
- $lbl_situacao = new TLabel('Situação (*)');
- $lbl_situacao->style = 'color:red; font-weight:bold;';
- $div_situacao = MGUtil::div('col-lg-1', $lbl_situacao);
- $div_situacao->add(MGUtil::br());
- $div_situacao->add($situacao);
- $r4->add($div_situacao);
- # linha 5
- $r5 = MGUtil::row();
- $r5->add(MGUtil::br());
- # obs
- $div_obs = MGUtil::div('col-lg-6', new TLabel('Observação'));
- $div_obs->add(MGUtil::br());
- $div_obs->add($observacao);
- $r5->add($div_obs);
- # obervacaofaturamento
- $div_obs_fat = MGUtil::div('col-lg-6', new TLabel('Observação de Faturamento'));
- $div_obs_fat->add(MGUtil::br());
- $div_obs_fat->add($observacaofaturamento);
- $r5->add($div_obs_fat);
- // adiciona a panel
- // $div_panel->add($r1);
- // $div_panel->add($r6);
- // $div_panel->add($r2);
- // $div_panel->add($r3);
- // $div_panel->add($r4);
- // $div_panel->add($r5);
- //
- // botoes
- $button_save = new TButton('action1');
- $button_save->setAction(new TAction(array($this,'onSavePrincipal')),_t('Save'));
- $button_save->setImage('ico_save.png');
- $button_voltar = new TButton('action2');
- $button_voltar->setAction(new TAction(array('ClientesList','onReload',)),'Cancelar');
- $button_voltar->setImage('ico_close.png');
- $r6 = MGUtil::row();
- $div_bot = MGUtil::div('col-lg-12');
- $div_bot->style = 'background-color: #EFEFEF';
- $div_bot->add($button_save);
- $div_bot->add($button_voltar);
- $r6->add($div_bot);
- $div_container->add($r1);
- $div_container->add($r6);
- $div_container->add($r2);
- $div_container->add($r3);
- $div_container->add($r4);
- $div_container->add($r5);
- $div_container->add($r6);
- // adiciona as linha na div
- //$div_container->add($div_panel);
- // adiciona a div na tabela
- $row = $table_principal->addRow();
- $row->addCell($div_container);
- // adiciona a aba
- $this->notebook->appendPage('Dados Principais',$table_principal);
- $this->notebook->appendPage('Documentos',$table_documentos);
- //*******FIM DO PANEL PRINCIPAL ***********************************
- /*
- #+---------------------------------------------------------------------
- #| Aba Documentos
- #+---------------------------------------------------------------------
- $div_pnl_doc = MGUtil::div('panel panel-default');
- $div_pnl_head = MGUtil::div('panel-heading');
- $div_pnl_body = MGUtil::div('pane-body');
- $lbl_heading = new TLabel('Documentos');
- $lbl_heading->style = 'font-size: 16px; font-weight: bold;';
- $div_pnl_head->add($lbl_heading);
- $div_pnl_doc->add($div_pnl_head);
- # campos
- $file = new TFile('file');
- $descricao_file = new TEntry('descricao_file');
- $this->datagrid_doc = new TDataGrid;
- $col_id = new TDataGridColumn('id','#ID','center');
- $col_descricao = new TDataGridColumn('descricao','Descrição','left');
- $col_nome_doc = new TDataGridColumn('nomedocumento','Nome Documento','left');
- $col_login = new TDataGridColumn('login','Enviado Por','left');
- $col_data = new TDataGridColumn('updated_at','Em','center');
- $this->datagrid_doc->addColumn($col_id);
- $this->datagrid_doc->addColumn($col_descricao);
- $this->datagrid_doc->addColumn($col_nome_doc);
- $this->datagrid_doc->addColumn($col_login);
- $this->datagrid_doc->addColumn($col_data);
- $this->datagrid_doc->disableDefaultClick();
- $this->datagrid_doc->datatable = 'true';
- // create the page navigation
- $this->pageNavigation = new TPageNavigation;
- $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
- $this->pageNavigation->setWidth($this->datagrid_doc->getWidth());
- $col_data->setTransformer(function($value, $object, $row){
- $data = new DateTime($value);
- return $data->format('d/m/Y H:m:s');
- });
- // creates two datagrid actions
- $action1 = new TDataGridAction(array($this, 'onDownload'));
- $action1->setLabel('Download');
- $action1->setImage('ico_down.png');
- $action1->setField('id');
- $this->datagrid_doc->addAction($action1);
- // creates two datagrid actions
- $action1 = new TDataGridAction(array($this, 'onDeleteDocumento'));
- $action1->setLabel('Apagar');
- $action1->setImage('ico_delete.png');
- $action1->setField('id');
- $this->datagrid_doc->addAction($action1);
- # cria o modelo
- $this->datagrid_doc->createModel();
- # config campos
- $file->setSize('100%');
- $descricao_file->setSize('100%');
- # linha 1
- $rf1 = MGUtil::row();
- $div_file = MGUtil::div('col-lg-3',new TLabel('Documento'));
- $div_file->add(MGUtil::br());
- $div_file->add($file);
- $rf1->add($div_file);
- # descricao
- $lbl_descricao_file = new TLabel('Descrição (*)');
- $lbl_descricao_file->style = 'color:red; font-weigh:bold;';
- $div_descricao_file = MGUtil::div('col-lg-4',$lbl_descricao_file);
- $div_descricao_file->add(MGUtil::br());
- $div_descricao_file->add($descricao_file);
- $rf1->add($div_descricao_file);
- # add data grid
- $rf2 = MGUtil::row();
- $lbl_doc = new TLabel('Lista de Documentos;');
- $div_doc = MGUtil::div('col-lg-12', $lbl_doc);
- $div_doc->add(MGUtil::br());
- $div_doc->add($this->datagrid_doc);
- $rf2->add($div_doc);
- $rf2->add($this->pageNavigation);
- # button enviar
- $rf3 = MGUtil::row();
- $div_btn_enviar = MGUtil::div('col-lg-1');
- $action_enviar = new TAction(array($this, 'onSavePrincipal'));
- $btn_enviar = new TButton('btn_upload');
- $btn_enviar->setAction($action_enviar,'Salvar');
- $btn_enviar->setImage('ico_save.png');
- $div_btn_enviar->add($btn_enviar);
- $rf3->add($div_btn_enviar);
- # adiciona a linha ao container2
- $div_pnl_body->add($rf1);
- $div_pnl_body->add($rf2);
- $div_pnl_body->add(MGUtil::br());
- $div_pnl_body->add($rf3);
- # adiciona o container 2
- $div_pnl_doc->add($div_pnl_body);
- $table_documentos->add($div_pnl_doc);
- */
- // add fields
- $this->form->setFields(array($button_save, $id, $razao_social, $nome_fantasia, $cep,
- $logradouro,$numero,$complemento, $cidade, $estado, $cpf_cnpj,
- $tipo_pessoa_id, $ie, $boleto, $pedidocompra, $prazopagto,
- $button_voltar, $regrafaturamento, $observacao, $apelido_id,
- $nome_apelido, $segmento_id, $bairro, $situacao,
- $observacaofaturamento ));
- // adiciona os dados na pagina
- $vbox = new TVBox;
- $vbox->style = 'width: 100%';
- $vbox->add($tableScriptPessoa);
- $vbox->add($tableScript);
- $vbox->add($this->form);
- parent::add($vbox);
- }
- ?
Nessa linha 66 tem um ">
$apelido_id = new ">TDBSeekButton
Não sei como foi aparecer aí, no código original não tem!
O código do construct parece estar correto. Talvez o problema esteja na classe MGUtil, pois se reparar, os labels estão aparecendo duplicados também(CódigoCódigo, por exemplo), o que significa que o método show deles está sendo chamado mais de uma vez
Outro detalhe que observei, o notebook também está duplicado.
Vou rever este form, obrigado.