Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Método para trocar cor de um TButton Bom dia a todos, estou tentando fazer um método que altera a cor dos botões. Até aí é bem simples. Segue exemplo de como estou fazendo: ...
WS
Método para trocar cor de um TButton  
Bom dia a todos,

estou tentando fazer um método que altera a cor dos botões. Até aí é bem simples. Segue exemplo de como estou fazendo:

  1. <?php
  2.     public function onChangeColor($campo$status)    
  3.     {          
  4.         if ($campo == 'status')
  5.         {            
  6.             $status_btn $this->form->getField('status_btn');
  7.            
  8.             if ($status == 'A')
  9.             {                
  10.                  $status_btn->setLabel("Ativo");        
  11.                  $status_btn->style 'background:#006400;color:white;';   
  12.             }
  13.             elseif ($status == 'D')
  14.             {                
  15.                 $status_btn->setLabel("Desistiu");        
  16.                 $status_btn->style 'background:orange;color:white;';                
  17.             }
  18.             elseif ($status == 'I')
  19.             {                
  20.                 $status_btn->setLabel("Inativo");        
  21.                 $status_btn->style 'background:black;color:white;';
  22.             }
  23.             elseif ($status == 'P')
  24.             {
  25.                  $status_btn->setLabel("Pré-Contrato");        
  26.                  $status_btn->style 'background:#eead2d;color:white;';
  27.             }
  28.             elseif ($status == 'N')
  29.             {                
  30.                 $status_btn->setLabel("Negativado");        
  31.                 $status_btn->style 'background:#ae0000;color:white;';
  32.             }
  33.         }
  34.      }     
  35. ?>


O problema é que preciso acessar esse método a partir de um método estático. Sendo assim, não poderia chamá-lo com o comando
  1. <?php 
  2.    $this->onChangeColor($campo$status);
  3.  ?>

Para que fosse possível acionar o método, teria que transformá-lo em estático e consequentemente nao poderia usar mais o comando
  1. <?php 
  2.     $status_btn $this->form->getField('status_btn');
  3.  ?>

para alterar o botão.

No componente TButton, consigo por exemplo torná-lo disable ou enable através do comando
  1. <?php 
  2. TButton::disableField('form_Contrato''status'); 
  3.  ?>

Neste caso passo o formulário a ser alterado e o componente, mas para alterar cor e label nao sei de nada parecido.

Seria possível alterar a cor e o label do botão com algo semelhante ou por acaso, alguem tem uma ideia diferente dessa que possa funcionar?

obrigado!

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (5)


HD

Boa tarde, Willian

Muda com javascript, segue um exemplo:

  1. <?php 
  2. public static function onChangeColor$param )
  3.     {
  4.         switch ($param['status']) {
  5.             case 'A':
  6.                 TScript::create('
  7.                     var btn = $(document).find("#btn_status");
  8.                     btn.attr("class", "btn btn-success");
  9.                 ');
  10.                 break;
  11.             case 'D':
  12.                 TScript::create('
  13.                     var btn = $(document).find("#btn_status");
  14.                     btn.attr("class", "btn btn-warning");
  15.                 ');
  16.                 break;
  17.             default:
  18.                 # code...
  19.                 break;
  20.         }
  21.     }
  22. ?>
WS

Boa tarde Hélquisson Dourado,

Primeiramente, obrigado pela ajuda!

Fiz o que me sugeriu e funcionou para alterar a classe do botão. Não domino JS e tentei adaptar o código para minha necessidade que é de mudar o label, alterar o backgroud do botão e deixar a letra branca, no entanto, não consegui. Pesquisei na internet alguns comandos para alterar tais atributos mas até agora nenhum funcionou. Tem alguam ideia de como poderia fazer?

Segue abaixo algumas das tentativas que fiz

  1. <?php 
  2.               TScript::create('
  3.               var btn = $(document).find("#tbutton_status_btn");
  4.             
  5.               //tentativa 1
  6.               btn.style.backgroundColor = "#eead2d";
  7.               btn.style.value = "Pré-Contrato";
  8.              //tentativa 2
  9.              btn.attr("value", "Pré-Contrato");
  10.              btn.attr("background", "#eead2d");
  11.               '); 
  12. ?>


att,

William
HD

Tenta assim:

  1. <?php
  2.         TScript::create('
  3.             var btn = $("#tbutton_status_btn");
  4.             btn.css("background", "#000000");
  5.             btn.css("color", "#FFFFFF");
  6.             btn.html("Novo Label");
  7.         '); 
  8. ?>
WS

show cara... deu certinho.... com esse seu código entendi melhor como funciona a coisa...

Muito obrigado Hélquisson Dourado!
HD

Perfeito... William!!