Unverified Commit c1eaf1e7 authored by alexpott's avatar alexpott

Issue #2635712 by bendeguz.csirmaz, DeFr, redgluten, swentel, SylvainM, Wim...

Issue #2635712 by bendeguz.csirmaz, DeFr, redgluten, swentel, SylvainM, Wim Leers, SiliconMind, dbyers55, catapipper: Cannot use Quick Edit to delete an image

(cherry picked from commit b3576bbe)
parent f8c2736c
......@@ -215,6 +215,7 @@
*/
disableFields(event) {
const $clickedButton = $(this);
$clickedButton.trigger('formUpdated');
// Check if we're working with an "Upload" button.
let $enabledFields = [];
......
......@@ -96,6 +96,7 @@
},
disableFields: function disableFields(event) {
var $clickedButton = $(this);
$clickedButton.trigger('formUpdated');
var $enabledFields = [];
if ($clickedButton.closest('div.js-form-managed-file').length > 0) {
......
......@@ -12,7 +12,6 @@
use Drupal\Core\Entity\Entity\EntityFormDisplay;
use Drupal\Core\TempStore\PrivateTempStoreFactory;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface;
/**
* Builds and process a form for editing a single entity field.
......@@ -42,13 +41,6 @@ class QuickEditFieldForm extends FormBase {
*/
protected $nodeTypeStorage;
/**
* The typed data validator.
*
* @var \Symfony\Component\Validator\Validator\ValidatorInterface
*/
protected $validator;
/**
* Constructs a new EditFieldForm.
*
......@@ -58,14 +50,11 @@ class QuickEditFieldForm extends FormBase {
* The module handler.
* @param \Drupal\Core\Entity\EntityStorageInterface $node_type_storage
* The node type storage.
* @param \Symfony\Component\Validator\Validator\ValidatorInterface $validator
* The typed data validator service.
*/
public function __construct(PrivateTempStoreFactory $temp_store_factory, ModuleHandlerInterface $module_handler, EntityStorageInterface $node_type_storage, ValidatorInterface $validator) {
public function __construct(PrivateTempStoreFactory $temp_store_factory, ModuleHandlerInterface $module_handler, EntityStorageInterface $node_type_storage) {
$this->moduleHandler = $module_handler;
$this->nodeTypeStorage = $node_type_storage;
$this->tempStoreFactory = $temp_store_factory;
$this->validator = $validator;
}
/**
......@@ -75,8 +64,7 @@ public static function create(ContainerInterface $container) {
return new static(
$container->get('tempstore.private'),
$container->get('module_handler'),
$container->get('entity.manager')->getStorage('node_type'),
$container->get('typed_data_manager')->getValidator()
$container->get('entity.manager')->getStorage('node_type')
);
}
......
<?php
namespace Drupal\Tests\quickedit\FunctionalJavascript;
use Drupal\file\Entity\File;
use Drupal\node\Entity\Node;
use Drupal\Tests\file\Functional\FileFieldCreationTrait;
use Drupal\Tests\TestFileCreationTrait;
/**
* @group quickedit
*/
class QuickEditFileTest extends QuickEditJavascriptTestBase {
use FileFieldCreationTrait;
use TestFileCreationTrait;
/**
* {@inheritdoc}
*/
public static $modules = [
'node',
'file',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
// Create the Article node type.
$this->drupalCreateContentType(['type' => 'article', 'name' => 'Article']);
// Add file field to Article node type.
$this->createFileField('field_file', 'node', 'article', ['file_extensions' => 'txt']);
// Log in as a content author who can use Quick Edit and edit Articles.
$user = $this->drupalCreateUser([
'access contextual links',
'access toolbar',
'access in-place editing',
'access content',
'create article content',
'edit any article content',
]);
$this->drupalLogin($user);
}
/**
* Tests if a file can be in-place removed with Quick Edit.
*/
public function testRemove() {
$assert_session = $this->assertSession();
// Create test file.
$this->generateFile('test', 64, 10, 'text');
$file = File::create([
'uri' => 'public://test.txt',
'filename' => 'test.txt',
]);
$file->setPermanent();
$file->save();
// Create test node.
$node = $this->drupalCreateNode([
'type' => 'article',
'title' => t('My Test Node'),
'field_file' => [
'target_id' => $file->id(),
],
]);
$this->drupalGet($node->toUrl()->toString());
// Start Quick Edit.
$this->awaitQuickEditForEntity('node', 1);
$this->startQuickEditViaToolbar('node', 1, 0);
// Click the file field.
$assert_session->waitForElementVisible('css', '[data-quickedit-field-id="node/1/field_file/en/full"]');
$this->click('[data-quickedit-field-id="node/1/field_file/en/full"]');
$assert_session->waitForElement('css', '.quickedit-toolbar-field div[id*="file"]');
// Remove the file.
$remove = $assert_session->waitForButton('Remove');
$remove->click();
// Wait for remove.
$assert_session->waitForElement('css', 'input[name="files[field_file_0]"]');
$this->saveQuickEdit();
// Wait for save.
$this->assertJsCondition("Drupal.quickedit.collections.entities.get('node/1[0]').get('state') === 'closed'");
// Assert file is removed from node.
$assert_session->pageTextNotContains('test.txt');
$node = Node::load($node->id());
$this->assertEmpty($node->get('field_file')->getValue());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment