Example #1
0
 /**
  * Renders this widget and returns the HTML as a string
  *
  * @return  string
  */
 public function render()
 {
     $form = new Form();
     $form->setAttrib('class', 'inline');
     $form->setMethod('GET');
     $form->setUidDisabled();
     $form->setTokenDisabled();
     $form->setName($this->name);
     $form->addElement('select', $this->parameter, array('label' => $this->label, 'multiOptions' => $this->values, 'autosubmit' => true));
     if ($this->request) {
         $form->populate($this->request->getParams());
     }
     return $form;
 }
Example #2
0
 /**
  * @depends testWhetherACsrfCounterMeasureIsNotBeingAdded
  * @depends testWhetherAUniqueFormIdIsNotBeingAdded
  * @depends testWhetherNoSubmitButtonIsAddedWithoutASubmitLabelBeingSet
  */
 public function testWhetherAClosureCanBePassedAsOnSuccessCallback()
 {
     $request = new Request();
     $form = new Form(array('onSuccess' => function ($form) {
         $form->getRequest()->setParam('test', 'tset');
         return false;
     }));
     $form->setTokenDisabled();
     $form->setUidDisabled();
     $form->handleRequest($request);
     $this->assertEquals('tset', $request->getParam('test'), 'Form does not utilize the onSuccess callback set with form options on instantiation');
 }
Example #3
0
 /**
  * Render this widget
  *
  * @return string                   The HTML of the widget as a string
  */
 public function render()
 {
     $view = $this->view();
     $form = new Form();
     $form->setAttrib('class', 'inline');
     $form->setMethod('GET');
     $form->setAction(Url::fromPath('/filter'));
     $form->setTokenDisabled();
     $form->addElement('text', 'query', array('name' => 'query', 'placeholder' => 'Add filter'));
     $query = $form->getElement('query')->setDecorators(array('ViewHelper'));
     $badges = new FilterBadgeRenderer($this->initialFilter);
     return '<div class="pull-right">' . $badges->render($view) . '</div>' . $form;
     $html = str_replace('{{FORM}}', $form->render($view), self::$TPL);
     $html = '<div class="input-append">' . $html . '</div>';
     return str_replace('{{BADGES}}', $badges->render($view), $html);
 }
Example #4
0
 /**
  * Render this SortBox as HTML
  *
  * @return  string
  */
 public function render()
 {
     $columnForm = new Form();
     $columnForm->setTokenDisabled();
     $columnForm->setName($this->name . '-column');
     $columnForm->setAttrib('class', 'inline');
     $columnForm->addElement('select', 'sort', array('autosubmit' => true, 'label' => $this->view()->translate('Sort by'), 'multiOptions' => $this->sortFields, 'decorators' => array(array('ViewHelper'), array('Label'))));
     $orderForm = new Form();
     $orderForm->setTokenDisabled();
     $orderForm->setName($this->name . '-order');
     $orderForm->setAttrib('class', 'inline');
     $orderForm->addElement('select', 'dir', array('autosubmit' => true, 'label' => $this->view()->translate('Direction', 'sort direction'), 'multiOptions' => array('asc' => $this->view()->translate('Ascending', 'sort direction'), 'desc' => $this->view()->translate('Descending', 'sort direction')), 'decorators' => array(array('ViewHelper'), array('Label', array('class' => 'no-js')))));
     $column = null;
     if ($this->request) {
         $url = $this->request->getUrl();
         if ($url->hasParam('sort')) {
             $column = $url->getParam('sort');
             if ($url->hasParam('dir')) {
                 $direction = $url->getParam('dir');
             } else {
                 list($_, $direction) = $this->getSortDefaults($column);
             }
         } elseif ($url->hasParam('dir')) {
             $direction = $url->getParam('dir');
             list($column, $_) = $this->getSortDefaults();
         }
     }
     if ($column === null) {
         list($column, $direction) = $this->getSortDefaults();
     }
     $columnForm->populate(array('sort' => $column));
     $orderForm->populate(array('dir' => $direction));
     return '<div class="sort-control">' . $columnForm . $orderForm . '</div>';
 }
