Exemplo n.º 1
0
 /** @test */
 public function initMergesGetPostDataCorrectly()
 {
     $columnsConfiguration = $this->configurationBuilderMock->buildColumnsConfiguration();
     $sorterMock = $this->getMock('Tx_PtExtlist_Domain_Model_Sorting_Sorter', array('getSortingStateCollection'), array(), '', FALSE);
     $sorterMock->expects($this->any())->method('getSortingStateCollection')->will($this->returnValue(null));
     $headerColumn = new Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn();
     $headerColumn->injectColumnConfig($columnsConfiguration[20]);
     $headerColumn->registerSorter($sorterMock);
     $this->assertEquals(0, $headerColumn->getSortingDirectionForField('field1'));
     $headerColumn->_injectGPVars(array('sortingFields' => 'field1:1'));
     $headerColumn->init();
     $this->assertEquals(1, $headerColumn->getSortingDirectionForField('field1'));
 }
Exemplo n.º 2
0
 /**
  * Returns an array of sorting field parameters for given header.
  *
  * Each header can have multiple sorting fields attached, each one
  * can be sorted individually.
  *
  * @param Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header
  * @return array
  */
 protected function buildSortingFieldParams(Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header)
 {
     $sortingFieldsParams = array();
     foreach ($header->getColumnConfig()->getSortingConfig() as $sortingFieldConfig) {
         /* @var $sortingFieldConfig Tx_PtExtlist_Domain_Configuration_Columns_SortingConfig */
         $sortingFieldParams = array();
         $sortingFieldParams['field'] = $sortingFieldConfig->getField();
         $sortingFieldParams['label'] = $sortingFieldConfig->getLabel();
         $sortingFieldParams['forceDirection'] = $sortingFieldConfig->getForceDirection();
         $sortingFieldParams['direction'] = $sortingFieldConfig->getDirection();
         $sortingFieldParams['sortingFieldParameterAsc'] = $sortingFieldConfig->getField() . ':1';
         $sortingFieldParams['sortingFieldParameterDesc'] = $sortingFieldConfig->getField() . ':-1';
         $sortingFieldParams['sortingFieldParameterNone'] = $sortingFieldConfig->getField() . ':0';
         $sortingFieldParams['currentDirection'] = $header->getSortingDirectionForField($sortingFieldConfig->getField());
         $sortingFieldsParams[] = $sortingFieldParams;
     }
     return $sortingFieldsParams;
 }
Exemplo n.º 3
0
 /**
  * Returns sorting state for header
  *
  * We loop over each sorting field of header and take first sorting field
  * that has no forced direction and has a current sorting set in header.
  *
  * @param Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header
  * @return integer Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_NONE | Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_ASC | Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_DESC
  */
 protected function getSortingDirectionForHeader(Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header)
 {
     $sortingFieldConfigForHeader = $header->getColumnConfig()->getSortingConfig();
     foreach ($sortingFieldConfigForHeader as $sortingFieldConfig) {
         /* @var $sortingFieldConfig Tx_PtExtlist_Domain_Configuration_Columns_SortingConfig */
         if (!$sortingFieldConfig->getForceDirection() && $header->getSortingDirectionForField($sortingFieldConfig->getField()) != Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_NONE) {
             return $header->getSortingDirectionForField($sortingFieldConfig->getField());
         }
     }
     return Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_NONE;
 }