/**
  * Null - pager data is not accessible
  * Array('total' => <int>, 'current' => <int>) - used to generate string "<current> of <total>"
  *
  * @param object $entity
  * @param string $scope
  * @return null|array
  */
 public function getPager($entity, $scope)
 {
     $totalCount = $this->paginationNavigation->getTotalCount($entity, $scope);
     if (!$totalCount) {
         return null;
     }
     $currentNumber = $this->paginationNavigation->getCurrentNumber($entity, $scope);
     if (!$currentNumber) {
         return null;
     }
     return ['total' => $totalCount, 'current' => $currentNumber];
 }
Esempio n. 2
0
 /**
  * @param object $entity
  * @param string $scope
  * @return string|null
  */
 public function getInfoMessage($entity, $scope = EntityPaginationManager::VIEW_SCOPE)
 {
     $entityName = ClassUtils::getClass($entity);
     // info message should be shown only once for each scope
     if (false !== $this->storage->isInfoMessageShown($entityName, $scope)) {
         return null;
     }
     $viewCount = $this->navigation->getTotalCount($entity, EntityPaginationManager::VIEW_SCOPE);
     $editCount = $this->navigation->getTotalCount($entity, EntityPaginationManager::EDIT_SCOPE);
     if (!$viewCount || !$editCount || $viewCount == $editCount) {
         return null;
     }
     $message = '';
     $count = null;
     // if scope is changing from "view" to "edit" and number of entities is decreased
     if ($scope == EntityPaginationManager::EDIT_SCOPE) {
         if ($editCount < $viewCount) {
             $message .= $this->translator->trans('oro.entity_pagination.message.stats_changed_view_to_edit') . ' ';
         }
         $count = $editCount;
     } elseif ($scope == EntityPaginationManager::VIEW_SCOPE) {
         $count = $viewCount;
     }
     if (!$count) {
         return null;
     }
     $message .= $this->translator->transChoice($this->getStatsMessage($scope), $count, ['%count%' => $count]);
     $this->storage->setInfoMessageShown($entityName, $scope);
     return $message;
 }
 /**
  * @param array $source
  * @param array $expected
  *
  * @dataProvider getNextIdentifierDataProvider
  */
 public function testGetNextIdentifier($source, $expected)
 {
     $this->assertPrepareResult($source['isValid'], $source['inStorage'], $source['isGranted'], $source['entityIds']);
     $this->storage->expects($this->any())->method('getCurrentPosition')->with($this->entity)->will($this->returnValue($source['currentPosition']));
     $result = $this->navigation->getNextIdentifier($this->entity);
     $expectedResult = $this->prepareExpectedResult($expected);
     $this->assertSame($expectedResult->getId(), $result->getId());
     $this->assertSame($expectedResult->isAvailable(), $result->isAvailable());
     $this->assertSame($expectedResult->isAccessible(), $result->isAccessible());
 }