Author: sskracic Date: 2005-11-15 23:33:41 +0100 (Tue, 15 Nov 2005) New Revision: 998 Modified: releases/1.0.3/ccm-cms/application.xml releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java releases/1.0.3/ccm-core/application.xml releases/1.0.3/ccm-core/src/com/arsdigita/bebop/BaseLink.java releases/1.0.3/ccm-core/src/com/arsdigita/bebop/form/Submit.java releases/1.0.3/ccm-core/web/packages/acs-admin/xsl/split-panel.xsl releases/1.0.3/ccm-core/web/packages/bebop/xsl/FormWidget.xsl releases/1.0.3/ccm-core/web/packages/bebop/xsl/Link.xsl releases/1.0.3/ccm-core/web/packages/bebop/xsl/Widget.xsl Log: Integrated r996 from trunk: DCP code now preserves onClick attribute if exists. Modified: releases/1.0.3/ccm-cms/application.xml =================================================================== --- releases/1.0.3/ccm-cms/application.xml 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-cms/application.xml 2005-11-15 22:33:41 UTC (rev 998) @@ -3,7 +3,7 @@ name="ccm-cms" prettyName="Red Hat CCM Content Management System" version="6.2.0" - release="6" + release="7" webapp="ROOT"> <ccm:dependencies> <ccm:requires name="ccm-core" version="6.2.0" relation="ge"/> Modified: releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java =================================================================== --- releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java 2005-11-15 22:33:41 UTC (rev 998) @@ -91,7 +91,6 @@ ItemSearchWidget parent, ContentType contentType) { super(name, "Search"); - this.avoidDoubleClick(false); this.parent = parent; this.contentType = contentType; this.setAttribute("onClick", "return " + parent.m_item.getName().replace('.','_') + "Popup(this.form)"); @@ -112,7 +111,6 @@ public ClearFragment(String name, ItemSearchWidget parent) { super(name, "Clear"); - this.avoidDoubleClick(false); this.parent = parent; this.setAttribute("onClick", "this.form." + parent.m_item.getName() + ".value = \"\"; return false;"); this.setAttribute("value", "Clear"); Modified: releases/1.0.3/ccm-core/application.xml =================================================================== --- releases/1.0.3/ccm-core/application.xml 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/application.xml 2005-11-15 22:33:41 UTC (rev 998) @@ -3,7 +3,7 @@ name="ccm-core" prettyName="Core" version="6.2.0" - release="3" + release="4" webapp="ROOT" buildHooks="build-hooks.xml"> <ccm:dependencies> Modified: releases/1.0.3/ccm-core/src/com/arsdigita/bebop/BaseLink.java =================================================================== --- releases/1.0.3/ccm-core/src/com/arsdigita/bebop/BaseLink.java 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/src/com/arsdigita/bebop/BaseLink.java 2005-11-15 22:33:41 UTC (rev 998) @@ -321,7 +321,8 @@ protected void generateExtraXMLAttributes(PageState state, Element link) {} /** - * Sets onClick event. Not for confirmation messages; Should call setConfirmation for that. + * Sets onClick event and <em>disables the javascript-based double-click protection for this link</em>. + * Not for confirmation messages; Should call setConfirmation for that. * * @param value * @pre value.toLowerCase().startsWith("return confirm(") == false Modified: releases/1.0.3/ccm-core/src/com/arsdigita/bebop/form/Submit.java =================================================================== --- releases/1.0.3/ccm-core/src/com/arsdigita/bebop/form/Submit.java 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/src/com/arsdigita/bebop/form/Submit.java 2005-11-15 22:33:41 UTC (rev 998) @@ -45,7 +45,6 @@ public static final String versionId = "$Id$ by $Author$, $DateTime: $"; - private boolean m_noDoubleClick = true; private GlobalizedMessage m_buttonLabel; /** @@ -124,10 +123,13 @@ * onClick field to try to prevent doubleclicks. * * @param avoid true to avoid doubleclicks, false otherwise. + * @deprecated use configuration parameter waf.bebop.dcp_message + * to enable/disable double-click protection globally. + * In case you want to disable DCP on per-widget basis, + * use {@link #setOnClick(String)}. + * @see #setOnClick(String) */ public void avoidDoubleClick ( boolean avoid ) { - Assert.assertNotLocked(this); - m_noDoubleClick = avoid; } /** @@ -213,20 +215,6 @@ return (ps != null) && (p.getValue() != null); } - public void lock() { - if ( m_noDoubleClick ) { - StringBuffer sb = new StringBuffer(); - if (getOnClick() != null) { - sb.append(getOnClick()) - .append(" "); - } - sb.append("if(this.value == '") - .append(getAttribute("value")) - .append("') { this.value = 'Please Wait'; this.form.submit(); } "); - setOnClick(sb.toString()); - } - super.lock(); - } /** * Set the HTML size attribute of this widget. @@ -238,8 +226,9 @@ } /** - * Set the onclick parameter. lock() will append to that String. - * + * Sets the onclick parameter and <em>disables the Javascript-based double-click protection</em> + * for this widget. + * This is the preferred method to disable double-click protection on per-widget basis. * @param command The JavaScript to execute when the button is clicked. */ public void setOnClick(String command) { Modified: releases/1.0.3/ccm-core/web/packages/acs-admin/xsl/split-panel.xsl =================================================================== --- releases/1.0.3/ccm-core/web/packages/acs-admin/xsl/split-panel.xsl 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/web/packages/acs-admin/xsl/split-panel.xsl 2005-11-15 22:33:41 UTC (rev 998) @@ -160,8 +160,13 @@ <!-- pads the label of the submit buttons --> <xsl:template match="bebop:formWidget[@type='submit']"> - <input value="   {@value}   " onclick="dcp_hide(this.form);"> - <xsl:for-each select="@*[name() != 'value' and name() != 'onclick']"> + <input value="   {@value}   "> + <xsl:if test="boolean(@onclick) = false()"> + <xsl:attribute name="onclick"> + <xsl:value-of select="'dcp_hide(this.form);'"/> + </xsl:attribute> + </xsl:if> + <xsl:for-each select="@*[name() != 'value']"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> Modified: releases/1.0.3/ccm-core/web/packages/bebop/xsl/FormWidget.xsl =================================================================== --- releases/1.0.3/ccm-core/web/packages/bebop/xsl/FormWidget.xsl 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/web/packages/bebop/xsl/FormWidget.xsl 2005-11-15 22:33:41 UTC (rev 998) @@ -16,14 +16,18 @@ <xsl:template match="bebop:formWidget[@type='submit']" xmlns:bebop="http://www.arsdigita.com/bebop/1.0"> - <input onclick="dcp_hide(this.form);"> - <xsl:for-each select="@*[name() != 'onclick']"> - <xsl:attribute name="{name()}"> - <xsl:value-of select="."/> - </xsl:attribute> - </xsl:for-each> + <input> + <xsl:if test="boolean(@onclick) = false()"> + <xsl:attribute name="onclick"> + <xsl:value-of select="'dcp_hide(this.form);'"/> + </xsl:attribute> + </xsl:if> + <xsl:for-each select="@*"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="."/> + </xsl:attribute> + </xsl:for-each> </input> </xsl:template> - </xsl:stylesheet> Modified: releases/1.0.3/ccm-core/web/packages/bebop/xsl/Link.xsl =================================================================== --- releases/1.0.3/ccm-core/web/packages/bebop/xsl/Link.xsl 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/web/packages/bebop/xsl/Link.xsl 2005-11-15 22:33:41 UTC (rev 998) @@ -14,8 +14,13 @@ </xsl:when> <xsl:otherwise> - <a onclick="dcp_hide(this);"> - <xsl:copy-of select="@*[name() != 'href_no_javascript' and name() != 'onclick']"/> + <a> + <xsl:if test="boolean(@onclick) = false()"> + <xsl:attribute name="onclick"> + <xsl:value-of select="'dcp_hide(this);'"/> + </xsl:attribute> + </xsl:if> + <xsl:copy-of select="@*[name() != 'href_no_javascript']"/> <xsl:apply-templates/> </a> </xsl:otherwise> @@ -37,8 +42,13 @@ </img> </a> <xsl:text> </xsl:text> - <a onclick="dcp_hide(this);"> - <xsl:copy-of select="@*[name() != 'href_no_javascript' and name() != 'onclick']"/> + <a> + <xsl:if test="boolean(@onclick) = false()"> + <xsl:attribute name="onclick"> + <xsl:value-of select="'dcp_hide(this);'"/> + </xsl:attribute> + </xsl:if> + <xsl:copy-of select="@*[name() != 'href_no_javascript']"/> <xsl:apply-templates/> </a> </xsl:otherwise> Modified: releases/1.0.3/ccm-core/web/packages/bebop/xsl/Widget.xsl =================================================================== --- releases/1.0.3/ccm-core/web/packages/bebop/xsl/Widget.xsl 2005-11-15 22:28:53 UTC (rev 997) +++ releases/1.0.3/ccm-core/web/packages/bebop/xsl/Widget.xsl 2005-11-15 22:33:41 UTC (rev 998) @@ -23,12 +23,17 @@ <xsl:template match="bebop:formWidget[@type='submit']" xmlns:bebop="http://www.arsdigita.com/bebop/1.0"> - <input onclick="dcp_hide(this.form);"> - <xsl:for-each select="@*[name() != 'onclick']"> - <xsl:attribute name="{name()}"> - <xsl:value-of select="."/> - </xsl:attribute> - </xsl:for-each> + <input> + <xsl:if test="boolean(@onclick) = false()"> + <xsl:attribute name="onclick"> + <xsl:value-of select="'dcp_hide(this.form);'"/> + </xsl:attribute> + </xsl:if> + <xsl:for-each select="@*"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="."/> + </xsl:attribute> + </xsl:for-each> </input> </xsl:template> |