From 144e625f191dd4e020d1b2f420e5476da8a2b255 Mon Sep 17 00:00:00 2001
From: Markus Klein <markus.klein@typo3.org>
Date: Sun, 29 May 2016 15:15:16 +0200
Subject: [PATCH] [BUGFIX] Make Install Tool forms submitable via keyboard

Additionally fix missing input-label association and simplify
Fluid inline if usage.

Resolves: #76363
Releases: master, 7.6
Change-Id: I8a01047c3eb5b28494313fce0e031a296696ece9
Reviewed-on: https://review.typo3.org/48391
Reviewed-by: Susanne Moog <typo3@susannemoog.de>
Tested-by: Susanne Moog <typo3@susannemoog.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
---
 .../Private/Partials/Action/Common/SubmitButton.html  |  3 ++-
 .../Partials/Action/Tool/Configuration/Context.html   |  2 +-
 .../Action/Tool/Configuration/Context/Custom.html     | 11 ++++++-----
 .../Action/Tool/Configuration/Context/Debug.html      |  4 ++--
 .../Action/Tool/Configuration/Context/Live.html       |  4 ++--
 .../Tool/Configuration/ExtbaseObjectCache/Apc.html    |  4 ++--
 .../Tool/Configuration/ExtbaseObjectCache/Apcu.html   |  4 ++--
 .../Configuration/ExtbaseObjectCache/Database.html    |  6 +++---
 .../Partials/Action/Tool/Configuration/Image.html     |  2 +-
 .../Action/Tool/Configuration/Image/Custom.html       | 11 ++++++-----
 .../Tool/Configuration/Image/GraphicsMagick.html      |  6 +++---
 .../Action/Tool/Configuration/Image/ImageMagick6.html |  6 +++---
 .../Action/Tool/Configuration/Mail/Custom.html        |  9 +++++----
 .../Action/Tool/Configuration/Mail/Sendmail.html      |  4 ++--
 14 files changed, 40 insertions(+), 36 deletions(-)

diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Common/SubmitButton.html b/typo3/sysext/install/Resources/Private/Partials/Action/Common/SubmitButton.html
index 91f3928475bb..60f4514a0c5d 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Common/SubmitButton.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Common/SubmitButton.html
@@ -1 +1,2 @@
-<button class="btn btn-default {className}" type="submit" name="install[set][{name}]">{text}</button>
\ No newline at end of file
+<button class="btn btn-default {className}" type="submit">{text}</button>
+<input type="hidden" name="install[set][{name}]" value="submit" />
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context.html
index d4d68825a65a..aa0d9a5455f5 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context.html
@@ -22,4 +22,4 @@
 			</f:for>
 		</div>
 	</div>
-</div>
\ No newline at end of file
+</div>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Custom.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Custom.html
index 7b9d137192ab..864d266063ff 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Custom.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Custom.html
@@ -7,7 +7,7 @@
 				id="t3-install-tool-configuration-context-custom"
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-context-custom"
@@ -16,7 +16,7 @@
 				<strong>
 					Custom configuration
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
@@ -27,10 +27,11 @@
 
 		<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
 			<div class="form-group">
-				<label class="col-sm-4 control-label">{configurationKey}</label>
+				<label class="col-sm-4 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
 				<div class="col-sm-8">
 					<input
-						type="input"
+						id="{feature.name}{preset.name}{configurationKey}"
+						type="text"
 						name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
 						value="{configurationValue}"
 						class="form-control t3js-custom-preset"
@@ -41,4 +42,4 @@
 		</f:for>
 	</div>
 </div>
-<p></p>
\ No newline at end of file
+<p></p>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Debug.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Debug.html
index de184ba9e707..596fb9eff0a7 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Debug.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Debug.html
@@ -7,14 +7,14 @@
 				id="t3-install-tool-configuration-context-debug"
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-context-debug"
 				class="t3-install-tool-configuration-radio-label"
 			>
 				<strong>Debug</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Live.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Live.html
index e9ebcc9d1afe..53a0e046e9b5 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Live.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Context/Live.html
@@ -7,14 +7,14 @@
 				id="t3-install-tool-configuration-context-live"
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-context-live"
 				class="t3-install-tool-configuration-radio-label"
 			>
 				<strong>Live</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apc.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apc.html
