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


Dominando o Adianti Framework 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!