Last active
March 16, 2020 11:14
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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