From 3a4020834653eab6bf1acd15d097958d17c6133f Mon Sep 17 00:00:00 2001 From: Dominic Tubach Date: Fri, 4 Oct 2024 16:08:00 +0200 Subject: [PATCH] Remove margin between file input field and link The file input field is wrapped by a `div` with class `.form-item` and thus gets a bottom margin. The `p` element containing the link to the current file has a top margin. So there is a lot of space between input field and link. This change sets these margins to `0`. --- .../civiremote_entity/civiremote_entity.libraries.yml | 4 ++++ modules/civiremote_entity/css/file-field.css | 9 +++++++++ .../src/Form/Control/FileArrayFactory.php | 5 ++++- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 modules/civiremote_entity/civiremote_entity.libraries.yml create mode 100644 modules/civiremote_entity/css/file-field.css diff --git a/modules/civiremote_entity/civiremote_entity.libraries.yml b/modules/civiremote_entity/civiremote_entity.libraries.yml new file mode 100644 index 0000000..786855a --- /dev/null +++ b/modules/civiremote_entity/civiremote_entity.libraries.yml @@ -0,0 +1,4 @@ +file-field: + css: + theme: + css/file-field.css: {} diff --git a/modules/civiremote_entity/css/file-field.css b/modules/civiremote_entity/css/file-field.css new file mode 100644 index 0000000..b5ddf4e --- /dev/null +++ b/modules/civiremote_entity/css/file-field.css @@ -0,0 +1,9 @@ +.form-item:has(+.civiremote-form-file-link) { + /* No margin between file form item and link. */ + margin-bottom: 0; +} + +.civiremote-form-file-link { + /* No margin between file form item and link. */ + margin-top: 0; +} diff --git a/modules/civiremote_entity/src/Form/Control/FileArrayFactory.php b/modules/civiremote_entity/src/Form/Control/FileArrayFactory.php index c2c3f30..516b0b0 100644 --- a/modules/civiremote_entity/src/Form/Control/FileArrayFactory.php +++ b/modules/civiremote_entity/src/Form/Control/FileArrayFactory.php @@ -72,6 +72,9 @@ public function createFormArray( && is_string($form['file']['#default_value']->url ?? NULL) && is_string($form['file']['#default_value']->filename ?? NULL) ) { + // @phpstan-ignore offsetAccess.nonOffsetAccessible, offsetAccess.nonOffsetAccessible + $form['file']['#attached']['library'][] = 'civiremote_entity/file-field'; + $url = $form['file']['#default_value']->url; $filename = $form['file']['#default_value']->filename; @@ -82,7 +85,7 @@ public function createFormArray( '#title' => $filename, '#url' => $this->civiCRMUrlManager->addRemoteUrl($url, $filename), '#attributes' => ['target' => '_blank'], - '#prefix' => '

', + '#prefix' => '

', ];