From 2dd05fb91acff74f236681620e553ae8fc545ed2 Mon Sep 17 00:00:00 2001
From: strentini <none@none>
Date: Wed, 1 Feb 2012 14:46:46 +0100
Subject: [PATCH] OO-98 : fixed a bug in ext-js code ( setflexiformdirty) was
 introduced with changes to selectionboxes in formuiFactory

---
 .../components/form/flexible/impl/FormJSHelper.java  | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormJSHelper.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormJSHelper.java
index 1714afab3e9..a82a15ae371 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormJSHelper.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormJSHelper.java
@@ -143,10 +143,14 @@ public class FormJSHelper {
 		// Execute code within an anonymous function (closure) to not leak
 		// variables to global scope (OLAT-5755)
 		sb.append("(function() {");
-		sb.append("var ").append(id).append(" = Ext.get('").append(id).append("'); ");
+		sb.append("var ").append(secureJSVarName(id)).append(" = Ext.get('").append(id).append("'); ");
 		return sb.toString();
 	}
 	
+	public static String secureJSVarName(String id){
+		return id.replace(".", "_");
+	}
+	
 	public static String getJSStart(){
 		// Execute code within an anonymous function (closure) to not leak
 		// variables to global scope (OLAT-5755)
@@ -159,12 +163,12 @@ public class FormJSHelper {
 	}
 	
 	public static String getExtJSVarDeclaration(String id){
-		return "var "+id+" = Ext.get('"+id+"'); ";
+		return "var "+secureJSVarName(id)+" = Ext.get('"+id+"'); ";
 	}
 	
 	public static String getSetFlexiFormDirty(Form form, String id){
 		String result;
-		String prefix = id + ".on('";
+		String prefix = secureJSVarName(id) + ".on('";
 		// examples:
 		// o_fi400.on({'click',setFormDirty,this,{formId:"ofo_100"}});
 		// o_fi400.on({'change',setFormDirty,this,{formId:"ofo_100"}});
@@ -177,7 +181,7 @@ public class FormJSHelper {
 	
 	public static String getSetFlexiFormDirtyForCheckbox(Form form, String id){
 		String result;
-		String prefix = id + ".on('";
+		String prefix = secureJSVarName(id) + ".on('";
 		// examples:
 		// o_fi400.on({'click',setFormDirty,this,{formId:"ofo_100"}});
 		// o_fi400.on({'change',setFormDirty,this,{formId:"ofo_100"}});
-- 
GitLab