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