Lançado Adianti Framework 7.6!
Clique aqui para saber mais
iconview - não esta aparecendo menu de contexto Gostaria de saber porque não esta aparecendo o menu de contexto linhas 51 a 54. percebo que o botao direito até fica desabilitado e tambem se clico na imagem ou pdf , ele até vai para ação onDownload, mas queria o menu para colocar outras opções. ...
LJ
iconview - não esta aparecendo menu de contexto  
Gostaria de saber porque não esta aparecendo o menu de contexto linhas 51 a 54.
percebo que o botao direito até fica desabilitado e tambem se clico na imagem ou pdf , ele até vai para ação onDownload, mas queria o menu para colocar outras opções.


  1. <?php
  2. /**
  3.  * SystemSharedDocumentList
  4.  *
  5.  * @version    1.0
  6.  * @package    control
  7.  * @subpackage communication
  8.  * @author     Pablo Dall'Oglio
  9.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  10.  * @license    http://www.adianti.com.br/framework-license
  11.  */
  12. class AdminSharedDocumentList extends TPage
  13. {
  14.     private $form// form
  15.     private $iconview;
  16.     
  17.     /**
  18.      * Class constructor
  19.      * Creates the page, the form and the listing
  20.      */
  21.     public function __construct()
  22.     {
  23.         parent::__construct();
  24.         
  25.         // creates the form
  26.         $this->form = new BootstrapFormBuilder('form_search_SystemDocument');
  27.         $this->form->setFormTitle(_t('Shared with me'));
  28.         
  29.         // create the form fields
  30.         $cliente_id = new TDBCombo('cliente_id''sample''User''id''name');
  31.         $this->form->addFields( [new TLabel('Cliente')], [$cliente_id] );
  32.         $cliente_id->setSize('70%');
  33.         
  34.         $cliente_id->enableSearch();
  35.         $cliente_id->addValidation('Cliente', new TRequiredValidator );
  36.         
  37.         // add the search form actions
  38.         $btn $this->form->addAction(_t('Find'), new TAction(array($this'onEdit')), 'fa:search');
  39.         $btn->class 'btn btn-sm btn-primary';
  40.         
  41.         // creates iconview
  42.         $this->iconview = new TIconView;
  43.         $this->iconview->setIconAttribute('icon');
  44.         $this->iconview->setLabelAttribute('name');
  45.         $this->iconview->setInfoAttributes(['name''path','ext']);
  46.         //$this->iconview->enablePopover('', '{name}', 'top');
  47.       
  48. <b>        $this->iconview->addContextMenuOption('Options');
  49.         $this->iconview->addContextMenuOption('');
  50.         $this->iconview->addContextMenuOption('Download', new TAction([$this'onDownload']), 'far:folder blue');
  51.         $this->iconview->addContextMenuOption('Açao 2', new TAction([$this'onAction']), 'far:folder blue');
  52. </b>        
  53.         $panel = new TPanelGroup;
  54.         $panel->add($this->iconview);
  55.         // vertical box container
  56.         $container = new TVBox;
  57.         $container->style 'width: 100%';
  58.         $container->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  59.         $container->add($this->form);
  60.         $container->add($panel);
  61.         
  62.         parent::add($container);
  63.     }
  64.     /**
  65.      * Load object to form data
  66.      * @param $param Request
  67.      */
  68.     public function onEdit$param )
  69.     {
  70.         try
  71.         {
  72.             $this->form->validate();
  73.             if (isset($param['cliente_id']))
  74.             {
  75.                 $data $this->form->getData();
  76.                 
  77.                 foreach (new DirectoryIterator('files/documents/'.$data->cliente_id) as $fileinfo)
  78.                 {
  79.                     if ($fileinfo->isFile())
  80.                     {
  81.                         $item = new stdClass;
  82.                           if ($fileinfo->getExtension() == 'pdf')
  83.                           {
  84.                             $item->ext 'pdf';
  85.                             $item->icon 'far:file-pdf red fa-4x';
  86.                             $item->path $fileinfo->getPath();
  87.                             $item->name $fileinfo->getFilename();                          
  88.                           
  89.                           }else{
  90.  
  91.                             $item->ext =  $fileinfo->getExtension();
  92.                             $item->icon 'far:file blue fa-4x';
  93.                             $item->path $fileinfo->getPath();
  94.                             $item->name $fileinfo->getFilename();
  95.                             }
  96.                    
  97.                         $this->iconview->addItem($item);
  98.                         
  99.                     }
  100.                 }                        
  101.             }
  102.             else
  103.             {
  104.                 $this->form->clear(TRUE);
  105.             }
  106.         }
  107.         catch (Exception $e// in case of exception
  108.         {
  109.             new TMessage('error'$e->getMessage()); // shows the exception error message
  110.             TTransaction::rollback(); // undo all pending operations
  111.         }
  112.     }    
  113.     /**
  114.      * Dropdown action
  115.      */
  116.     public static function onAction($param)
  117.     {
  118.         new TMessage('info''<b>Path: </b>'.  $param['path'] .
  119.                        '<br> <b> Name: </b>' $param['name']);
  120.     }
  121.     /**
  122.      * Download file
  123.      */
  124.     public function onDownload($param)
  125.     {
  126.         try
  127.         {
  128.             if ($param['ext'] == 'pdf')
  129.             {
  130.                 $embed = new TElement('object');
  131.                 $embed->data  "download.php?file=".$param['path'].'/'.$param['name'];
  132.                 $embed->type  'application/pdf';
  133.                 $embed->style "width: 100%; height:calc(100% - 10px)";
  134.                 
  135.                 $win TWindow::create($param['name'], 0.80.8 );
  136.                 $win->add$embed );
  137.                 $win->show();
  138.             }
  139.             else
  140.             {
  141.                 TPage::openFile($param['path'].'/'.$param['name']);
  142.             }
  143.         }
  144.         catch (Exception $e// in case of exception
  145.         {
  146.             new TMessage('error'$e->getMessage()); // shows the exception error message
  147.         }
  148.     }
  149.     
  150. }
  151. </code>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


LJ

O problema parece que não era o iconview e sim do TPaneilGroip. pois quando coloquei diretamente no container funcionou




$container->add($panel);
troquei por
$container->add($this->iconview);
CR

Na Changelog 7.2.0 informa que isso foi corrigido, porém o dropdown continua aparecendo deslocado quando o TIconView está dentro de uma TPanelGroup. Estou usando com a versão 7.3.0.
Alguém conseguiu resolver?
Desde já agradeço!