Issue #2635712 by bendeguz.csirmaz, DeFr, redgluten, swentel, SylvainM, Wim Leers, SiliconMind, dbyers55, catapipper: Cannot use Quick Edit to delete an image
parent
618274b96f
commit
b3576bbe73
|
|
@ -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\Render\Element;
|
|||
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 @@ class QuickEditFieldForm extends FormBase {
|
|||
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')
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
<?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());
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue