mirror of
				https://github.com/Icinga/icingaweb2.git
				synced 2025-10-31 19:34:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			141 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			PHTML
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			PHTML
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Icinga\Web\Url;
 | |
| 
 | |
| if ($xAxisPaginator->count() <= 1 && $yAxisPaginator->count() <= 1) {
 | |
|     return; // Display this pagination only if there are multiple pages
 | |
| }
 | |
| 
 | |
| $showText = $this->translate('%s: Show %s %u to %u out of %u', 'pagination.joystick');
 | |
| $xAxisPages = $xAxisPaginator->getPages('all');
 | |
| $yAxisPages = $yAxisPaginator->getPages('all');
 | |
| 
 | |
| $totalYAxisPages = $yAxisPaginator->count();
 | |
| $currentYAxisPage = $yAxisPaginator->getCurrentPageNumber();
 | |
| $prevYAxisPage = $currentYAxisPage > 1 ? $currentYAxisPage - 1 : null;
 | |
| $nextYAxisPage = $currentYAxisPage < $totalYAxisPages ? $currentYAxisPage + 1 : null;
 | |
| 
 | |
| $totalXAxisPages = $xAxisPaginator->count();
 | |
| $currentXAxisPage = $xAxisPaginator->getCurrentPageNumber();
 | |
| $prevXAxisPage = $currentXAxisPage > 1 ? $currentXAxisPage - 1 : null;
 | |
| $nextXAxisPage = $currentXAxisPage < $totalXAxisPages ? $currentXAxisPage + 1 : null;
 | |
| 
 | |
| ?>
 | |
| 
 | |
| <table class="joystick-pagination">
 | |
|   <tbody>
 | |
|     <tr>
 | |
|       <td> </td>
 | |
|       <td>
 | |
|       <?php if ($prevYAxisPage): ?>
 | |
|         <?= $this->qlink(
 | |
|           '',
 | |
|           Url::fromRequest(),
 | |
|           array(
 | |
|             'page' => $currentXAxisPage . ',' . $prevYAxisPage
 | |
|           ),
 | |
|           array(
 | |
|             'icon'              => 'up-open',
 | |
|             'data-base-target'  => '_self',
 | |
|             'title'             => sprintf(
 | |
|               $showText,
 | |
|               $this->translate('Y-Axis', 'pagination.joystick'),
 | |
|               $this->translate('hosts', 'pagination.joystick'),
 | |
|               ($prevYAxisPage - 1) * $yAxisPages->itemCountPerPage + 1,
 | |
|               $prevYAxisPage * $yAxisPages->itemCountPerPage,
 | |
|               $yAxisPages->totalItemCount
 | |
|             )
 | |
|           )
 | |
|         ); ?>
 | |
|       <?php else: ?>
 | |
|         <?= $this->icon('up-open'); ?>
 | |
|       <?php endif ?>
 | |
|       </td>
 | |
|       <td> </td>
 | |
|     </tr>
 | |
|     <tr>
 | |
|       <td>
 | |
|       <?php if ($prevXAxisPage): ?>
 | |
|         <?= $this->qlink(
 | |
|           '',
 | |
|           Url::fromRequest(),
 | |
|           array(
 | |
|             'page' => $prevXAxisPage . ',' . $currentYAxisPage
 | |
|           ),
 | |
|           array(
 | |
|             'icon'              => 'left-open',
 | |
|             'data-base-target'  => '_self',
 | |
|             'title'             => sprintf(
 | |
|               $showText,
 | |
|               $this->translate('X-Axis', 'pagination.joystick'),
 | |
|               $this->translate('services', 'pagination.joystick'),
 | |
|               ($prevXAxisPage - 1) * $xAxisPages->itemCountPerPage + 1,
 | |
|               $prevXAxisPage * $xAxisPages->itemCountPerPage,
 | |
|               $xAxisPages->totalItemCount
 | |
|             )
 | |
|           )
 | |
|         ); ?>
 | |
|       <?php else: ?>
 | |
|         <?= $this->icon('left-open'); ?>
 | |
|       <?php endif ?>
 | |
|       </td>
 | |
|       <td> </td>
 | |
|       <td>
 | |
|       <?php if ($nextXAxisPage): ?>
 | |
|         <?= $this->qlink(
 | |
|           '',
 | |
|           Url::fromRequest(),
 | |
|           array(
 | |
|             'page' => $nextXAxisPage . ',' . $currentYAxisPage
 | |
|           ),
 | |
|           array(
 | |
|             'icon'              => 'right-open',
 | |
|             'data-base-target'  => '_self',
 | |
|             'title'             => sprintf(
 | |
|               $showText,
 | |
|               $this->translate('X-Axis', 'pagination.joystick'),
 | |
|               $this->translate('services', 'pagination.joystick'),
 | |
|               $currentXAxisPage * $xAxisPages->itemCountPerPage + 1,
 | |
|               $nextXAxisPage === $xAxisPages->last ? $xAxisPages->totalItemCount : $nextXAxisPage * $xAxisPages->itemCountPerPage,
 | |
|               $xAxisPages->totalItemCount
 | |
|             )
 | |
|           ),
 | |
|           false
 | |
|         ); ?>
 | |
|       <?php else: ?>
 | |
|         <?= $this->icon('right-open'); ?>
 | |
|       <?php endif ?>
 | |
|       </td>
 | |
|     </tr>
 | |
|     <tr>
 | |
|       <td> </td>
 | |
|       <td>
 | |
|       <?php if ($nextYAxisPage): ?>
 | |
|         <?= $this->qlink(
 | |
|           '',
 | |
|           Url::fromRequest(),
 | |
|           array(
 | |
|             'page' => $currentXAxisPage . ',' . $nextYAxisPage
 | |
|           ),
 | |
|           array(
 | |
|             'icon'              => 'down-open',
 | |
|             'data-base-target'  => '_self',
 | |
|             'title'             => sprintf(
 | |
|               $showText,
 | |
|               $this->translate('Y-Axis', 'pagination.joystick'),
 | |
|               $this->translate('hosts', 'pagination.joystick'),
 | |
|               $currentYAxisPage * $yAxisPages->itemCountPerPage + 1,
 | |
|               $nextYAxisPage === $yAxisPages->last ? $yAxisPages->totalItemCount : $nextYAxisPage * $yAxisPages->itemCountPerPage,
 | |
|               $yAxisPages->totalItemCount
 | |
|             )
 | |
|           )
 | |
|         ); ?>
 | |
|       <?php else: ?>
 | |
|         <?= $this->icon('down-open'); ?>
 | |
|       <?php endif ?>
 | |
|       </td>
 | |
|       <td> </td>
 | |
|     </tr>
 | |
|   </tbody>
 | |
| </table>
 |