This is an automated email from the ASF dual-hosted git repository.
mridulpathak pushed a commit to branch release24.09
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release24.09 by this push:
new e04a81de82 Fixed: Do not request the non-existent jquery-validation
messages_en.js on every page (OFBIZ-13652)
e04a81de82 is described below
commit e04a81de822a5ed49316b8747214481830e708f5
Author: Mridul Pathak <[email protected]>
AuthorDate: Wed Oct 7 17:25:24 2026 +0530
Fixed: Do not request the non-existent jquery-validation messages_en.js on
every page (OFBIZ-13652)
The jquery-validation package ships no messages_en.js, as English is built
in, but the mapping of the JS language files used it as the fallback for
English and for the locales without a localization file, so every page request
got a 404. The fallback is now an OFBiz specific empty messages_en.js, the same
way the one of the datepicker, and the generator, its template and the
generated JsLanguageFilesMapping are updated accordingly.
---
.../ofbiz/common/JsLanguageFileMappingCreator.java | 6 ++-
.../ofbiz/common/JsLanguageFilesMapping.java | 60 +++++++++++-----------
.../template/JsLanguageFilesMapping.ftl | 3 +-
.../common-theme/js/i18n/validation/messages_en.js | 23 +++++++++
4 files changed, 58 insertions(+), 34 deletions(-)
diff --git
a/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java
b/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java
index 8ed3829efe..8a039a47c0 100644
---
a/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java
+++
b/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFileMappingCreator.java
@@ -72,6 +72,8 @@ public class JsLanguageFileMappingCreator {
String dateTimePickerPrefix = "jquery-ui-timepicker-";
String defaultLocaleDateJs = "en-US";
String defaultLocaleJquery = "en"; // Beware to keep the OFBiz
specific datepicker-en.js file when upgrading...
+ // jquery-validation has no messages_en.js, so OFBiz provides one.
Beware to keep it when upgrading...
+ String defaultValidationFile =
"/common/js/i18n/validation/messages_en.js";
for (Locale locale : localeList) {
String displayCountry = locale.toString();
@@ -126,7 +128,7 @@ public class JsLanguageFileMappingCreator {
fileUrl = validateRelPath + validateLocalePrefix +
strippedLocale + jsFilePostFix;
} else {
// use default language en as fallback
- fileUrl = validateRelPath + validateLocalePrefix +
defaultLocaleJquery + jsFilePostFix;
+ fileUrl = defaultValidationFile;
}
}
} else { // Then try lang only
@@ -136,7 +138,7 @@ public class JsLanguageFileMappingCreator {
fileUrl = validateRelPath + validateLocalePrefix +
strippedLocale + jsFilePostFix;
} else {
// use default language en as fallback
- fileUrl = validateRelPath + validateLocalePrefix +
defaultLocaleJquery + jsFilePostFix;
+ fileUrl = defaultValidationFile;
}
}
validationLocaleFile.put(displayCountry, fileUrl);
diff --git
a/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFilesMapping.java
b/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFilesMapping.java
index 42e6d44f89..29ad4278c2 100644
---
a/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFilesMapping.java
+++
b/framework/common/src/main/java/org/apache/ofbiz/common/JsLanguageFilesMapping.java
@@ -382,11 +382,11 @@ public final class JsLanguageFilesMapping {
public static class Validation {
private static Map<String, String> localeFiles = new HashMap<>();
- private static String defaultValidation =
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js";
+ private static String defaultValidation =
"/common/js/i18n/validation/messages_en.js";
static {
- localeFiles.put("sq",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("sq_AL",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("sq", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("sq_AL",
"/common/js/i18n/validation/messages_en.js");
localeFiles.put("ar",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ar.js");
localeFiles.put("ar_DZ",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ar.js");
localeFiles.put("ar_BH",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ar.js");
@@ -405,8 +405,8 @@ public final class JsLanguageFilesMapping {
localeFiles.put("ar_TN",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ar.js");
localeFiles.put("ar_AE",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ar.js");
localeFiles.put("ar_YE",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ar.js");
- localeFiles.put("be",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("be_BY",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("be", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("be_BY",
"/common/js/i18n/validation/messages_en.js");
localeFiles.put("bg",
"/common/js/node_modules/jquery-validation/dist/localization/messages_bg.js");
localeFiles.put("bg_BG",
"/common/js/node_modules/jquery-validation/dist/localization/messages_bg.js");
localeFiles.put("ca",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ca.js");
@@ -425,18 +425,18 @@ public final class JsLanguageFilesMapping {
localeFiles.put("nl",
"/common/js/node_modules/jquery-validation/dist/localization/messages_nl.js");
localeFiles.put("nl_BE",
"/common/js/node_modules/jquery-validation/dist/localization/messages_nl.js");
localeFiles.put("nl_NL",
"/common/js/node_modules/jquery-validation/dist/localization/messages_nl.js");
- localeFiles.put("en",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_AU",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_CA",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_IN",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_IE",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_MT",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_NZ",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_PH",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_SG",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_ZA",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_GB",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("en_US",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("en", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_AU",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_CA",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_IN",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_IE",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_MT",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_NZ",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_PH",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_SG",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_ZA",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_GB",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("en_US",
"/common/js/i18n/validation/messages_en.js");
localeFiles.put("et",
"/common/js/node_modules/jquery-validation/dist/localization/messages_et.js");
localeFiles.put("et_EE",
"/common/js/node_modules/jquery-validation/dist/localization/messages_et.js");
localeFiles.put("fi",
"/common/js/node_modules/jquery-validation/dist/localization/messages_fi.js");
@@ -456,18 +456,18 @@ public final class JsLanguageFilesMapping {
localeFiles.put("el",
"/common/js/node_modules/jquery-validation/dist/localization/messages_el.js");
localeFiles.put("el_CY",
"/common/js/node_modules/jquery-validation/dist/localization/messages_el.js");
localeFiles.put("el_GR",
"/common/js/node_modules/jquery-validation/dist/localization/messages_el.js");
- localeFiles.put("iw",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("iw_IL",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("hi",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("hi_IN",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("iw", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("iw_IL",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("hi", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("hi_IN",
"/common/js/i18n/validation/messages_en.js");
localeFiles.put("hu",
"/common/js/node_modules/jquery-validation/dist/localization/messages_hu.js");
localeFiles.put("hu_HU",
"/common/js/node_modules/jquery-validation/dist/localization/messages_hu.js");
localeFiles.put("is",
"/common/js/node_modules/jquery-validation/dist/localization/messages_is.js");
localeFiles.put("is_IS",
"/common/js/node_modules/jquery-validation/dist/localization/messages_is.js");
- localeFiles.put("in",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("in_ID",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("ga",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("ga_IE",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("in", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("in_ID",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("ga", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("ga_IE",
"/common/js/i18n/validation/messages_en.js");
localeFiles.put("it",
"/common/js/node_modules/jquery-validation/dist/localization/messages_it.js");
localeFiles.put("it_IT",
"/common/js/node_modules/jquery-validation/dist/localization/messages_it.js");
localeFiles.put("it_CH",
"/common/js/node_modules/jquery-validation/dist/localization/messages_it.js");
@@ -482,16 +482,16 @@ public final class JsLanguageFilesMapping {
localeFiles.put("lt_LT",
"/common/js/node_modules/jquery-validation/dist/localization/messages_lt.js");
localeFiles.put("mk",
"/common/js/node_modules/jquery-validation/dist/localization/messages_mk.js");
localeFiles.put("mk_MK",
"/common/js/node_modules/jquery-validation/dist/localization/messages_mk.js");
- localeFiles.put("ms",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("ms_MY",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("mt",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
- localeFiles.put("mt_MT",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("ms", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("ms_MY",
"/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("mt", "/common/js/i18n/validation/messages_en.js");
+ localeFiles.put("mt_MT",
"/common/js/i18n/validation/messages_en.js");
localeFiles.put("no",
"/common/js/node_modules/jquery-validation/dist/localization/messages_no.js");
localeFiles.put("no_NO",
"/common/js/node_modules/jquery-validation/dist/localization/messages_no.js");
localeFiles.put("no_NO_NY",
"/common/js/node_modules/jquery-validation/dist/localization/messages_no.js");
localeFiles.put("pl",
"/common/js/node_modules/jquery-validation/dist/localization/messages_pl.js");
localeFiles.put("pl_PL",
"/common/js/node_modules/jquery-validation/dist/localization/messages_pl.js");
- localeFiles.put("pt",
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js");
+ localeFiles.put("pt", "/common/js/i18n/validation/messages_en.js");
localeFiles.put("pt_BR",
"/common/js/node_modules/jquery-validation/dist/localization/messages_pt_BR.js");
localeFiles.put("pt_PT",
"/common/js/node_modules/jquery-validation/dist/localization/messages_pt_PT.js");
localeFiles.put("ro",
"/common/js/node_modules/jquery-validation/dist/localization/messages_ro.js");
diff --git a/themes/common-theme/template/JsLanguageFilesMapping.ftl
b/themes/common-theme/template/JsLanguageFilesMapping.ftl
index a6e25d976a..f5db1cb535 100644
--- a/themes/common-theme/template/JsLanguageFilesMapping.ftl
+++ b/themes/common-theme/template/JsLanguageFilesMapping.ftl
@@ -74,8 +74,7 @@ public final class JsLanguageFilesMapping {
public static class Validation {
private static Map<String, String> localeFiles = new HashMap<>();
- <#--TODO Handle defaultValidation as messages_en is missing with the
default distribution-->
- private static String defaultValidation =
"/common/js/node_modules/jquery-validation/dist/localization/messages_en.js";
+ private static String defaultValidation =
"/common/js/i18n/validation/messages_en.js";
static {
<#list validation.keySet() as validationFiles>
diff --git
a/themes/common-theme/webapp/common-theme/js/i18n/validation/messages_en.js
b/themes/common-theme/webapp/common-theme/js/i18n/validation/messages_en.js
new file mode 100644
index 0000000000..3c0658ddda
--- /dev/null
+++ b/themes/common-theme/webapp/common-theme/js/i18n/validation/messages_en.js
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+// English localization of the jQuery Validation plugin.
+// The messages of the plugin are in English by default, and the
jquery-validation package ships no messages_en.js,
+// so this OFBiz specific file does nothing. It is the fallback for the
locales without a localization file, and it
+// avoids a "404 Not Found" for a file that does not exist. Beware to keep it
when upgrading jquery-validation.