Added missing modules, including some as submodules.
[yaffs-website] / web / modules / contrib / draggableviews / src / Plugin / views / field / DraggableViewsField.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\draggableviews\Plugin\views\field\DraggableViewsField.
6  */
7
8 namespace Drupal\draggableviews\Plugin\views\field;
9
10 use Drupal\Core\Form\FormStateInterface;
11 use Drupal\draggableviews\DraggableViews;
12 use Drupal\system\Plugin\views\field\BulkForm;
13 use Drupal\Core\Render\Markup;
14
15 /**
16  * Defines a draggableviews form element.
17  *
18  * @ViewsField("draggable_views_field")
19  */
20 class DraggableViewsField extends BulkForm {
21
22   /**
23    * {@inheritdoc}
24    */
25   protected function defineOptions() {
26     $options = parent::defineOptions();
27     return $options;
28   }
29
30   /**
31    * {@inheritdoc}
32    */
33   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
34     parent::buildOptionsForm($form, $form_state);
35   }
36
37   /**
38    * {@inheritdoc}
39    */
40   // @codingStandardsIgnoreStart
41   public function render_item($count, $item) {
42     // @codingStandardsIgnoreEnd
43     // Using internal method. @todo Reckeck after drupal stable release.
44     return Markup::create('<!--form-item-' . $this->options['id'] . '--' . $this->view->row_index . '-->');
45   }
46
47   /**
48    * {@inheritdoc}
49    */
50   public function viewsForm(&$form, FormStateInterface $form_state) {
51     $form[$this->options['id']] = [
52       '#tree' => TRUE,
53     ];
54
55     $draggableviews = new DraggableViews($this->view);
56
57     foreach ($this->view->result as $row_index => $row) {
58       $form[$this->options['id']][$row_index] = array(
59         '#tree' => TRUE,
60       );
61
62       // Item to keep id of the entity.
63       $form[$this->options['id']][$row_index]['id'] = array(
64         '#type' => 'hidden',
65         '#value' => $row->{$this->definition['entity field']},
66         '#attributes' => array('class' => array('draggableviews-id')),
67       );
68
69       // Add parent.
70       $form[$this->options['id']][$row_index]['parent'] = array(
71         '#type' => 'hidden',
72         '#default_value' => $draggableviews->getParent($row_index),
73         '#attributes' => array('class' => array('draggableviews-parent')),
74       );
75     }
76
77     if (\Drupal::currentUser()->hasPermission('access draggableviews')) {
78       $options = [
79         'table_id' => $draggableviews->getHtmlId(),
80         'action' => 'match',
81         'relationship' => 'parent',
82         'group' => 'draggableviews-parent',
83         'subgroup' => 'draggableviews-parent',
84         'source' => 'draggableviews-id'
85       ];
86       drupal_attach_tabledrag($form, $options);
87     }
88   }
89
90 }