index f4e80a66bb43..c2ce15692880 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apc.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apc.html
@@ -8,7 +8,7 @@
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
 				{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-extbaseobjectcache-apc"
@@ -17,7 +17,7 @@
 				<strong>
 					APC cache backend
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apcu.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apcu.html
index 9557ab7e645e..c59e654a4a98 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apcu.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Apcu.html
@@ -8,7 +8,7 @@
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
 				{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-extbaseobjectcache-apc"
@@ -17,7 +17,7 @@
 				<strong>
 					APCu cache backend
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Database.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Database.html
index 5be8a2d8609c..ed764522ee23 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Database.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/ExtbaseObjectCache/Database.html
@@ -7,7 +7,7 @@
 				id="t3-install-tool-configuration-extbaseobjectcache-database"
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-extbaseobjectcache-database"
@@ -16,7 +16,7 @@
 				<strong>
 					Database cache backend
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
@@ -25,4 +25,4 @@
 		fallback if APC is not available.
 	</div>
 </div>
-<p></p>
\ No newline at end of file
+<p></p>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image.html
index b5db6c71ea97..8e40e0e5aa71 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image.html
@@ -28,7 +28,7 @@
 				<div class="col-sm-12">
 					<div class="input-group">
 						<input
-								type="input"
+								type="text"
 								name="install[values][{feature.name}][additionalSearchPath]"
 								value="{feature.additionalSearchPath}"
 								class="form-control"
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/Custom.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/Custom.html
index deda64cd5bd5..0568b0357055 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/Custom.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/Custom.html
@@ -7,7 +7,7 @@
 				id="t3-install-tool-configuration-image-custom"
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-image-custom"
@@ -16,7 +16,7 @@
 				<strong>
 					Custom configuration
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
@@ -27,10 +27,11 @@
 
 		<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
 			<div class="form-group">
-				<label class="col-sm-4 control-label">{configurationKey}</label>
+				<label class="col-sm-4 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
 				<div class="col-sm-8">
 					<input
-						type="input"
+						id="{feature.name}{preset.name}{configurationKey}"
+						type="text"
 						name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
 						value="{configurationValue}"
 						class="form-control t3js-custom-preset"
@@ -41,4 +42,4 @@
 		</f:for>
 	</div>
 </div>
-<p></p>
\ No newline at end of file
+<p></p>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/GraphicsMagick.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/GraphicsMagick.html
index f64f23568ab9..243f0e951905 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/GraphicsMagick.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/GraphicsMagick.html
@@ -8,7 +8,7 @@
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
 				{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-image-graphicsmagick"
@@ -17,7 +17,7 @@
 				<strong>
 					Graphics Magick
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
@@ -34,4 +34,4 @@
 		</f:if>
 	</div>
 </div>
-<p></p>
\ No newline at end of file
+<p></p>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/ImageMagick6.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/ImageMagick6.html
index 15b80a0feda7..5062e83439ca 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/ImageMagick6.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Image/ImageMagick6.html
@@ -8,7 +8,7 @@
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
 				{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-image-imagemagick6"
@@ -17,7 +17,7 @@
 				<strong>
 					Image Magick version 6 or higher
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
@@ -34,4 +34,4 @@
 		</f:if>
 	</div>
 </div>
-<p></p>
\ No newline at end of file
+<p></p>
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Custom.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Custom.html
index 9531c8256289..ce19ff34de9f 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Custom.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Custom.html
@@ -7,7 +7,7 @@
 				id="t3-install-tool-configuration-mail-custom"
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-mail-custom"
@@ -16,7 +16,7 @@
 				<strong>
 					Custom configuration
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
@@ -27,10 +27,11 @@
 
 		<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
 			<div class="form-group">
-				<label class="col-sm-6 control-label">{configurationKey}</label>
+				<label class="col-sm-6 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
 				<div class="col-sm-6">
 					<input
-						type="input"
+						id="{feature.name}{preset.name}{configurationKey}"
+						type="text"
 						name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
 						value="{configurationValue}"
 						class="form-control t3js-custom-preset"
diff --git a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Sendmail.html b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Sendmail.html
index 9ea3c6ee6975..8f7fa0290949 100644
--- a/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Sendmail.html
+++ b/typo3/sysext/install/Resources/Private/Partials/Action/Tool/Configuration/Mail/Sendmail.html
@@ -8,7 +8,7 @@
 				name="install[values][{feature.name}][enable]"
 				value="{preset.name}"
 				{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
-				{f:if(condition:'{preset.isActive}', then:'checked="checked"')}
+				{f:if(condition: preset.isActive, then:'checked="checked"')}
 			/>
 			<label
 				for="t3-install-tool-configuration-mail-sendmail"
@@ -17,7 +17,7 @@
 				<strong>
 					Import sendmail command from PHP settings
 				</strong>
-				{f:if(condition:'{preset.isActive}', then:' [Active]')}
+				{f:if(condition: preset.isActive, then:' [Active]')}
 			</label>
 		</div>
 	</div>
-- 
GitLab