/**
  * If configured, prints the table pagination to navigate to a next set of data
  * @param Table $tableHelper
  * @return string
  */
 public static function printPagination(Table $tableHelper)
 {
     $maxPages = $tableHelper->getTableModel()->getMaxPageNumber();
     $currentPage = $tableHelper->getTableModel()->getPageNumber();
     $html = '<nav class="text-center"><ul class="pagination">';
     $html .= sprintf('<li class="%s"><a href="%s" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>', $currentPage <= 1 ? 'disabled' : '', $tableHelper->getView()->UrlWithQuery(array('page' => $currentPage - 1)));
     for ($i = 1; $i <= $maxPages; $i++) {
         $html .= $i == $currentPage ? '<li class="active">' : '<li>';
         $html .= sprintf('<a href="%s">%d</a></li>', $tableHelper->getView()->UrlWithQuery(array('page' => $i)), $i);
     }
     $html .= sprintf('<li class="%s"><a href="%s" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li>', $currentPage >= $maxPages ? 'disabled' : '', $tableHelper->getView()->UrlWithQuery(array('page' => $currentPage + 1)));
     $html .= '</ul></nav>';
     return $html;
 }
 /**
  * If the TableModel contains FilterData this method will fill the element with these values
  *
  * @param ElementInterface $element
  * @param $fieldName
  * @param Table $tableHelper
  * @return Element
  */
 public static function setElementValues(ElementInterface $element, $fieldName, Table $tableHelper)
 {
     $values = $tableHelper->getTableModel()->getPrefetchedValuesByName($fieldName);
     if ($values && method_exists($element, 'setValueOptions')) {
         $valueOptions = array();
         foreach ($values as $value) {
             if ($value instanceof \DateTime) {
                 $valueOptions[$value->format('Y-m-d')] = $value->format('Y-m-d');
                 continue;
             }
             $valueOptions[$value] = $value;
         }
         $element->setValueOptions($valueOptions);
     }
     if (method_exists($element, 'setEmptyOption')) {
         $emptyLabel = $tableHelper->getView()->Translate('Select') . ' ' . $tableHelper->getView()->Translate($fieldName);
         $element->setEmptyOption($emptyLabel);
     }
     return $element;
 }
 /**
  * @param Table $tableHelper
  * @param TableRowModel $tableRow
  * @param $links
  * @return mixed
  */
 public static function getLinksFromListeners(Table $tableHelper, TableRowModel $tableRow, $links)
 {
     $responseCollection = $tableHelper->getEventManager()->trigger(DataGridEvents::DATAGRID_PRE_PRINTTABLECONTENTROWACTIONS, __CLASS__, array('links' => $links, 'entity' => $tableRow));
     foreach ($responseCollection as $response) {
         if (is_array($response) && isset($response['links'])) {
             $links = $response['links'];
         }
     }
     return $links;
 }
 /**
  * @param Table $tableHelper
  * @return mixed
  */
 public static function getHeaderColumnsFromListeners(Table $tableHelper)
 {
     $responseCollection = $tableHelper->getEventManager()->trigger(DataGridEvents::DATAGRID_PRE_PRINTTABLEHEADROW, __CLASS__, array('tableHelper' => $tableHelper));
     foreach ($responseCollection as $response) {
         if (is_array($response) && isset($response['tableHelper'])) {
             $tableHelper = $response['tableHelper'];
         }
     }
     return $tableHelper;
 }