Skip to content
Snippets Groups Projects
Verified Commit 3dc86aa6 authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #3376293 by nlisgo, smustgrave, amateescu: WorkspacePublishForm...

Issue #3376293 by nlisgo, smustgrave, amateescu: WorkspacePublishForm $redirectDestination parameter appears not to be used

(cherry picked from commit 917678cf)
parent 35d5e6f9
No related branches found
No related tags found
20 merge requests!11628Update file MediaLibraryWidget.php,!7564Revert "Issue #3364773 by roshnichordiya, Chris Matthews, thakurnishant_06,...,!5752Issue #3275828 by joachim, quietone, bradjones1, Berdir: document the reason...,!5627Issue #3261805: Field not saved when change of 0 on string start,!5427Issue #3338518: send credentials in ajax if configured in CORS settings.,!5395Issue #3387916 by fjgarlin, Spokje: Each GitLab job exposes user email,!5217Issue #3386607 by alexpott: Improve spell checking in commit-code-check.sh,!5064Issue #3379522 by finnsky, Gauravvvv, kostyashupenko, smustgrave, Chi: Revert...,!5040SDC ComponentElement: Transform slots scalar values to #plain_text instead of throwing an exception,!4958Issue #3392147: Whitelist IP for a Ban module.,!4894Issue #3280279: Add API to allow sites to opt in to upload SVG images in CKEditor 5,!4857Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!4856Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!4788Issue #3272985: RSS Feed header reverts to text/html when cached,!4716Issue #3362929: Improve 400 responses for broken/invalid image style routes,!4553Draft: Issue #2980951: Permission to see own unpublished comments in comment thread,!3679Issue #115801: Allow password on registration without disabling e-mail verification,!3106Issue #3017548: "Filtered HTML" text format does not support manual teaser break (<!--break-->),!925Issue #2339235: Remove taxonomy hard dependency on node module,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links
......@@ -6,7 +6,6 @@
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RedirectDestinationInterface;
use Drupal\Core\Url;
use Drupal\workspaces\WorkspaceInterface;
use Drupal\workspaces\WorkspaceOperationFactory;
......@@ -52,16 +51,10 @@ class WorkspaceMergeForm extends ConfirmFormBase implements WorkspaceFormInterfa
* The workspace operation factory service.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
* @param \Drupal\Core\Routing\RedirectDestinationInterface|null $redirectDestination
* The redirect destination service.
*/
public function __construct(WorkspaceOperationFactory $workspace_operation_factory, EntityTypeManagerInterface $entity_type_manager, ?RedirectDestinationInterface $redirectDestination = NULL) {
public function __construct(WorkspaceOperationFactory $workspace_operation_factory, EntityTypeManagerInterface $entity_type_manager) {
$this->workspaceOperationFactory = $workspace_operation_factory;
$this->entityTypeManager = $entity_type_manager;
if ($redirectDestination === NULL) {
$this->redirectDestination = \Drupal::service('redirect.destination');
@trigger_error('Calling' . __METHOD__ . '() without the $redirectDestination argument is deprecated in drupal:10.1.0 and is required in drupal:11.0.0. See https://www.drupal.org/node/3343983', E_USER_DEPRECATED);
}
}
/**
......@@ -70,8 +63,7 @@ public function __construct(WorkspaceOperationFactory $workspace_operation_facto
public static function create(ContainerInterface $container) {
return new static(
$container->get('workspaces.operation_factory'),
$container->get('entity_type.manager'),
$container->get('redirect.destination')
$container->get('entity_type.manager')
);
}
......@@ -144,7 +136,7 @@ public function getDescription() {
* {@inheritdoc}
*/
public function getCancelUrl() {
return Url::fromRoute('entity.workspace.collection', [], ['query' => $this->redirectDestination->getAsArray()]);
return Url::fromRoute('entity.workspace.collection', [], ['query' => $this->getDestinationArray()]);
}
/**
......
......@@ -6,7 +6,6 @@
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RedirectDestinationInterface;
use Drupal\Core\Url;
use Drupal\workspaces\WorkspaceAccessException;
use Drupal\workspaces\WorkspaceInterface;
......@@ -46,16 +45,10 @@ class WorkspacePublishForm extends ConfirmFormBase implements WorkspaceFormInter
* The workspace operation factory service.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
* @param \Drupal\Core\Routing\RedirectDestinationInterface|null $redirectDestination
* The redirect destination service.
*/
public function __construct(WorkspaceOperationFactory $workspace_operation_factory, EntityTypeManagerInterface $entity_type_manager, ?RedirectDestinationInterface $redirectDestination = NULL) {
public function __construct(WorkspaceOperationFactory $workspace_operation_factory, EntityTypeManagerInterface $entity_type_manager) {
$this->workspaceOperationFactory = $workspace_operation_factory;
$this->entityTypeManager = $entity_type_manager;
if ($redirectDestination === NULL) {
$this->redirectDestination = \Drupal::service('redirect.destination');
@trigger_error('Calling' . __METHOD__ . '() without the $redirectDestination argument is deprecated in drupal:10.1.0 and is required in drupal:11.0.0. See https://www.drupal.org/node/3343983', E_USER_DEPRECATED);
}
}
/**
......@@ -64,8 +57,7 @@ public function __construct(WorkspaceOperationFactory $workspace_operation_facto
public static function create(ContainerInterface $container) {
return new static(
$container->get('workspaces.operation_factory'),
$container->get('entity_type.manager'),
$container->get('redirect.destination')
$container->get('entity_type.manager')
);
}
......@@ -141,7 +133,7 @@ public function getDescription() {
* {@inheritdoc}
*/
public function getCancelUrl() {
return Url::fromRoute('entity.workspace.collection', [], ['query' => $this->redirectDestination->getAsArray()]);
return Url::fromRoute('entity.workspace.collection', [], ['query' => $this->getDestinationArray()]);
}
/**
......
......@@ -305,4 +305,36 @@ public function testWorkspaceList() {
$assert_session->linkExists('Switch to Live');
}
/**
* Verifies that a workspace can be published.
*/
public function testPublishWorkspace() {
$this->createContentType(['type' => 'test', 'label' => 'Test']);
$this->drupalLogin($this->rootUser);
$this->drupalGet('/admin/config/workflow/workspaces/add');
$this->submitForm([
'id' => 'test_workspace',
'label' => 'Test workspace',
], 'Save');
// Activate the test workspace.
$this->drupalGet('/admin/config/workflow/workspaces/manage/test_workspace/activate');
$this->submitForm([], 'Confirm');
$this->drupalGet('/admin/config/workflow/workspaces/manage/test_workspace/publish');
$this->assertSession()->statusCodeEquals(200);
$this->assertSession()->pageTextContains('There are no changes that can be published from Test workspace to Live.');
// Create a node in the workspace.
$node = $this->createNodeThroughUi('Test node', 'test');
$this->drupalGet('/admin/config/workflow/workspaces/manage/test_workspace/publish');
$this->assertSession()->statusCodeEquals(200);
$this->assertSession()->pageTextContains('There is 1 item that can be published from Test workspace to Live');
$this->getSession()->getPage()->pressButton('Publish 1 item to Live');
$this->assertSession()->pageTextContains('Successful publication.');
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment