From 2360eec06ec0cc4c8cec3f7271dd92ac6bb895b2 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Tue, 26 Nov 2024 14:46:23 +0100 Subject: [PATCH 01/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Added a comment to explain a line of code that doesn't work with CKEditor anymore * Added a CKE config change so that it gets focus when loaded. --- .../src/main/resources/AnnotationCode/Script.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml index 91ff8281a396..f159815cca6f 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml @@ -1677,6 +1677,12 @@ XWiki.Annotation = Class.create({ onSuccess: function(response) { // display the annotation creation form this.fillCreateForm(this.createPanel, response.responseText); + // If the WYSIWYG editor used is CKEditor, we make sure its input gets focused as soon as it's loaded + // Note that this CKE config is easier than having to handle custom eventListeners. + // As of 17.0.0, this does not interfere with the inline editor, so this solution is okay. + if(typeof CKEDITOR !== 'undefined') { + CKEDITOR.config.startupFocus = true; + } }.bind(this), onFailure: function(response) { @@ -1710,7 +1716,7 @@ XWiki.Annotation = Class.create({ if (!this.safeUpdate(this.createPanel, panelContent)) { return; } - // set the focus in the first element of type input + // set the focus in the first element of type input, useful when not using the WYSIWYG editor CKEditor. this.createPanel.select('form').first().focusFirstElement(); // and add the button observers this.createPanel.down('input[type=submit]').observe('click', this.onAnnotationAdd.bindAsEventListener(this)); From 8ba454dd52fa0ad771ab4bff64d7c4ccc9570ac4 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Thu, 12 Dec 2024 10:35:44 +0100 Subject: [PATCH 02/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * (WIP) --- .../src/main/resources/AnnotationCode/Macros.xml | 5 ++++- .../src/main/resources/CKEditor/EditSheet.xml | 2 ++ .../org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml index 7a206f134a87..a02c413a6d6b 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml @@ -358,7 +358,10 @@ #if ($mode == 'edit' || $mode == 'create') ## We use displayEdit and not display('edit') because we want the input field name to be just the property name ## (without the "DocumentReference_objectNumber_" prefix). - $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject) + #set( $editDisplay = $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject)) + ## We want to make sure the editor focuses this input on load. By default, this is a textarea. + #set($editDisplay = $stringtool.replace("$editDisplay", '<textarea', '<textarea data-focusOnLoad="true"', 1)) + $editDisplay #else ## We use display('view') and not displayView because we want the property value to be evaluated in the context of ## the annotated document (i.e. isolated), not the current document. diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml index b99cbcbb356b..d1afaba017ed 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml @@ -218,9 +218,11 @@ define('xwiki-ckeditor', [ } var uploadDisabled = element.hasAttribute('data-upload-disabled'); + var focusOnLoad = element.hasAttribute('data-focusOnLoad'); var config = { filebrowserUploadUrl: uploadDisabled ? '' : getUploadURL(sourceDocument, 'filebrowser'), + startupFocus: focusOnLoad ? '' : true, height: $(element).height(), // Used to resolve and serialize relative references. Also used to make HTTP requests with the right context. sourceDocument: sourceDocument, diff --git a/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java b/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java index eb6b4469e163..0a6d1e14bd79 100644 --- a/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java +++ b/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java @@ -203,7 +203,7 @@ public String parseAndRender(String html, Syntax syntax, EntityReference sourceR // If the source reference is not set, do a best effort by using the security doc reference (i.e. the // current document reference since most of the time the content comes from the current document. // However, callers of this method are expected to provide a non-null source reference for more accurate - // results. We do this because the main caller of this method is the CKEditor extension and it needs to + // results. We do this because the main caller of this method is the KEditor extension and it needs to // work with several version of XWiki (including versions older than 11.9RC1 - in which this new method // signature was added) and for simplicity reasons is currently passing null. // TODO: Fix the CKEditor plugin to call the non-deprecated toAnnotatedXHTML() method and reomve this From 8306db2665e17c5bd59e20449ed4083011bf7849 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Mon, 16 Dec 2024 15:41:13 +0100 Subject: [PATCH 03/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Reverted unwanted change (WIP) --- .../org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java b/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java index 0a6d1e14bd79..eb6b4469e163 100644 --- a/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java +++ b/xwiki-platform-core/xwiki-platform-wysiwyg/xwiki-platform-wysiwyg-api/src/main/java/org/xwiki/wysiwyg/script/WysiwygEditorScriptService.java @@ -203,7 +203,7 @@ public String parseAndRender(String html, Syntax syntax, EntityReference sourceR // If the source reference is not set, do a best effort by using the security doc reference (i.e. the // current document reference since most of the time the content comes from the current document. // However, callers of this method are expected to provide a non-null source reference for more accurate - // results. We do this because the main caller of this method is the KEditor extension and it needs to + // results. We do this because the main caller of this method is the CKEditor extension and it needs to // work with several version of XWiki (including versions older than 11.9RC1 - in which this new method // signature was added) and for simplicity reasons is currently passing null. // TODO: Fix the CKEditor plugin to call the non-deprecated toAnnotatedXHTML() method and reomve this From c2fbd00276331a5c5e3c99c3924a388d52187650 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Tue, 17 Dec 2024 13:45:04 +0100 Subject: [PATCH 04/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default (WIP) --- .../src/main/resources/AnnotationCode/Macros.xml | 7 +++---- .../src/main/resources/CKEditor/EditSheet.xml | 8 ++++++-- .../src/main/resources/CKEditor/VelocityMacros.xml | 6 ++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml index a02c413a6d6b..a7fa6ce40856 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml @@ -356,12 +356,11 @@ #macro(displayAnnotationProperty $annotatedDocument $annotationObject $annotationProperty $mode) #if ($mode == 'edit' || $mode == 'create') + ## This focusOnLoad parameter is used by the CKEditor editor. + #set( $focusOnLoad = true) ## We use displayEdit and not display('edit') because we want the input field name to be just the property name ## (without the "DocumentReference_objectNumber_" prefix). - #set( $editDisplay = $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject)) - ## We want to make sure the editor focuses this input on load. By default, this is a textarea. - #set($editDisplay = $stringtool.replace("$editDisplay", '<textarea', '<textarea data-focusOnLoad="true"', 1)) - $editDisplay + $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject) #else ## We use display('view') and not displayView because we want the property value to be evaluated in the context of ## the annotated document (i.e. isolated), not the current document. diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml index d1afaba017ed..f6c6aeaaf556 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml @@ -69,6 +69,10 @@ 'cols': 80 } }) + #if($focusOnLoad) + #set ($discard = $parameters.attributes.put('focusOnLoad', 'true')) + #set($focusOnLoad = false) + #end #ckeditor($parameters) </div> {{/html}} @@ -218,11 +222,11 @@ define('xwiki-ckeditor', [ } var uploadDisabled = element.hasAttribute('data-upload-disabled'); - var focusOnLoad = element.hasAttribute('data-focusOnLoad'); + var focusOnLoad = element.hasAttribute('data-focus-on-load'); var config = { filebrowserUploadUrl: uploadDisabled ? '' : getUploadURL(sourceDocument, 'filebrowser'), - startupFocus: focusOnLoad ? '' : true, + startupFocus: focusOnLoad, height: $(element).height(), // Used to resolve and serialize relative references. Also used to make HTTP requests with the right context. sourceDocument: sourceDocument, diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml index b88229697122..87812c0db4a2 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml @@ -206,6 +206,12 @@ #if ($source.restricted == 'true' && !$services.security.authorization.hasAccess('edit', $source.documentReference)) #set ($parameters.attributes.data-upload-disabled = 'true') #end + ## We use the velocity template context to convey the focusOnLoad parameter to our specificCKEditor. + #if($focusOnLoad) + #set ($parameters.attributes.data-focus-on-load = 'true') + ## We make sure to clear this context so that it doesn't interfere with CKEditors opened later. + #set ($focusOnLoad = 'false') + #end ## <textarea #foreach ($entry in $parameters.attributes.entrySet()) From 7ac4b35e691b947aabc3f7899b5fd710a03881a4 Mon Sep 17 00:00:00 2001 From: LucasC Date: Tue, 17 Dec 2024 16:48:14 +0100 Subject: [PATCH 05/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Implemented a solution that does not assume there's CKEditor --- .../src/main/resources/AnnotationCode/Macros.xml | 4 ++-- .../src/main/resources/AnnotationCode/Script.xml | 6 ------ .../src/main/resources/CKEditor/EditSheet.xml | 4 ++-- .../src/main/resources/CKEditor/VelocityMacros.xml | 8 ++++---- .../src/main/resources/flamingo/commentfield.vm | 2 ++ .../webapp/resources/uicomponents/viewers/comments.js | 3 --- 6 files changed, 10 insertions(+), 17 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml index a7fa6ce40856..9c19a7704b7f 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml @@ -356,8 +356,8 @@ #macro(displayAnnotationProperty $annotatedDocument $annotationObject $annotationProperty $mode) #if ($mode == 'edit' || $mode == 'create') - ## This focusOnLoad parameter is used by the CKEditor editor. - #set( $focusOnLoad = true) + ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. + #set( $startupFocus = true) ## We use displayEdit and not display('edit') because we want the input field name to be just the property name ## (without the "DocumentReference_objectNumber_" prefix). $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml index f159815cca6f..af72030fc4e4 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml @@ -1677,12 +1677,6 @@ XWiki.Annotation = Class.create({ onSuccess: function(response) { // display the annotation creation form this.fillCreateForm(this.createPanel, response.responseText); - // If the WYSIWYG editor used is CKEditor, we make sure its input gets focused as soon as it's loaded - // Note that this CKE config is easier than having to handle custom eventListeners. - // As of 17.0.0, this does not interfere with the inline editor, so this solution is okay. - if(typeof CKEDITOR !== 'undefined') { - CKEDITOR.config.startupFocus = true; - } }.bind(this), onFailure: function(response) { diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml index f6c6aeaaf556..e30a0bb79f5d 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml @@ -222,11 +222,11 @@ define('xwiki-ckeditor', [ } var uploadDisabled = element.hasAttribute('data-upload-disabled'); - var focusOnLoad = element.hasAttribute('data-focus-on-load'); + var startupFocus = element.hasAttribute('data-startup-focus'); var config = { filebrowserUploadUrl: uploadDisabled ? '' : getUploadURL(sourceDocument, 'filebrowser'), - startupFocus: focusOnLoad, + startupFocus: startupFocus, height: $(element).height(), // Used to resolve and serialize relative references. Also used to make HTTP requests with the right context. sourceDocument: sourceDocument, diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml index 87812c0db4a2..e00346314c62 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml @@ -206,11 +206,11 @@ #if ($source.restricted == 'true' && !$services.security.authorization.hasAccess('edit', $source.documentReference)) #set ($parameters.attributes.data-upload-disabled = 'true') #end - ## We use the velocity template context to convey the focusOnLoad parameter to our specificCKEditor. - #if($focusOnLoad) - #set ($parameters.attributes.data-focus-on-load = 'true') + ## We use the velocity template context to convey the startupFocus parameter to CKEditor. + #if($startupFocus) + #set ($parameters.attributes.data-startup-focus = 'true') ## We make sure to clear this context so that it doesn't interfere with CKEditors opened later. - #set ($focusOnLoad = 'false') + #set ($startupFocus = false) #end ## <textarea diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm index 03b28d534cdf..a83c2e98989e 100644 --- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm +++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm @@ -72,6 +72,8 @@ #initRequiredSkinExtensions() + ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. + #set( $startupFocus = true) ## display of the comment field $doc.displayEdit($fieldToDisplay, '', $commentObj) diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-war/src/main/webapp/resources/uicomponents/viewers/comments.js b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-war/src/main/webapp/resources/uicomponents/viewers/comments.js index ce5f8d966801..4400d88924fe 100644 --- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-war/src/main/webapp/resources/uicomponents/viewers/comments.js +++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-war/src/main/webapp/resources/uicomponents/viewers/comments.js @@ -599,9 +599,6 @@ viewers.Comments = Class.create({ require(['jquery', 'xwiki-events-bridge'], function ($) { if ($(".commenteditor").length) { - if(typeof CKEDITOR !== 'undefined') { - CKEDITOR.config.startupFocus = true; - } $.post(new XWiki.Document().getURL("get") + '?' + $.param({ xpage: 'xpart', vm: 'commentfield.vm', From 368e04a96e6101673ed68d1d6f073385839bf907 Mon Sep 17 00:00:00 2001 From: LucasC Date: Tue, 17 Dec 2024 16:49:59 +0100 Subject: [PATCH 06/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Fixed codestyle --- .../src/main/resources/AnnotationCode/Macros.xml | 2 +- .../src/main/resources/flamingo/commentfield.vm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml index 9c19a7704b7f..cd0b881acdba 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml @@ -357,7 +357,7 @@ #macro(displayAnnotationProperty $annotatedDocument $annotationObject $annotationProperty $mode) #if ($mode == 'edit' || $mode == 'create') ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. - #set( $startupFocus = true) + #set ($startupFocus = true) ## We use displayEdit and not display('edit') because we want the input field name to be just the property name ## (without the "DocumentReference_objectNumber_" prefix). $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject) diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm index a83c2e98989e..ac98be9d8415 100644 --- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm +++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm @@ -73,7 +73,7 @@ #initRequiredSkinExtensions() ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. - #set( $startupFocus = true) + #set ($startupFocus = true) ## display of the comment field $doc.displayEdit($fieldToDisplay, '', $commentObj) From 14dee2db0a85c296f51750feda5109849faec910 Mon Sep 17 00:00:00 2001 From: LucasC Date: Tue, 17 Dec 2024 16:53:01 +0100 Subject: [PATCH 07/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Removed uneeded change --- .../src/main/resources/CKEditor/EditSheet.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml index e30a0bb79f5d..947e27c2f453 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml @@ -69,10 +69,6 @@ 'cols': 80 } }) - #if($focusOnLoad) - #set ($discard = $parameters.attributes.put('focusOnLoad', 'true')) - #set($focusOnLoad = false) - #end #ckeditor($parameters) </div> {{/html}} From 10d327298691d08812a8b37aff4620d188db6861 Mon Sep 17 00:00:00 2001 From: LucasC Date: Mon, 30 Dec 2024 17:24:15 +0100 Subject: [PATCH 08/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Codestyle Co-authored-by: Marius Dumitru Florea --- .../src/main/resources/AnnotationCode/Script.xml | 2 +- .../src/main/resources/CKEditor/EditSheet.xml | 2 +- .../src/main/resources/CKEditor/VelocityMacros.xml | 2 +- .../src/main/resources/flamingo/commentfield.vm | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml index af72030fc4e4..c891c59f1b1b 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Script.xml @@ -1710,7 +1710,7 @@ XWiki.Annotation = Class.create({ if (!this.safeUpdate(this.createPanel, panelContent)) { return; } - // set the focus in the first element of type input, useful when not using the WYSIWYG editor CKEditor. + // Set the focus in the first element of type input, useful when not using the WYSIWYG editor CKEditor. this.createPanel.select('form').first().focusFirstElement(); // and add the button observers this.createPanel.down('input[type=submit]').observe('click', this.onAnnotationAdd.bindAsEventListener(this)); diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml index 996d8a939250..586067eb5e8a 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/EditSheet.xml @@ -185,7 +185,7 @@ define('xwiki-ckeditor', [ var config = { filebrowserUploadUrl: uploadDisabled ? '' : getUploadURL(sourceDocument, 'filebrowser'), - startupFocus: startupFocus, + startupFocus, height: $(element).height(), // Used to resolve and serialize relative references. Also used to make HTTP requests with the right context. sourceDocument: sourceDocument, diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml index c0456f4e296a..88f0427cdf00 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml @@ -175,7 +175,7 @@ #set ($parameters.attributes.data-upload-disabled = 'true') #end ## We use the velocity template context to convey the startupFocus parameter to CKEditor. - #if($startupFocus) + #if ($startupFocus) #set ($parameters.attributes.data-startup-focus = 'true') ## We make sure to clear this context so that it doesn't interfere with CKEditors opened later. #set ($startupFocus = false) diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm index ac98be9d8415..576e72a33b51 100644 --- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm +++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm @@ -72,8 +72,8 @@ #initRequiredSkinExtensions() - ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. - #set ($startupFocus = true) +## This startupFocus parameter is used by the CKEditor WYSIWYG editor. +#set ($startupFocus = true) ## display of the comment field $doc.displayEdit($fieldToDisplay, '', $commentObj) From 359f650d25a978783004bbcaa0ac19b130eb1acd Mon Sep 17 00:00:00 2001 From: LucasC Date: Fri, 3 Jan 2025 11:06:46 +0100 Subject: [PATCH 09/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Renamed the editor config option --- .../src/main/resources/AnnotationCode/Macros.xml | 4 +++- .../src/main/resources/CKEditor/VelocityMacros.xml | 4 ++-- .../src/main/resources/flamingo/commentfield.vm | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml index cd0b881acdba..e6b088042bdc 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml @@ -357,7 +357,9 @@ #macro(displayAnnotationProperty $annotatedDocument $annotationObject $annotationProperty $mode) #if ($mode == 'edit' || $mode == 'create') ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. - #set ($startupFocus = true) + #set ($wysiwygEditorConfig = { + 'startupFocus': true + }) ## We use displayEdit and not display('edit') because we want the input field name to be just the property name ## (without the "DocumentReference_objectNumber_" prefix). $annotatedDocument.displayEdit($annotationProperty, '', $annotationObject) diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml index 88f0427cdf00..78c179b47ed8 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml @@ -175,10 +175,10 @@ #set ($parameters.attributes.data-upload-disabled = 'true') #end ## We use the velocity template context to convey the startupFocus parameter to CKEditor. - #if ($startupFocus) + #if ($wysiwygEditorConfig.startupFocus) #set ($parameters.attributes.data-startup-focus = 'true') ## We make sure to clear this context so that it doesn't interfere with CKEditors opened later. - #set ($startupFocus = false) + #set ($wysiwygEditorConfig.startupFocus = false) #end ## <textarea diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm index 576e72a33b51..69e345ec5ba0 100644 --- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm +++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm @@ -73,7 +73,9 @@ #initRequiredSkinExtensions() ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. -#set ($startupFocus = true) + #set ($wysiwygEditorConfig = { + 'startupFocus': true + }) ## display of the comment field $doc.displayEdit($fieldToDisplay, '', $commentObj) From b7d30080f9aa93bd66663d12dd0c61192c326bce Mon Sep 17 00:00:00 2001 From: LucasC Date: Fri, 3 Jan 2025 11:12:44 +0100 Subject: [PATCH 10/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Codestyle --- .../src/main/resources/AnnotationCode/Macros.xml | 2 +- .../src/main/resources/CKEditor/VelocityMacros.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml index e6b088042bdc..a30e619bcfc9 100644 --- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml +++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Macros.xml @@ -358,7 +358,7 @@ #if ($mode == 'edit' || $mode == 'create') ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. #set ($wysiwygEditorConfig = { - 'startupFocus': true + 'startupFocus': true }) ## We use displayEdit and not display('edit') because we want the input field name to be just the property name ## (without the "DocumentReference_objectNumber_" prefix). diff --git a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml index 78c179b47ed8..74f852e99169 100644 --- a/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml +++ b/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-ui/src/main/resources/CKEditor/VelocityMacros.xml @@ -175,7 +175,7 @@ #set ($parameters.attributes.data-upload-disabled = 'true') #end ## We use the velocity template context to convey the startupFocus parameter to CKEditor. - #if ($wysiwygEditorConfig.startupFocus) + #if ($wysiwygEditorConfig.startupFocus) #set ($parameters.attributes.data-startup-focus = 'true') ## We make sure to clear this context so that it doesn't interfere with CKEditors opened later. #set ($wysiwygEditorConfig.startupFocus = false) From 27ead97f96c7f0baedfe2cd371f711486cbe5ed8 Mon Sep 17 00:00:00 2001 From: LucasC Date: Tue, 14 Jan 2025 18:17:44 +0100 Subject: [PATCH 11/11] XWIKI-17664: When adding an annotation the focus should be inside WYSIWYG by default * Fixed indentation --- .../src/main/resources/flamingo/commentfield.vm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm index 69e345ec5ba0..f00fb01a22b1 100644 --- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm +++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/commentfield.vm @@ -73,9 +73,9 @@ #initRequiredSkinExtensions() ## This startupFocus parameter is used by the CKEditor WYSIWYG editor. - #set ($wysiwygEditorConfig = { - 'startupFocus': true - }) +#set ($wysiwygEditorConfig = { + 'startupFocus': true +}) ## display of the comment field $doc.displayEdit($fieldToDisplay, '', $commentObj)