Skip to content

Instantly share code, notes, and snippets.

@renatofrota
Last active March 16, 2020 11:14
Show Gist options
  • Save renatofrota/5fb31c5dacd49d5bbe592f65d64d2029 to your computer and use it in GitHub Desktop.
Save renatofrota/5fb31c5dacd49d5bbe592f65d64d2029 to your computer and use it in GitHub Desktop.
Adicionar botão para esconder/exibir formulário de busca (filtros) no Adianti Framework
<?php
class SuaPagina extends TPage
{
private $form; // form
private $datagrid; // listing
private $pageNavigation;
private $loaded;
private $filter_criteria;
private static $database = 'seubanco';
private static $activeRecord = 'SuaPagina';
private static $primaryKey = 'id';
private static $formName = 'formList_SuaPagina';
private $showMethods = ['onReload', 'onSearch'];
public function __construct()
{
parent::__construct();
// ...
// ...
// ...
// aqui vai o conteúdo existente da sua __construct()
// ...
// ...
// ...
// adicione ao final da __construct(), antes da adição do conteiner na página, o código abaixo:
$this->form->addHeaderActionLink('Filtros de busca', new TAction(array($this, 'toggleSearch')), 'fa:filter green fa-fw');
TScript::create('$(\'#' . self::$formName . '\').addClass(\'collapse\');');
// estamos considerando aqui que o id do form está gravado na propriedade $formName da sua classe
// o form de busca permanecerá aberto/fechado (grava "preferência" do visitante)
// se você quiser o form de busca sempre fechado (oculto) por padrão,
// basta apagar essa linha 'if' abaixo (mantendo a linha do script que vem a seguir)
if (TSession::getValue('toggleSearch_'.self::$formName) == 1)
TScript::create('$(\'#' . self::$formName . '\').collapse(\'toggle\');');
// fim do código a ser adicionado na construct (leia mais abaixo)
parent::add($container);
}
public static QualquerFuncao()
{
// funcao de exemplo...
}
public static OutraFuncao()
{
// funcao de exemplo...
}
// adicione a seguinte função ao final do arquivo:
static function toggleSearch()
{
// também pode apagar esses blocos if/else se não quiser usar a "memória" de estado do form
if (TSession::getValue('toggleSearch_'.self::$formName) == 1) {
TSession::setValue('toggleSearch_'.self::$formName,0);
} else {
TSession::setValue('toggleSearch_'.self::$formName,1);
}
// esta linha é a responsável por abrir/fechar o form
TScript::create('$(\'#' . self::$formName . '\').collapse(\'toggle\');');
// caso retire a função de "memória", copie a linha acima para dentro do onSearch,
// para que o form "permaneça aberto" (reabra automaticamente) ao realizar buscas
}
} // fechamento da classe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment