From 839dbd36e4cdc316d98cacb4922ea817cfc7c8d2 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 13 Jun 2014 13:03:57 +0200 Subject: [PATCH] OO-1068: fix an issue with the id of radio element --- .../impl/elements/SingleSelectionComponent.java | 6 ++---- .../flexible/impl/elements/SingleSelectionImpl.java | 3 +-- .../impl/elements/SingleSelectionRenderer.java | 11 ++++++----- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionComponent.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionComponent.java index 16dc98563b8..ad779a3d314 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionComponent.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionComponent.java @@ -67,12 +67,10 @@ class SingleSelectionComponent extends FormBaseComponentImpl { private SingleSelection selectionWrapper; private int which; - private String name; - RadioElementComponent(String name, SingleSelection selectionWrapper, int which) { + RadioElementComponent(SingleSelection selectionWrapper, int which) { this.selectionWrapper = selectionWrapper; this.which = which; - this.name = name; } String getGroupingName(){ @@ -88,7 +86,7 @@ class SingleSelectionComponent extends FormBaseComponentImpl { } String getFormDispatchId() { - return name; + return selectionWrapper.getFormDispatchId() + "_R_" + which; } public String getValue() { diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java index 5b4b1bb7613..6db2eb2295e 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java @@ -287,8 +287,7 @@ public class SingleSelectionImpl extends FormItemImpl implements SingleSelection } else { RadioElementComponent[] radios = new RadioElementComponent[keys.length]; for (int i = 0; i < keys.length; i++) { - String radioName = getName() + "_" + keys[i]; - radios[i] = new RadioElementComponent(radioName, this, i); + radios[i] = new RadioElementComponent(this, i); } String ssscId = getFormItemId() == null ? null : getFormItemId() + "_RADIO"; SingleSelectionComponent ssc = new SingleSelectionComponent(ssscId, this); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java index a7a85731cfd..5307b28c796 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java @@ -82,11 +82,12 @@ class SingleSelectionRenderer extends DefaultComponentRenderer { String key = ssec.getKey(); String value = ssec.getValue(); boolean selected = ssec.isSelected(); + String formDispatchId = ssec.getFormDispatchId(); // read write view sb.append("<label class='radio").append("-inline", inline) - .append("' for='").append(ssec.getFormDispatchId()).append("'>") - .append("<input id='").append(ssec.getFormDispatchId()).append("' ") + .append("' for='").append(formDispatchId).append("'>") + .append("<input id='").append(formDispatchId).append("' ") .append("type='radio' ").append(subStrName) .append(" value='").append(key).append("' ") .append(" checked='checked' ", selected); @@ -102,9 +103,9 @@ class SingleSelectionRenderer extends DefaultComponentRenderer { if(source.isEnabled()){ //add set dirty form only if enabled - sb.append(FormJSHelper.getJSStartWithVarDeclaration(ssec.getFormDispatchId())); - sb.append(FormJSHelper.getSetFlexiFormDirtyForCheckbox(ssec.getRootForm(), ssec.getFormDispatchId())); - sb.append(FormJSHelper.getJSEnd()); + sb.append(FormJSHelper.getJSStartWithVarDeclaration(formDispatchId)) + .append(FormJSHelper.getSetFlexiFormDirtyForCheckbox(ssec.getRootForm(), formDispatchId)) + .append(FormJSHelper.getJSEnd()); } } } \ No newline at end of file -- GitLab