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 00000000000..021939cac51 --- /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 f674261b61a..1f9a1fa205c 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 c289d87b281..ff3a57295b0 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 46806361a9f..c459f511008 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 17805f4b718..2f67eea371c 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 4eee22d4a05..0fbe8918aa0 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(); }