From 07f39f0c0a3afe0b912a49b98c3e440bf8f11100 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Mon, 2 Sep 2024 14:40:10 +0200
Subject: [PATCH 01/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part A
---
.../src/main/resources/templates/changesdoc.vm | 8 ++------
.../src/main/resources/templates/passwd.vm | 4 ++--
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/changesdoc.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/changesdoc.vm
index a72067369c87..3594381c5843 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/changesdoc.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/changesdoc.vm
@@ -134,13 +134,9 @@
#if ($includes.contains('renderedChanges'))
#set ($htmlDiff = $services.diff.html.unified($origdoc.renderedContent, $newdoc.renderedContent))
#if ($htmlDiff == '')
-
- $escapetool.xml($services.localization.render('web.history.changes.noChanges'))
-
+ #info($escapetool.xml($services.localization.render('web.history.changes.noChanges')))
#elseif ("$!htmlDiff" == '')
-
- $escapetool.xml($services.localization.render('web.history.changes.failedToCompute'))
-
+ #error($escapetool.xml($services.localization.render('web.history.changes.failedToCompute')))
#else
#if (($origdoc.isRestricted() || $newdoc.isRestricted()) && ($services.user.allProperties.type == 'ADVANCED'
|| $stringtool.contains($htmlDiff, 'xwikirenderingerror')))
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm
index f70ac35ce4f0..b90ea884301b 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm
@@ -18,7 +18,7 @@
## 02110-1301 USA, or see the FSF site: http://www.fsf.org.
## ---------------------------------------------------------------------------
###
-### Change a user's password
+### Change a user's password from the user preferences.
###
###
#template("startpage.vm")
@@ -61,7 +61,7 @@
#end
#end
#if($request.xwikipassword && $isValidPassword)
- $services.localization.render('platform.core.profile.passwd.success')
+ #info($services.localization.render('platform.core.profile.passwd.success'))
$services.localization.render('platform.core.profile.passwd.return')
#end
#if(!$isValidPassword)
From d6864472c5b4df13d1e96d864621601df1504ebb Mon Sep 17 00:00:00 2001
From: LucasC
Date: Mon, 2 Sep 2024 17:13:50 +0200
Subject: [PATCH 02/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Velocity macro update
---
.../resources/ApplicationResources.properties | 2 ++
.../src/main/resources/templates/macros.vm | 18 +++++++++++++++---
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-oldcore/src/main/resources/ApplicationResources.properties b/xwiki-platform-core/xwiki-platform-oldcore/src/main/resources/ApplicationResources.properties
index d3b6dfab9587..c3d24539f423 100644
--- a/xwiki-platform-core/xwiki-platform-oldcore/src/main/resources/ApplicationResources.properties
+++ b/xwiki-platform-core/xwiki-platform-oldcore/src/main/resources/ApplicationResources.properties
@@ -417,6 +417,8 @@ Error=Error
error=Error
warning=Warning
Warning=Warning
+info=Information
+success=Success
uploadavatarfile=Upload new user photo
setthisavatar=Set this photo
notauser=This is not a user!
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index 75d1bd8f02ce..950e44e1b66a 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -953,16 +953,28 @@ $html
### message
###
+#macro(genericMessage $text $classAffix $iconName $prettyNameKey)
+
+ $services.icon.renderHTML($iconName)
+ $services.localization.render($prettyNameKey)
+ $text
+
+#end
+
#macro(warning $text)
-$services.localization.render('warning'): $text
+#genericMessage($text 'warning' 'warning' 'warning')
#end
#macro(error $text)
-$services.localization.render('error'): $text
+#genericMessage($text 'error' 'error' 'error')
#end
#macro(info $text)
-$text
+#genericMessage($text 'info' 'info' 'info')
+#end
+
+#macro(success $text)
+#genericMessage($text 'success' 'success' 'success')
#end
#macro(message $text)
From 358f3863ed3f7a5b6829b2fa9b85e0d36032358c Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 3 Sep 2024 13:58:46 +0200
Subject: [PATCH 03/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part B * extensionHistory.vm * extension.vm
* distribution/macros.vm * template/macros.vm * Extensions.xml *
AnnotationCode/Macros.xml
---
.../main/resources/AnnotationCode/Macros.xml | 4 +-
.../src/main/resources/XWiki/Extensions.xml | 56 +++++++++++--------
.../templates/distribution/macros.vm | 4 +-
.../src/main/resources/templates/extension.vm | 14 ++---
.../resources/templates/extensionHistory.vm | 21 ++-----
.../src/main/resources/templates/macros.vm | 2 +-
6 files changed, 49 insertions(+), 52 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..ef93fdf41f8a 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
@@ -119,7 +119,7 @@
#displayAnnotationBoxButtons('edit')
</form>
#else
- <div class="box infomessage">$services.localization.render('annotations.action.edit.error.notfound')</div>
+ #info($services.localization.render('annotations.action.edit.error.notfound'))
#end
</div>
#end
@@ -152,7 +152,7 @@
##<div class="clearfloats"></div>
#displayAnnotationFromReference($ann $mode $docRef)
#else
- <div class="box infomessage">$services.localization.render('annotations.action.view.error.notfound')</div>
+ #info($services.localization.render('annotations.action.view.error.notfound'))
#end
</div>
#end
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
index 7490015b453f..ecdf5c45bb8a 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
@@ -116,13 +116,13 @@
#if ($recommended)
#if (!$extensions.iterator().hasNext())
- <div class="box warningmessage">$services.localization.render('extensions.search.recommended.fallback', ["<em>$!escapetool.xml($request.search)</em>"])</div>
+ #warning($services.localization.render('extensions.search.recommended.fallback', ["<em>$!escapetool.xml($request.search)</em>"]))
## Search again with the recommended filter
#set ($extensions = $repository.search("$!request.search", $paginationParams.firstItem, $paginationParams.itemsPerPage))
#set ($totalHits = $extensions.totalHits)
#set ($recommended = false)
#elseif (!$customExtensionFilter)
- <div class="box infomessage">
+ #macro (infoHeaderContent)
#if ($compatible)
$services.localization.render('extensions.search.compatiblerecommended.disclaimer')
#else
@@ -142,12 +142,13 @@
<input type="submit" value="${escapetool.xml($services.localization.render('extensions.search.all.label'))}" class="btn btn-default"/>
#end
</form>
- </div>
+ #end
+ #info("#infoHeaderContent()")
#end
#end
#if (!$extensions.iterator().hasNext())
- <div class="box infomessage">$services.localization.render($noResultsMessageKey, ["<em>$!escapetool.xml($request.search)</em>"])</div>
+ #info($services.localization.render($noResultsMessageKey, ["<em>$!escapetool.xml($request.search)</em>"]))
#else
#if ($totalHits && $totalHits > $paginationParams.itemsPerPage)
#set ($hasPagination = true)
@@ -165,39 +166,46 @@
#end
#if ($indexed)
+ #macro (formContent)
+ <form action="${xwiki.relativeRequestURL}">
+ #if ($request.section)
+ <input type="hidden" name="section" value="${escapetool.xml($request.section)}" />
+ #end
+ <input type="hidden" name="search" value="$!{escapetool.xml($request.search)}" />
+ <input type="hidden" name="recommended" value="$recommended" />
+ <input type="hidden" name="indexed" value="$indexed" />
+ <input type="hidden" name="compatible" value="$compatible" />
+ #if ($indexJobStatus.state != 'RUNNING')
+ <input type="submit" value="${escapetool.xml($services.localization.render('extensions.search.indexed.reindex'))}" name="index_start" class="btn btn-default"/>
+ #end
+ </form>
+ #end
#set ($indexJobStatus = $repository.getStatus("wiki:${xcontext.database}"))
#if ($indexJobStatus)
- <div class="box infomessage">
#if ($indexJobStatus.state != 'FINISHED')
- $escapetool.xml($services.localization.render('extensions.search.indexed.started', [$xwiki.formatDate($indexJobStatus.startDate)]))
#set ($discard = $xwiki.jsfx.use('uicomponents/job/job.js'))
#set ($jobStatusURL = $doc.getURL('get', $escapetool.url({
'xpage': 'job_status_json',
'outputSyntax': 'plain',
'jobId': $indexJobStatus.request.id
})))
- <div class="xcontent job-status" data-url="$escapetool.xml($jobStatusURL)">
- #displayJobProgressBar($indexJobStatus, true)
- </div>
+ #macro (infoFooterContent)
+ $escapetool.xml($services.localization.render('extensions.search.indexed.started', [$xwiki.formatDate($indexJobStatus.startDate)]))
+ <div class="xcontent job-status" data-url="$escapetool.xml($jobStatusURL)">
+ #displayJobProgressBar($indexJobStatus, true)
+ </div>
+ #end
#else
- $escapetool.xml($services.localization.render('extensions.search.indexed.on', [$xwiki.formatDate($indexJobStatus.startDate)]))
+ #macro (infoFooterContent)
+ $escapetool.xml($services.localization.render('extensions.search.indexed.on', [$xwiki.formatDate($indexJobStatus.startDate)]))
+ #end
#end
+ #info("#infoFooterContent()
+ #formContent()")
#else
- <div class="box warningmessage">$escapetool.xml($services.localization.render('extensions.search.indexed.nojob'))
+ #warning("$escapetool.xml($services.localization.render('extensions.search.indexed.nojob'))
+ #formContent()")
#end
- <form action="${xwiki.relativeRequestURL}">
- #if ($request.section)
- <input type="hidden" name="section" value="${escapetool.xml($request.section)}" />
- #end
- <input type="hidden" name="search" value="$!{escapetool.xml($request.search)}" />
- <input type="hidden" name="recommended" value="$recommended" />
- <input type="hidden" name="indexed" value="$indexed" />
- <input type="hidden" name="compatible" value="$compatible" />
- #if ($indexJobStatus.state != 'RUNNING')
- <input type="submit" value="${escapetool.xml($services.localization.render('extensions.search.indexed.reindex'))}" name="index_start" class="btn btn-default"/>
- #end
- </form>
- </div>
#end
#end
</div>
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/distribution/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/distribution/macros.vm
index 3611685a9ee5..9b234bbfb967 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/distribution/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/distribution/macros.vm
@@ -121,9 +121,9 @@
#if ($request.previousUIId && $request.previousUIVersion && $wiki == $request.wiki)
## We shouldn't get here unless JavaScript is disabled (the form is submitted with AJAX normally).
- $services.localization.render('extensions.advancedSearch.noResults',
+ #info($services.localization.render('extensions.advancedSearch.noResults',
["$!escapetool.xml($request.previousUIId) ",
- "$!escapetool.xml($request.previousUIVersion) "])
+ "$!escapetool.xml($request.previousUIVersion) "]))
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extension.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extension.vm
index e071f0d7fc56..899a6677116f 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extension.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extension.vm
@@ -739,7 +739,7 @@ $namespace##
'installplan': 'extensions.install.error.alreadyInstalled',
'uninstallplan': 'extensions.uninstall.error.notInstalled'
})
- $services.localization.render($emptyPlanMessageKeys.get($plan.jobType))
+ #info($services.localization.render($emptyPlanMessageKeys.get($plan.jobType)))
#else
#foreach($entry in $extensionsByAction.entrySet())
@@ -1118,15 +1118,15 @@ $namespace##
#if ($extension)
#displayExtension($extension, $readOnly)
#else
- $services.localization.render('extensions.advancedSearch.noResults',
+ #info($services.localization.render('extensions.advancedSearch.noResults',
["$!escapetool.xml($request.extensionId) ",
- "$!escapetool.xml($request.extensionVersion) "])
+ "$!escapetool.xml($request.extensionVersion) "]))
## DEBUG START: Check if there is any job status associated with the specified extension.
#getExtensionJobStatus($request.extensionId, $request.extensionVersion $jobStatus)
#if ($jobStatus)
## Normally we shouldn't get here.
- We found an extension job associated with the missing extension:
+ #error("We found an extension job associated with the missing extension:")
#displayExtensionJobStatus($jobStatus)
#end
## DEBUG STOP
@@ -1290,7 +1290,7 @@ $namespace##
## Send error back.
$response.sendError(400, $errorMessage)
#else
- $errorMessage #printThrowable($lastError)
+ #error("$errorMessage #printThrowable($lastError)")
#end
#else
## Redirect to extension display.
@@ -1621,9 +1621,7 @@ $doc.getURL($xcontext.action, $escapetool.url($parameters))##
#end
##
#if ($outdated.isEmpty() && $invalid.isEmpty())
-
- $services.localization.render('platform.extension.updater.noUpdatesAvailable')
-
+ #success($services.localization.render('platform.extension.updater.noUpdatesAvailable'))
#else
#displayExtensionUpdaterPlanActionByNamespace($invalid 'invalid')
#displayExtensionUpdaterPlanActionByNamespace($outdated 'outdated')
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm
index 98945c096e23..7638cf551c54 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm
@@ -120,7 +120,7 @@
#set ($message = $services.localization.render('extension.history.currentJobInfo',
["$jobType ", "$jobId "]))
#end
- $services.icon.renderHTML('info') $message
+ #info($message)
#end
#end
@@ -233,10 +233,7 @@
-
- $services.icon.renderHTML('info')
- $services.localization.render('extension.history.noRecords')
-
+ #info($services.localization.render('extension.history.noRecords'))
@@ -465,10 +462,7 @@
#end
#else
-
- $services.icon.renderHTML('info')
- $services.localization.render('extension.history.replayPlan.empty')
-
+ #info($services.localization.render('extension.history.replayPlan.empty'))
#end
#if ($hasGlobalAdmin && $records && $records.size() > 0)
@@ -491,10 +485,7 @@
#displayExtensionHistoryReplayStatus($replayJobStatus)
#else
$services.localization.render('extension.history.replayStatus.title')
-
- $services.icon.renderHTML('info')
- $services.localization.render('extension.history.replayStatus.notFound', [$replayJobId])
-
+ #info($services.localization.render('extension.history.replayStatus.notFound', [$replayJobId]))
#end
#end
@@ -600,8 +591,8 @@
#template('xwikivars.vm')
#end
#if ($request.extensionId && ($request.extensionVersion || $request.extensionVersionConstraint))
- #handleExtensionRequest
+ #handleExtensionRequest()
#else
- #handleExtensionHistoryRequest
+ #handleExtensionHistoryRequest()
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index 950e44e1b66a..9c30d3e6adca 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -1527,7 +1527,7 @@ $Msz MB##
#livetable_filters($collist $colprops $classname)
- $services.localization.render('platform.livetable.environmentCannotLoadTableMessage')
+ #warning($services.localization.render('platform.livetable.environmentCannotLoadTableMessage'))
From 66d842dc552d4fe23a000cbf5dcd62a0807b86a7 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 3 Sep 2024 16:08:44 +0200
Subject: [PATCH 04/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part C * ExtensionSecurity/Admin.xml *
edit_macros.vm * LiveTableViewSheet.xml * OfficeImporterAdmin.xml *
Annotations/Settings.xml
---
.../main/resources/AnnotationCode/Settings.xml | 4 ++--
.../AppWithinMinutes/LiveTableViewSheet.xml | 10 ++--------
.../XWiki/Extension/Security/Code/Admin.xml | 16 +++++++++-------
.../main/resources/XWiki/OfficeImporterAdmin.xml | 8 +++-----
.../src/main/resources/templates/edit_macros.vm | 12 ++++--------
5 files changed, 20 insertions(+), 30 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Settings.xml b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Settings.xml
index 3860c00c4fe9..1f2c9454db3a 100644
--- a/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Settings.xml
+++ b/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-ui/src/main/resources/AnnotationCode/Settings.xml
@@ -148,10 +148,10 @@
</div>
<div class="clearfloats" />
#else
- <div class="box infomessage">$services.localization.render('annotations.settings.error.wrongsyntax')</div>
+ #info($services.localization.render('annotations.settings.error.wrongsyntax'))
#end
#else
- <div class="box infomessage">$services.localization.render('annotations.settings.error.notarget')</div>
+ #info($services.localization.render('annotations.settings.error.notarget'))
#end
</div>
{{/html}}
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml
index b0fb78ea7f43..1ed986853a89 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml
@@ -183,14 +183,8 @@
#end
#macro (renameAppModalBody)
- <div class="box infomessage">
- $services.icon.renderHTML('info')
- $services.localization.render('appWithinMinutes.renameApp.changeAppTitleInfo')
- </div>
- <div class="box warningmessage">
- $services.icon.renderHTML('warning')
- $services.localization.render('appWithinMinutes.renameApp.regenerateAppCodeWarning')
- </div>
+ #info($services.localization.render('appWithinMinutes.renameApp.changeAppTitleInfo'))
+ #warning($services.localization.render('appWithinMinutes.renameApp.regenerateAppCodeWarning'))
<div class="hidden">
<input type="hidden" name="form_token" value="$!escapetool.xml($services.csrf.token)" />
<input type="hidden" name="oldAppReference" value="$escapetool.xml(
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
index c90dcecd9ee8..def47ae2ebb7 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
@@ -89,7 +89,9 @@
#set ($indexJobStatus = $services.job.getJobStatus(['extension_security']))
#if ($indexJobStatus)
- <div class="box infomessage">
+ ## We use the velocity macro here instead of the XWiki macro, in order to keep HTML in the content
+ ## With the XWiki macro, the progress bar is not properly rendered.
+ #info("
#if ($indexJobStatus.state != 'FINISHED')
$escapetool.xml($services.localization.render('extension.security.indexed.started', [$xwiki.formatDate($indexJobStatus.startDate)]))
#set ($discard = $xwiki.jsfx.use('uicomponents/job/job.js'))
@@ -98,16 +100,16 @@
'outputSyntax': 'plain',
'jobId': $indexJobStatus.request.id
})))
- <div class="xcontent job-status" data-url="$escapetool.xml($jobStatusURL)">
+ <div class=""xcontent job-status"" data-url=""$escapetool.xml($jobStatusURL)"">
#displayJobProgressBar($indexJobStatus, true)
</div>
- #else
- $escapetool.xml($services.localization.render('extension.security.indexed.on', [$xwiki.formatDate($indexJobStatus.startDate)]))
- #end
-</div>
#else
- <div class="box warningmessage">$escapetool.xml($services.localization.render('extension.security.indexed.nojob'))</div>
+ $escapetool.xml($services.localization.render('extension.security.indexed.on', [$xwiki.formatDate($indexJobStatus.startDate)]))
#end
+ ")
+ #else
+ {{warning}}$escapetool.xml($services.localization.render('extension.security.indexed.nojob')){{/warning}}
+ #end
{{/html}}
#end
{{/velocity}}
diff --git a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml
index e0be57986906..6f5edb4e19e9 100644
--- a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml
+++ b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml
@@ -91,10 +91,8 @@
### Info about the place to modify the configuration
###
<p>
- <span class="box infomessage">
- ## TODO: we do not escape this string because we inject some HTML code. We should improve it.
- $services.localization.render('admin.ooserver.options.source', ['<span class="monospace">xwiki.properties</span>'])
- </span>
+ ## TODO: we do not escape this string because we inject some HTML code. We should improve it.
+ #info($services.localization.render('admin.ooserver.options.source', ['<span class="monospace">xwiki.properties</span>']))
</p>
<dl>
###
@@ -150,7 +148,7 @@
#if ("$!homePath" != '')
$escapetool.html($homePath)
#else
- <div class="box errormessage">$escapetool.html($services.localization.render('office.configuration.serverpath.error.notSetNotAutodetected'))</div>
+ {{error}}$escapetool.html($services.localization.render('office.configuration.serverpath.error.notSetNotAutodetected')){{/error}}
#end
</dd>
###
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/edit_macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/edit_macros.vm
index 196b41c5891b..67f712c43082 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/edit_macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/edit_macros.vm
@@ -41,15 +41,11 @@
#set ($discard = $editConfirmation.put('title', $services.localization.render($titleKey)))
#define ($message)
#if ($checkResult.isError())
-
- #set ($messageKey = 'platform.core.editConfirmation.errors')
- $escapetool.xml($services.localization.render($messageKey))
-
+ #set ($messageKey = 'platform.core.editConfirmation.errors')
+ #error($escapetool.xml($services.localization.render($messageKey)))
#else
-
- #set ($messageKey = 'platform.core.editConfirmation.warnings')
- $escapetool.xml($services.localization.render($messageKey))
-
+ #set ($messageKey = 'platform.core.editConfirmation.warnings')
+ #warning($escapetool.xml($services.localization.render($messageKey)))
#end
#if (!$checkResult.errorMessages.isEmpty())
#foreach ($block in $checkResult.errorMessages)
From 049209dae3a50a1c1f078f4e2982df5e8e20f0e1 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 3 Sep 2024 16:49:01 +0200
Subject: [PATCH 05/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * * Velocity macro update
---
.../src/main/resources/templates/macros.vm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index 9c30d3e6adca..b84e4580b49c 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -974,7 +974,7 @@ $html
#end
#macro(success $text)
-#genericMessage($text 'success' 'success' 'success')
+#genericMessage($text 'success' 'check' 'success')
#end
#macro(message $text)
From 82afaa7613ea018e9d77bbe3381e7e610e6152cc Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 4 Sep 2024 17:22:59 +0200
Subject: [PATCH 06/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part D * job_macros.vm * children.vm *
ExtensionBreakingQuestion.form.vm * XClassBreakingQuestion.form.vm
---
.../src/main/resources/templates/children.vm | 4 +--
.../ExtensionBreakingQuestion.form.vm | 22 +++++++++----
.../question/XClassBreakingQuestion.form.vm | 31 ++++++++++++++-----
.../main/resources/templates/job_macros.vm | 11 +++----
4 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/children.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/children.vm
index 130eeebde6a5..ade0f6600fd4 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/children.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/children.vm
@@ -53,9 +53,7 @@
#######################################################
#macro(displayChildren)
#if ($services.parentchild.isParentChildMechanismEnabled())
-
- $services.localization.render('core.children.warningParentChild')
-
+ #warning($services.localization.render('core.children.warningParentChild'))
#end
#if ($doc.documentReference.name != 'WebHome')
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm
index 999089c70152..1e9685702e76 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm
@@ -17,15 +17,16 @@
## Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
## 02110-1301 USA, or see the FSF site: http://www.fsf.org.
## ---------------------------------------------------------------------------
+##!source.syntax=xwiki/2.1
+{{velocity}}
#template('job/question/macros.vm')
-
+{{html clean=false}}
#questionHeader()
-
+{{/html}}
#set ($jobStatus = $job.status)
#set ($question = $jobStatus.question)
-
-
-
$services.icon.renderHTML('warning') $escapetool.xml($services.localization.render("job.question.ExtensionBreakingQuestion.${job.type}.title"))
+#define ($warningMessageContent)
+{{html clean=false}}
$escapetool.xml($services.localization.render("job.question.ExtensionBreakingQuestion.${job.type}.explanation"))
#set ($url = $xwiki.getURL($services.model.createDocumentReference('', 'XWiki', 'XWikiPreferences'), 'admin', 'section=XWiki.Extensions&search=&repo=installed'))
#set ($link = '
')
@@ -42,5 +43,14 @@
#questionButtons($jobStatus)
-
+{{/html}}#end
+
+## We want to use the XWiki macro here because we need its parameters
+{{warning cssClass='deleteWarningExtensions' title='$escapetool.xml($services.localization.render("job.question.ExtensionBreakingQuestion.${job.type}.title"))'}}
+$warningMessageContent
+{{/warning}}
+
+{{html clean=false}}
#questionFooter()
+{{/html}}
+{{/velocity}}
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm
index 53bf7e360303..fae5cae8fec8 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm
@@ -17,15 +17,19 @@
## Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
## 02110-1301 USA, or see the FSF site: http://www.fsf.org.
## ---------------------------------------------------------------------------
+##!source.syntax=xwiki/2.1
+{{velocity}}
#template('job/question/macros.vm')
#set ($jobStatus = $job.status)
#set ($question = $jobStatus.question)
+{{html clean=false}}
#questionHeader()
+{{/html}}
#if ($question.isRefactoringForbidden())
-
-
$services.icon.renderHTML('warning') $escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.forbiddenTitle"))
+#define ($errorMessageContent)
+{{html clean=false}}
$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.forbiddenExplanation"))
@@ -43,10 +47,15 @@
$escapetool.xml($services.localization.render(["job.question.${status.jobType}.cancel", 'job.question.button.cancel']))
-
+{{/html}}#end
+
+## We want to use the XWiki macro here because we need its parameters
+{{error cssClass='deleteWarningXClass' title='$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.forbiddenTitle"))'}}
+ $errorMessageContent
+{{/error}}
#else
-
-
$services.icon.renderHTML('warning') $escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.title"))
+#define ($warningMessageContent)
+{{html clean=false}}
$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.explanation"))
#if ($question.isObjectsPotentiallyHidden())
$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.objectsPotentiallyMissingWarning"))
@@ -62,7 +71,15 @@
#questionButtons($jobStatus)
-
+{{/html}}#end
+
+## We want to use the XWiki macro here because we need its parameters
+{{warning cssClass='deleteWarningXClass' title='$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.title"))'}}
+ $warningMessageContent
+{{/warning}}
#end
-#questionFooter()
\ No newline at end of file
+{{html clean=false}}
+#questionFooter()
+{{/html}}
+{{/velocity}}
\ No newline at end of file
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_macros.vm
index 0aa586c76f69..9649817b607b 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_macros.vm
@@ -113,20 +113,17 @@ $services.template.execute('logging_macros.vm')
#macro (jobFinishedMessage $status $translationPrefix $successKey $errorKey $canceledKey $warningKey)
#if ($status.error)
#set($messageKeys = [$errorKey, "${translationPrefix}.finish.error", "job.status.${status.jobType}.error", 'job.status.error'])
- #set($messageClass = 'errormessage')
+ #error($services.localization.render($messageKeys))
#elseif ($status.canceled)
#set($messageKeys = [$canceledKey, "${translationPrefix}.finish.canceled", "job.status.${status.jobType}.canceled", 'job.status.canceled'])
- #set($messageClass = 'warningmessage')
+ #warning($services.localization.render($messageKeys))
#elseif ($status.logTail.hasLogLevel('error'))
#set($messageKeys = [$warningKey, "${translationPrefix}.finish.warning", "job.status.${status.jobType}.warning", 'job.status.warning'])
- #set($messageClass = 'warningmessage')
+ #warning($services.localization.render($messageKeys))
#else
#set($messageKeys = [$successKey, "${translationPrefix}.finish.success", "job.status.${status.jobType}.success", 'job.status.success'])
- #set($messageClass = 'successmessage')
+ #success($services.localization.render($messageKeys))
#end
-
- $services.localization.render($messageKeys)
-
#end
#macro (displayJobFinishedMessage $status $successKey $errorKey $canceledKey $translationPrefix)
From 66b57613397d6e35ee14110b6475e222a118ddae Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 4 Sep 2024 17:23:39 +0200
Subject: [PATCH 07/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Misc - doubled icon regression
---
.../src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml
index 1ed986853a89..1d6e895f354c 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableViewSheet.xml
@@ -236,7 +236,7 @@
#set ($classFullName = $doc.getValue('class'))
#if ("$!classFullName" == '' || !$xwiki.exists($classFullName))
{{warning}}
- $services.icon.render('warning') {{translation key="platform.appwithinminutes.appHomePageMovedWarning"/}}
+ {{translation key="platform.appwithinminutes.appHomePageMovedWarning"/}}
{{/warning}}
#end
From fd3109fd71cbaad9510e93b6a3f2daf3ba651fd3 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Fri, 6 Sep 2024 14:52:12 +0200
Subject: [PATCH 08/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part E * AttachmentGalleryPickerMacro.java
fails with `You must inject a component role. Got
[org.xwiki.rendering.internal.macro.message.WarningMessageMacro] at L.87`
---
.../pom.xml | 5 +++
.../AttachmentGalleryPickerMacro.java | 39 ++++++++++++------
.../AttachmentGalleryPickerMacroTest.java | 40 ++++++++++++-------
3 files changed, 56 insertions(+), 28 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml
index 3ec37591b4fa..e0a2f6d4bad5 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml
@@ -54,6 +54,11 @@
xwiki-rendering-transformation-macro
${rendering.version}
+
+ org.xwiki.rendering
+ xwiki-rendering-macro-message
+ ${rendering.version}
+
org.xwiki.platform
xwiki-platform-skin-api
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java
index bcf7036ed667..81d795145b87 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java
@@ -33,7 +33,10 @@
import org.xwiki.localization.ContextualLocalizationManager;
import org.xwiki.rendering.block.Block;
import org.xwiki.rendering.block.GroupBlock;
+import org.xwiki.rendering.internal.macro.message.WarningMessageMacro;
import org.xwiki.rendering.macro.AbstractMacro;
+import org.xwiki.rendering.macro.MacroExecutionException;
+import org.xwiki.rendering.macro.box.BoxMacroParameters;
import org.xwiki.rendering.transformation.MacroTransformationContext;
import org.xwiki.skinx.SkinExtension;
@@ -78,6 +81,10 @@ public class AttachmentGalleryPickerMacro extends AbstractMacro execute(AttachmentGalleryPickerMacroParameters parameters, St
if (parameters.getTarget() != null) {
attachmentPickerParameters.put("data-xwiki-attachment-picker-target", parameters.getTarget());
}
-
- return List.of(new GroupBlock(List.of(
- // Search block.
- new GroupBlock(List.of(), Map.of(BLOCK_PARAM_CLASS, "attachmentPickerSearch")),
- // Results block.
- new GroupBlock(Map.of(BLOCK_PARAM_CLASS, "attachmentPickerResults")),
- // No results block.
- new GroupBlock(List.of(this.l10n.getTranslation("attachment.picker.macro.notResult.message").render()),
- Map.of(BLOCK_PARAM_CLASS, "attachmentPickerNoResults hidden box warningmessage")),
- new GroupBlock(
- List.of(this.l10n.getTranslation("attachment.picker.macro.globalSelection.message").render()),
- Map.of(BLOCK_PARAM_CLASS, "attachmentPickerGlobalSelection hidden box warningmessage"))
- ), attachmentPickerParameters));
+ BoxMacroParameters warningParams1 = new BoxMacroParameters();
+ warningParams1.setCssClass("attachmentPickerNoResults hidden");
+ BoxMacroParameters warningParams2 = new BoxMacroParameters();
+ warningParams2.setCssClass("attachmentPickerGlobalSelection hidden");
+ try {
+ return List.of(new GroupBlock(List.of(
+ // Search block.
+ new GroupBlock(List.of(), Map.of(BLOCK_PARAM_CLASS, "attachmentPickerSearch")),
+ // Results block.
+ new GroupBlock(Map.of(BLOCK_PARAM_CLASS, "attachmentPickerResults")),
+ // No results block.
+ new GroupBlock(warningMacro.execute(warningParams1,
+ this.l10n.getTranslationPlain("attachment.picker.macro.notResult.message"), context)),
+ new GroupBlock(warningMacro.execute(warningParams2,
+ this.l10n.getTranslationPlain("attachment.picker.macro.globalSelection.message"), context))
+ ), attachmentPickerParameters));
+ } catch (MacroExecutionException e) {
+ throw new RuntimeException(e);
+ }
}
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java
index c947188dc37a..901306ba6d82 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java
@@ -29,9 +29,11 @@
import org.mockito.Mock;
import org.xwiki.attachment.picker.AttachmentGalleryPickerMacroParameters;
import org.xwiki.localization.ContextualLocalizationManager;
-import org.xwiki.localization.Translation;
import org.xwiki.rendering.block.Block;
import org.xwiki.rendering.block.GroupBlock;
+import org.xwiki.rendering.internal.macro.message.WarningMessageMacro;
+import org.xwiki.rendering.macro.MacroExecutionException;
+import org.xwiki.rendering.macro.box.BoxMacroParameters;
import org.xwiki.rendering.transformation.MacroTransformationContext;
import org.xwiki.skinx.SkinExtension;
import org.xwiki.test.junit5.mockito.ComponentTest;
@@ -40,7 +42,8 @@
import static java.util.Map.entry;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.mock;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -69,6 +72,10 @@ class AttachmentGalleryPickerMacroTest
@Mock
private MacroTransformationContext macroTransformationContext;
+
+ @MockComponent
+ @Named("warning")
+ private WarningMessageMacro warningMacro;
@Mock
private Block translationRenderBlockNoResult;
@@ -79,13 +86,20 @@ class AttachmentGalleryPickerMacroTest
@BeforeEach
void setUp()
{
- Translation translationNoResult = mock(Translation.class);
- Translation translationGlobalSelection = mock(Translation.class);
- when(this.l10n.getTranslation("attachment.picker.macro.notResult.message")).thenReturn(translationNoResult);
- when(this.l10n.getTranslation("attachment.picker.macro.globalSelection.message"))
- .thenReturn(translationGlobalSelection);
- when(translationNoResult.render()).thenReturn(this.translationRenderBlockNoResult);
- when(translationGlobalSelection.render()).thenReturn(this.translationRenderBlockGlobalSelection);
+ String translationRenderNoResult = "noresult";
+ String translationRenderGlobalSelection = "globalselection";
+ when(this.l10n.getTranslationPlain("attachment.picker.macro.notResult.message"))
+ .thenReturn(translationRenderNoResult);
+ when(this.l10n.getTranslationPlain("attachment.picker.macro.globalSelection.message"))
+ .thenReturn(translationRenderGlobalSelection);
+ try {
+ when(warningMacro.execute(any(BoxMacroParameters.class), eq(translationRenderNoResult), any(MacroTransformationContext.class)))
+ .thenReturn(List.of(this.translationRenderBlockNoResult));
+ when(warningMacro.execute(any(BoxMacroParameters.class), eq(translationRenderGlobalSelection), any(MacroTransformationContext.class)))
+ .thenReturn(List.of(this.translationRenderBlockGlobalSelection));
+ } catch (MacroExecutionException e) {
+ throw new RuntimeException(e);
+ }
}
@Test
@@ -97,12 +111,8 @@ void execute()
assertEquals(List.of(new GroupBlock(List.of(
new GroupBlock(List.of(), Map.of("class", "attachmentPickerSearch")),
new GroupBlock(Map.of("class", "attachmentPickerResults")),
- new GroupBlock(List.of(this.translationRenderBlockNoResult),
- Map.of("class", "attachmentPickerNoResults hidden box warningmessage")),
- new GroupBlock(
- List.of(this.translationRenderBlockGlobalSelection),
- Map.of("class", "attachmentPickerGlobalSelection hidden box warningmessage"))
-
+ new GroupBlock(List.of(this.translationRenderBlockNoResult)),
+ new GroupBlock(List.of(this.translationRenderBlockGlobalSelection))
), Map.ofEntries(
entry("id", "my-id"),
entry("class", "attachmentGalleryPicker"),
From c96ff8675a8ab89872ff6f829013421682c4077b Mon Sep 17 00:00:00 2001
From: LucasC
Date: Mon, 16 Sep 2024 15:40:32 +0200
Subject: [PATCH 09/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part E * OfficeImporter.xml *
XObjectDisplayerProvider.java (WIP) * CreateApplication.xml
---
.../AppWithinMinutes/CreateApplication.xml | 8 ++----
.../main/resources/XWiki/OfficeImporter.xml | 19 +++++++------
.../pom.xml | 6 ++++
.../display/XObjectDisplayerProvider.java | 28 ++++++++++++++-----
4 files changed, 40 insertions(+), 21 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/CreateApplication.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/CreateApplication.xml
index 836021546319..7af845d4df12 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/CreateApplication.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/CreateApplication.xml
@@ -140,14 +140,10 @@
</dl>
#set ($appHomeRef = $services.model.resolveDocument('', 'default', $appReference))
#if ($appDescriptor || $xwiki.exists($appHomeRef) || $xwiki.exists($appClassRef))
- <div class="box warningmessage">
- $services.localization.render('platform.appwithinminutes.appNameIsUsedWarning')
- </div>
+ #warning($services.localization.render('platform.appwithinminutes.appNameIsUsedWarning'))
#end
#if (!$services.security.authorization.hasAccess('script', $xcontext.userReference, $appHomeRef))
- <div class="box errormessage">
- $escapetool.xml($services.localization.render('platform.appwithinminutes.appHomePageNoScriptRight'))
- </div>
+ #error($escapetool.xml($services.localization.render('platform.appwithinminutes.appHomePageNoScriptRight')))
#end
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml
index 66d9864395c7..2b25b1f9b7d7 100644
--- a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml
+++ b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml
@@ -148,14 +148,17 @@
#end
#macro (officeImporterForm_overwriteContent)
- <dt class="box warningmessage">
- <label>
- <input name="overwriteContent" type="checkbox" value="true" checked />
- $escapetool.xml($services.localization.render('office.import.overwriteContent'))
- </label>
- <span class="xHint">
- $escapetool.xml($services.localization.render('office.import.overwriteContent.hint'))
- </span>
+ <dt>
+ #define($warningMessageContent)
+ <label>
+ <input name="overwriteContent" type="checkbox" value="true" checked />
+ $escapetool.xml($services.localization.render('office.import.overwriteContent'))
+ </label>
+ <span class="xHint">
+ $escapetool.xml($services.localization.render('office.import.overwriteContent.hint'))
+ </span>
+ #end
+ #warning($warningMessageContent)
</dt>
<dd>
#officeImporterForm_confirmationModal({
diff --git a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
index a3dc5b03e5a4..9f71eea41402 100644
--- a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
@@ -76,5 +76,11 @@
${commons.version}
test
+
+ org.xwiki.rendering
+ xwiki-rendering-macro-message
+ ${rendering.version}
+ compile
+
diff --git a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java
index e6f7cc520c90..ae3638c708b1 100644
--- a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java
+++ b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java
@@ -21,21 +21,21 @@
import java.util.Arrays;
import java.util.List;
-import java.util.Map;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.inject.Provider;
import javax.inject.Singleton;
import org.xwiki.component.annotation.Component;
import org.xwiki.localization.ContextualLocalizationManager;
-import org.xwiki.localization.Translation;
import org.xwiki.rendering.block.Block;
import org.xwiki.rendering.block.CompositeBlock;
import org.xwiki.rendering.block.FormatBlock;
import org.xwiki.rendering.block.GroupBlock;
+import org.xwiki.rendering.internal.macro.message.WarningMessageMacro;
import org.xwiki.rendering.listener.Format;
import com.xpn.xwiki.XWikiContext;
@@ -43,6 +43,9 @@
import com.xpn.xwiki.objects.classes.BaseClass;
import com.xpn.xwiki.objects.classes.PropertyClass;
import com.xpn.xwiki.objects.classes.TextAreaClass;
+import org.xwiki.rendering.macro.MacroExecutionException;
+import org.xwiki.rendering.macro.box.BoxMacroParameters;
+import org.xwiki.rendering.transformation.MacroTransformationContext;
/**
* Provider for a displayer for an XObject.
@@ -59,6 +62,10 @@ public class XObjectDisplayerProvider extends AbstractBlockSupplierProvider get(BaseObject object, Object... parameters)
@@ -85,8 +92,8 @@ public Supplier get(BaseObject object, Object... parameters)
.map(p -> new PropertyDisplay(p.getName(), null, p.getValue().toString(), false))
.collect(Collectors.toList());
- Translation removedPropertiesMessage =
- this.contextualLocalizationManager.getTranslation("core.editors.object.removeDeprecatedProperties.info");
+ String removedPropertiesMessage =
+ this.contextualLocalizationManager.getTranslationPlain("core.editors.object.removeDeprecatedProperties.info",xClass.getPrettyName());
return () -> {
// Display the properties
Block propertiesBlock = renderProperties(propertyNamesHintsValues);
@@ -94,11 +101,18 @@ public Supplier get(BaseObject object, Object... parameters)
// Display deprecated properties
if (!deprecatedPropertyNamesValues.isEmpty()) {
- Block deprecatedPropertiesBlock =
- new GroupBlock(Map.of(CLASS_ATTRIBUTE, "box warningmessage deprecatedProperties"));
+ BoxMacroParameters warningParams = new BoxMacroParameters();
+ warningParams.setCssClass("deprecatedProperties");
+ Block deprecatedPropertiesBlock = null;
+ try {
+ deprecatedPropertiesBlock = new GroupBlock(warningMacro.execute(warningParams,
+ removedPropertiesMessage, new MacroTransformationContext()));
+ } catch (MacroExecutionException e) {
+ throw new RuntimeException(e);
+ }
if (removedPropertiesMessage != null) {
deprecatedPropertiesBlock.addChild(
- new FormatBlock(List.of(removedPropertiesMessage.render(xClass.getPrettyName())), Format.BOLD));
+ new FormatBlock(List.of(), Format.BOLD));
}
deprecatedPropertiesBlock.addChild(renderProperties(deprecatedPropertyNamesValues));
result.addChild(deprecatedPropertiesBlock);
From 72bbd40cbc14aaa810d076a767d7f2f996dfd46b Mon Sep 17 00:00:00 2001
From: LucasC
Date: Mon, 16 Sep 2024 15:41:10 +0200
Subject: [PATCH 10/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Velocity macro update
---
.../src/main/resources/templates/macros.vm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index b84e4580b49c..aabba3c512ef 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -966,7 +966,7 @@ $html
#end
#macro(error $text)
-#genericMessage($text 'error' 'error' 'error')
+#genericMessage($text 'error' 'exclamation' 'error')
#end
#macro(info $text)
From 47b7d7cb9404bb521c73a818a8f4254d8c9e56d8 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 17 Sep 2024 10:14:08 +0200
Subject: [PATCH 11/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part F * ClassEditSheet.xml *
CreateWiki.xml (partially tested) * LiveTableEditSheet.xml * macros.vm *
editobject.vm (WIP)
---
.../AppWithinMinutes/ClassEditSheet.xml | 6 +--
.../AppWithinMinutes/LiveTableEditSheet.xml | 6 +--
.../src/main/resources/flamingo/editobject.vm | 1 +
.../src/main/resources/flamingo/macros.vm | 2 +-
.../main/resources/WikiManager/CreateWiki.xml | 48 +++++++++++--------
5 files changed, 35 insertions(+), 28 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml
index eade57c3b882..caf9bf4db2be 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml
@@ -228,9 +228,7 @@ xcontext.put('propertyCustomDisplayer', new PropertyCustomDisplayer(xcontext))
["#pageLink($sheetReference)"])
</span>
#else
- <span class="warningmessage">
- $services.localization.render('platform.appwithinminutes.classEditorMultipleSheetsWarning')
- </span>
+ #warning($services.localization.render('platform.appwithinminutes.classEditorMultipleSheetsWarning'))
#end
</dd>
<dt>
@@ -705,7 +703,7 @@ xcontext.put('propertyCustomDisplayer', new PropertyCustomDisplayer(xcontext))
#updateAndSaveTranslations
#if ($action == 'save')
#if ($errorMessage)
- <div class="box errormessage">$errorMessage</div>
+ #error($errorMessage)
#elseif ("$!request.wizard" == 'true')
## Redirect to next wizard step.
#set ($className = $stringtool.removeEnd($doc.fullName, 'Class'))
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
index d594b89dbc2c..5c1487fb0e16 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
@@ -337,9 +337,9 @@
#updateAndSaveIcon()
#if ($action == 'save')
#if ($errorMessage)
- {{html clean="false"}}
- <div class="box errormessage">$errorMessage</div>
- {{/html}}
+
+ {{error}}{{html clean="false"}}$errorMessage{{/html}}{/error}}
+
#else
## Redirect to view mode.
$response.sendRedirect($doc.getURL())
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
index 4efda110a452..4e17a0c23218 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
@@ -95,6 +95,7 @@
+ #warning($warningMessageContent)
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/macros.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/macros.vm
index a3072a43e844..c73783d1e959 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/macros.vm
@@ -248,7 +248,7 @@
#livetable_filters($collist $colprops $classname)
- $services.localization.render('platform.livetable.environmentCannotLoadTableMessage')
+ #warning($services.localization.render('platform.livetable.environmentCannotLoadTableMessage'))
diff --git a/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml b/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml
index c33e1af07e43..96d0b00120cd 100644
--- a/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml
+++ b/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml
@@ -562,7 +562,7 @@
#set ($discard = $xwiki.ssfx.use('uicomponents/logging/logging.css', true))
#set ($discard = $xwiki.jsfx.use('uicomponents/logging/logging.js', true))
#set ($status = $services.wiki.creationjob.getJobStatus($request.wikiname))
- {{html}}
+ {{html clean="false"}}
<form class="xform" method="post" action="$doc.getURL()">
<input type="hidden" name="wikiId" id="wikiId" value="$!escapetool.xml($request.wikiname)" />
<input type="hidden" name="csrf" id="csrf" value="$!escapetool.xml($services.csrf.getToken())" />
@@ -583,15 +583,21 @@
</div>
#end
#set($hasErrors = $status.logTail.hasLogLevel('ERROR'))
- <p class="successmessage box #if($status.error || $state != 'FINISHED')hidden#end" id="successMessage">
- $services.localization.render('platform.wiki.create.wizard.step.creation.complete', ["<strong>$escapetool.xml($request.wikiname)</strong>"])
- </p>
- <p class="warningmessage box #if(!$hasErrors || $state != 'FINISHED')hidden#end" id="errorlogMessage">
- $services.localization.render('platform.wiki.create.wizard.step.creation.errorlog', ["<strong>$escapetool.xml($request.wikiname)</strong>"])
- </p>
- <p class="errormessage box #if(!$status.error || $state != 'FINISHED')hidden#end" id="errorMessage">
- $services.localization.render('platform.wiki.create.wizard.step.creation.error', ["<strong>$escapetool.xml($request.wikiname)</strong>"])
- </p>
+ {{/html}}
+
+ {{success cssClass="successMessage #if($status.error || $state != 'FINISHED')hidden#end"}}
+ {{html}}$services.localization.render('platform.wiki.create.wizard.step.creation.complete', ["<strong>$escapetool.xml($request.wikiname)</strong>"]){{/html}}
+ {{/success}}
+
+ {{warning cssClass="errorlogMessage #if(!$hasErrors || $state != 'FINISHED')hidden#end"}}
+ {{html}}$services.localization.render('platform.wiki.create.wizard.step.creation.errorlog', ["<strong>$escapetool.xml($request.wikiname)</strong>"]){{/html}}
+ {{/warning}}
+
+ {{error cssClass="errorMessage #if(!$status.error || $state != 'FINISHED')hidden#end"}}
+ {{html}}$services.localization.render('platform.wiki.create.wizard.step.creation.error', ["<strong>$escapetool.xml($request.wikiname)</strong>"]){{/html}}
+ {{/error}}
+
+ {{html clean="false"}}
</div>
## Log
#template('logging_macros.vm')
@@ -660,18 +666,20 @@
#end
#else
#set($wikiId = $request.wikiId)
- {{html}}
+ {{html clean="false"}}
#wizardHeader($services.localization.render('platform.wiki.create.wizard.step.cleaningUp'))
<div class="wizard-body">
+ {{/html}}
#if($request.deleteOk)
- <p class="successmessage box">
- $services.localization.render('platform.wiki.create.wizard.step.cleaningup.success', ["<strong>$wikiId</strong>"])
- </p>
+ {{success}}
+ {{html}}$services.localization.render('platform.wiki.create.wizard.step.cleaningup.success', ["<strong>$wikiId</strong>"]){{/html}}
+ {{/success}}
#else
- <p class="errormessage box">
- $services.localization.render('platform.wiki.create.wizard.step.cleaningup.error', ["<strong>$wikiId</strong>"])
- </p>
+ {{error}}
+ {{html}}$services.localization.render('platform.wiki.create.wizard.step.cleaningup.error', ["<strong>$wikiId</strong>"]){{/html}}
+ {{/error}}
#end
+ {{html clean="false"}}
</div>
</form>
{{/html}}
@@ -1126,13 +1134,13 @@ XWiki.WikiCreationStatusBar = Class.create({
$('ui-progress').addClassName('hidden');
// We need to know if we have error
if (response.error.length > 0) {
- $('errorMessage').removeClassName('hidden');
+ $('.errorMessage').removeClassName('hidden');
$('cleanUp').removeClassName('hidden');
} else {
// Success
- $('successMessage').removeClassName('hidden');
+ $('.successMessage').removeClassName('hidden');
if (response.hasErrorLog) {
- $('errorlogMessage').removeClassName('hidden');
+ $('.errorlogMessage').removeClassName('hidden');
$('cleanUp').removeClassName('hidden');
}
$('finalize').removeClassName('hidden');
From 3a0b6bcbe1e2f362f279622be9bb86443ec89a24 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 18 Sep 2024 14:10:32 +0200
Subject: [PATCH 12/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part G * job_status_json.vm *
uploadfailure.vm * FilterStreamJobJSON.xml
---
.../src/main/resources/Filter/FilterStreamJobJSON.xml | 8 ++------
.../src/main/resources/templates/job_status_json.vm | 6 ++----
.../src/main/resources/templates/uploadfailure.vm | 2 +-
3 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml
index f885600b8afe..0c65a3c14996 100644
--- a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml
+++ b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml
@@ -43,13 +43,9 @@
#set($finished = $jobStatus.state.name() == 'FINISHED')
#if ($finished)
#if (!$jobStatus.logTail.hasLogLevel('ERROR'))
- <div class="box successmessage">
- Done.
- </div>
+ #success('Done.')
#else
- <div class="box errormessage">
- Error has been found during the conversion !
- </div>
+ #error('Error has been found during the conversion !')
#end
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm
index 0608aa27812d..b6080323fc3d 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm
@@ -24,11 +24,9 @@
#set($jobStatus = $services.job.getJobStatus($jobId))
-#if ($jobStatus)
+#if (!$jobStatus)
#outputJobStatusJSON($jobStatus, $translationPrefix)
#else
$response.setStatus(404)
-
- $services.localization.render("${translationPrefix}.notFound")
-
+ #error($services.localization.render("${translationPrefix}.notFound"))
#end
\ No newline at end of file
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm
index 9a9e61064b41..4e580f8aaeb8 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm
@@ -49,7 +49,7 @@ $response.setStatus(500)##
$services.localization.render('core.action.upload.failure.failedFiles')
#foreach ($file in $failedFiles.entrySet())
- $!{escapetool.xml($file.key)} : $!{escapetool.xml($file.value)}
+ $!{escapetool.xml($file.key)} : #error($!{escapetool.xml($file.value)})
#end
#end
From 3e07ab83414a0649e1facab4998dac5a1e35e7ab Mon Sep 17 00:00:00 2001
From: LucasC
Date: Thu, 19 Sep 2024 10:37:21 +0200
Subject: [PATCH 13/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part H
---
.../src/main/resources/XWiki/AdminUsersSheet.xml | 10 ++++++++--
.../src/main/resources/flamingo/restore.vm | 3 +--
.../src/main/resources/SkinsCode/XWikiSkinsSheet.xml | 4 +---
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml
index 1f6b50f1a328..df817dd56dc3 100644
--- a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml
@@ -244,7 +244,10 @@
#macro (maybeShowDeleteUserWarning $userReference $right)
#countPagesLastModifiedBy($userReference)
#if ($pageCount > 0)
- <div class="box errormessage xform">
+ {{/html}}
+
+ {{error cssClass="xform"}}
+ {{html clean="false"}}
#set ($pageIndexReference = $services.model.createDocumentReference(
$userReference.wikiReference.name, 'Main', 'AllDocs'))
#set ($pageIndexURL = $xwiki.getURL($pageIndexReference) + '#|t=alldocs&doc.author=' +
@@ -273,7 +276,10 @@
[$rightTranslation]))</span>
</dd>
</dl>
- </div>
+ {{/html}}
+ {{/error}}
+
+ {{html clean="false"}}
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/restore.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/restore.vm
index e6ecd268972c..b8cfa4b54477 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/restore.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/restore.vm
@@ -96,8 +96,7 @@
#end
#else
$response.setStatus(404)
-
- $services.localization.render('core.restore.status.notFound')
+ #error($services.localization.render('core.restore.status.notFound'))
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-skin/xwiki-platform-skin-ui/src/main/resources/SkinsCode/XWikiSkinsSheet.xml b/xwiki-platform-core/xwiki-platform-skin/xwiki-platform-skin-ui/src/main/resources/SkinsCode/XWikiSkinsSheet.xml
index b37222669c8c..145535bc98ac 100644
--- a/xwiki-platform-core/xwiki-platform-skin/xwiki-platform-skin-ui/src/main/resources/SkinsCode/XWikiSkinsSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-skin/xwiki-platform-skin-ui/src/main/resources/SkinsCode/XWikiSkinsSheet.xml
@@ -99,9 +99,7 @@
{{html}}
<noscript>
- <div class="box errormessage">
- $escapetool.xml($services.localization.render('skin.sheet.nojs', ['LINK_START', 'LINK_END', 'XWiki.XWikiSkinFileOverrideClass'])).replace('LINK_START', "<a href='$escapetool.xml($doc.getURL('edit', 'editor=object'))'>").replace('LINK_END', '</a>')
- </div>
+ #error($escapetool.xml($services.localization.render('skin.sheet.nojs', ['LINK_START', 'LINK_END', 'XWiki.XWikiSkinFileOverrideClass'])).replace('LINK_START', "<a href='$escapetool.xml($doc.getURL('edit', 'editor=object'))'>").replace('LINK_END', '</a>'))
</noscript>
{{/html}}
From 49c949425a18f0ef05a5983cf3c4e9ecc640b35a Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 9 Oct 2024 12:04:17 +0200
Subject: [PATCH 14/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part H
---
.../main/resources/XWiki/ColorThemePropertyDisplayer.xml | 2 +-
.../src/main/resources/Invitation/InvitationCommon.xml | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml
index b28294577634..20ca5c413324 100644
--- a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml
+++ b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml
@@ -129,7 +129,7 @@
<div class="XWikiColorThemeDisplayer">
#set ($colorThemeExists = $xwiki.exists($services.model.resolveDocument($value)))
#if ("$!value" != '' && !$colorThemeExists)
- <p class="errormessage">$services.localization.render('admin.colorthemes.invalidtheme', $escapetool.xml($value))</p>
+ #error("<p>$services.localization.render('admin.colorthemes.invalidtheme', $escapetool.xml($value))</p>)
#end
#if ($isSubWiki && (!$flamingoThemesFromMainWiki.isEmpty() || !$colibriThemesFromMainWiki.isEmpty()))
diff --git a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
index c25358801da4..8bdcd60a8aa0 100644
--- a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
+++ b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
@@ -119,7 +119,9 @@
## Tell the user that some of the email addresses are invalid.
#if($invalidAddresses && $invalidAddresses.size() > 0)
<p class="invalid-address-message">
- <span class="errormessage">
+ {{/html}}
+ {{error}}
+ {{html clean=false}}
#if($recips.size() == 1)
## The email address given is invalid and will not be sent to.
$escapetool.xml($services.localization.render('xe.invitation.displayMessage.theAddressIsInvalid'))
@@ -130,7 +132,9 @@
$escapetool.xml($services.localization.render('xe.invitation.displayMessage.anAddressesIsInvalid'))
#end
#end
- </span>
+ {{/html}}
+ {{/error}}
+ {{html clean=false}}
</p>
#end
## Subject:
From dae36ae1f362623e0a0ee8eddff9de6329243a25 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 9 Oct 2024 16:41:33 +0200
Subject: [PATCH 15/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part I
---
.../main/resources/templates/attachment/moveStatus.vm | 4 +---
.../Extension/Security/Code/NotificationAlert.xml | 4 +---
.../src/main/resources/XWiki/Extensions.xml | 10 +++++-----
.../src/main/resources/templates/createinline.vm | 7 ++++---
4 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/main/resources/templates/attachment/moveStatus.vm b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/main/resources/templates/attachment/moveStatus.vm
index ffa47d70c2fd..e9167c233f5b 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/main/resources/templates/attachment/moveStatus.vm
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/main/resources/templates/attachment/moveStatus.vm
@@ -67,7 +67,5 @@
#end
#else
$response.setStatus(404)
-
- $escapetool.xml($services.localization.render('attachment.move.status.notFound'))
-
+ #error($escapetool.xml($services.localization.render('attachment.move.status.notFound')))
#end
\ No newline at end of file
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/NotificationAlert.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/NotificationAlert.xml
index fc2cc7cc851e..7d3f40b0639b 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/NotificationAlert.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/NotificationAlert.xml
@@ -307,9 +307,7 @@
#set ($parameters = [$count, $htmlLink])
{{html wiki='false' clean='false'}}
<li>
- <div class='box errormessage'>
- $services.localization.render('extension.security.notification.message', $parameters)
- </div>
+ #error($services.localization.render('extension.security.notification.message', $parameters))
</li>
{{/html}}
#end
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
index ecdf5c45bb8a..83b22b63ded5 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
@@ -122,7 +122,7 @@
#set ($totalHits = $extensions.totalHits)
#set ($recommended = false)
#elseif (!$customExtensionFilter)
- #macro (infoHeaderContent)
+ #define ($infoHeaderContent)
#if ($compatible)
$services.localization.render('extensions.search.compatiblerecommended.disclaimer')
#else
@@ -143,7 +143,7 @@
#end
</form>
#end
- #info("#infoHeaderContent()")
+ #info("$infoHeaderContent")
#end
#end
@@ -189,18 +189,18 @@
'outputSyntax': 'plain',
'jobId': $indexJobStatus.request.id
})))
- #macro (infoFooterContent)
+ #define ($infoFooterContent)
$escapetool.xml($services.localization.render('extensions.search.indexed.started', [$xwiki.formatDate($indexJobStatus.startDate)]))
<div class="xcontent job-status" data-url="$escapetool.xml($jobStatusURL)">
#displayJobProgressBar($indexJobStatus, true)
</div>
#end
#else
- #macro (infoFooterContent)
+ #define ($infoFooterContent)
$escapetool.xml($services.localization.render('extensions.search.indexed.on', [$xwiki.formatDate($indexJobStatus.startDate)]))
#end
#end
- #info("#infoFooterContent()
+ #info("$infoFooterContent
#formContent()")
#else
#warning("$escapetool.xml($services.localization.render('extensions.search.indexed.nojob'))
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/createinline.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/createinline.vm
index 9c743c2d3cc2..4b1c00380ab5 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/createinline.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/createinline.vm
@@ -84,8 +84,8 @@
#set ($disableModalConfirmation = false)
## check if the exception is about the non-allowed spaces for template
#if("$!exception" != '' && $exception.code == 11016)
-
- #set($allowedSpaces = $createAllowedSpaces)
+ #set($allowedSpaces = $createAllowedSpaces)
+ #define ($errorMessageContent)
#if ($allowedSpaces.size() == 1)
$escapetool.xml($services.localization.render('core.create.template.allowedspace.inline', [$templateProvider,
$allowedSpaces.get(0)]))
@@ -93,7 +93,8 @@
$escapetool.xml($services.localization.render('core.create.template.allowedspaces.inline', [$templateProvider,
$allowedSpaces.toString()]))
#end
-
+ #end
+ #error($errorMessageContent)
#set ($disableModalConfirmation = true)
#end
## check if the exception is about the document which already exists
From 3884bded7a37cbdebd9d421a3ae2c7d964a0c0d9 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 13:48:12 +0200
Subject: [PATCH 16/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part J * Added velocity macro to support
the inline mode
---
.../resources/XWiki/ConfigurableClass.xml | 2 +-
.../src/main/resources/flamingo/copy.vm | 4 +--
.../main/resources/flamingo/renameStatus.vm | 4 +--
.../src/main/resources/templates/macros.vm | 28 +++++++++++++++----
.../main/resources/templates/renameStatus.vm | 4 +--
5 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ConfigurableClass.xml b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ConfigurableClass.xml
index 7f60c604f9ac..659a8e77fd0f 100644
--- a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ConfigurableClass.xml
+++ b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ConfigurableClass.xml
@@ -428,7 +428,7 @@ $xwiki.jsfx.use('js/xwiki/actionbuttons/actionButtons.js', true)
$escapetool.xml($sectionDisplayName)
</span>
#if(!$hasAccess)
- <br/><span class="errormessage">$services.localization.render('xe.admin.configurable.sectionIconNoAccess')</span>
+ <br/>#inlineError($services.localization.render('xe.admin.configurable.sectionIconNoAccess'))
#end
</a>
</li>
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/copy.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/copy.vm
index b1db398c8c34..0ce44650c147 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/copy.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/copy.vm
@@ -292,9 +292,7 @@
#end
#else
$response.setStatus(404)
-
- $services.localization.render('core.copy.status.notFound')
-
+ #error($services.localization.render('core.copy.status.notFound'))
#end
#end
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/renameStatus.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/renameStatus.vm
index 6f1bb689fc52..d1ecdd24f77c 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/renameStatus.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/renameStatus.vm
@@ -94,7 +94,5 @@
#end
#else
$response.setStatus(404)
-
- $services.localization.render('core.rename.status.notFound')
-
+ #error($services.localization.render('core.rename.status.notFound'))
#end
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index aabba3c512ef..d822e4de5875 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -953,30 +953,46 @@ $html
### message
###
-#macro(genericMessage $text $classAffix $iconName $prettyNameKey)
-
- $services.icon.renderHTML($iconName)
- $services.localization.render($prettyNameKey)
- $text
-
+#macro(genericMessage $text $classAffix $iconName $prettyNameKey $isInline)
+ <#if($isInline)span#{else}div#end class="box ${classAffix}message">
+ $services.icon.renderHTML($iconName)
+ $services.localization.render($prettyNameKey)
+ $text
+ #if($isInline)span#{else}div#end>
#end
#macro(warning $text)
#genericMessage($text 'warning' 'warning' 'warning')
#end
+#macro(inlineWarning $text)
+#genericMessage($text 'warning' 'warning' 'warning' true)
+#end
+
#macro(error $text)
#genericMessage($text 'error' 'exclamation' 'error')
#end
+#macro(inlineError $text)
+ #genericMessage($text 'error' 'exclamation' 'error' true)
+#end
+
#macro(info $text)
#genericMessage($text 'info' 'info' 'info')
#end
+#macro(inlineInfo $text)
+ #genericMessage($text 'info' 'info' 'info' true)
+#end
+
#macro(success $text)
#genericMessage($text 'success' 'check' 'success')
#end
+#macro(inlineSuccess $text)
+ #genericMessage($text 'success' 'check' 'success' true)
+#end
+
#macro(message $text)
$text
#end
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/renameStatus.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/renameStatus.vm
index 8686b09af05e..638d08f655a1 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/renameStatus.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/renameStatus.vm
@@ -96,7 +96,5 @@
#end
#else
$response.setStatus(404)
-
- $services.localization.render('core.rename.status.notFound')
-
+ #error($services.localization.render('core.rename.status.notFound'))
#end
From 6def82e9c67b961eb3c1b83cd6a5ed04ad32b1b0 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 15:20:04 +0200
Subject: [PATCH 17/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part H - fix
---
.../src/main/resources/XWiki/ColorThemePropertyDisplayer.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml
index 20ca5c413324..c0d66c2af6cc 100644
--- a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml
+++ b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/ColorThemePropertyDisplayer.xml
@@ -129,7 +129,7 @@
<div class="XWikiColorThemeDisplayer">
#set ($colorThemeExists = $xwiki.exists($services.model.resolveDocument($value)))
#if ("$!value" != '' && !$colorThemeExists)
- #error("<p>$services.localization.render('admin.colorthemes.invalidtheme', $escapetool.xml($value))</p>)
+ #error(<p>$services.localization.render('admin.colorthemes.invalidtheme', $escapetool.xml($value))</p>)
#end
#if ($isSubWiki && (!$flamingoThemesFromMainWiki.isEmpty() || !$colibriThemesFromMainWiki.isEmpty()))
From a5f8f97e733afc87ca0b1e08537c3697ec194459 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 15:23:41 +0200
Subject: [PATCH 18/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part F - fix
---
.../src/main/resources/AppWithinMinutes/ClassEditSheet.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml
index caf9bf4db2be..aba665d1fbfe 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/ClassEditSheet.xml
@@ -228,7 +228,7 @@ xcontext.put('propertyCustomDisplayer', new PropertyCustomDisplayer(xcontext))
["#pageLink($sheetReference)"])
</span>
#else
- #warning($services.localization.render('platform.appwithinminutes.classEditorMultipleSheetsWarning'))
+ #inlineWarning($services.localization.render('platform.appwithinminutes.classEditorMultipleSheetsWarning'))
#end
</dd>
<dt>
From 1c7764b9ace41e9bf77d1df2d1b593e2fc39e4ff Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 15:43:23 +0200
Subject: [PATCH 19/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part C - fix
---
.../main/resources/XWiki/Extension/Security/Code/Admin.xml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
index def47ae2ebb7..ade2012d31b8 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
@@ -91,7 +91,7 @@
#if ($indexJobStatus)
## We use the velocity macro here instead of the XWiki macro, in order to keep HTML in the content
## With the XWiki macro, the progress bar is not properly rendered.
- #info("
+ #define ($infoMessageContent)
#if ($indexJobStatus.state != 'FINISHED')
$escapetool.xml($services.localization.render('extension.security.indexed.started', [$xwiki.formatDate($indexJobStatus.startDate)]))
#set ($discard = $xwiki.jsfx.use('uicomponents/job/job.js'))
@@ -100,13 +100,14 @@
'outputSyntax': 'plain',
'jobId': $indexJobStatus.request.id
})))
- <div class=""xcontent job-status"" data-url=""$escapetool.xml($jobStatusURL)"">
+ <div class="xcontent job-status" data-url="$escapetool.xml($jobStatusURL)">
#displayJobProgressBar($indexJobStatus, true)
</div>
#else
$escapetool.xml($services.localization.render('extension.security.indexed.on', [$xwiki.formatDate($indexJobStatus.startDate)]))
#end
- ")
+ #end
+ #info($infoMessageContent)
#else
{{warning}}$escapetool.xml($services.localization.render('extension.security.indexed.nojob')){{/warning}}
#end
From 016dc7afaca12bb94ea43f42124aaac5f0330676 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 15:57:39 +0200
Subject: [PATCH 20/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part B - fix
---
.../src/main/resources/XWiki/Extensions.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
index 83b22b63ded5..5e358dfe79a7 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-ui/src/main/resources/XWiki/Extensions.xml
@@ -166,7 +166,7 @@
#end
#if ($indexed)
- #macro (formContent)
+ #define ($formContent)
<form action="${xwiki.relativeRequestURL}">
#if ($request.section)
<input type="hidden" name="section" value="${escapetool.xml($request.section)}" />
@@ -201,10 +201,10 @@
#end
#end
#info("$infoFooterContent
- #formContent()")
+ $formContent")
#else
#warning("$escapetool.xml($services.localization.render('extensions.search.indexed.nojob'))
- #formContent()")
+ $formContent")
#end
#end
#end
From 422b1c4f761d1b168ac35418dca22858b6d54d84 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 16:21:38 +0200
Subject: [PATCH 21/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part F - fix
---
.../src/main/resources/flamingo/editobject.vm | 26 +++++++++++++++----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
index 4e17a0c23218..e1c8bfbfe878 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
@@ -30,6 +30,21 @@
* Displays a class name without its space prefix. XML-escapes the output.
*#
#macro(cleanClassname $classname)$!{escapetool.xml($classname.substring($classname.indexOf('.')).substring(1))}#end
+
+#*
+ * Displays a warning box, with an extra class. Note that the implementation of this macro should be very close to the
+ * one of the #warning macro defined in the web templates macros.
+ * This is the only place where we use this extraClass feature, so the implementation is contained here.
+ * Note that the exact context this content is rendered in is not fixed, using the XWiki macro
+ * would have ended up in unstable behaviour.
+ *#
+#macro (warningWithExtraClass $text $extraClass)
+
+#end
##
#*
* Display an object
@@ -79,7 +94,7 @@
#set ($deprecatedProperties = $class.getDeprecatedObjectProperties($obj))
#if ($deprecatedProperties.size() > 0)
-
+ #define ($warningMessageContent)
$services.localization.render('core.editors.object.removeDeprecatedProperties.info', [${escapetool.xml($class.name)}])
#foreach ($prop in $deprecatedProperties)
@@ -94,8 +109,8 @@
$services.localization.render('core.editors.object.removeDeprecatedProperties.link')
-
- #warning($warningMessageContent)
+ #end
+ #warningWithExtraClass($warningMessageContent 'deprecatedProperties')
#end
#end
@@ -246,10 +261,11 @@
#if ($mustSync) #break #end
#end
#if ($mustSync)
-
+ #define ($warningMessageContent)
$services.localization.render('core.editors.object.removeDeprecatedProperties.all.info')
-
+ #end
+ #warningWithExtraClass($warningMessageContent 'deprecatedProperties')
#end
#end ## checkPropertyDeprecation
##
From 734ab84691242ff3073226dc960170080d95aeb3 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 16:29:06 +0200
Subject: [PATCH 22/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part E - codestyle
---
.../src/main/resources/XWiki/OfficeImporter.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml
index 2b25b1f9b7d7..8a22ecd4c60c 100644
--- a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml
+++ b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporter.xml
@@ -149,7 +149,7 @@
#macro (officeImporterForm_overwriteContent)
<dt>
- #define($warningMessageContent)
+ #define ($warningMessageContent)
<label>
<input name="overwriteContent" type="checkbox" value="true" checked />
$escapetool.xml($services.localization.render('office.import.overwriteContent'))
From a0e4fdccc3ed1d8b8a344e397ae118180d8431de Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Fri, 11 Oct 2024 16:49:27 +0200
Subject: [PATCH 23/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part C - fix
---
.../src/main/resources/XWiki/OfficeImporterAdmin.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml
index 6f5edb4e19e9..f4c2cfcf93e8 100644
--- a/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml
+++ b/xwiki-platform-core/xwiki-platform-office/xwiki-platform-office-ui/src/main/resources/XWiki/OfficeImporterAdmin.xml
@@ -148,7 +148,7 @@
#if ("$!homePath" != '')
$escapetool.html($homePath)
#else
- {{error}}$escapetool.html($services.localization.render('office.configuration.serverpath.error.notSetNotAutodetected')){{/error}}
+ #error($escapetool.html($services.localization.render('office.configuration.serverpath.error.notSetNotAutodetected')))
#end
</dd>
###
From 6452b5c92c6218e5a4592f2975cc9cb758ad270e Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 15 Oct 2024 14:46:04 +0200
Subject: [PATCH 24/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part A - fix
---
.../src/main/resources/templates/passwd.vm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm
index b90ea884301b..16bf66a2af31 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/passwd.vm
@@ -61,7 +61,7 @@
#end
#end
#if($request.xwikipassword && $isValidPassword)
- #info($services.localization.render('platform.core.profile.passwd.success'))
+ #inlineInfo($services.localization.render('platform.core.profile.passwd.success'))
$services.localization.render('platform.core.profile.passwd.return')
#end
#if(!$isValidPassword)
From 950cbdba0a7f87e32cfddf6dd78279d08d9170a3 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 15 Oct 2024 15:10:32 +0200
Subject: [PATCH 25/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part G - fix
---
.../src/main/resources/templates/job_status_json.vm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm
index b6080323fc3d..72ea3ac43d8f 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job_status_json.vm
@@ -24,7 +24,7 @@
#set($jobStatus = $services.job.getJobStatus($jobId))
-#if (!$jobStatus)
+#if ($jobStatus)
#outputJobStatusJSON($jobStatus, $translationPrefix)
#else
$response.setStatus(404)
From 35814cc95b96b8930559932d63d02e4013eb7ab3 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 15 Oct 2024 15:28:45 +0200
Subject: [PATCH 26/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part G - fix
---
.../src/main/resources/templates/uploadfailure.vm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm
index 4e580f8aaeb8..62015e018cc0 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/uploadfailure.vm
@@ -49,7 +49,7 @@ $response.setStatus(500)##
$services.localization.render('core.action.upload.failure.failedFiles')
#foreach ($file in $failedFiles.entrySet())
- $!{escapetool.xml($file.key)} : #error($!{escapetool.xml($file.value)})
+ $!{escapetool.xml($file.key)} : #inlineError($!{escapetool.xml($file.value)})
#end
#end
From 6fbafbdfc90b4bdf2b027aa2906e81c0db27ae0d Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 15 Oct 2024 15:32:58 +0200
Subject: [PATCH 27/58] Revert "XWIKI-22433: Provide consistency in info /
warning / error class usages in templates"
This reverts commit fd3109fd71cbaad9510e93b6a3f2daf3ba651fd3.
---
.../pom.xml | 5 ---
.../AttachmentGalleryPickerMacro.java | 39 ++++++------------
.../AttachmentGalleryPickerMacroTest.java | 40 +++++++------------
3 files changed, 28 insertions(+), 56 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml
index a074eabb0ee6..a8e998389914 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/pom.xml
@@ -54,11 +54,6 @@
xwiki-rendering-transformation-macro
${rendering.version}
-
- org.xwiki.rendering
- xwiki-rendering-macro-message
- ${rendering.version}
-
org.xwiki.platform
xwiki-platform-skin-api
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java
index 81d795145b87..bcf7036ed667 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/main/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacro.java
@@ -33,10 +33,7 @@
import org.xwiki.localization.ContextualLocalizationManager;
import org.xwiki.rendering.block.Block;
import org.xwiki.rendering.block.GroupBlock;
-import org.xwiki.rendering.internal.macro.message.WarningMessageMacro;
import org.xwiki.rendering.macro.AbstractMacro;
-import org.xwiki.rendering.macro.MacroExecutionException;
-import org.xwiki.rendering.macro.box.BoxMacroParameters;
import org.xwiki.rendering.transformation.MacroTransformationContext;
import org.xwiki.skinx.SkinExtension;
@@ -81,10 +78,6 @@ public class AttachmentGalleryPickerMacro extends AbstractMacro execute(AttachmentGalleryPickerMacroParameters parameters, St
if (parameters.getTarget() != null) {
attachmentPickerParameters.put("data-xwiki-attachment-picker-target", parameters.getTarget());
}
- BoxMacroParameters warningParams1 = new BoxMacroParameters();
- warningParams1.setCssClass("attachmentPickerNoResults hidden");
- BoxMacroParameters warningParams2 = new BoxMacroParameters();
- warningParams2.setCssClass("attachmentPickerGlobalSelection hidden");
- try {
- return List.of(new GroupBlock(List.of(
- // Search block.
- new GroupBlock(List.of(), Map.of(BLOCK_PARAM_CLASS, "attachmentPickerSearch")),
- // Results block.
- new GroupBlock(Map.of(BLOCK_PARAM_CLASS, "attachmentPickerResults")),
- // No results block.
- new GroupBlock(warningMacro.execute(warningParams1,
- this.l10n.getTranslationPlain("attachment.picker.macro.notResult.message"), context)),
- new GroupBlock(warningMacro.execute(warningParams2,
- this.l10n.getTranslationPlain("attachment.picker.macro.globalSelection.message"), context))
- ), attachmentPickerParameters));
- } catch (MacroExecutionException e) {
- throw new RuntimeException(e);
- }
+
+ return List.of(new GroupBlock(List.of(
+ // Search block.
+ new GroupBlock(List.of(), Map.of(BLOCK_PARAM_CLASS, "attachmentPickerSearch")),
+ // Results block.
+ new GroupBlock(Map.of(BLOCK_PARAM_CLASS, "attachmentPickerResults")),
+ // No results block.
+ new GroupBlock(List.of(this.l10n.getTranslation("attachment.picker.macro.notResult.message").render()),
+ Map.of(BLOCK_PARAM_CLASS, "attachmentPickerNoResults hidden box warningmessage")),
+ new GroupBlock(
+ List.of(this.l10n.getTranslation("attachment.picker.macro.globalSelection.message").render()),
+ Map.of(BLOCK_PARAM_CLASS, "attachmentPickerGlobalSelection hidden box warningmessage"))
+ ), attachmentPickerParameters));
}
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java
index 901306ba6d82..c947188dc37a 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-picker/xwiki-platform-attachment-picker-macro/src/test/java/org/xwiki/attachment/picker/internal/AttachmentGalleryPickerMacroTest.java
@@ -29,11 +29,9 @@
import org.mockito.Mock;
import org.xwiki.attachment.picker.AttachmentGalleryPickerMacroParameters;
import org.xwiki.localization.ContextualLocalizationManager;
+import org.xwiki.localization.Translation;
import org.xwiki.rendering.block.Block;
import org.xwiki.rendering.block.GroupBlock;
-import org.xwiki.rendering.internal.macro.message.WarningMessageMacro;
-import org.xwiki.rendering.macro.MacroExecutionException;
-import org.xwiki.rendering.macro.box.BoxMacroParameters;
import org.xwiki.rendering.transformation.MacroTransformationContext;
import org.xwiki.skinx.SkinExtension;
import org.xwiki.test.junit5.mockito.ComponentTest;
@@ -42,8 +40,7 @@
import static java.util.Map.entry;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -72,10 +69,6 @@ class AttachmentGalleryPickerMacroTest
@Mock
private MacroTransformationContext macroTransformationContext;
-
- @MockComponent
- @Named("warning")
- private WarningMessageMacro warningMacro;
@Mock
private Block translationRenderBlockNoResult;
@@ -86,20 +79,13 @@ class AttachmentGalleryPickerMacroTest
@BeforeEach
void setUp()
{
- String translationRenderNoResult = "noresult";
- String translationRenderGlobalSelection = "globalselection";
- when(this.l10n.getTranslationPlain("attachment.picker.macro.notResult.message"))
- .thenReturn(translationRenderNoResult);
- when(this.l10n.getTranslationPlain("attachment.picker.macro.globalSelection.message"))
- .thenReturn(translationRenderGlobalSelection);
- try {
- when(warningMacro.execute(any(BoxMacroParameters.class), eq(translationRenderNoResult), any(MacroTransformationContext.class)))
- .thenReturn(List.of(this.translationRenderBlockNoResult));
- when(warningMacro.execute(any(BoxMacroParameters.class), eq(translationRenderGlobalSelection), any(MacroTransformationContext.class)))
- .thenReturn(List.of(this.translationRenderBlockGlobalSelection));
- } catch (MacroExecutionException e) {
- throw new RuntimeException(e);
- }
+ Translation translationNoResult = mock(Translation.class);
+ Translation translationGlobalSelection = mock(Translation.class);
+ when(this.l10n.getTranslation("attachment.picker.macro.notResult.message")).thenReturn(translationNoResult);
+ when(this.l10n.getTranslation("attachment.picker.macro.globalSelection.message"))
+ .thenReturn(translationGlobalSelection);
+ when(translationNoResult.render()).thenReturn(this.translationRenderBlockNoResult);
+ when(translationGlobalSelection.render()).thenReturn(this.translationRenderBlockGlobalSelection);
}
@Test
@@ -111,8 +97,12 @@ void execute()
assertEquals(List.of(new GroupBlock(List.of(
new GroupBlock(List.of(), Map.of("class", "attachmentPickerSearch")),
new GroupBlock(Map.of("class", "attachmentPickerResults")),
- new GroupBlock(List.of(this.translationRenderBlockNoResult)),
- new GroupBlock(List.of(this.translationRenderBlockGlobalSelection))
+ new GroupBlock(List.of(this.translationRenderBlockNoResult),
+ Map.of("class", "attachmentPickerNoResults hidden box warningmessage")),
+ new GroupBlock(
+ List.of(this.translationRenderBlockGlobalSelection),
+ Map.of("class", "attachmentPickerGlobalSelection hidden box warningmessage"))
+
), Map.ofEntries(
entry("id", "my-id"),
entry("class", "attachmentGalleryPicker"),
From 07dfee67da038bb31ebb8cb925348c11a3db0418 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 15 Oct 2024 15:35:12 +0200
Subject: [PATCH 28/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part E - reverted java changes
---
.../pom.xml | 6 ----
.../display/XObjectDisplayerProvider.java | 28 +++++--------------
2 files changed, 7 insertions(+), 27 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
index 69bf926c4c1c..6c60a6806f02 100644
--- a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
@@ -76,11 +76,5 @@
${commons.version}
test
-
- org.xwiki.rendering
- xwiki-rendering-macro-message
- ${rendering.version}
- compile
-
diff --git a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java
index ae3638c708b1..e6f7cc520c90 100644
--- a/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java
+++ b/xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/display/XObjectDisplayerProvider.java
@@ -21,21 +21,21 @@
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import javax.inject.Inject;
-import javax.inject.Named;
import javax.inject.Provider;
import javax.inject.Singleton;
import org.xwiki.component.annotation.Component;
import org.xwiki.localization.ContextualLocalizationManager;
+import org.xwiki.localization.Translation;
import org.xwiki.rendering.block.Block;
import org.xwiki.rendering.block.CompositeBlock;
import org.xwiki.rendering.block.FormatBlock;
import org.xwiki.rendering.block.GroupBlock;
-import org.xwiki.rendering.internal.macro.message.WarningMessageMacro;
import org.xwiki.rendering.listener.Format;
import com.xpn.xwiki.XWikiContext;
@@ -43,9 +43,6 @@
import com.xpn.xwiki.objects.classes.BaseClass;
import com.xpn.xwiki.objects.classes.PropertyClass;
import com.xpn.xwiki.objects.classes.TextAreaClass;
-import org.xwiki.rendering.macro.MacroExecutionException;
-import org.xwiki.rendering.macro.box.BoxMacroParameters;
-import org.xwiki.rendering.transformation.MacroTransformationContext;
/**
* Provider for a displayer for an XObject.
@@ -62,10 +59,6 @@ public class XObjectDisplayerProvider extends AbstractBlockSupplierProvider get(BaseObject object, Object... parameters)
@@ -92,8 +85,8 @@ public Supplier get(BaseObject object, Object... parameters)
.map(p -> new PropertyDisplay(p.getName(), null, p.getValue().toString(), false))
.collect(Collectors.toList());
- String removedPropertiesMessage =
- this.contextualLocalizationManager.getTranslationPlain("core.editors.object.removeDeprecatedProperties.info",xClass.getPrettyName());
+ Translation removedPropertiesMessage =
+ this.contextualLocalizationManager.getTranslation("core.editors.object.removeDeprecatedProperties.info");
return () -> {
// Display the properties
Block propertiesBlock = renderProperties(propertyNamesHintsValues);
@@ -101,18 +94,11 @@ public Supplier get(BaseObject object, Object... parameters)
// Display deprecated properties
if (!deprecatedPropertyNamesValues.isEmpty()) {
- BoxMacroParameters warningParams = new BoxMacroParameters();
- warningParams.setCssClass("deprecatedProperties");
- Block deprecatedPropertiesBlock = null;
- try {
- deprecatedPropertiesBlock = new GroupBlock(warningMacro.execute(warningParams,
- removedPropertiesMessage, new MacroTransformationContext()));
- } catch (MacroExecutionException e) {
- throw new RuntimeException(e);
- }
+ Block deprecatedPropertiesBlock =
+ new GroupBlock(Map.of(CLASS_ATTRIBUTE, "box warningmessage deprecatedProperties"));
if (removedPropertiesMessage != null) {
deprecatedPropertiesBlock.addChild(
- new FormatBlock(List.of(), Format.BOLD));
+ new FormatBlock(List.of(removedPropertiesMessage.render(xClass.getPrettyName())), Format.BOLD));
}
deprecatedPropertiesBlock.addChild(renderProperties(deprecatedPropertyNamesValues));
result.addChild(deprecatedPropertiesBlock);
From 6b9cce1fbefb87c115ba6647c3ef851314cccf94 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Mon, 2 Dec 2024 17:36:33 +0100
Subject: [PATCH 29/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Updated the velociMacros ** Added comments
on the message boxes macros. ** Set the genericMessage as an internal macro.
---
.../src/main/resources/templates/macros.vm | 28 +++++++++++++------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index d72abd2d6c37..407b5391b13a 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -953,7 +953,9 @@ $html
### message
###
-#macro(genericMessage $text $classAffix $iconName $prettyNameKey $isInline)
+### This velocity macro aims at providing an element similar to a XWiki Macro-Message in places where this XWikiMacro
+### cannot be used.
+#macro(_genericMessage $text $classAffix $iconName $prettyNameKey $isInline)
<#if($isInline)span#{else}div#end class="box ${classAffix}message">
$services.icon.renderHTML($iconName)
$services.localization.render($prettyNameKey)
@@ -961,36 +963,44 @@ $html
#if($isInline)span#{else}div#end>
#end
+## Display a block warning message with the content $text.
#macro(warning $text)
-#genericMessage($text 'warning' 'warning' 'warning')
+#_genericMessage($text 'warning' 'warning' 'warning')
#end
+## Display an inline warning message with the content $text.
#macro(inlineWarning $text)
-#genericMessage($text 'warning' 'warning' 'warning' true)
+#_genericMessage($text 'warning' 'warning' 'warning' true)
#end
+## Display a block error message with the content $text.
#macro(error $text)
-#genericMessage($text 'error' 'exclamation' 'error')
+#_genericMessage($text 'error' 'exclamation' 'error')
#end
+## Display an inline error message with the content $text.
#macro(inlineError $text)
- #genericMessage($text 'error' 'exclamation' 'error' true)
+ #_genericMessage($text 'error' 'exclamation' 'error' true)
#end
+## Display a block info message with the content $text.
#macro(info $text)
-#genericMessage($text 'info' 'info' 'info')
+#_genericMessage($text 'info' 'info' 'info')
#end
+## Display an inline info message with the content $text.
#macro(inlineInfo $text)
- #genericMessage($text 'info' 'info' 'info' true)
+ #_genericMessage($text 'info' 'info' 'info' true)
#end
+## Display a block success message with the content $text.
#macro(success $text)
-#genericMessage($text 'success' 'check' 'success')
+#_genericMessage($text 'success' 'check' 'success')
#end
+## Display an inline success message with the content $text.
#macro(inlineSuccess $text)
- #genericMessage($text 'success' 'check' 'success' true)
+ #_genericMessage($text 'success' 'check' 'success' true)
#end
#macro(message $text)
From 87fe4a4a9033dff7331aaa62f22753f75cdf524f Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 3 Dec 2024 11:33:40 +0100
Subject: [PATCH 30/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Added a reference to the newly created
issue for translations
---
.../src/main/resources/Filter/FilterStreamJobJSON.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml
index 0c65a3c14996..9e09cd5ab1a0 100644
--- a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml
+++ b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-ui/src/main/resources/Filter/FilterStreamJobJSON.xml
@@ -43,6 +43,8 @@
#set($finished = $jobStatus.state.name() == 'FINISHED')
#if ($finished)
#if (!$jobStatus.logTail.hasLogLevel('ERROR'))
+ ## Remove when the following issue is resolved:
+ ## TODO XWIKI-22710: Add translations for FilterStreamJobJSON
#success('Done.')
#else
#error('Error has been found during the conversion !')
From f75a44cf02b6545d672d8ceab0751fe0656d96bf Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Tue, 3 Dec 2024 11:40:58 +0100
Subject: [PATCH 31/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Set the warningWithExtraClass velocimacro
as internal.
---
.../src/main/resources/flamingo/editobject.vm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
index e1c8bfbfe878..943af8cf8977 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
@@ -38,7 +38,7 @@
* Note that the exact context this content is rendered in is not fixed, using the XWiki macro
* would have ended up in unstable behaviour.
*#
-#macro (warningWithExtraClass $text $extraClass)
+#macro (_warningWithExtraClass $text $extraClass)
#questionButtons($jobStatus)
-{{/html}}#end
+#end
## We want to use the XWiki macro here because we need its parameters
-{{warning cssClass='deleteWarningExtensions' title='$escapetool.xml($services.localization.render("job.question.ExtensionBreakingQuestion.${job.type}.title"))'}}
-$warningMessageContent
-{{/warning}}
+#_genericMessage("$warningMessageContent", 'warning', 'warning', 'warning', false, 'deleteWarningExtensions', $escapetool.xml($services.localization.render("job.question.ExtensionBreakingQuestion.${job.type}.title")))
-{{html clean=false}}
#questionFooter()
-{{/html}}
-{{/velocity}}
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index 82a697cefc67..7e757e7abb66 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -955,11 +955,13 @@ $html
### This velocity macro aims at providing an element similar to a XWiki Macro-Message in places where this XWikiMacro
### cannot be used.
-#macro(_genericMessage $text $classAffix $iconName $prettyNameKey $isInline)
- <#if($isInline)span#{else}div#end class="box ${classAffix}message">
+#macro(_genericMessage $text $classAffix $iconName $prettyNameKey $isInline $extraClass $title)
+ <#if($isInline)span#{else}div#end class="box ${classAffix}message $!{extraClass}">
$services.icon.renderHTML($iconName)
$services.localization.render($prettyNameKey)
+ #if("$!title" != "")$!title
#end
$text
+ #if("$!title" != "")
#end
#if($isInline)span#{else}div#end>
#end
From 20b86efed16cab5a8fe3fc1f7df64aace070a8e4 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Mon, 9 Dec 2024 16:19:41 +0100
Subject: [PATCH 36/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Part D * Reverted the change of syntax for
XClassBreakingQuestion.form.vm
---
.../ExtensionBreakingQuestion.form.vm | 1 -
.../question/XClassBreakingQuestion.form.vm | 26 +++----------------
2 files changed, 4 insertions(+), 23 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm
index 8c2087ca21da..5a1cf83354e7 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/ExtensionBreakingQuestion.form.vm
@@ -40,7 +40,6 @@
#questionButtons($jobStatus)
#end
-## We want to use the XWiki macro here because we need its parameters
#_genericMessage("$warningMessageContent", 'warning', 'warning', 'warning', false, 'deleteWarningExtensions', $escapetool.xml($services.localization.render("job.question.ExtensionBreakingQuestion.${job.type}.title")))
#questionFooter()
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm
index fae5cae8fec8..7f1ea4e42071 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/job/question/XClassBreakingQuestion.form.vm
@@ -17,19 +17,14 @@
## Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
## 02110-1301 USA, or see the FSF site: http://www.fsf.org.
## ---------------------------------------------------------------------------
-##!source.syntax=xwiki/2.1
-{{velocity}}
#template('job/question/macros.vm')
#set ($jobStatus = $job.status)
#set ($question = $jobStatus.question)
-{{html clean=false}}
#questionHeader()
-{{/html}}
#if ($question.isRefactoringForbidden())
#define ($errorMessageContent)
-{{html clean=false}}
$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.forbiddenExplanation"))
@@ -47,15 +42,10 @@
$escapetool.xml($services.localization.render(["job.question.${status.jobType}.cancel", 'job.question.button.cancel']))
-{{/html}}#end
-
-## We want to use the XWiki macro here because we need its parameters
-{{error cssClass='deleteWarningXClass' title='$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.forbiddenTitle"))'}}
- $errorMessageContent
-{{/error}}
+#end
+#_genericMessage("$errorMessageContent", 'error', 'exclamation', 'error', false, 'deleteWarningXClass', $escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.forbiddenTitle")))
#else
#define ($warningMessageContent)
-{{html clean=false}}
$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.explanation"))
#if ($question.isObjectsPotentiallyHidden())
$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.objectsPotentiallyMissingWarning"))
@@ -71,15 +61,7 @@
#questionButtons($jobStatus)
-{{/html}}#end
-
-## We want to use the XWiki macro here because we need its parameters
-{{warning cssClass='deleteWarningXClass' title='$escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.title"))'}}
- $warningMessageContent
-{{/warning}}
#end
-
-{{html clean=false}}
+#_genericMessage("$warningMessageContent", 'warning', 'warning', 'warning', false, 'deleteWarningXClass', $escapetool.xml($services.localization.render("job.question.XClassBreakingQuestion.${job.type}.title")))
+#end
#questionFooter()
-{{/html}}
-{{/velocity}}
\ No newline at end of file
From c1313564ff81e8c88729c5432250e087e47c7001 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Mon, 9 Dec 2024 16:21:37 +0100
Subject: [PATCH 37/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed changes unrelated to the ticket for
this PR.
---
.../src/main/resources/templates/extensionHistory.vm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm
index 7638cf551c54..279dcb6a2a68 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/extensionHistory.vm
@@ -591,8 +591,8 @@
#template('xwikivars.vm')
#end
#if ($request.extensionId && ($request.extensionVersion || $request.extensionVersionConstraint))
- #handleExtensionRequest()
+ #handleExtensionRequest
#else
- #handleExtensionHistoryRequest()
+ #handleExtensionHistoryRequest
#end
#end
From 7a3e02c4510f428bf110d9c1984efe6815dad281 Mon Sep 17 00:00:00 2001
From: Sereza7
Date: Mon, 9 Dec 2024 16:49:01 +0100
Subject: [PATCH 38/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed incorrect HTML context in the content
of the error macro.
---
.../src/main/resources/Invitation/InvitationCommon.xml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
index 8bdcd60a8aa0..da9d88bebd35 100644
--- a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
+++ b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
@@ -121,7 +121,6 @@
<p class="invalid-address-message">
{{/html}}
{{error}}
- {{html clean=false}}
#if($recips.size() == 1)
## The email address given is invalid and will not be sent to.
$escapetool.xml($services.localization.render('xe.invitation.displayMessage.theAddressIsInvalid'))
@@ -132,9 +131,8 @@
$escapetool.xml($services.localization.render('xe.invitation.displayMessage.anAddressesIsInvalid'))
#end
#end
- {{/html}}
{{/error}}
- {{html clean=false}}
+ {{html wiki=false clean=false}}
</p>
#end
## Subject:
From f676d11e8c8276ecbde90cdfb3f6e8de494a9edd Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 5 Feb 2025 10:33:45 +0100
Subject: [PATCH 39/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Added back HTML cleaning on
AdminUsersSheet.xml
---
.../src/main/resources/XWiki/AdminUsersSheet.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml
index df817dd56dc3..866c419a7c6c 100644
--- a/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-ui/src/main/resources/XWiki/AdminUsersSheet.xml
@@ -247,7 +247,7 @@
{{/html}}
{{error cssClass="xform"}}
- {{html clean="false"}}
+ {{html}}
#set ($pageIndexReference = $services.model.createDocumentReference(
$userReference.wikiReference.name, 'Main', 'AllDocs'))
#set ($pageIndexURL = $xwiki.getURL($pageIndexReference) + '#|t=alldocs&doc.author=' +
From 77a3aab590ceda51bee5c365a736ed1416779765 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Wed, 5 Feb 2025 14:22:30 +0100
Subject: [PATCH 40/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed some page tests.
---
.../test/java/org/xwiki/attachment/MovePageTest.java | 10 +++++-----
.../java/org/xwiki/attachment/MoveStatusPagesTest.java | 3 ++-
.../test/java/org/xwiki/web/CreateInlinePageTest.java | 6 ++++--
.../test/java/org/xwiki/web/EditMacrosPageTest.java | 10 ++++++----
4 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
index eff9247d12a2..9d833aa593f7 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
@@ -31,7 +31,7 @@
import org.xwiki.attachment.internal.configuration.DefaultAttachmentConfiguration;
import org.xwiki.attachment.script.AttachmentScriptService;
import org.xwiki.csrf.script.CSRFTokenScriptService;
-import org.xwiki.icon.IconManagerScriptServiceComponentList;
+import org.xwiki.icon.IconManagerScriptService;
import org.xwiki.job.JobExecutor;
import org.xwiki.model.internal.reference.converter.EntityReferenceConverter;
import org.xwiki.model.reference.DocumentReference;
@@ -60,7 +60,6 @@
* @since 14.0RC1
*/
@SecurityScriptServiceComponentList
-@IconManagerScriptServiceComponentList
@ComponentList({
ModelScriptService.class,
AttachmentScriptService.class,
@@ -153,7 +152,7 @@ void submitMoveTargetEditNotAllowed() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("error: attachment.move.targetNotWritable",
+ assertEquals("$services.icon.renderHTML($iconName) error attachment.move.targetNotWritable",
render.getElementsByClass("errormessage").get(0).text());
}
@@ -164,7 +163,8 @@ void submitTargetAttachmentNameEmpty() throws Exception
this.request.put("step", "2");
this.request.put("form_token", "a6DSv7pKWcPargoTvyx2Ww");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("error: attachment.move.emptyName", render.select(".errormessage").text());
+ assertEquals("$services.icon.renderHTML($iconName) error attachment.move.emptyName",
+ render.select(".errormessage").text());
}
@Test
@@ -194,7 +194,7 @@ void submitMoveTargetAlreadyExists() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("error: attachment.move.alreadyExists "
+ assertEquals("$services.icon.renderHTML($iconName) error attachment.move.alreadyExists "
+ "[attachment.txt, Space.Target\"', /xwiki/bin/view/Space/Target%22%27]",
render.getElementsByClass("errormessage").get(0).text());
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
index c7bfa5c1d854..fc7565a94e0d 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
@@ -85,7 +85,8 @@ void renderScriptStatusUnknown() throws Exception
{
this.request.put("moveId", "42");
Document render = Jsoup.parse(this.templateManager.render(MOVE_STATUS_TEMPLATE));
- assertEquals("attachment.move.status.notFound", render.select(".errormessage").text());
+ assertEquals("$services.icon.renderHTML($iconName) error "
+ + "attachment.move.status.notFound", render.select(".errormessage").text());
verify(this.jobScriptService).getJobStatus(List.of("refactoring", "moveAttachment", "42"));
}
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
index 6f8aaa215d5c..826142d0b6f5 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
@@ -159,10 +159,12 @@ void templateProviderRestrictionErrorEscaping(List allowedSpaces) throws
String expectedMessage;
if (allowedSpaces.size() == 1) {
- expectedMessage = String.format("core.create.template.allowedspace.inline [%s, %s]",
+ expectedMessage = String.format("$services.icon.renderHTML($iconName) error "
+ + "core.create.template.allowedspace.inline [%s, %s]",
provider, allowedSpaces.get(0));
} else {
- expectedMessage = String.format("core.create.template.allowedspaces.inline [%s, %s]",
+ expectedMessage = String.format("$services.icon.renderHTML($iconName) error "
+ + "core.create.template.allowedspaces.inline [%s, %s]",
provider, allowedSpaces);
}
assertEquals(expectedMessage, errormessage.text());
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
index ea7927a8acf6..7db7c27d48e0 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
@@ -85,7 +85,7 @@ class EditMacrosPageTest extends PageTest
private HttpSession httpSession;
@BeforeEach
- void setUp()
+ void setUp() throws Exception
{
this.request.setSession(this.httpSession);
}
@@ -126,7 +126,8 @@ void oneWarningCheck() throws Exception
Map editConfirmation = (Map) scriptContext.getAttribute("editConfirmation");
assertEquals("warning", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
- assertEquals("platform.core.editConfirmation.warnings", message.selectFirst(".warningmessage").text());
+ assertEquals("$services.icon.renderHTML($iconName) warning "
+ + "platform.core.editConfirmation.warnings", message.selectFirst(".warningmessage").text());
assertEquals("Warning", message.selectFirst("#warning1").text());
assertEquals("cancel", editConfirmation.get("reject"));
assertEquals("forcelock", editConfirmation.get("confirm"));
@@ -160,7 +161,8 @@ void twoWarningsTwoErrorsCheck() throws Exception
assertEquals("error", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
// This test is not to test the structure, but to verify the order in which the text are displayed.
- assertEquals("platform.core.editConfirmation.errors Error 1 Error 2 platform.core.editConfirmation"
+ assertEquals("$services.icon.renderHTML($iconName) error "
+ + "platform.core.editConfirmation.errors Error 1 Error 2 platform.core.editConfirmation"
+ ".additionalWarnings Warning 1 Warning 2", message.text());
assertEquals("cancel", editConfirmation.get("reject"));
assertNull(editConfirmation.get("confirm"));
@@ -216,7 +218,7 @@ void oneErrorEditForced() throws Exception
Map editConfirmation = (Map) scriptContext.getAttribute("editConfirmation");
assertEquals("error", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
- assertEquals("platform.core.editConfirmation.errors", message.selectFirst(".errormessage").text());
+ assertEquals("$services.icon.renderHTML($iconName) error platform.core.editConfirmation.errors", message.selectFirst(".errormessage").text());
assertEquals("Error", message.selectFirst("#error1").text());
assertEquals("cancel", editConfirmation.get("reject"));
assertNull(editConfirmation.get("confirm"));
From 87e33d567ededf07f6db19718daf02f7203190f3 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Thu, 6 Feb 2025 14:20:49 +0100
Subject: [PATCH 41/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed flamingo skin docker tests.
---
.../src/main/resources/flamingo/editobject.vm | 4 ++--
.../main/java/org/xwiki/test/ui/po/diff/RenderedChanges.java | 3 ++-
2 files changed, 4 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/editobject.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
index 943af8cf8977..155f5be6356b 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
@@ -110,7 +110,7 @@
#end
- #warningWithExtraClass($warningMessageContent 'deprecatedProperties')
+ #_warningWithExtraClass($warningMessageContent 'deprecatedProperties')
#end
#end
@@ -265,7 +265,7 @@
$services.localization.render('core.editors.object.removeDeprecatedProperties.all.info')
#end
- #warningWithExtraClass($warningMessageContent 'deprecatedProperties')
+ #_warningWithExtraClass($warningMessageContent 'deprecatedProperties')
#end
#end ## checkPropertyDeprecation
##
diff --git a/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-ui/src/main/java/org/xwiki/test/ui/po/diff/RenderedChanges.java b/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-ui/src/main/java/org/xwiki/test/ui/po/diff/RenderedChanges.java
index ef026898c196..acb66c61d5de 100644
--- a/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-ui/src/main/java/org/xwiki/test/ui/po/diff/RenderedChanges.java
+++ b/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-ui/src/main/java/org/xwiki/test/ui/po/diff/RenderedChanges.java
@@ -51,7 +51,8 @@ public RenderedChanges(WebElement container)
public boolean hasNoChanges()
{
return !getDriver().findElementsWithoutWaiting(this.container,
- By.xpath("//div[@class = 'infomessage' and contains(text(), 'No changes')]")).isEmpty()
+ By.xpath("//div[contains(@class, 'infomessage')]"
+ + "/descendant-or-self::*[contains(text(),'No changes')]")).isEmpty()
&& getChangedBlocks().isEmpty();
}
From 58940572b7e5fca5e2fbcaf25031e81f9fd59c75 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Mon, 24 Feb 2025 17:19:57 +0100
Subject: [PATCH 42/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Properly mocked the icon script service
---
.../org/xwiki/attachment/MovePageTest.java | 26 +++++++++++++------
.../xwiki/attachment/MoveStatusPagesTest.java | 12 ++++++++-
.../org/xwiki/web/CreateInlinePageTest.java | 17 ++++++++++--
.../org/xwiki/web/EditMacrosPageTest.java | 18 ++++++++++---
4 files changed, 58 insertions(+), 15 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
index 9d833aa593f7..a83c5b1b1e1b 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
@@ -21,6 +21,8 @@
import java.nio.charset.Charset;
+import javax.inject.Named;
+
import org.apache.commons.io.IOUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
@@ -32,6 +34,7 @@
import org.xwiki.attachment.script.AttachmentScriptService;
import org.xwiki.csrf.script.CSRFTokenScriptService;
import org.xwiki.icon.IconManagerScriptService;
+import org.xwiki.icon.internal.DefaultIconRenderer;
import org.xwiki.job.JobExecutor;
import org.xwiki.model.internal.reference.converter.EntityReferenceConverter;
import org.xwiki.model.reference.DocumentReference;
@@ -45,6 +48,7 @@
import org.xwiki.test.annotation.ComponentList;
import org.xwiki.test.page.IconSetup;
import org.xwiki.test.page.PageTest;
+import org.xwiki.test.junit5.mockito.MockComponent;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.internal.model.reference.DocumentReferenceConverter;
@@ -79,8 +83,13 @@ class MovePageTest extends PageTest
private TemplateManager templateManager;
- @Mock
- private CSRFTokenScriptService csrfScriptService;
+ @MockComponent(classToMock = CSRFTokenScriptService.class)
+ @Named("csrf")
+ private ScriptService csrfScriptService;
+
+ @MockComponent(classToMock = IconManagerScriptService.class)
+ @Named("icon")
+ private ScriptService iconManagerScriptService;
private ContextualAuthorizationManager contextualAuthorizationManager;
@@ -90,10 +99,11 @@ void setUp() throws Exception
this.templateManager = this.oldcore.getMocker().getInstance(TemplateManager.class);
// Initializes then environment for the icon extension.
IconSetup.setUp(this, "/icons/default.iconset");
- this.componentManager.registerComponent(ScriptService.class, "csrf", this.csrfScriptService);
this.componentManager.registerMockComponent(JobExecutor.class);
- when(this.csrfScriptService.isTokenValid(any(String.class))).thenReturn(true);
+ when(((CSRFTokenScriptService)this.csrfScriptService).isTokenValid(any(String.class))).thenReturn(true);
this.contextualAuthorizationManager = this.componentManager.getInstance(ContextualAuthorizationManager.class);
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ .thenReturn("errorIcon");
}
@Test
@@ -121,7 +131,7 @@ void move() throws Exception
this.context.setDoc(document);
this.request.put("attachment", ATTACHMENT_NAME);
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("Space Page attachment.txt", render.getElementsByClass("breadcrumb").get(0).text());
+ assertEquals("errorIcon Space Page attachment.txt", render.getElementsByClass("breadcrumb").get(0).text());
assertEquals(ATTACHMENT_NAME, render.getElementById("targetAttachmentNameTitle").val());
assertEquals("xwiki:Space.Page", render.getElementsByAttributeValue("name", "sourceLocation").val());
assertEquals(ATTACHMENT_NAME, render.getElementsByAttributeValue("name", "sourceAttachmentName").val());
@@ -152,7 +162,7 @@ void submitMoveTargetEditNotAllowed() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("$services.icon.renderHTML($iconName) error attachment.move.targetNotWritable",
+ assertEquals("errorIcon error attachment.move.targetNotWritable",
render.getElementsByClass("errormessage").get(0).text());
}
@@ -163,7 +173,7 @@ void submitTargetAttachmentNameEmpty() throws Exception
this.request.put("step", "2");
this.request.put("form_token", "a6DSv7pKWcPargoTvyx2Ww");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("$services.icon.renderHTML($iconName) error attachment.move.emptyName",
+ assertEquals("errorIcon error attachment.move.emptyName",
render.select(".errormessage").text());
}
@@ -194,7 +204,7 @@ void submitMoveTargetAlreadyExists() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("$services.icon.renderHTML($iconName) error attachment.move.alreadyExists "
+ assertEquals("errorIcon error attachment.move.alreadyExists "
+ "[attachment.txt, Space.Target\"', /xwiki/bin/view/Space/Target%22%27]",
render.getElementsByClass("errormessage").get(0).text());
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
index fc7565a94e0d..895ee1405a5e 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
@@ -22,6 +22,8 @@
import java.util.List;
import java.util.Map;
+import javax.inject.Named;
+
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
@@ -29,6 +31,7 @@
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.xwiki.attachment.refactoring.MoveAttachmentRequest;
+import org.xwiki.icon.IconManagerScriptService;
import org.xwiki.job.Request;
import org.xwiki.job.event.status.JobProgress;
import org.xwiki.job.event.status.JobStatus;
@@ -40,6 +43,7 @@
import org.xwiki.template.TemplateManager;
import org.xwiki.template.script.TemplateScriptService;
import org.xwiki.test.annotation.ComponentList;
+import org.xwiki.test.junit5.mockito.MockComponent;
import org.xwiki.test.page.HTML50ComponentList;
import org.xwiki.test.page.PageTest;
import org.xwiki.test.page.XWikiSyntax21ComponentList;
@@ -73,11 +77,17 @@ class MoveStatusPagesTest extends PageTest
@Mock
private JobScriptService jobScriptService;
+ @MockComponent(classToMock = IconManagerScriptService.class)
+ @Named("icon")
+ private ScriptService iconManagerScriptService;
+
@BeforeEach
void setUp() throws Exception
{
this.templateManager = this.oldcore.getMocker().getInstance(TemplateManager.class);
this.componentManager.registerComponent(ScriptService.class, "job", this.jobScriptService);
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ .thenReturn("errorIcon");
}
@Test
@@ -85,7 +95,7 @@ void renderScriptStatusUnknown() throws Exception
{
this.request.put("moveId", "42");
Document render = Jsoup.parse(this.templateManager.render(MOVE_STATUS_TEMPLATE));
- assertEquals("$services.icon.renderHTML($iconName) error "
+ assertEquals("errorIcon error "
+ "attachment.move.status.notFound", render.select(".errormessage").text());
verify(this.jobScriptService).getJobStatus(List.of("refactoring", "moveAttachment", "42"));
}
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
index 826142d0b6f5..8324e0d46a9d 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
@@ -23,6 +23,7 @@
import java.util.stream.Stream;
import javax.inject.Inject;
+import javax.inject.Named;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
@@ -31,8 +32,11 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
+import org.xwiki.icon.IconManagerScriptService;
import org.xwiki.model.reference.DocumentReference;
+import org.xwiki.script.service.ScriptService;
import org.xwiki.template.TemplateManager;
+import org.xwiki.test.junit5.mockito.MockComponent;
import org.xwiki.test.page.PageTest;
import org.xwiki.velocity.VelocityManager;
@@ -41,6 +45,8 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
/**
* Tests the {@code createinline.vm} template.
@@ -61,6 +67,10 @@ class CreateInlinePageTest extends PageTest
private static final String CREATE_EXCEPTION_VELOCITY_KEY = "createException";
private static final String ERROR_MESSAGE_CLASS = "errormessage";
+
+ @MockComponent(classToMock = IconManagerScriptService.class)
+ @Named("icon")
+ private ScriptService iconManagerScriptService;
@Inject
private VelocityManager velocityManager;
@@ -76,6 +86,9 @@ void setup()
// Set a context document to avoid problems
this.oldcore.getXWikiContext().setDoc(new XWikiDocument(new DocumentReference("xwiki", "space", "page")));
+
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ .thenReturn("errorIcon");
}
/**
@@ -159,11 +172,11 @@ void templateProviderRestrictionErrorEscaping(List allowedSpaces) throws
String expectedMessage;
if (allowedSpaces.size() == 1) {
- expectedMessage = String.format("$services.icon.renderHTML($iconName) error "
+ expectedMessage = String.format("errorIcon error "
+ "core.create.template.allowedspace.inline [%s, %s]",
provider, allowedSpaces.get(0));
} else {
- expectedMessage = String.format("$services.icon.renderHTML($iconName) error "
+ expectedMessage = String.format("errorIcon error "
+ "core.create.template.allowedspaces.inline [%s, %s]",
provider, allowedSpaces);
}
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
index 7db7c27d48e0..6be1989a5678 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
@@ -23,6 +23,7 @@
import java.util.Map;
import java.util.Optional;
+import javax.inject.Named;
import javax.script.ScriptContext;
import javax.servlet.http.HttpSession;
@@ -31,6 +32,7 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
+import org.xwiki.icon.IconManagerScriptService;
import org.xwiki.model.reference.DocumentReference;
import org.xwiki.model.validation.edit.EditConfirmationChecker;
import org.xwiki.model.validation.edit.EditConfirmationCheckerResult;
@@ -45,6 +47,7 @@
import org.xwiki.rendering.internal.configuration.RenderingConfigClassDocumentConfigurationSource;
import org.xwiki.rendering.syntax.Syntax;
import org.xwiki.script.ScriptContextManager;
+import org.xwiki.script.service.ScriptService;
import org.xwiki.template.internal.macro.TemplateMacro;
import org.xwiki.test.annotation.ComponentList;
import org.xwiki.test.junit5.mockito.MockComponent;
@@ -56,6 +59,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
/**
@@ -81,13 +85,19 @@ class EditMacrosPageTest extends PageTest
@MockComponent
private ReplaceCharacterEntityNameValidationConfiguration replaceCharacterEntityNameValidationConfiguration;
+ @MockComponent(classToMock = IconManagerScriptService.class)
+ @Named("icon")
+ private ScriptService iconManagerScriptService;
+
@Mock
private HttpSession httpSession;
@BeforeEach
- void setUp() throws Exception
+ void setUp()
{
this.request.setSession(this.httpSession);
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ .thenReturn("errorIcon");
}
@Test
@@ -126,7 +136,7 @@ void oneWarningCheck() throws Exception
Map editConfirmation = (Map) scriptContext.getAttribute("editConfirmation");
assertEquals("warning", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
- assertEquals("$services.icon.renderHTML($iconName) warning "
+ assertEquals("errorIcon warning "
+ "platform.core.editConfirmation.warnings", message.selectFirst(".warningmessage").text());
assertEquals("Warning", message.selectFirst("#warning1").text());
assertEquals("cancel", editConfirmation.get("reject"));
@@ -161,7 +171,7 @@ void twoWarningsTwoErrorsCheck() throws Exception
assertEquals("error", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
// This test is not to test the structure, but to verify the order in which the text are displayed.
- assertEquals("$services.icon.renderHTML($iconName) error "
+ assertEquals("errorIcon error "
+ "platform.core.editConfirmation.errors Error 1 Error 2 platform.core.editConfirmation"
+ ".additionalWarnings Warning 1 Warning 2", message.text());
assertEquals("cancel", editConfirmation.get("reject"));
@@ -218,7 +228,7 @@ void oneErrorEditForced() throws Exception
Map editConfirmation = (Map) scriptContext.getAttribute("editConfirmation");
assertEquals("error", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
- assertEquals("$services.icon.renderHTML($iconName) error platform.core.editConfirmation.errors", message.selectFirst(".errormessage").text());
+ assertEquals("errorIcon error platform.core.editConfirmation.errors", message.selectFirst(".errormessage").text());
assertEquals("Error", message.selectFirst("#error1").text());
assertEquals("cancel", editConfirmation.get("reject"));
assertNull(editConfirmation.get("confirm"));
From 397f9ee90578ad08c5bb43e9c3fbe6b989c67c76 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 10:38:32 +0100
Subject: [PATCH 43/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed escaping and syntax in
LiveTableEditSheet.xml
---
.../src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
index 90e176a4264e..2f3d03e14490 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
@@ -337,7 +337,7 @@
#updateAndSaveIcon()
#if ($action == 'save')
#if ($errorMessage)
- {{error}}$!escapetool.xml($errorMessage){/error}}
+ {{error}}$errorMessage{{/error}}
#else
## Redirect to view mode.
$response.sendRedirect($doc.getURL())
From 3ee6cb7a2a7962b6d9b33187c2d8a263935078c6 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 11:39:42 +0100
Subject: [PATCH 44/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed icon mock in MovePageTest.java
---
.../java/org/xwiki/attachment/MovePageTest.java | 14 +++++++++-----
.../org/xwiki/attachment/MoveStatusPagesTest.java | 3 +--
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
index a83c5b1b1e1b..5341c4d709d1 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
@@ -102,8 +102,12 @@ void setUp() throws Exception
this.componentManager.registerMockComponent(JobExecutor.class);
when(((CSRFTokenScriptService)this.csrfScriptService).isTokenValid(any(String.class))).thenReturn(true);
this.contextualAuthorizationManager = this.componentManager.getInstance(ContextualAuthorizationManager.class);
- when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("cross"))
.thenReturn("errorIcon");
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("exclamation"))
+ .thenReturn("errorIcon");
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("home"))
+ .thenReturn("homeIcon");
}
@Test
@@ -131,7 +135,7 @@ void move() throws Exception
this.context.setDoc(document);
this.request.put("attachment", ATTACHMENT_NAME);
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon Space Page attachment.txt", render.getElementsByClass("breadcrumb").get(0).text());
+ assertEquals("homeIcon Space Page attachment.txt", render.getElementsByClass("breadcrumb").get(0).text());
assertEquals(ATTACHMENT_NAME, render.getElementById("targetAttachmentNameTitle").val());
assertEquals("xwiki:Space.Page", render.getElementsByAttributeValue("name", "sourceLocation").val());
assertEquals(ATTACHMENT_NAME, render.getElementsByAttributeValue("name", "sourceAttachmentName").val());
@@ -162,7 +166,7 @@ void submitMoveTargetEditNotAllowed() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon error attachment.move.targetNotWritable",
+ assertEquals("error: attachment.move.targetNotWritable",
render.getElementsByClass("errormessage").get(0).text());
}
@@ -173,7 +177,7 @@ void submitTargetAttachmentNameEmpty() throws Exception
this.request.put("step", "2");
this.request.put("form_token", "a6DSv7pKWcPargoTvyx2Ww");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon error attachment.move.emptyName",
+ assertEquals("error: attachment.move.emptyName",
render.select(".errormessage").text());
}
@@ -204,7 +208,7 @@ void submitMoveTargetAlreadyExists() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon error attachment.move.alreadyExists "
+ assertEquals("error: attachment.move.alreadyExists "
+ "[attachment.txt, Space.Target\"', /xwiki/bin/view/Space/Target%22%27]",
render.getElementsByClass("errormessage").get(0).text());
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
index 895ee1405a5e..55fd0fcf7cb6 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
@@ -95,8 +95,7 @@ void renderScriptStatusUnknown() throws Exception
{
this.request.put("moveId", "42");
Document render = Jsoup.parse(this.templateManager.render(MOVE_STATUS_TEMPLATE));
- assertEquals("errorIcon error "
- + "attachment.move.status.notFound", render.select(".errormessage").text());
+ assertEquals("error: attachment.move.status.notFound", render.select(".errormessage").text());
verify(this.jobScriptService).getJobStatus(List.of("refactoring", "moveAttachment", "42"));
}
From 42ee86bebc331c05f16a92d9ab38f30664504aba Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 11:51:28 +0100
Subject: [PATCH 45/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed icon mock in MovePageTest.java
---
.../src/test/java/org/xwiki/attachment/MovePageTest.java | 8 +++-----
.../java/org/xwiki/attachment/MoveStatusPagesTest.java | 4 ++--
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
index 5341c4d709d1..d4a030e2581c 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
@@ -102,8 +102,6 @@ void setUp() throws Exception
this.componentManager.registerMockComponent(JobExecutor.class);
when(((CSRFTokenScriptService)this.csrfScriptService).isTokenValid(any(String.class))).thenReturn(true);
this.contextualAuthorizationManager = this.componentManager.getInstance(ContextualAuthorizationManager.class);
- when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("cross"))
- .thenReturn("errorIcon");
when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("exclamation"))
.thenReturn("errorIcon");
when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("home"))
@@ -166,7 +164,7 @@ void submitMoveTargetEditNotAllowed() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("error: attachment.move.targetNotWritable",
+ assertEquals("errorIcon error attachment.move.targetNotWritable",
render.getElementsByClass("errormessage").get(0).text());
}
@@ -177,7 +175,7 @@ void submitTargetAttachmentNameEmpty() throws Exception
this.request.put("step", "2");
this.request.put("form_token", "a6DSv7pKWcPargoTvyx2Ww");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("error: attachment.move.emptyName",
+ assertEquals("errorIcon error attachment.move.emptyName",
render.select(".errormessage").text());
}
@@ -208,7 +206,7 @@ void submitMoveTargetAlreadyExists() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("error: attachment.move.alreadyExists "
+ assertEquals("errorIcon error attachment.move.alreadyExists "
+ "[attachment.txt, Space.Target\"', /xwiki/bin/view/Space/Target%22%27]",
render.getElementsByClass("errormessage").get(0).text());
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
index 55fd0fcf7cb6..9712fa5fa227 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
@@ -86,7 +86,7 @@ void setUp() throws Exception
{
this.templateManager = this.oldcore.getMocker().getInstance(TemplateManager.class);
this.componentManager.registerComponent(ScriptService.class, "job", this.jobScriptService);
- when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("exclamation"))
.thenReturn("errorIcon");
}
@@ -95,7 +95,7 @@ void renderScriptStatusUnknown() throws Exception
{
this.request.put("moveId", "42");
Document render = Jsoup.parse(this.templateManager.render(MOVE_STATUS_TEMPLATE));
- assertEquals("error: attachment.move.status.notFound", render.select(".errormessage").text());
+ assertEquals("errorIcon error attachment.move.status.notFound", render.select(".errormessage").text());
verify(this.jobScriptService).getJobStatus(List.of("refactoring", "moveAttachment", "42"));
}
From 66bc66e0b304094dba7f3f44b6fc5f14f0f1c825 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 11:57:26 +0100
Subject: [PATCH 46/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Removed a now useless setup step.
---
.../src/test/java/org/xwiki/attachment/MovePageTest.java | 3 ---
1 file changed, 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
index d4a030e2581c..332d732b9436 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
@@ -46,7 +46,6 @@
import org.xwiki.template.TemplateManager;
import org.xwiki.template.script.TemplateScriptService;
import org.xwiki.test.annotation.ComponentList;
-import org.xwiki.test.page.IconSetup;
import org.xwiki.test.page.PageTest;
import org.xwiki.test.junit5.mockito.MockComponent;
@@ -97,8 +96,6 @@ class MovePageTest extends PageTest
void setUp() throws Exception
{
this.templateManager = this.oldcore.getMocker().getInstance(TemplateManager.class);
- // Initializes then environment for the icon extension.
- IconSetup.setUp(this, "/icons/default.iconset");
this.componentManager.registerMockComponent(JobExecutor.class);
when(((CSRFTokenScriptService)this.csrfScriptService).isTokenValid(any(String.class))).thenReturn(true);
this.contextualAuthorizationManager = this.componentManager.getInstance(ContextualAuthorizationManager.class);
From 2aff1cbfc5ced78086bea17de572b52a73fbe276 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 11:58:45 +0100
Subject: [PATCH 47/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Removed a now useless resource file.
---
.../src/test/resources/icons/default.iconset | 9 ---------
1 file changed, 9 deletions(-)
delete mode 100644 xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/resources/icons/default.iconset
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/resources/icons/default.iconset b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/resources/icons/default.iconset
deleted file mode 100644
index b58e21cc1010..000000000000
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/resources/icons/default.iconset
+++ /dev/null
@@ -1,9 +0,0 @@
-## General settings
-xwiki.iconset.type = image
-xwiki.iconset.render.wiki = [[image:path:$xwiki.getSkinFile("icons/silk/${icon}.png")||data-xwiki-lightbox="false"]]
-xwiki.iconset.render.html =
-xwiki.iconset.icon.url = $xwiki.getSkinFile("icons/silk/${icon}.png")
-
-chart-organisation = chart-organisation
-cross = cross
-home = home
\ No newline at end of file
From 12534be6b762a44edd194c0936d5c6afd8d781ae Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 13:51:05 +0100
Subject: [PATCH 48/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Replaced a velocity translation call with
the standard translation macro.
---
.../src/main/resources/XWiki/Extension/Security/Code/Admin.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
index ade2012d31b8..5e42d94faac3 100644
--- a/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
+++ b/xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-security/xwiki-platform-extension-security-ui/src/main/resources/XWiki/Extension/Security/Code/Admin.xml
@@ -109,7 +109,7 @@
#end
#info($infoMessageContent)
#else
- {{warning}}$escapetool.xml($services.localization.render('extension.security.indexed.nojob')){{/warning}}
+ {{warning}}{{translation key='extension.security.indexed.nojob'/}}{{/warning}}
#end
{{/html}}
#end
From d2ff384d1c8d522fd6ff2171f32708da1a416ed1 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 13:56:51 +0100
Subject: [PATCH 49/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Updated the structure of the verlocimacros
to take into account the latest bugfixes on the XWiki macros.
---
.../src/main/resources/flamingo/editobject.vm | 2 +-
.../src/main/resources/templates/macros.vm | 4 ++--
2 files 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/editobject.vm b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
index f8c40cbdb77c..6a5d0b20f26f 100644
--- a/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
+++ b/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-resources/src/main/resources/flamingo/editobject.vm
@@ -42,7 +42,7 @@
#end
##
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index 6bd80819e570..0f13e43eea59 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -959,9 +959,9 @@ $html
<#if($isInline)span#{else}div#end class="box ${classAffix}message $!{extraClass}">
$services.icon.renderHTML($iconName)
$services.localization.render($prettyNameKey)
- #if("$!title" != "")$!title
#end
+
#if("$!title" != "")
$!title
#end
$text
- #if("$!title" != "")
#end
+
#if($isInline)span#{else}div#end>
#end
From 159191227f8b362907f1566b38c0410afe4dc013 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 16:26:43 +0100
Subject: [PATCH 50/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Updated mocking in
CreateInlinePageTest.java
---
.../src/test/java/org/xwiki/web/CreateInlinePageTest.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
index 8324e0d46a9d..aeea48e19a9b 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/CreateInlinePageTest.java
@@ -32,6 +32,7 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
+import org.mockito.invocation.InvocationOnMock;
import org.xwiki.icon.IconManagerScriptService;
import org.xwiki.model.reference.DocumentReference;
import org.xwiki.script.service.ScriptService;
@@ -88,7 +89,7 @@ void setup()
this.oldcore.getXWikiContext().setDoc(new XWikiDocument(new DocumentReference("xwiki", "space", "page")));
when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
- .thenReturn("errorIcon");
+ .then(invocationOnMock -> { return invocationOnMock.getArgument(0) + "Icon";});
}
/**
@@ -172,11 +173,11 @@ void templateProviderRestrictionErrorEscaping(List allowedSpaces) throws
String expectedMessage;
if (allowedSpaces.size() == 1) {
- expectedMessage = String.format("errorIcon error "
+ expectedMessage = String.format("exclamationIcon error "
+ "core.create.template.allowedspace.inline [%s, %s]",
provider, allowedSpaces.get(0));
} else {
- expectedMessage = String.format("errorIcon error "
+ expectedMessage = String.format("exclamationIcon error "
+ "core.create.template.allowedspaces.inline [%s, %s]",
provider, allowedSpaces);
}
From d985cc19b67354167d2b022ad082767725b59a70 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 17:08:24 +0100
Subject: [PATCH 51/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Updated the structure of the verlocimacros
to take into account the latest bugfixes on the XWiki macros.
---
.../src/main/resources/templates/macros.vm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
index 0f13e43eea59..86763c1ab3ea 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/macros.vm
@@ -959,8 +959,9 @@ $html
<#if($isInline)span#{else}div#end class="box ${classAffix}message $!{extraClass}">
$services.icon.renderHTML($iconName)
$services.localization.render($prettyNameKey)
- #if("$!title" != "")
$!title
#end
-
$text
+
+ #if("$!title" != "")
$!title
#end
+ $text
#if($isInline)span#{else}div#end>
#end
From 0939fda5a9671ead160560969f6660e2a0b99317 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 25 Feb 2025 17:25:52 +0100
Subject: [PATCH 52/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Updated mocking of the
IconManagerScriptService
---
.../test/java/org/xwiki/attachment/MovePageTest.java | 12 +++++-------
.../org/xwiki/attachment/MoveStatusPagesTest.java | 6 +++---
.../test/java/org/xwiki/web/EditMacrosPageTest.java | 8 ++++----
3 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
index 332d732b9436..d2375b7eaae6 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MovePageTest.java
@@ -99,10 +99,8 @@ void setUp() throws Exception
this.componentManager.registerMockComponent(JobExecutor.class);
when(((CSRFTokenScriptService)this.csrfScriptService).isTokenValid(any(String.class))).thenReturn(true);
this.contextualAuthorizationManager = this.componentManager.getInstance(ContextualAuthorizationManager.class);
- when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("exclamation"))
- .thenReturn("errorIcon");
- when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("home"))
- .thenReturn("homeIcon");
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ .then(invocationOnMock -> { return invocationOnMock.getArgument(0) + "Icon";});
}
@Test
@@ -161,7 +159,7 @@ void submitMoveTargetEditNotAllowed() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon error attachment.move.targetNotWritable",
+ assertEquals("exclamationIcon error attachment.move.targetNotWritable",
render.getElementsByClass("errormessage").get(0).text());
}
@@ -172,7 +170,7 @@ void submitTargetAttachmentNameEmpty() throws Exception
this.request.put("step", "2");
this.request.put("form_token", "a6DSv7pKWcPargoTvyx2Ww");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon error attachment.move.emptyName",
+ assertEquals("exclamationIcon error attachment.move.emptyName",
render.select(".errormessage").text());
}
@@ -203,7 +201,7 @@ void submitMoveTargetAlreadyExists() throws Exception
this.request.put("step", "2");
Document render = Jsoup.parse(this.templateManager.render(MOVE_TEMPLATE));
- assertEquals("errorIcon error attachment.move.alreadyExists "
+ assertEquals("exclamationIcon error attachment.move.alreadyExists "
+ "[attachment.txt, Space.Target\"', /xwiki/bin/view/Space/Target%22%27]",
render.getElementsByClass("errormessage").get(0).text());
}
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
index 9712fa5fa227..7342951dceaa 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
@@ -86,8 +86,8 @@ void setUp() throws Exception
{
this.templateManager = this.oldcore.getMocker().getInstance(TemplateManager.class);
this.componentManager.registerComponent(ScriptService.class, "job", this.jobScriptService);
- when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML("exclamation"))
- .thenReturn("errorIcon");
+ when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
+ .then(invocationOnMock -> { return invocationOnMock.getArgument(0) + "Icon";});
}
@Test
@@ -95,7 +95,7 @@ void renderScriptStatusUnknown() throws Exception
{
this.request.put("moveId", "42");
Document render = Jsoup.parse(this.templateManager.render(MOVE_STATUS_TEMPLATE));
- assertEquals("errorIcon error attachment.move.status.notFound", render.select(".errormessage").text());
+ assertEquals("exclamationIcon error attachment.move.status.notFound", render.select(".errormessage").text());
verify(this.jobScriptService).getJobStatus(List.of("refactoring", "moveAttachment", "42"));
}
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
index 6be1989a5678..6f27b2e9a93d 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/EditMacrosPageTest.java
@@ -97,7 +97,7 @@ void setUp()
{
this.request.setSession(this.httpSession);
when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
- .thenReturn("errorIcon");
+ .then(invocationOnMock -> { return invocationOnMock.getArgument(0) + "Icon";});
}
@Test
@@ -136,7 +136,7 @@ void oneWarningCheck() throws Exception
Map editConfirmation = (Map) scriptContext.getAttribute("editConfirmation");
assertEquals("warning", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
- assertEquals("errorIcon warning "
+ assertEquals("warningIcon warning "
+ "platform.core.editConfirmation.warnings", message.selectFirst(".warningmessage").text());
assertEquals("Warning", message.selectFirst("#warning1").text());
assertEquals("cancel", editConfirmation.get("reject"));
@@ -171,7 +171,7 @@ void twoWarningsTwoErrorsCheck() throws Exception
assertEquals("error", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
// This test is not to test the structure, but to verify the order in which the text are displayed.
- assertEquals("errorIcon error "
+ assertEquals("exclamationIcon error "
+ "platform.core.editConfirmation.errors Error 1 Error 2 platform.core.editConfirmation"
+ ".additionalWarnings Warning 1 Warning 2", message.text());
assertEquals("cancel", editConfirmation.get("reject"));
@@ -228,7 +228,7 @@ void oneErrorEditForced() throws Exception
Map editConfirmation = (Map) scriptContext.getAttribute("editConfirmation");
assertEquals("error", editConfirmation.get("title"));
Document message = Jsoup.parse(editConfirmation.get("message"));
- assertEquals("errorIcon error platform.core.editConfirmation.errors", message.selectFirst(".errormessage").text());
+ assertEquals("exclamationIcon error platform.core.editConfirmation.errors", message.selectFirst(".errormessage").text());
assertEquals("Error", message.selectFirst("#error1").text());
assertEquals("cancel", editConfirmation.get("reject"));
assertNull(editConfirmation.get("confirm"));
From 4854870a8bf0a1a9fc396387fb09c14dba72f4f9 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 18 Mar 2025 14:04:51 +0100
Subject: [PATCH 53/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Removed escaping from strings that are not
in a HTML context anymore
---
.../src/main/resources/Invitation/InvitationCommon.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
index da9d88bebd35..6c24a42d0605 100644
--- a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
+++ b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
@@ -123,12 +123,12 @@
{{error}}
#if($recips.size() == 1)
## The email address given is invalid and will not be sent to.
- $escapetool.xml($services.localization.render('xe.invitation.displayMessage.theAddressIsInvalid'))
+ $services.localization.render('xe.invitation.displayMessage.theAddressIsInvalid')
#else
#if($invalid.size() > 1)
- $escapetool.xml($services.localization.render('xe.invitation.displayMessage.someAddressesAreInvalid', [$invalidAddresses.size()]))
+ $services.localization.render('xe.invitation.displayMessage.someAddressesAreInvalid', [$invalidAddresses.size()])
#else
- $escapetool.xml($services.localization.render('xe.invitation.displayMessage.anAddressesIsInvalid'))
+ $services.localization.render('xe.invitation.displayMessage.anAddressesIsInvalid')
#end
#end
{{/error}}
From 693fdc6d308e42d516037269674dfcc01335f8d9 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 18 Mar 2025 14:18:29 +0100
Subject: [PATCH 54/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Added XWiki 2.1 escaping
---
.../src/main/resources/Invitation/InvitationCommon.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
index 6c24a42d0605..0bd75bdd2a8b 100644
--- a/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
+++ b/xwiki-platform-core/xwiki-platform-invitation/xwiki-platform-invitation-ui/src/main/resources/Invitation/InvitationCommon.xml
@@ -123,12 +123,12 @@
{{error}}
#if($recips.size() == 1)
## The email address given is invalid and will not be sent to.
- $services.localization.render('xe.invitation.displayMessage.theAddressIsInvalid')
+ $services.rendering.escape($services.localization.render('xe.invitation.displayMessage.theAddressIsInvalid'), 'xwiki/2.1')
#else
#if($invalid.size() > 1)
- $services.localization.render('xe.invitation.displayMessage.someAddressesAreInvalid', [$invalidAddresses.size()])
+ $services.rendering.escape($services.localization.render('xe.invitation.displayMessage.someAddressesAreInvalid', [$invalidAddresses.size()]), 'xwiki/2.1')
#else
- $services.localization.render('xe.invitation.displayMessage.anAddressesIsInvalid')
+ $services.rendering.escape($services.localization.render('xe.invitation.displayMessage.anAddressesIsInvalid'), 'xwiki/2.1')
#end
#end
{{/error}}
From 65753317c61eefd4bcdd8c767c099ed42c1d7715 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 18 Mar 2025 14:21:44 +0100
Subject: [PATCH 55/58] Open XWIKI-22433: Provide consistency in info / warning
/ error class usages in templates
* Replaced a statement lambda with an expression lambda
Co-authored-by: Michael Hamann
---
.../src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
index 7342951dceaa..58716199221f 100644
--- a/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
+++ b/xwiki-platform-core/xwiki-platform-attachment/xwiki-platform-attachment-api/src/test/java/org/xwiki/attachment/MoveStatusPagesTest.java
@@ -87,7 +87,7 @@ void setUp() throws Exception
this.templateManager = this.oldcore.getMocker().getInstance(TemplateManager.class);
this.componentManager.registerComponent(ScriptService.class, "job", this.jobScriptService);
when(((IconManagerScriptService)this.iconManagerScriptService).renderHTML(any(String.class)))
- .then(invocationOnMock -> { return invocationOnMock.getArgument(0) + "Icon";});
+ .then(invocationOnMock -> invocationOnMock.getArgument(0) + "Icon");
}
@Test
From f3f63de6e4a46df7b729b8f801eceabca7c41b45 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 18 Mar 2025 14:48:10 +0100
Subject: [PATCH 56/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Added XWiki 2.1 escaping
---
.../src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
index 2f3d03e14490..3d721de0c527 100644
--- a/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
+++ b/xwiki-platform-core/xwiki-platform-appwithinminutes/xwiki-platform-appwithinminutes-ui/src/main/resources/AppWithinMinutes/LiveTableEditSheet.xml
@@ -337,7 +337,7 @@
#updateAndSaveIcon()
#if ($action == 'save')
#if ($errorMessage)
- {{error}}$errorMessage{{/error}}
+ {{error}}$services.rendering.escape($errorMessage, 'xwiki/2.1'){{/error}}
#else
## Redirect to view mode.
$response.sendRedirect($doc.getURL())
From 9b30decca01e46d9b709201c3071374161fd2d98 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Tue, 18 Mar 2025 16:48:59 +0100
Subject: [PATCH 57/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Added newlines around macros to make sure
they are rendered standalone.
---
.../src/main/resources/WikiManager/CreateWiki.xml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml b/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml
index 96d0b00120cd..7221a43fe0f3 100644
--- a/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml
+++ b/xwiki-platform-core/xwiki-platform-wiki/xwiki-platform-wiki-ui/xwiki-platform-wiki-ui-mainwiki/src/main/resources/WikiManager/CreateWiki.xml
@@ -671,13 +671,17 @@
<div class="wizard-body">
{{/html}}
#if($request.deleteOk)
+
{{success}}
{{html}}$services.localization.render('platform.wiki.create.wizard.step.cleaningup.success', ["<strong>$wikiId</strong>"]){{/html}}
{{/success}}
+
#else
+
{{error}}
{{html}}$services.localization.render('platform.wiki.create.wizard.step.cleaningup.error', ["<strong>$wikiId</strong>"]){{/html}}
{{/error}}
+
#end
{{html clean="false"}}
</div>
From 3c049086f7b4c7cb03de92ec75a3e6d61b651a64 Mon Sep 17 00:00:00 2001
From: LucasC
Date: Mon, 14 Apr 2025 12:11:02 +0200
Subject: [PATCH 58/58] XWIKI-22433: Provide consistency in info / warning /
error class usages in templates * Fixed the latest tests so that
JobStatusJSONPageTest build properly with the changes to the error box.
---
.../test/java/org/xwiki/web/JobStatusJSONPageTest.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/JobStatusJSONPageTest.java b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/JobStatusJSONPageTest.java
index 7eae4f61a2c0..6fe6cf901102 100644
--- a/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/JobStatusJSONPageTest.java
+++ b/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/test/java/org/xwiki/web/JobStatusJSONPageTest.java
@@ -46,9 +46,13 @@ void nonExistingJob() throws Exception
String output = this.templateManager.render("job_status_json.vm");
- assertThat(output, equalToCompressingWhiteSpace("""
-
- <test>.notFound
+ assertThat(output.strip(), equalToCompressingWhiteSpace("""
+
+
$services.icon.renderHTML($iconName)
+
error
+
+ <test>.notFound
+
"""));
}
}