From 08af79bfbffe4d88254a3872bd5f460189af212c Mon Sep 17 00:00:00 2001
From: Jochen Roth <jochen.roth@b13.com>
Date: Wed, 15 Mar 2023 15:34:54 +0100
Subject: [PATCH] [BUGFIX] Prevent submission of empty value in page title
 inline edit

Currently, it's possible to submit an empty page title in the
inline edit feature. If an empty title was submitted, the entire
element is gone.

This has been fixed by adding the 'required' attribute to
the input field.

Resolves: #100177
Releases: main
Change-Id: Ibdfa02da537301cf1f0bb65795356b090beb73d1
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/78131
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Benni Mack <benni@typo3.org>
---
 Build/Sources/TypeScript/backend/element/editable-page-title.ts | 2 +-
 .../Resources/Public/JavaScript/element/editable-page-title.js  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Build/Sources/TypeScript/backend/element/editable-page-title.ts b/Build/Sources/TypeScript/backend/element/editable-page-title.ts
index 8f7ad6bebd7d..e7907fc9d8c0 100644
--- a/Build/Sources/TypeScript/backend/element/editable-page-title.ts
+++ b/Build/Sources/TypeScript/backend/element/editable-page-title.ts
@@ -220,7 +220,7 @@ export class EditablePageTitle extends LitElement {
   private composeEditForm(): TemplateResult {
     return html`
       <form class="wrapper" @submit="${ this.updatePageTitle }">
-        <input autocomplete="off" name="newPageTitle" ?disabled="${this._isSubmitting}" value="${this.pageTitle}" @keydown="${(e: KeyboardEvent): void => { if (e.key === 'Escape') { this.endEditing(); } }}">
+        <input autocomplete="off" required name="newPageTitle" ?disabled="${this._isSubmitting}" value="${this.pageTitle}" @keydown="${(e: KeyboardEvent): void => { if (e.key === 'Escape') { this.endEditing(); } }}">
         <button data-action="save" type="submit" ?disabled="${this._isSubmitting}">
           <typo3-backend-icon identifier="actions-check" size="small"></typo3-backend-icon>
         </button>
diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/element/editable-page-title.js b/typo3/sysext/backend/Resources/Public/JavaScript/element/editable-page-title.js
index e738bec20809..40e4fa25b365 100644
--- a/typo3/sysext/backend/Resources/Public/JavaScript/element/editable-page-title.js
+++ b/typo3/sysext/backend/Resources/Public/JavaScript/element/editable-page-title.js
@@ -19,7 +19,7 @@ var __decorate=function(t,e,i,o){var a,r=arguments.length,n=r<3?e:null===o?o=Obj
         <typo3-backend-icon identifier="actions-open" size="small"></typo3-backend-icon>
       </button>`}composeEditForm(){return html`
       <form class="wrapper" @submit="${this.updatePageTitle}">
-        <input autocomplete="off" name="newPageTitle" ?disabled="${this._isSubmitting}" value="${this.pageTitle}" @keydown="${t=>{"Escape"===t.key&&this.endEditing()}}">
+        <input autocomplete="off" required name="newPageTitle" ?disabled="${this._isSubmitting}" value="${this.pageTitle}" @keydown="${t=>{"Escape"===t.key&&this.endEditing()}}">
         <button data-action="save" type="submit" ?disabled="${this._isSubmitting}">
           <typo3-backend-icon identifier="actions-check" size="small"></typo3-backend-icon>
         </button>
-- 
GitLab