Beispiel #1
0
 /**
  * Gera as ações do registro na grid.
  * 
  * @param \Dataware\Entity\Grid $grid
  * @return String html
  */
 public function generateGridRowActions(Grid $grid, $args = array())
 {
     $actions = "";
     $gridActions = $grid->getGridActions();
     $disableGridActions = $grid->getDisableActions();
     if (count($gridActions) > 0) {
         foreach ($gridActions as $gridAction) {
             if (!in_array($gridAction->getId(), $disableGridActions)) {
                 $gridAction->setArgs($args);
                 $actions .= $this->view->GridActionHelper($gridAction);
             }
         }
     }
     return $actions;
 }
 public function __invoke(Attachment $attachment)
 {
     $folder = "uploads/entities/" . $attachment->getEntityName() . '/' . $attachment->getEntityId();
     $filePath = dirname(__DIR__) . "/../../../../../public/" . $folder;
     $grid = new Grid();
     $grid->setHasEntity(false);
     $grid->addColumn(new GridColumn('file', "Arquivo", 50));
     $grid->addColumn(new GridColumn('title', "Título"));
     $grid->addColumn(new GridColumn('type', "Tipo"));
     $grid->addColumn(new GridColumn('path', "Caminho"));
     $grid->addColumn(new GridColumn('size', "Tamanho"));
     $gridData = array();
     if (is_dir($filePath)) {
         $dir = opendir($filePath);
         while ($read = readdir($dir)) {
             if ($read != '.' && $read != '..') {
                 $fileName = $filePath . '/' . $read;
                 $path = $this->view->basePath($folder . '/' . $read);
                 $pathInfo = pathinfo($path);
                 $mimeType = $pathInfo['extension'];
                 $fileSize = number_format(filesize($fileName) / 1048576, 2) . ' MB';
                 $gridData[] = array('file' => "<a href=\"javascript:popupImage('{$path}');\">\n                                       <img src='{$path}' title='Clique para ampliar' width='50' height='50'/>\n                                   </a>", 'title' => $pathInfo['basename'], 'type' => strtoupper($mimeType), 'path' => $path, 'size' => $fileSize, GridColumn::GRID_IDENTITY_COLUMN_DEFAULT => $attachment->getEntityId(), 'attachment' => $pathInfo['basename']);
             }
         }
         $grid->setData($gridData);
     }
     $route = $this->getCurrentRoute();
     $grid->hideDefaultGridActions(true);
     $grid->addGridAction(new GridAction(GridAction::GRID_ACTION_DELETE_ID, "Excluir anexo", $route, 'removeattachment', "fa-trash-o"));
     $grid->setIdentityColumns(array(GridColumn::GRID_IDENTITY_COLUMN_DEFAULT, 'attachment'));
     return $this->view->GridHelper($grid);
 }