X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdraggableviews%2Fsrc%2FPlugin%2Fviews%2Ffield%2FDraggableViewsField.php;fp=web%2Fmodules%2Fcontrib%2Fdraggableviews%2Fsrc%2FPlugin%2Fviews%2Ffield%2FDraggableViewsField.php;h=4361e398a18ab8fe95b8f1ee3cbeac2eea85fe24;hp=0000000000000000000000000000000000000000;hb=1fed477e46533140ff15ce8064f4fbf354419c1c;hpb=58360fba03c880fb30fb0670e485a7a07d028597 diff --git a/web/modules/contrib/draggableviews/src/Plugin/views/field/DraggableViewsField.php b/web/modules/contrib/draggableviews/src/Plugin/views/field/DraggableViewsField.php new file mode 100755 index 000000000..4361e398a --- /dev/null +++ b/web/modules/contrib/draggableviews/src/Plugin/views/field/DraggableViewsField.php @@ -0,0 +1,90 @@ +options['id'] . '--' . $this->view->row_index . '-->'); + } + + /** + * {@inheritdoc} + */ + public function viewsForm(&$form, FormStateInterface $form_state) { + $form[$this->options['id']] = [ + '#tree' => TRUE, + ]; + + $draggableviews = new DraggableViews($this->view); + + foreach ($this->view->result as $row_index => $row) { + $form[$this->options['id']][$row_index] = array( + '#tree' => TRUE, + ); + + // Item to keep id of the entity. + $form[$this->options['id']][$row_index]['id'] = array( + '#type' => 'hidden', + '#value' => $row->{$this->definition['entity field']}, + '#attributes' => array('class' => array('draggableviews-id')), + ); + + // Add parent. + $form[$this->options['id']][$row_index]['parent'] = array( + '#type' => 'hidden', + '#default_value' => $draggableviews->getParent($row_index), + '#attributes' => array('class' => array('draggableviews-parent')), + ); + } + + if (\Drupal::currentUser()->hasPermission('access draggableviews')) { + $options = [ + 'table_id' => $draggableviews->getHtmlId(), + 'action' => 'match', + 'relationship' => 'parent', + 'group' => 'draggableviews-parent', + 'subgroup' => 'draggableviews-parent', + 'source' => 'draggableviews-id' + ]; + drupal_attach_tabledrag($form, $options); + } + } + +}