Ejemplo n.º 1
0
 public function testFilter()
 {
     $source = clone $this->source;
     /*
      * LIKE
      */
     $filter = new Filter();
     $filter->setFromColumn($this->colVolumne, '~7');
     $source->addFilter($filter);
     $source->execute();
     $this->assertEquals(2, $source->getPaginatorAdapter()->count());
 }
Ejemplo n.º 2
0
 public function testFilter()
 {
     $source = clone $this->source;
     $this->assertNull($source->getData()->getDQLPart('where'));
     /*
      * LIKE
      */
     $filter = new Filter();
     $filter->setFromColumn($this->colUserDisplayName, '~7');
     $source->addFilter($filter);
     $source->execute();
     $this->assertInstanceOf('Doctrine\\ORM\\Query\\Expr\\Andx', $source->getData()->getDQLPart('where'));
 }
Ejemplo n.º 3
0
 /**
  * Get the default filter conditions defined for the columns
  *
  * @return array
  */
 public function getFiltersDefault()
 {
     $filters = [];
     // @todo skip this, if $grid->isUserFilterEnabled() ?
     if ($this->getRequest() instanceof ConsoleRequest || $this->getRequest() instanceof HttpRequest && !$this->getRequest()->isPost()) {
         foreach ($this->getColumns() as $column) {
             /* @var $column \ZfcDatagrid\Column\AbstractColumn */
             if ($column->hasFilterDefaultValue() === true) {
                 $filter = new Filter();
                 $filter->setFromColumn($column, $column->getFilterDefaultValue());
                 $filters[] = $filter;
                 $column->setFilterActive($filter->getDisplayColumnValue());
             }
         }
     }
     return $filters;
 }
Ejemplo n.º 4
0
 /**
  *
  * @param  array  $columns
  * @return string
  */
 public function __invoke(array $columns)
 {
     $return = [];
     foreach ($columns as $column) {
         /* @var $column \ZfcDatagrid\Column\AbstractColumn */
         $options = ['name' => (string) $column->getUniqueId(), 'index' => (string) $column->getUniqueId(), 'label' => $this->translate((string) $column->getLabel()), 'width' => $column->getWidth(), 'hidden' => (bool) $column->isHidden(), 'sortable' => (bool) $column->isUserSortEnabled(), 'search' => (bool) $column->isUserFilterEnabled()];
         /**
          * Formatting
          */
         $formatter = $this->getFormatter($column);
         if ($formatter != '') {
             $options['formatter'] = (string) $formatter;
         }
         if ($column->getType() instanceof Type\Number) {
             $options['align'] = (string) 'right';
         }
         /**
          * Cellattr
          */
         $rendererParameters = $column->getRendererParameters('jqGrid');
         if (isset($rendererParameters['cellattr'])) {
             $options['cellattr'] = (string) $rendererParameters['cellattr'];
         }
         /**
          * Filtering
          */
         $searchoptions = [];
         $searchoptions['clearSearch'] = false;
         if ($column->hasFilterSelectOptions() === true) {
             $options['stype'] = 'select';
             $searchoptions['value'] = $column->getFilterSelectOptions();
         }
         if ($column->hasFilterDefaultValue() === true) {
             $filter = new \ZfcDatagrid\Filter();
             $filter->setFromColumn($column, $column->getFilterDefaultValue());
             $searchoptions['defaultValue'] = $filter->getDisplayColumnValue();
         }
         if (count($searchoptions) > 0) {
             $options['searchoptions'] = $searchoptions;
         }
         /**
          * Because with json_encode we get problems, it's custom made!
          */
         $colModel = [];
         foreach ($options as $key => $value) {
             if (is_array($value)) {
                 $value = json_encode($value);
             } elseif (is_bool($value)) {
                 if (true === $value) {
                     $value = 'true';
                 } else {
                     $value = 'false';
                 }
             } elseif ('formatter' == $key) {
                 if (stripos($value, 'formatter') === false && stripos($value, 'function') === false) {
                     $value = '"' . $value . '"';
                 }
             } elseif ('cellattr' == $key) {
                 // SKIP THIS
             } else {
                 $value = '"' . $value . '"';
             }
             $colModel[] = (string) $key . ': ' . $value;
         }
         $return[] = '{' . implode(',', $colModel) . '}';
     }
     return '[' . implode(',', $return) . ']';
 }
Ejemplo n.º 5
0
 public function testBetween()
 {
     $filter = new Filter();
     $filter->setFromColumn($this->column, '2<>3');
     $this->assertEquals(Filter::BETWEEN, $filter->getOperator());
     $this->assertEquals('2 <> 3', $filter->getDisplayColumnValue());
     $this->assertEquals(['2', '3'], $filter->getValues());
     $filter = new Filter();
     $filter->setFromColumn($this->column, '2<>3 <>4');
     $this->assertEquals(Filter::BETWEEN, $filter->getOperator());
     $this->assertEquals('2 <> 4', $filter->getDisplayColumnValue());
     $this->assertEquals(['2', '4'], $filter->getValues());
 }
Ejemplo n.º 6
0
 public function testBetween()
 {
     $filter = new \ZfcDatagrid\Filter();
     $filter->setFromColumn($this->column, '15 <> 30');
     $this->assertEquals(Filter::BETWEEN, $filter->getOperator());
     $filterArray = new FilterArray($filter);
     $this->assertTrue($filterArray->applyFilter(['myCol' => '15']));
     $this->assertTrue($filterArray->applyFilter(['myCol' => '20']));
     $this->assertTrue($filterArray->applyFilter(['myCol' => '30']));
     $this->assertFalse($filterArray->applyFilter(['myCol' => '14']));
     $this->assertFalse($filterArray->applyFilter(['myCol' => '31']));
 }
Ejemplo n.º 7
0
 /**
  * Get the default filter conditions defined for the columns
  *
  * @return Filter[]
  */
 public function getFiltersDefault()
 {
     $filters = [];
     foreach ($this->getColumns() as $column) {
         /* @var $column \ZfcDatagrid\Column\AbstractColumn */
         if ($column->hasFilterDefaultValue() === true) {
             $filter = new Filter();
             $filter->setFromColumn($column, $column->getFilterDefaultValue());
             $filters[] = $filter;
             $column->setFilterActive($filter->getDisplayColumnValue());
         }
     }
     return $filters;
 }