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.
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.
- <?php
- /**
- * SystemSharedDocumentList
- *
- * @version 1.0
- * @package control
- * @subpackage communication
- * @author Pablo Dall'Oglio
- * @copyright Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
- * @license http://www.adianti.com.br/framework-license
- */
- class AdminSharedDocumentList extends TPage
- {
- private $form; // form
- private $iconview;
- /**
- * Class constructor
- * Creates the page, the form and the listing
- */
- public function __construct()
- {
- parent::__construct();
- // creates the form
- $this->form = new BootstrapFormBuilder('form_search_SystemDocument');
- $this->form->setFormTitle(_t('Shared with me'));
- // create the form fields
- $cliente_id = new TDBCombo('cliente_id', 'sample', 'User', 'id', 'name');
- $this->form->addFields( [new TLabel('Cliente')], [$cliente_id] );
- $cliente_id->setSize('70%');
- $cliente_id->enableSearch();
- $cliente_id->addValidation('Cliente', new TRequiredValidator );
- // add the search form actions
- $btn = $this->form->addAction(_t('Find'), new TAction(array($this, 'onEdit')), 'fa:search');
- $btn->class = 'btn btn-sm btn-primary';
- // creates iconview
- $this->iconview = new TIconView;
- $this->iconview->setIconAttribute('icon');
- $this->iconview->setLabelAttribute('name');
- $this->iconview->setInfoAttributes(['name', 'path','ext']);
- //$this->iconview->enablePopover('', '{name}', 'top');
- <b> $this->iconview->addContextMenuOption('Options');
- $this->iconview->addContextMenuOption('');
- $this->iconview->addContextMenuOption('Download', new TAction([$this, 'onDownload']), 'far:folder blue');
- $this->iconview->addContextMenuOption('Açao 2', new TAction([$this, 'onAction']), 'far:folder blue');
- </b>
- $panel = new TPanelGroup;
- $panel->add($this->iconview);
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 100%';
- $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- $container->add($panel);
- parent::add($container);
- }
- /**
- * Load object to form data
- * @param $param Request
- */
- public function onEdit( $param )
- {
- try
- {
- $this->form->validate();
- if (isset($param['cliente_id']))
- {
- $data = $this->form->getData();
- foreach (new DirectoryIterator('files/documents/'.$data->cliente_id) as $fileinfo)
- {
- if ($fileinfo->isFile())
- {
- $item = new stdClass;
- if ($fileinfo->getExtension() == 'pdf')
- {
- $item->ext = 'pdf';
- $item->icon = 'far:file-pdf red fa-4x';
- $item->path = $fileinfo->getPath();
- $item->name = $fileinfo->getFilename();
- }else{
- $item->ext = $fileinfo->getExtension();
- $item->icon = 'far:file blue fa-4x';
- $item->path = $fileinfo->getPath();
- $item->name = $fileinfo->getFilename();
- }
- $this->iconview->addItem($item);
- }
- }
- }
- else
- {
- $this->form->clear(TRUE);
- }
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- TTransaction::rollback(); // undo all pending operations
- }
- }
- /**
- * Dropdown action
- */
- public static function onAction($param)
- {
- new TMessage('info', '<b>Path: </b>'. $param['path'] .
- '<br> <b> Name: </b>' . $param['name']);
- }
- /**
- * Download file
- */
- public function onDownload($param)
- {
- try
- {
- if ($param['ext'] == 'pdf')
- {
- $embed = new TElement('object');
- $embed->data = "download.php?file=".$param['path'].'/'.$param['name'];
- $embed->type = 'application/pdf';
- $embed->style = "width: 100%; height:calc(100% - 10px)";
- $win = TWindow::create($param['name'], 0.8, 0.8 );
- $win->add( $embed );
- $win->show();
- }
- else
- {
- TPage::openFile($param['path'].'/'.$param['name']);
- }
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- }
- }
- }
- </code>
Curso Dominando o Adianti Framework
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!
Dominando o Adianti Framework Quero me inscrever agora!
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);
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!