Issue #1520716 by lokapujya, cwells, David Lesieur: "Files displayed by default" not respected
parent
dff5688063
commit
d6be512c0e
|
|
@ -351,13 +351,17 @@ class FileWidget extends WidgetBase {
|
|||
$element['#theme'] = 'file_widget';
|
||||
|
||||
// Add the display field if enabled.
|
||||
if ($element['#display_field'] && $item['fids']) {
|
||||
if ($element['#display_field']) {
|
||||
$element['display'] = array(
|
||||
'#type' => empty($item['fids']) ? 'hidden' : 'checkbox',
|
||||
'#title' => t('Include file in display'),
|
||||
'#value' => isset($item['display']) ? $item['display'] : $element['#display_default'],
|
||||
'#attributes' => array('class' => array('file-display')),
|
||||
);
|
||||
if (isset($item['display'])) {
|
||||
$element['display']['#value'] = $item['display'] ? '1' : '';
|
||||
} else {
|
||||
$element['display']['#value'] = $element['#display_default'];
|
||||
}
|
||||
}
|
||||
else {
|
||||
$element['display'] = array(
|
||||
|
|
|
|||
|
|
@ -93,4 +93,31 @@ class FileFieldDisplayTest extends FileFieldTestBase {
|
|||
$this->assertRaw($field_name . '[0][display]', 'First file appears as expected.');
|
||||
$this->assertRaw($field_name . '[1][display]', 'Second file appears as expected.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests default display of File Field.
|
||||
*/
|
||||
function testDefaultFileFieldDisplay() {
|
||||
$field_name = strtolower($this->randomMachineName());
|
||||
$type_name = 'article';
|
||||
$field_storage_settings = array(
|
||||
'display_field' => '1',
|
||||
'display_default' => '0',
|
||||
'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
|
||||
);
|
||||
$field_settings = array(
|
||||
'description_field' => '1',
|
||||
);
|
||||
$widget_settings = array();
|
||||
$this->createFileField($field_name, 'node', $type_name, $field_storage_settings, $field_settings, $widget_settings);
|
||||
|
||||
$test_file = $this->getTestFile('text');
|
||||
|
||||
// Create a new node with the uploaded file.
|
||||
$nid = $this->uploadNodeFile($test_file, $field_name, $type_name);
|
||||
|
||||
$this->drupalGet('node/' . $nid . '/edit');
|
||||
$this->assertFieldByXPath('//input[@type="checkbox" and @name="' . $field_name . '[0][display]"]', NULL, 'Default file display checkbox field exists.');
|
||||
$this->assertFieldByXPath('//input[@type="checkbox" and @name="' . $field_name . '[0][display]" and not(@checked)]', NULL, 'Default file display is off.');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue