FM
evitar que onclean redirecione/recarregue o formulario em Modais e paginas em cortina lateral
Boa tarde !
Gostaria de saber , como posso fazer pro metodo onClear não recarregar/redirecionar para outra pagina, quando eu estou em um Modal ou em uma pagina de cortina lateral .
Já tentei de diversas formas, exemplos como :
https://framework.adianti.me//tutor/index.php?class=SaleList
e
https://framework.adianti.me//tutor/index.php?class=CustomerDataGridView
não mostram o código do da pagina em cortina, somente da index por trás .
Segue meu código
Formulário em questão :
método utilizado pra abrir em Modal / cortina lateral
botao utilizado pra chamar a janela
Gostaria de saber , como posso fazer pro metodo onClear não recarregar/redirecionar para outra pagina, quando eu estou em um Modal ou em uma pagina de cortina lateral .
Já tentei de diversas formas, exemplos como :
https://framework.adianti.me//tutor/index.php?class=SaleList
e
https://framework.adianti.me//tutor/index.php?class=CustomerDataGridView
não mostram o código do da pagina em cortina, somente da index por trás .
Segue meu código
Formulário em questão :
- <?php
- class DistribuidoraForm extends TPage
- {
- private $form;
- use Adianti\Base\AdiantiStandardFormTrait;
- public function __construct($param)
- {
- parent::__construct();
- $this->setDatabase('x');
- $this->setActiveRecord('Distribuidora');
- $this->form = new BootstrapFormBuilder('distribuidoraForm');
- $this->form->setFormTitle(_t('Distributor'));
- $this->form->setClientValidation( true );
- $this->form->setFieldSizes('100%');
- $ID_DISTRIBUIDORA = new TEntry('ID_DISTRIBUIDORA');
- $ID_DISTRIBUIDORA->setEditable(FALSE);
- $SIGLA = new TEntry('SIGLA');
- $RAZAO_SOCIAL = new TEntry('RAZAO_SOCIAL');
- $CNPJ = new TEntry('CNPJ');
- $ID_SUBMERCADO = new TDBCombo('ID_SUBMERCADO','america_gestao','Submarket','ID_SUBMERCADO','SIGLA');
- $DIA_REAJUSTE = new TEntry('DIA_REAJUSTE');
- $MES_REAJUSTE = new TEntry('MES_REAJUSTE');
- $this->form->setFormTitle(_t('Distributor'));
- $row = $this->form->addFields( [ new TLabel('<b>'._t('Distributor code').'</b>'), $ID_DISTRIBUIDORA ] );
- $row->layout = ['col-md-12' ];
- $row = $this->form->addFields(
- [new TLabel('<b>'._t('Initials').'</b>'), $SIGLA],
- [new TLabel('<b>'._t('Corporate name').'</b>'), $RAZAO_SOCIAL],
- [new TLabel('<b> CNPJ</b>'), $CNPJ ],
- );
- $row->layout = ['col-sm-4', 'col-sm-4', 'col-sm-4'];
- $row = $this->form->addFields(
- [new TLabel('<b>'._t('Submarket').'</b>'), $ID_SUBMERCADO],
- [new TLabel('<b>'._t('Readjustment day').'</b>'), $DIA_REAJUSTE ],
- [new TLabel('<b>'._t('Month of readjustmenty').'</b>'), $MES_REAJUSTE]
- );
- $row->layout = ['col-sm-4', 'col-sm-4', 'col-sm-4'];
- $this->form->addAction('Salvar', new TAction( [$this, 'onSave'] ), 'fa:save green');
- $this->form->addActionLink(_t('Back'),new TAction(array('DistribuidoraList','onReload')),'far:arrow-alt-circle-left blue');
- $this->form->addActionLink('Limpar', new TAction( [$this, 'onClear']), 'fa:eraser red');
- parent::add($this->form);
- }
- public function onEdit( $param )
- {
- try
- {
- TTransaction::open('america_gestao');
- if ( isset( $param['ID_DISTRIBUIDORA'] ) )
- {
- $key = $param['ID_DISTRIBUIDORA'];
- $dist = new Distribuidora($key);
- $dist->ID_ALTERADO_POR = TSession::getValue('userid');
- $dist->DT_ALTERADO_EM = date('Y-m-d h:i:sa');
- $this->form->setData($dist);
- }
- else
- {
- $this->form->clear();
- }
- TTransaction::close();
- } catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- public function cadastrarDist($param)
- {
- $this->form->onEdit($param);
- }
- public function onClear()
- {
- $this->form->clear();
- }
- ?>
método utilizado pra abrir em Modal / cortina lateral
- <?php
- /**
- * CustomerFormWindow Active Record
- *
- */
- class DistribuidoraFormWindow extends TPage
- {
- public function __construct($param)
- {
- parent::__construct($param);
- //parent::setSize(0.6, 0.6);
- //parent::setMinWidth(1, 700);
- //parent::removePadding();
- //parent::disableEscape();
- //parent::setTitle(_t('Register/edit distributor'));
- $this->form = new DistribuidoraForm($param, true);
- //$this->form->setTargetContainer('');
- parent::setTargetContainer('adianti_right_panel');
- parent::add($this->form);
- }
- /**
- * Redirect calls to decorated object
- */
- public function cadastrarDist($param)
- {
- $this->form->onEdit($param);
- }
- }
- ?>
botao utilizado pra chamar a janela
- <?php
- $button = new TActionLink('', new TAction(['DistribuidoraFormWindow', 'cadastrarDist'],['ID_DISTRIBUIDORA' => $id_modal_dist , 'register_state' => 'false']), 'green', null, null, 'fa:plus-circle');
- ?>
Editado 05/05/2022 (há 1 ano) - Clique para ver alterações
Acredito que a forma mais fácil seja fazer isso estaticamente, ou seja, sem recarga de tela. Ex: