From 383f32224614baf0016e3ecefe562f342b637e04 Mon Sep 17 00:00:00 2001 From: Serhii Plyhun Date: Tue, 7 Oct 2025 15:34:45 +0200 Subject: [PATCH] SUP-19066: Minor sorting API changes --- .../src/changelog/entries/2025/10/8493.SUP-19066.bugfix | 1 + common/src/main/resources/i18n/translations_de.properties | 2 ++ common/src/main/resources/i18n/translations_en.properties | 2 ++ common/src/main/resources/i18n/translations_zh.properties | 2 ++ .../gentics/mesh/parameter/impl/SortingParametersImpl.java | 4 ++-- .../java/com/gentics/mesh/parameter/SortingParameters.java | 5 +++-- 6 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 changelog/src/changelog/entries/2025/10/8493.SUP-19066.bugfix diff --git a/changelog/src/changelog/entries/2025/10/8493.SUP-19066.bugfix b/changelog/src/changelog/entries/2025/10/8493.SUP-19066.bugfix new file mode 100644 index 0000000000..021939cac5 --- /dev/null +++ b/changelog/src/changelog/entries/2025/10/8493.SUP-19066.bugfix @@ -0,0 +1 @@ +Core: Some refactoring of sorting core API has been performed. \ No newline at end of file diff --git a/common/src/main/resources/i18n/translations_de.properties b/common/src/main/resources/i18n/translations_de.properties index f674261b61..1f9a1fa205 100644 --- a/common/src/main/resources/i18n/translations_de.properties +++ b/common/src/main/resources/i18n/translations_de.properties @@ -344,3 +344,5 @@ cluster_coordination_master_set=Der neue Master Server wurde eingestellt. cluster_coordination_master_set_error_not_electable=Der node "{0}" kann nicht zum master werden. cache_clear_invoked=Das Leeren der Caches wurde gestartet. + +wrong_sorting_column_name=Die folgenden Spaltennamen sind für die Sortierung nicht zulässig: [{0}]. Zulässige Spalten sind: [{1}]. \ No newline at end of file diff --git a/common/src/main/resources/i18n/translations_en.properties b/common/src/main/resources/i18n/translations_en.properties index c289d87b28..ff3a57295b 100644 --- a/common/src/main/resources/i18n/translations_en.properties +++ b/common/src/main/resources/i18n/translations_en.properties @@ -342,3 +342,5 @@ cluster_coordination_master_set=The coordination master has been set. cluster_coordination_master_set_error_not_electable=The node "{0}" is not electable. cache_clear_invoked=Clearing the caches has been invoked. + +wrong_sorting_column_name=The following column names are not allowed for sorting: [{0}]. Allowed are: [{1}]. diff --git a/common/src/main/resources/i18n/translations_zh.properties b/common/src/main/resources/i18n/translations_zh.properties index 46806361a9..c459f51100 100644 --- a/common/src/main/resources/i18n/translations_zh.properties +++ b/common/src/main/resources/i18n/translations_zh.properties @@ -327,3 +327,5 @@ admin_plugin_error_timeout=插件{0}已超时。操作失败。 webroot_error_parent_not_found=找不到给定资源路径中的父节点。仅以下路径可以解析:{0}。确保首先创建父元素。 webroot_error_segment_field_mismatch=请求的资源路径{0}中的webroot分节与字段属性{1}中的分节不匹配。提供的值必须匹配。 webroot_error_prefix_invalid=请求路径{0}并非以所选分支的必需路径前缀{1}开头。 + +wrong_sorting_column_name=以下列名不允许用于排序:[{0}]。允许的列名是:[{1}]。 diff --git a/mdm/api/src/main/java/com/gentics/mesh/parameter/impl/SortingParametersImpl.java b/mdm/api/src/main/java/com/gentics/mesh/parameter/impl/SortingParametersImpl.java index 17805f4b71..2f67eea371 100644 --- a/mdm/api/src/main/java/com/gentics/mesh/parameter/impl/SortingParametersImpl.java +++ b/mdm/api/src/main/java/com/gentics/mesh/parameter/impl/SortingParametersImpl.java @@ -73,8 +73,8 @@ public String getName() { @Override public SortingParameters putSort(String sortBy, SortOrder order) { - if (StringUtils.isNotBlank(sortBy) && order != null) { - sort.put(sortBy, order); + if (StringUtils.isNotBlank(sortBy)) { + sort.put(sortBy, Optional.ofNullable(order).orElse(SortOrder.ASCENDING)); setParameter(SORT_BY_PARAMETER_KEY, sortBy); setParameter(SORT_ORDER_PARAMETER_KEY, order.getValue()); } diff --git a/rest-model/src/main/java/com/gentics/mesh/parameter/SortingParameters.java b/rest-model/src/main/java/com/gentics/mesh/parameter/SortingParameters.java index 4eee22d4a0..0fbe8918aa 100644 --- a/rest-model/src/main/java/com/gentics/mesh/parameter/SortingParameters.java +++ b/rest-model/src/main/java/com/gentics/mesh/parameter/SortingParameters.java @@ -2,6 +2,7 @@ import java.util.Collections; import java.util.Map; +import java.util.Optional; import org.apache.commons.lang.StringUtils; @@ -27,8 +28,8 @@ public interface SortingParameters extends ParameterProvider { default Map getSort() { String sortBy = getParameter(SortingParameters.SORT_BY_PARAMETER_KEY); SortOrder sortOrder = SortOrder.valueOfName(getParameter(SortingParameters.SORT_ORDER_PARAMETER_KEY)); - if (StringUtils.isNotBlank(sortBy) && sortOrder != null) { - return Collections.singletonMap(sortBy, sortOrder); + if (StringUtils.isNotBlank(sortBy)) { + return Collections.singletonMap(sortBy, Optional.ofNullable(sortOrder).orElse(SortOrder.ASCENDING)); } else { return Collections.emptyMap(); }