Example #5
0
 /**
  * Render this SortBox as HTML
  *
  * @return  string
  */
 public function render()
 {
     $columnForm = new Form();
     $columnForm->setTokenDisabled();
     $columnForm->setName($this->name . '-column');
     $columnForm->setAttrib('class', 'inline');
     $columnForm->addElement('select', 'sort', array('autosubmit' => true, 'label' => $this->view()->translate('Sort by'), 'multiOptions' => $this->sortFields, 'decorators' => array(array('ViewHelper'), array('Label'))));
     $column = null;
     if ($this->request) {
         $url = $this->request->getUrl();
         if ($url->hasParam('sort')) {
             $column = $url->getParam('sort');
             if ($url->hasParam('dir')) {
                 $direction = $url->getParam('dir');
             } else {
                 list($_, $direction) = $this->getSortDefaults($column);
             }
         } elseif ($url->hasParam('dir')) {
             $direction = $url->getParam('dir');
             list($column, $_) = $this->getSortDefaults();
         }
     }
     if ($column === null) {
         list($column, $direction) = $this->getSortDefaults();
     }
     // TODO(el): ToggleButton :)
     $toggle = array('asc' => 'sort-name-down', 'desc' => 'sort-name-up');
     unset($toggle[$direction]);
     $newDirection = key($toggle);
     $icon = current($toggle);
     $orderForm = new Form();
     $orderForm->setTokenDisabled();
     $orderForm->setName($this->name . '-order');
     $orderForm->setAttrib('class', 'inline sort-direction-control');
     $orderForm->addElement('hidden', 'dir');
     $orderForm->addElement('button', 'btn_submit', array('ignore' => true, 'type' => 'submit', 'label' => $this->view()->icon($icon), 'decorators' => array('ViewHelper'), 'escape' => false, 'class' => 'link-button spinner', 'value' => 'submit', 'title' => t('Change sort direction')));
     $columnForm->populate(array('sort' => $column));
     $orderForm->populate(array('dir' => $newDirection));
     return '<div class="sort-control">' . $columnForm . $orderForm . '</div>';
 }
Example #6
0
 /**
  * Renders this widget via the given view and returns the
  * HTML as a string
  *
  * @return  string
  */
 public function render()
 {
     $form = new Form();
     $form->setAttrib('class', 'inline');
     $form->setMethod('GET');
     $form->setTokenDisabled();
     $form->setName($this->name);
     $form->addElement('select', 'sort', array('label' => 'Sort By', 'multiOptions' => $this->sortFields, 'class' => 'autosubmit'));
     $form->addElement('select', 'dir', array('multiOptions' => array('desc' => 'Desc', 'asc' => 'Asc'), 'class' => 'autosubmit'));
     $sort = $form->getElement('sort')->setDecorators(array('ViewHelper'));
     $dir = $form->getElement('dir')->setDecorators(array('ViewHelper'));
     // $form->enableAutoSubmit(array('sort', 'dir'));
     // $form->addElement($this->createFallbackSubmitButton());
     if ($this->request) {
         $form->setAction($this->request->getRequestUri());
         $form->populate($this->request->getParams());
     }
     return $form;
 }
Example #7
0
 /**
  * Render this SortBox as HTML
  *
  * @return  string
  */
 public function render()
 {
     $form = new Form();
     $form->setTokenDisabled();
     $form->setName($this->name);
     $form->setAttrib('class', 'sort-control inline');
     $form->addElement('select', 'sort', array('autosubmit' => true, 'label' => $this->view()->translate('Sort by'), 'multiOptions' => $this->sortFields));
     $form->getElement('sort')->setDecorators(array(array('ViewHelper'), array('Label')));
     $form->addElement('select', 'dir', array('autosubmit' => true, 'multiOptions' => array('asc' => 'Asc', 'desc' => 'Desc'), 'decorators' => array(array('ViewHelper'))));
     if ($this->request) {
         $form->populate($this->request->getParams());
     }
     return $form;
 }