comparison core/modules/views_ui/src/ViewEditForm.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents a9cd425dd02b
children
comparison
equal deleted inserted replaced
4:a9cd425dd02b 5:12f9dff5fda9
85 85
86 /** 86 /**
87 * {@inheritdoc} 87 * {@inheritdoc}
88 */ 88 */
89 public function form(array $form, FormStateInterface $form_state) { 89 public function form(array $form, FormStateInterface $form_state) {
90 /** @var \Drupal\views_ui\ViewUI $view */
90 $view = $this->entity; 91 $view = $this->entity;
91 $display_id = $this->displayID; 92 $display_id = $this->displayID;
92 // Do not allow the form to be cached, because $form_state->get('view') can become 93 // Do not allow the form to be cached, because $form_state->get('view') can become
93 // stale between page requests. 94 // stale between page requests.
94 // See views_ui_ajax_get_form() for how this affects #ajax. 95 // See views_ui_ajax_get_form() for how this affects #ajax.
125 $form['#suffix'] = '</div>' . $form['#suffix']; 126 $form['#suffix'] = '</div>' . $form['#suffix'];
126 127
127 $form['#attributes']['class'] = ['form-edit']; 128 $form['#attributes']['class'] = ['form-edit'];
128 129
129 if ($view->isLocked()) { 130 if ($view->isLocked()) {
130 $username = [
131 '#theme' => 'username',
132 '#account' => $this->entityManager->getStorage('user')->load($view->lock->owner),
133 ];
134 $lock_message_substitutions = [
135 '@user' => \Drupal::service('renderer')->render($username),
136 '@age' => $this->dateFormatter->formatTimeDiffSince($view->lock->updated),
137 ':url' => $view->url('break-lock-form'),
138 ];
139 $form['locked'] = [ 131 $form['locked'] = [
140 '#type' => 'container', 132 '#type' => 'container',
141 '#attributes' => ['class' => ['view-locked', 'messages', 'messages--warning']], 133 '#attributes' => ['class' => ['view-locked', 'messages', 'messages--warning']],
142 '#children' => $this->t('This view is being edited by user @user, and is therefore locked from editing by others. This lock is @age old. Click here to <a href=":url">break this lock</a>.', $lock_message_substitutions),
143 '#weight' => -10, 134 '#weight' => -10,
135 'message' => [
136 '#type' => 'break_lock_link',
137 '#label' => $view->getEntityType()->getSingularLabel(),
138 '#lock' => $view->getLock(),
139 '#url' => $view->toUrl('break-lock-form'),
140 ],
144 ]; 141 ];
145 } 142 }
146 else { 143 else {
147 $form['changed'] = [ 144 $form['changed'] = [
148 '#type' => 'container', 145 '#type' => 'container',
341 */ 338 */
342 public function cancel(array $form, FormStateInterface $form_state) { 339 public function cancel(array $form, FormStateInterface $form_state) {
343 // Remove this view from cache so edits will be lost. 340 // Remove this view from cache so edits will be lost.
344 $view = $this->entity; 341 $view = $this->entity;
345 $this->tempStore->delete($view->id()); 342 $this->tempStore->delete($view->id());
346 $form_state->setRedirectUrl($this->entity->urlInfo('collection')); 343 $form_state->setRedirectUrl($this->entity->toUrl('collection'));
347 } 344 }
348 345
349 /** 346 /**
350 * Returns a renderable array representing the edit page for one display. 347 * Returns a renderable array representing the edit page for one display.
351 */ 348 */
660 $view->set('display', $displays); 657 $view->set('display', $displays);
661 $view->cacheSet(); 658 $view->cacheSet();
662 659
663 // Redirect to the top-level edit page. The first remaining display will 660 // Redirect to the top-level edit page. The first remaining display will
664 // become the active display. 661 // become the active display.
665 $form_state->setRedirectUrl($view->urlInfo('edit-form')); 662 $form_state->setRedirectUrl($view->toUrl('edit-form'));
666 } 663 }
667 664
668 /** 665 /**
669 * Regenerate the current tab for AJAX updates. 666 * Regenerate the current tab for AJAX updates.
670 * 667 *
716 'url' => Url::fromRoute('views_ui.form_analyze', ['js' => 'nojs', 'view' => $view->id(), 'display_id' => $display_id]), 713 'url' => Url::fromRoute('views_ui.form_analyze', ['js' => 'nojs', 'view' => $view->id(), 'display_id' => $display_id]),
717 'attributes' => ['class' => ['views-ajax-link']], 714 'attributes' => ['class' => ['views-ajax-link']],
718 ], 715 ],
719 'duplicate' => [ 716 'duplicate' => [
720 'title' => $this->t('Duplicate view'), 717 'title' => $this->t('Duplicate view'),
721 'url' => $view->urlInfo('duplicate-form'), 718 'url' => $view->toUrl('duplicate-form'),
722 ], 719 ],
723 'reorder' => [ 720 'reorder' => [
724 'title' => $this->t('Reorder displays'), 721 'title' => $this->t('Reorder displays'),
725 'url' => Url::fromRoute('views_ui.form_reorder_displays', ['js' => 'nojs', 'view' => $view->id(), 'display_id' => $display_id]), 722 'url' => Url::fromRoute('views_ui.form_reorder_displays', ['js' => 'nojs', 'view' => $view->id(), 'display_id' => $display_id]),
726 'attributes' => ['class' => ['views-ajax-link']], 723 'attributes' => ['class' => ['views-ajax-link']],
729 ]; 726 ];
730 727
731 if ($view->access('delete')) { 728 if ($view->access('delete')) {
732 $element['extra_actions']['#links']['delete'] = [ 729 $element['extra_actions']['#links']['delete'] = [
733 'title' => $this->t('Delete view'), 730 'title' => $this->t('Delete view'),
734 'url' => $view->urlInfo('delete-form'), 731 'url' => $view->toUrl('delete-form'),
735 ]; 732 ];
736 } 733 }
737 734
738 // Let other modules add additional links here. 735 // Let other modules add additional links here.
739 \Drupal::moduleHandler()->alter('views_ui_display_top_links', $element['extra_actions']['#links'], $view, $display_id); 736 \Drupal::moduleHandler()->alter('views_ui_display_top_links', $element['extra_actions']['#links'], $view, $display_id);
741 if (isset($view->type) && $view->type != $this->t('Default')) { 738 if (isset($view->type) && $view->type != $this->t('Default')) {
742 if ($view->type == $this->t('Overridden')) { 739 if ($view->type == $this->t('Overridden')) {
743 $element['extra_actions']['#links']['revert'] = [ 740 $element['extra_actions']['#links']['revert'] = [
744 'title' => $this->t('Revert view'), 741 'title' => $this->t('Revert view'),
745 'href' => "admin/structure/views/view/{$view->id()}/revert", 742 'href' => "admin/structure/views/view/{$view->id()}/revert",
746 'query' => ['destination' => $view->url('edit-form')], 743 'query' => ['destination' => $view->toUrl('edit-form')->toString()],
747 ]; 744 ];
748 } 745 }
749 else { 746 else {
750 $element['extra_actions']['#links']['delete'] = [ 747 $element['extra_actions']['#links']['delete'] = [
751 'title' => $this->t('Delete view'), 748 'title' => $this->t('Delete view'),
752 'url' => $view->urlInfo('delete-form'), 749 'url' => $view->toUrl('delete-form'),
753 ]; 750 ];
754 } 751 }
755 } 752 }
756 753
757 // Determine the displays available for editing. 754 // Determine the displays available for editing.