diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteCallUIBean.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java similarity index 97% rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteCallUIBean.java rename to plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java index 9e8d3057d..4b1e4ba47 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteCallUIBean.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java @@ -30,7 +30,7 @@ import com.opensymphony.xwork2.util.ValueStack; * AbstractRemoteCallUIBean is superclass for all components dealing with remote * calls. */ -public abstract class AbstractRemoteCallUIBean extends ClosingUIBean implements RemoteUICallBean { +public abstract class AbstractRemoteBean extends ClosingUIBean implements RemoteBean { protected String href; protected String errorText; @@ -50,7 +50,7 @@ public abstract class AbstractRemoteCallUIBean extends ClosingUIBean implements protected String highlightColor; protected String highlightDuration; - public AbstractRemoteCallUIBean(ValueStack stack, HttpServletRequest request, + public AbstractRemoteBean(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { super(stack, request, response); } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractValidateBean.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractValidateBean.java new file mode 100644 index 000000000..abab16543 --- /dev/null +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractValidateBean.java @@ -0,0 +1,63 @@ +/* + * $Id$ + * + * Copyright 2006 The Apache Software Foundation. + * + * Licensed 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. + */ +package org.apache.struts2.dojo.components; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.struts2.components.Form; +import org.apache.struts2.views.annotations.StrutsTagAttribute; + +import com.opensymphony.xwork2.util.ValueStack; + +/** + * Base class for tags that perform AJAX validation + */ +public abstract class AbstractValidateBean extends AbstractRemoteBean { + protected String validate; + protected String ajaxAfterValidation; + + public AbstractValidateBean(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { + super(stack, request, response); + } + + public void evaluateExtraParams() { + super.evaluateExtraParams(); + + if (validate != null) + addParameter("validate", findValue(validate, Boolean.class)); + if (ajaxAfterValidation != null) + addParameter("ajaxAfterValidation", findValue(ajaxAfterValidation, Boolean.class)); + + Form form = (Form) findAncestor(Form.class); + if (form != null) + addParameter("parentTheme", form.getTheme()); + } + + @StrutsTagAttribute(description = "Perform Ajax calidation. 'ajaxValidation' interceptor must be applied to action", type="Boolean", + defaultValue = "false") + public void setValidate(String validate) { + this.validate = validate; + } + + @StrutsTagAttribute(description = "Make an asynchronous request if validation succeeds. Only valid is 'validate' is 'true'", type="Boolean", + defaultValue = "false") + public void setAjaxAfterValidation(String ajaxAfterValidation) { + this.ajaxAfterValidation = ajaxAfterValidation; + } +} \ No newline at end of file diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java index ba0f96f7a..6eb60dc61 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java @@ -23,6 +23,7 @@ package org.apache.struts2.dojo.components; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.struts2.components.Form; import org.apache.struts2.views.annotations.StrutsTag; import org.apache.struts2.views.annotations.StrutsTagAttribute; import org.apache.struts2.views.annotations.StrutsTagSkipInheritance; @@ -90,7 +91,7 @@ import com.opensymphony.xwork2.util.ValueStack; */ @StrutsTag(name="a", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.AnchorTag", description="Renders an HTML anchor element that when clicked calls a URL via remote XMLHttpRequest and updates " + "its targets content") -public class Anchor extends AbstractRemoteCallUIBean { +public class Anchor extends AbstractValidateBean { public static final String OPEN_TEMPLATE = "a"; public static final String TEMPLATE = "a-close"; public static final String COMPONENT_NAME = Anchor.class.getName(); @@ -112,7 +113,7 @@ public class Anchor extends AbstractRemoteCallUIBean { public void evaluateExtraParams() { super.evaluateExtraParams(); - if(targets != null) + if (targets != null) addParameter("targets", findString(targets)); } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java index 953c43126..bd583821e 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java @@ -55,7 +55,7 @@ import com.opensymphony.xwork2.util.ValueStack; */ @StrutsTag(name="bind", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.BindTag", description="Attach event listeners to elements to make AJAX calls") @StrutsTagSkipInheritance -public class Bind extends AbstractRemoteCallUIBean { +public class Bind extends AbstractValidateBean { public static final String TEMPLATE = "bind-close"; public static final String OPEN_TEMPLATE = "bind"; @@ -78,11 +78,11 @@ public class Bind extends AbstractRemoteCallUIBean { public void evaluateExtraParams() { super.evaluateExtraParams(); - if(targets != null) + if (targets != null) addParameter("targets", findString(targets)); - if(sources != null) + if (sources != null) addParameter("sources", findString(sources)); - if(events != null) + if (events != null) addParameter("events", findString(events)); } @@ -112,6 +112,8 @@ public class Bind extends AbstractRemoteCallUIBean { return "ajax"; } + //these attributes are overwritten here just for the TLD generation + @StrutsTagAttribute(description="Topic that will trigger the remote call") public void setListenTopics(String listenTopics) { this.listenTopics = listenTopics; @@ -221,4 +223,16 @@ public class Bind extends AbstractRemoteCallUIBean { public void setHighlightDuration(String highlightDuration) { this.highlightDuration = highlightDuration; } + + @StrutsTagAttribute(description = "Perform Ajax calidation. 'ajaxValidation' interceptor must be applied to action", type="Boolean", + defaultValue = "false") + public void setValidate(String validate) { + this.validate = validate; + } + + @StrutsTagAttribute(description = "Make an asynchronous request if validation succeeds. Only valid is 'validate' is 'true'", type="Boolean", + defaultValue = "false") + public void setAjaxAfterValidation(String ajaxAfterValidation) { + this.ajaxAfterValidation = ajaxAfterValidation; + } } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java index 9724b7fd5..ac2608008 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java @@ -59,7 +59,7 @@ import com.opensymphony.xwork2.util.ValueStack; * */ @StrutsTag(name="div", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.DivTag", description="Render HTML div providing content from remote call via AJAX") -public class Div extends AbstractRemoteCallUIBean { +public class Div extends AbstractRemoteBean { public static final String TEMPLATE = "div"; public static final String TEMPLATE_CLOSE = "div-close"; diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Form.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Form.java deleted file mode 100644 index 25a3305e6..000000000 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Form.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * "$Id$" - * - * 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. - */ -package org.apache.struts2.dojo.components; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.struts2.views.annotations.StrutsTag; -import org.apache.struts2.views.annotations.StrutsTagSkipInheritance; - -import com.opensymphony.xwork2.util.ValueStack; - -/** - * TODO - * - */ -@StrutsTag(name="form", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.FormTag", description="Renders an input form") -public class Form extends org.apache.struts2.components.Form { - - public Form(ValueStack stack, HttpServletRequest request, - HttpServletResponse response) { - super(stack, request, response); - } - - @Override - @StrutsTagSkipInheritance - public void setTheme(String theme) { - super.setTheme(theme); - } - - @Override - public String getTheme() { - return "ajax"; - } -} diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteUICallBean.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java similarity index 98% rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteUICallBean.java rename to plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java index def35f7d5..5f7e0fa1a 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteUICallBean.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java @@ -21,7 +21,7 @@ package org.apache.struts2.dojo.components; -public interface RemoteUICallBean { +public interface RemoteBean { void setListenTopics(String topics); diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java index 564428a67..fecb5fdef 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java @@ -27,6 +27,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.struts2.components.Form; import org.apache.struts2.components.FormButton; import org.apache.struts2.views.annotations.StrutsTag; import org.apache.struts2.views.annotations.StrutsTagAttribute; @@ -93,7 +94,7 @@ import com.opensymphony.xwork2.util.ValueStack; * */ @StrutsTag(name="submit", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.SubmitTag", description="Render a submit button") -public class Submit extends FormButton implements RemoteUICallBean { +public class Submit extends FormButton implements RemoteBean { private static final Log LOG = LogFactory.getLog(Submit.class); @@ -118,7 +119,9 @@ public class Submit extends FormButton implements RemoteUICallBean { protected String errorNotifyTopics; protected String highlightColor; protected String highlightDuration; - + protected String validate; + protected String ajaxAfterValidation; + public Submit(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { super(stack, request, response); } @@ -180,6 +183,19 @@ public class Submit extends FormButton implements RemoteUICallBean { addParameter("highlightColor", findString(highlightColor)); if (highlightDuration != null) addParameter("highlightDuration", findString(highlightDuration)); + + Boolean validateValue = false; + if (validate != null) { + validateValue = (Boolean) findValue(validate, Boolean.class); + addParameter("validate", validateValue); + } + + Form form = (Form) findAncestor(Form.class); + if (form != null) + addParameter("parentTheme", form.getTheme()); + + if (ajaxAfterValidation != null) + addParameter("ajaxAfterValidation", findValue(ajaxAfterValidation, Boolean.class)); } @Override @@ -353,4 +369,16 @@ public class Submit extends FormButton implements RemoteUICallBean { public void setHighlightDuration(String highlightDuration) { this.highlightDuration = highlightDuration; } + + @StrutsTagAttribute(description = "Perform Ajax calidation. 'ajaxValidation' interceptor must be applied to action", type="Boolean", + defaultValue = "false") + public void setValidate(String validate) { + this.validate = validate; + } + + @StrutsTagAttribute(description = "Make an asynchronous request if validation succeeds. Only valid is 'validate' is 'true'", type="Boolean", + defaultValue = "false") + public void setAjaxAfterValidation(String ajaxAfterValidation) { + this.ajaxAfterValidation = ajaxAfterValidation; + } } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java index b30bfccea..385de0588 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java @@ -12,7 +12,6 @@ import org.apache.struts2.dojo.views.velocity.components.AutocompleterDirective; import org.apache.struts2.dojo.views.velocity.components.BindDirective; import org.apache.struts2.dojo.views.velocity.components.DateTimePickerDirective; import org.apache.struts2.dojo.views.velocity.components.DivDirective; -import org.apache.struts2.dojo.views.velocity.components.FormDirective; import org.apache.struts2.dojo.views.velocity.components.HeadDirective; import org.apache.struts2.dojo.views.velocity.components.SubmitDirective; import org.apache.struts2.dojo.views.velocity.components.TabbedPanelDirective; @@ -40,7 +39,6 @@ public class DojoTagLibrary implements TagLibrary { TabbedPanelDirective.class, TreeDirective.class, TreeNodeDirective.class, - FormDirective.class, HeadDirective.class, BindDirective.class }; diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java index 8c6cc03f7..454acecbf 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java @@ -18,7 +18,6 @@ public class DojoModels { protected DivModel div; protected AnchorModel a; protected SubmitModel submit; - protected FormModel form; protected BindModel bind; private ValueStack stack; @@ -47,14 +46,6 @@ public class DojoModels { return dateTimePicker; } - public FormModel getForm() { - if (form == null) { - form = new FormModel(stack, req, res); - } - - return form; - } - public AutocompleterModel getAutocompleter() { if (autocompleter == null) { autocompleter = new AutocompleterModel(stack, req, res); @@ -63,7 +54,7 @@ public class DojoModels { return autocompleter; } - public TabbedPanelModel getTabbedpanelModel() { + public TabbedPanelModel getTabbedpanel() { if (tabbedPanel == null) { tabbedPanel = new TabbedPanelModel(stack, req, res); } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/FormModel.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/FormModel.java deleted file mode 100644 index 056c10505..000000000 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/FormModel.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * "$Id$" - * - * 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. - */ -package org.apache.struts2.dojo.views.freemarker.tags; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.struts2.components.Component; -import org.apache.struts2.dojo.components.Form; -import org.apache.struts2.views.freemarker.tags.TextFieldModel; - -import com.opensymphony.xwork2.util.ValueStack; - -/** - * @see Form - */ -public class FormModel extends TextFieldModel { - - public FormModel(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { - super(stack, req, res); - } - - protected Component getBean() { - return new Form(stack, req, res); - } -} \ No newline at end of file diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteCallUITag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteTag.java similarity index 95% rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteCallUITag.java rename to plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteTag.java index b33ce380f..8883e403c 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteCallUITag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteTag.java @@ -17,10 +17,10 @@ */ package org.apache.struts2.dojo.views.jsp.ui; -import org.apache.struts2.dojo.components.RemoteUICallBean; +import org.apache.struts2.dojo.components.RemoteBean; import org.apache.struts2.views.jsp.ui.AbstractClosingTag; -public abstract class AbstractRemoteCallUITag extends AbstractClosingTag { +public abstract class AbstractRemoteTag extends AbstractClosingTag { protected String href; protected String listenTopics; @@ -43,7 +43,7 @@ public abstract class AbstractRemoteCallUITag extends AbstractClosingTag { protected void populateParams() { super.populateParams(); - RemoteUICallBean remote = (RemoteUICallBean) component; + RemoteBean remote = (RemoteBean) component; remote.setHref(href); remote.setListenTopics(listenTopics); remote.setLoadingText(loadingText); diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractValidateTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractValidateTag.java new file mode 100644 index 000000000..6d06e4a1e --- /dev/null +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractValidateTag.java @@ -0,0 +1,45 @@ +/* + * $Id$ + * + * Copyright 2006 The Apache Software Foundation. + * + * Licensed 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. + */ +package org.apache.struts2.dojo.views.jsp.ui; + +import org.apache.struts2.dojo.components.AbstractValidateBean; + +/** + * @see AbstractValidateTag + */ +public abstract class AbstractValidateTag extends AbstractRemoteTag { + protected String validate; + protected String ajaxAfterValidation; + + protected void populateParams() { + super.populateParams(); + + AbstractValidateBean validateBean = (AbstractValidateBean) component; + validateBean.setValidate(validate); + validateBean.setAjaxAfterValidation(ajaxAfterValidation); + } + + public void setAjaxAfterValidation(String ajaxAfterValidation) { + this.ajaxAfterValidation = ajaxAfterValidation; + } + + public void setValidate(String validate) { + this.validate = validate; + } + +} diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java index ef0edbddf..0f87b9c98 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java @@ -31,13 +31,12 @@ import com.opensymphony.xwork2.util.ValueStack; /** * @see Anchor */ -public class AnchorTag extends AbstractRemoteCallUITag { +public class AnchorTag extends AbstractValidateTag { private static final long serialVersionUID = -1034616578492431113L; protected String targets; - protected String preInvokeJS; - + public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Anchor(stack, req, res); } @@ -47,6 +46,7 @@ public class AnchorTag extends AbstractRemoteCallUITag { Anchor link = (Anchor) component; link.setTargets(targets); + link.setValidate(validate); } public void setTargets(String targets) { diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/BindTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/BindTag.java index 154f355ab..c14bf4d07 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/BindTag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/BindTag.java @@ -28,11 +28,11 @@ import org.apache.struts2.dojo.components.Bind; import com.opensymphony.xwork2.util.ValueStack; -public class BindTag extends AbstractRemoteCallUITag { +public class BindTag extends AbstractValidateTag { protected String targets; protected String sources; protected String events; - + public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Bind(stack, req, res); } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java index 7dc844d13..f487ff72d 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java @@ -28,7 +28,7 @@ import org.apache.struts2.dojo.components.Div; import com.opensymphony.xwork2.util.ValueStack; -public class DivTag extends AbstractRemoteCallUITag { +public class DivTag extends AbstractRemoteTag { private static final long serialVersionUID = 5309231035916461758L; diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/FormTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/FormTag.java deleted file mode 100644 index 08d3ba385..000000000 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/FormTag.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * "$Id$" - * - * 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. - */ -package org.apache.struts2.dojo.views.jsp.ui; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.struts2.components.Component; -import org.apache.struts2.dojo.components.Form; - -import com.opensymphony.xwork2.util.ValueStack; - - -public class FormTag extends org.apache.struts2.views.jsp.ui.FormTag{ - - @Override - public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { - return new Form(stack, req, res); - } - -} diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java index 6b4242c0e..fcabcf662 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java @@ -59,7 +59,9 @@ public class SubmitTag extends AbstractUITag { protected String errorNotifyTopics; protected String highlightColor; protected String highlightDuration; - + protected String validate; + protected String ajaxAfterValidation; + public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Submit(stack, req, res); } @@ -91,6 +93,8 @@ public class SubmitTag extends AbstractUITag { submit.setErrorNotifyTopics(errorNotifyTopics); submit.setHighlightColor(highlightColor); submit.setHighlightDuration(highlightDuration); + submit.setValidate(validate); + submit.setAjaxAfterValidation(ajaxAfterValidation); } public void setAction(String action) { @@ -188,4 +192,12 @@ public class SubmitTag extends AbstractUITag { public void setHighlightDuration(String highlightDuration) { this.highlightDuration = highlightDuration; } + + public void setValidate(String validate) { + this.validate = validate; + } + + public void setAjaxAfterValidation(String ajaxAfterValidation) { + this.ajaxAfterValidation = ajaxAfterValidation; + } } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/FormDirective.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/FormDirective.java deleted file mode 100644 index 637973894..000000000 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/FormDirective.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id$ - * - * 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. - */ -package org.apache.struts2.dojo.views.velocity.components; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.struts2.components.Component; -import org.apache.struts2.dojo.components.Form; - -import com.opensymphony.xwork2.util.ValueStack; - -/** - * @see Form - */ -public class FormDirective { - protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { - return new Form(stack, req, res); - } -} diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js index 5b923719e..f89d9aa6c 100644 --- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js +++ b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js @@ -42,7 +42,10 @@ dojo.widget.defineWidget( highlightColor : "", highlightDuration : 2000, - + + validate : false, + ajaxAfterValidation : false, + postCreate : function() { var self = this; @@ -149,38 +152,57 @@ dojo.widget.defineWidget( }); } }, - + bindHandler : function(type, data, e) { - //hide indicator - dojo.html.hide(this.indicator); - - //publish topics - this.notify(data, type, e); - - if(type == "load") { - if(this.executeScripts) { - //update targets content - var parsed = this.parse(data); - //eval scripts - if(parsed.scripts && parsed.scripts.length > 0) { - var scripts = ""; - for(var i = 0; i < parsed.scripts.length; i++){ - scripts += parsed.scripts[i]; - } - (new Function('_container_', scripts+'; return this;'))(this); - } - this.setContent(parsed.text); - } - else { - this.setContent(data); - } - this.highlight(); - } else { - if(this.showError) { - var message = dojo.string.isBlank(this.errorText) ? e.message : this.errorText; - this.setContent(message); - } - } + //hide indicator + dojo.html.hide(this.indicator); + + //publish topics + this.notify(data, type, e); + + if(type == "load") { + if(this.validate) { + StrutsUtils.clearValidationErrors(this.formNode); + //validation is active for this action + var errors = StrutsUtils.getValidationErrors(data); + if(errors && errors.fieldErrors) { + //validation failed + StrutsUtils.showValidationErrors(this.formNode, errors); + return; + } else { + //validation passed + if(!this.ajaxAfterValidation && this.formNode) { + //regular submit + this.formNode.submit(); + return; + } + } + } + + // no validation or validation passed + if(this.executeScripts) { + //update targets content + var parsed = this.parse(data); + //eval scripts + if(parsed.scripts && parsed.scripts.length > 0) { + var scripts = ""; + for(var i = 0; i < parsed.scripts.length; i++){ + scripts += parsed.scripts[i]; + } + (new Function('_container_', scripts+'; return this;'))(this); + } + this.setContent(parsed.text); + } + else { + this.setContent(data); + } + this.highlight(); + } else { + if(this.showError) { + var message = dojo.string.isBlank(this.errorText) ? e.message : this.errorText; + this.setContent(message); + } + } }, notify : function(data, type, e) { @@ -254,8 +276,9 @@ dojo.widget.defineWidget( } //if there is a parent form, and it has a "onsubmit" - //execute it, validation is usually there - if(this.formNode && this.formNode.onsubmit != null) { + //execute it, validation is usually there, except is validation == true + //on which case it is ajax validation, instead of client side + if(!this.validate && this.formNode && this.formNode.onsubmit != null) { var makeRequest = this.formNode.onsubmit.call(evt); if(makeRequest != null && !makeRequest) { this.log("Request canceled by 'onsubmit' of the form"); @@ -268,9 +291,14 @@ dojo.widget.defineWidget( if(this.showLoading) { this.setContent(this.loadingText); } + + var tmpHref = this.href; + if(!this.ajaxAfterValidation) { + tmpHref = tmpHref + (tmpHref.indexOf("?") > -1 ? "&" : "?") + "validateOnly=true"; + } dojo.io.bind({ - url: this.href, + url: tmpHref, useCache: false, preventCache: true, formNode: self.formNode, diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js index 1f217a80b..1627542a3 100644 --- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js +++ b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js @@ -13599,7 +13599,7 @@ self.addKeyHandler(item[1]?item[1]:item[0].charAt(0),item[2]==undefined?self.KEY }); }}); dojo.provide("struts.widget.Bind"); -dojo.widget.defineWidget("struts.widget.Bind",dojo.widget.HtmlWidget,{widgetType:"Bind",executeScripts:false,targets:"",targetsArray:null,href:"",handler:"",loadingText:"Loading...",errorText:"",showError:true,showLoading:true,listenTopics:"",notifyTopics:"",notifyTopicsArray:null,beforeNotifyTopics:"",beforeNotifyTopicsArray:null,afterNotifyTopics:"",afterNotifyTopicsArray:null,errorNotifyTopics:"",errorNotifyTopicsArray:null,formId:"",formFilter:"",formNode:null,events:"",indicator:"",parseContent:true,highlightColor:"",highlightDuration:2000,postCreate:function(){ +dojo.widget.defineWidget("struts.widget.Bind",dojo.widget.HtmlWidget,{widgetType:"Bind",executeScripts:false,targets:"",targetsArray:null,href:"",handler:"",loadingText:"Loading...",errorText:"",showError:true,showLoading:true,listenTopics:"",notifyTopics:"",notifyTopicsArray:null,beforeNotifyTopics:"",beforeNotifyTopicsArray:null,afterNotifyTopics:"",afterNotifyTopicsArray:null,errorNotifyTopics:"",errorNotifyTopicsArray:null,formId:"",formFilter:"",formNode:null,events:"",indicator:"",parseContent:true,highlightColor:"",highlightDuration:2000,validate:false,ajaxAfterValidation:false,postCreate:function(){ var self=this; if(!dojo.string.isBlank(this.listenTopics)){ this.log("Listening to "+this.listenTopics+" to refresh"); @@ -13683,66 +13683,79 @@ self.log("Unable to find target: "+node); dojo.html.hide(this.indicator); this.notify(data,type,e); if(type=="load"){ +if(this.validate){ +StrutsUtils.clearValidationErrors(this.formNode); +var _b86=StrutsUtils.getValidationErrors(data); +if(_b86&&_b86.fieldErrors){ +StrutsUtils.showValidationErrors(this.formNode,_b86); +return; +}else{ +if(!this.ajaxAfterValidation&&this.formNode){ +this.formNode.submit(); +return; +} +} +} if(this.executeScripts){ -var _b86=this.parse(data); -if(_b86.scripts&&_b86.scripts.length>0){ -var _b87=""; -for(var i=0;i<_b86.scripts.length;i++){ -_b87+=_b86.scripts[i]; +var _b87=this.parse(data); +if(_b87.scripts&&_b87.scripts.length>0){ +var _b88=""; +for(var i=0;i<_b87.scripts.length;i++){ +_b88+=_b87.scripts[i]; } -(new Function("_container_",_b87+"; return this;"))(this); +(new Function("_container_",_b88+"; return this;"))(this); } -this.setContent(_b86.text); +this.setContent(_b87.text); }else{ this.setContent(data); } this.highlight(); }else{ if(this.showError){ -var _b89=dojo.string.isBlank(this.errorText)?e.message:this.errorText; -this.setContent(_b89); +var _b8a=dojo.string.isBlank(this.errorText)?e.message:this.errorText; +this.setContent(_b8a); } } },notify:function(data,type,e){ var self=this; if(this.notifyTopicsArray){ -dojo.lang.forEach(this.notifyTopicsArray,function(_b8e){ +dojo.lang.forEach(this.notifyTopicsArray,function(_b8f){ try{ -dojo.event.topic.publish(_b8e,data,type,e); +dojo.event.topic.publish(_b8f,data,type,e); } catch(ex){ self.log(ex); } }); } -var _b8f=null; +var _b90=null; switch(type){ case "before": -_b8f=this.beforeNotifyTopicsArray; +_b90=this.beforeNotifyTopicsArray; break; case "load": -_b8f=this.afterNotifyTopicsArray; +_b90=this.afterNotifyTopicsArray; break; case "error": -_b8f=this.errorNotifyTopicsArray; +_b90=this.errorNotifyTopicsArray; break; } -this.notifyTo(_b8f,data,type,e); -},notifyTo:function(_b90,data,type,e){ +this.notifyTo(_b90,data,type,e); +},notifyTo:function(_b91,data,type,e){ var self=this; -if(_b90){ -dojo.lang.forEach(_b90,function(_b95){ +if(_b91){ +dojo.lang.forEach(_b91,function(_b96){ try{ -dojo.event.topic.publish(_b95,data,type,e); +dojo.event.topic.publish(_b96,data,type,e); } catch(ex){ self.log(ex); } }); } -},onDownloadStart:function(_b96){ +},onDownloadStart:function(_b97){ if(this.showLoading&&!dojo.string.isBlank(this.loadingText)){ -_b96.text=this.loadingText; +_b97.text=this.loadingText; } },reloadContents:function(evt){ if(!dojo.string.isBlank(this.handler)){ @@ -13751,18 +13764,18 @@ window[this.handler](this,this.domNode); }else{ try{ var self=this; -var _b99={cancel:false}; -this.notify(this.widgetId,"before",_b99); -if(_b99.cancel){ +var _b9a={cancel:false}; +this.notify(this.widgetId,"before",_b9a); +if(_b9a.cancel){ this.log("Request canceled"); return; } if(dojo.string.isBlank(this.href)){ return; } -if(this.formNode&&this.formNode.onsubmit!=null){ -var _b9a=this.formNode.onsubmit.call(evt); -if(_b9a!=null&&!_b9a){ +if(!this.validate&&this.formNode&&this.formNode.onsubmit!=null){ +var _b9b=this.formNode.onsubmit.call(evt); +if(_b9b!=null&&!_b9b){ this.log("Request canceled by 'onsubmit' of the form"); return; } @@ -13771,29 +13784,33 @@ dojo.html.show(this.indicator); if(this.showLoading){ this.setContent(this.loadingText); } -dojo.io.bind({url:this.href,useCache:false,preventCache:true,formNode:self.formNode,formFilter:window[self.formFilter],handler:function(type,data,e){ +var _b9c=this.href; +if(!this.ajaxAfterValidation){ +_b9c=_b9c+(_b9c.indexOf("?")>-1?"&":"?")+"validateOnly=true"; +} +dojo.io.bind({url:_b9c,useCache:false,preventCache:true,formNode:self.formNode,formFilter:window[self.formFilter],handler:function(type,data,e){ dojo.lang.hitch(self,"bindHandler")(type,data,e); },mimetype:"text/html"}); } catch(ex){ if(this.showError){ -var _b9e=dojo.string.isBlank(this.errorText)?ex:this.errorText; -this.setContent(_b9e); +var _ba0=dojo.string.isBlank(this.errorText)?ex:this.errorText; +this.setContent(_ba0); } } } },parse:function(s){ this.log("Parsing: "+s); -var _ba0=[]; -var tmp=[]; var _ba2=[]; -while(_ba0){ -_ba0=s.match(/]*)>([\s\S]*?)<\/script>/i); -if(!_ba0){ +var tmp=[]; +var _ba4=[]; +while(_ba2){ +_ba2=s.match(/]*)>([\s\S]*?)<\/script>/i); +if(!_ba2){ break; } -if(_ba0[1]){ -attr=_ba0[1].match(/src=(['"]?)([^"']*)\1/i); +if(_ba2[1]){ +attr=_ba2[1].match(/src=(['"]?)([^"']*)\1/i); if(attr){ var tmp2=attr[2].search(/.*(\bdojo\b(?:\.uncompressed)?\.js)$/); if(tmp2>-1){ @@ -13801,8 +13818,8 @@ this.log("Security note! inhibit:"+attr[2]+" from beeing loaded again."); } } } -if(_ba0[2]){ -var sc=_ba0[2].replace(/(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g,""); +if(_ba2[2]){ +var sc=_ba2[2].replace(/(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g,""); if(!sc){ continue; } @@ -13814,26 +13831,26 @@ break; } sc=sc.replace(tmp[0],""); } -_ba2.push(sc); +_ba4.push(sc); } s=s.replace(/]*>[\s\S]*?<\/script>/i,""); } -return {text:s,scripts:_ba2}; +return {text:s,scripts:_ba4}; }}); dojo.provide("dojo.lang.timing.Timer"); -dojo.lang.timing.Timer=function(_ba5){ +dojo.lang.timing.Timer=function(_ba7){ this.timer=null; this.isRunning=false; -this.interval=_ba5; +this.interval=_ba7; this.onStart=null; this.onStop=null; }; dojo.extend(dojo.lang.timing.Timer,{onTick:function(){ -},setInterval:function(_ba6){ +},setInterval:function(_ba8){ if(this.isRunning){ dj_global.clearInterval(this.timer); } -this.interval=_ba6; +this.interval=_ba8; if(this.isRunning){ this.timer=dj_global.setInterval(dojo.lang.hitch(this,"onTick"),this.interval); } @@ -13851,64 +13868,64 @@ this.isRunning=false; dj_global.clearInterval(this.timer); }}); dojo.provide("struts.widget.BindDiv"); -dojo.widget.defineWidget("struts.widget.BindDiv",dojo.widget.ContentPane,{widgetType:"BindDiv",href:"",extractContent:false,parseContent:false,cacheContent:false,refreshOnShow:false,executeScripts:false,preload:true,updateFreq:0,delay:0,autoStart:true,timer:null,loadingText:"Loading...",showLoading:true,errorText:"",showError:true,listenTopics:"",notifyTopics:"",notifyTopicsArray:null,stopTimerListenTopics:"",startTimerListenTopics:"",beforeNotifyTopics:"",beforeNotifyTopicsArray:null,afterNotifyTopics:"",afterNotifyTopicsArray:null,errorNotifyTopics:"",errorNotifyTopicsArray:null,beforeLoading:"",afterLoading:"",formId:"",formFilter:"",indicator:"",parseContent:true,highlightColor:"",highlightDuration:2000,onDownloadStart:function(_ba7){ +dojo.widget.defineWidget("struts.widget.BindDiv",dojo.widget.ContentPane,{widgetType:"BindDiv",href:"",extractContent:false,parseContent:false,cacheContent:false,refreshOnShow:false,executeScripts:false,preload:true,updateFreq:0,delay:0,autoStart:true,timer:null,loadingText:"Loading...",showLoading:true,errorText:"",showError:true,listenTopics:"",notifyTopics:"",notifyTopicsArray:null,stopTimerListenTopics:"",startTimerListenTopics:"",beforeNotifyTopics:"",beforeNotifyTopicsArray:null,afterNotifyTopics:"",afterNotifyTopicsArray:null,errorNotifyTopics:"",errorNotifyTopicsArray:null,beforeLoading:"",afterLoading:"",formId:"",formFilter:"",indicator:"",parseContent:true,highlightColor:"",highlightDuration:2000,onDownloadStart:function(_ba9){ if(!this.showLoading){ -_ba7.returnValue=false; +_ba9.returnValue=false; return; } if(this.showLoading&&!dojo.string.isBlank(this.loadingText)){ -_ba7.text=this.loadingText; +_ba9.text=this.loadingText; } },highlight:function(){ if(!dojo.string.isBlank(this.highlightColor)){ -var _ba8=dojo.lfx.html.highlight([this.domNode],this.highlightColor,this.highlightDuration); -_ba8.play(); +var _baa=dojo.lfx.html.highlight([this.domNode],this.highlightColor,this.highlightDuration); +_baa.play(); } -},onDownloadError:function(_ba9){ -this.onError(_ba9); -},onContentError:function(_baa){ -this.onError(_baa); -},onExecError:function(_bab){ +},onDownloadError:function(_bab){ this.onError(_bab); -},onError:function(_bac){ +},onContentError:function(_bac){ +this.onError(_bac); +},onExecError:function(_bad){ +this.onError(_bad); +},onError:function(_bae){ if(this.showError){ if(!dojo.string.isBlank(this.errorText)){ -_bac.text=this.errorText; +_bae.text=this.errorText; } }else{ -_bac.text=""; +_bae.text=""; } },notify:function(data,type,e){ if(this.notifyTopicsArray){ var self=this; -dojo.lang.forEach(this.notifyTopicsArray,function(_bb1){ +dojo.lang.forEach(this.notifyTopicsArray,function(_bb3){ try{ -dojo.event.topic.publish(_bb1,data,type,e); +dojo.event.topic.publish(_bb3,data,type,e); } catch(ex){ self.log(ex); } }); } -var _bb2=null; +var _bb4=null; switch(type){ case "before": -_bb2=this.beforeNotifyTopicsArray; +_bb4=this.beforeNotifyTopicsArray; break; case "load": -_bb2=this.afterNotifyTopicsArray; +_bb4=this.afterNotifyTopicsArray; break; case "error": -_bb2=this.errorNotifyTopicsArray; +_bb4=this.errorNotifyTopicsArray; break; } -this.notifyTo(_bb2,data,type,e); -},notifyTo:function(_bb3,data,type,e){ +this.notifyTo(_bb4,data,type,e); +},notifyTo:function(_bb5,data,type,e){ var self=this; -if(_bb3){ -dojo.lang.forEach(_bb3,function(_bb8){ +if(_bb5){ +dojo.lang.forEach(_bb5,function(_bba){ try{ -dojo.event.topic.publish(_bb8,data,type,e); +dojo.event.topic.publish(_bba,data,type,e); } catch(ex){ self.log(ex); @@ -13920,51 +13937,51 @@ if(this.handler!==""){ this.setHandler(this.handler); } var self=this; -var _bbc=function(){ +var _bbe=function(){ dojo.lang.hitch(self,"refresh")(); }; -var _bbd=function(){ +var _bbf=function(){ dojo.lang.hitch(self,"startTimer")(); }; if(this.updateFreq>0){ this.timer=new dojo.lang.timing.Timer(this.updateFreq); -this.timer.onTick=_bbc; +this.timer.onTick=_bbe; if(this.autoStart){ if(this.delay>0){ -dojo.lang.setTimeout(_bbd,this.delay); +dojo.lang.setTimeout(_bbf,this.delay); }else{ this.startTimer(); } } }else{ if(this.delay>0){ -dojo.lang.setTimeout(_bbc,this.delay); +dojo.lang.setTimeout(_bbe,this.delay); } } if(!dojo.string.isBlank(this.listenTopics)){ this.log("Listening to "+this.listenTopics+" to refresh"); -var _bbe=this.listenTopics.split(","); -if(_bbe){ -dojo.lang.forEach(_bbe,function(_bbf){ -dojo.event.topic.subscribe(_bbf,self,"refresh"); +var _bc0=this.listenTopics.split(","); +if(_bc0){ +dojo.lang.forEach(_bc0,function(_bc1){ +dojo.event.topic.subscribe(_bc1,self,"refresh"); }); } } if(!dojo.string.isBlank(this.stopTimerListenTopics)){ this.log("Listening to "+this.stopTimerListenTopics+" to stop timer"); -var _bc0=this.stopTimerListenTopics.split(","); -if(_bc0){ -dojo.lang.forEach(_bc0,function(_bc1){ -dojo.event.topic.subscribe(_bc1,self,"stopTimer"); +var _bc2=this.stopTimerListenTopics.split(","); +if(_bc2){ +dojo.lang.forEach(_bc2,function(_bc3){ +dojo.event.topic.subscribe(_bc3,self,"stopTimer"); }); } } if(!dojo.string.isBlank(this.startTimerListenTopics)){ this.log("Listening to "+this.stopTimerListenTopics+" to start timer"); -var _bc2=this.startTimerListenTopics.split(","); -if(_bc2){ -dojo.lang.forEach(_bc2,function(_bc3){ -dojo.event.topic.subscribe(_bc3,self,"startTimer"); +var _bc4=this.startTimerListenTopics.split(","); +if(_bc4){ +dojo.lang.forEach(_bc4,function(_bc5){ +dojo.event.topic.subscribe(_bc5,self,"startTimer"); }); } } @@ -13983,16 +14000,16 @@ this.errorNotifyTopicsArray=this.errorNotifyTopics.split(","); if(this.isShowing()&&this.preload&&this.updateFreq<=0&&this.delay<=0){ this.refresh(); } -},_downloadExternalContent:function(url,_bc5){ -var _bc6={cancel:false}; -this.notify(this.widgetId,"before",_bc6); -if(_bc6.cancel){ +},_downloadExternalContent:function(url,_bc7){ +var _bc8={cancel:false}; +this.notify(this.widgetId,"before",_bc8); +if(_bc8.cancel){ return; } dojo.html.show(this.indicator); this._handleDefaults("Loading...","onDownloadStart"); var self=this; -dojo.io.bind({url:url,useCache:_bc5,preventCache:!_bc5,mimetype:"text/html",formNode:dojo.byId(self.formId),formFilter:window[self.formFilter],handler:function(type,data,e){ +dojo.io.bind({url:url,useCache:_bc7,preventCache:!_bc7,mimetype:"text/html",formNode:dojo.byId(self.formId),formFilter:window[self.formFilter],handler:function(type,data,e){ dojo.html.hide(self.indicator); self.notify(data,type,e); if(type=="load"){ @@ -14016,109 +14033,109 @@ this.log("starting timer with update interval "+this.updateFreq); this.timer.start(); } },splitAndFixPaths:function(s,url){ -var _bce=[],_bcf=[],tmp=[]; -var _bd1=[],_bd2=[],attr=[],_bd4=[]; -var str="",path="",fix="",_bd8="",tag="",_bda=""; +var _bd0=[],_bd1=[],tmp=[]; +var _bd3=[],_bd4=[],attr=[],_bd6=[]; +var str="",path="",fix="",_bda="",tag="",_bdc=""; if(!url){ url="./"; } if(s){ -var _bdb=/]*>([\s\S]*?)<\/title>/i; -while(_bd1=_bdb.exec(s)){ -_bce.push(_bd1[1]); -s=s.substring(0,_bd1.index)+s.substr(_bd1.index+_bd1[0].length); +var _bdd=/]*>([\s\S]*?)<\/title>/i; +while(_bd3=_bdd.exec(s)){ +_bd0.push(_bd3[1]); +s=s.substring(0,_bd3.index)+s.substr(_bd3.index+_bd3[0].length); } if(this.adjustPaths){ -var _bdc=/<[a-z][a-z0-9]*[^>]*\s(?:(?:src|href|style)=[^>])+[^>]*>/i; -var _bdd=/\s(src|href|style)=(['"]?)([\w()\[\]\/.,\\'"-:;#=&?\s@!]+?)\2/i; -var _bde=/^(?:[#]|(?:(?:https?|ftps?|file|javascript|mailto|news):))/; -while(tag=_bdc.exec(s)){ +var _bde=/<[a-z][a-z0-9]*[^>]*\s(?:(?:src|href|style)=[^>])+[^>]*>/i; +var _bdf=/\s(src|href|style)=(['"]?)([\w()\[\]\/.,\\'"-:;#=&?\s@!]+?)\2/i; +var _be0=/^(?:[#]|(?:(?:https?|ftps?|file|javascript|mailto|news):))/; +while(tag=_bde.exec(s)){ str+=s.substring(0,tag.index); s=s.substring((tag.index+tag[0].length),s.length); tag=tag[0]; -_bd8=""; -while(attr=_bdd.exec(tag)){ +_bda=""; +while(attr=_bdf.exec(tag)){ path=""; -_bda=attr[3]; +_bdc=attr[3]; switch(attr[1].toLowerCase()){ case "src": case "href": -if(_bde.exec(_bda)){ -path=_bda; +if(_be0.exec(_bdc)){ +path=_bdc; }else{ -path=(new dojo.uri.Uri(url,_bda).toString()); +path=(new dojo.uri.Uri(url,_bdc).toString()); } break; case "style": -path=dojo.html.fixPathsInCssText(_bda,url); +path=dojo.html.fixPathsInCssText(_bdc,url); break; default: -path=_bda; +path=_bdc; } fix=" "+attr[1]+"="+attr[2]+path+attr[2]; -_bd8+=tag.substring(0,attr.index)+fix; +_bda+=tag.substring(0,attr.index)+fix; tag=tag.substring((attr.index+attr[0].length),tag.length); } -str+=_bd8+tag; +str+=_bda+tag; } s=str+s; } -_bdb=/(?:<(style)[^>]*>([\s\S]*?)<\/style>|]*rel=['"]?stylesheet['"]?[^>]*)>)/i; -while(_bd1=_bdb.exec(s)){ -if(_bd1[1]&&_bd1[1].toLowerCase()=="style"){ -_bd4.push(dojo.html.fixPathsInCssText(_bd1[2],url)); +_bdd=/(?:<(style)[^>]*>([\s\S]*?)<\/style>|]*rel=['"]?stylesheet['"]?[^>]*)>)/i; +while(_bd3=_bdd.exec(s)){ +if(_bd3[1]&&_bd3[1].toLowerCase()=="style"){ +_bd6.push(dojo.html.fixPathsInCssText(_bd3[2],url)); }else{ -if(attr=_bd1[3].match(/href=(['"]?)([^'">]*)\1/i)){ -_bd4.push({path:attr[2]}); +if(attr=_bd3[3].match(/href=(['"]?)([^'">]*)\1/i)){ +_bd6.push({path:attr[2]}); } } -s=s.substring(0,_bd1.index)+s.substr(_bd1.index+_bd1[0].length); +s=s.substring(0,_bd3.index)+s.substr(_bd3.index+_bd3[0].length); } -var _bdb=/]*)>([\s\S]*?)<\/script>/i; -var _bdf=/src=(['"]?)([^"']*)\1/i; -var _be0=/.*(\bdojo\b\.js(?:\.uncompressed\.js)?)$/; -var _be1=/(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g; -var _be2=/dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?setModulePrefix|registerModulePath)|defineNamespace)\((['"]).*?\1\)\s*;?/; -while(_bd1=_bdb.exec(s)){ -if(this.executeScripts&&_bd1[1]){ -if(attr=_bdf.exec(_bd1[1])){ -if(_be0.exec(attr[2])){ +var _bdd=/]*)>([\s\S]*?)<\/script>/i; +var _be1=/src=(['"]?)([^"']*)\1/i; +var _be2=/.*(\bdojo\b\.js(?:\.uncompressed\.js)?)$/; +var _be3=/(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g; +var _be4=/dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?setModulePrefix|registerModulePath)|defineNamespace)\((['"]).*?\1\)\s*;?/; +while(_bd3=_bdd.exec(s)){ +if(this.executeScripts&&_bd3[1]){ +if(attr=_be1.exec(_bd3[1])){ +if(_be2.exec(attr[2])){ dojo.debug("Security note! inhibit:"+attr[2]+" from being loaded again."); }else{ -_bcf.push({path:attr[2]}); +_bd1.push({path:attr[2]}); } } } -if(_bd1[2]){ -var sc=_bd1[2].replace(_be1,""); +if(_bd3[2]){ +var sc=_bd3[2].replace(_be3,""); if(!sc){ continue; } -while(tmp=_be2.exec(sc)){ -_bd2.push(tmp[0]); +while(tmp=_be4.exec(sc)){ +_bd4.push(tmp[0]); sc=sc.substring(0,tmp.index)+sc.substr(tmp.index+tmp[0].length); } if(this.executeScripts){ -_bcf.push(sc); +_bd1.push(sc); } } -s=s.substr(0,_bd1.index)+s.substr(_bd1.index+_bd1[0].length); +s=s.substr(0,_bd3.index)+s.substr(_bd3.index+_bd3[0].length); } if(this.extractContent){ -_bd1=s.match(/]*>\s*([\s\S]+)\s*<\/body>/im); -if(_bd1){ -s=_bd1[1]; +_bd3=s.match(/]*>\s*([\s\S]+)\s*<\/body>/im); +if(_bd3){ +s=_bd3[1]; } } if(this.executeScripts&&this.scriptSeparation){ -var _bdb=/(<[a-zA-Z][a-zA-Z0-9]*\s[^>]*?\S=)((['"])[^>]*scriptScope[^>]*>)/; -var _be4=/([\s'";:\(])scriptScope(.*)/; +var _bdd=/(<[a-zA-Z][a-zA-Z0-9]*\s[^>]*?\S=)((['"])[^>]*scriptScope[^>]*>)/; +var _be6=/([\s'";:\(])scriptScope(.*)/; str=""; -while(tag=_bdb.exec(s)){ +while(tag=_bdd.exec(s)){ tmp=((tag[3]=="'")?"\"":"'"); fix=""; str+=s.substring(0,tag.index)+tag[1]; -while(attr=_be4.exec(tag[2])){ +while(attr=_be6.exec(tag[2])){ tag[2]=tag[2].substring(0,attr.index)+attr[1]+"dojo.widget.byId("+tmp+this.widgetId+tmp+").scriptScope"+attr[2]; } str+=tag[2]; @@ -14127,7 +14144,7 @@ s=s.substr(tag.index+tag[0].length); s=str+s; } } -return {"xml":s,"styles":_bd4,"titles":_bce,"requires":_bd2,"scripts":_bcf,"url":url}; +return {"xml":s,"styles":_bd6,"titles":_bd0,"requires":_bd4,"scripts":_bd1,"url":url}; }}); dojo.provide("struts.widget.BindAnchor"); dojo.widget.defineWidget("struts.widget.BindAnchor",struts.widget.Bind,{widgetType:"BindAnchor",events:"onclick",postCreate:function(){ @@ -14140,10 +14157,10 @@ dojo.widget.html.stabile.getState=function(id){ dojo.widget.html.stabile.setup(); return dojo.widget.html.stabile.widgetState[id]; }; -dojo.widget.html.stabile.setState=function(id,_be7,_be8){ +dojo.widget.html.stabile.setState=function(id,_be9,_bea){ dojo.widget.html.stabile.setup(); -dojo.widget.html.stabile.widgetState[id]=_be7; -if(_be8){ +dojo.widget.html.stabile.widgetState[id]=_be9; +if(_bea){ dojo.widget.html.stabile.commit(dojo.widget.html.stabile.widgetState); } }; @@ -14153,12 +14170,12 @@ var text=dojo.widget.html.stabile._getStorage().value; dojo.widget.html.stabile.widgetState=text?dj_eval("("+text+")"):{}; } }; -dojo.widget.html.stabile.commit=function(_bea){ -dojo.widget.html.stabile._getStorage().value=dojo.widget.html.stabile.description(_bea); +dojo.widget.html.stabile.commit=function(_bec){ +dojo.widget.html.stabile._getStorage().value=dojo.widget.html.stabile.description(_bec); }; -dojo.widget.html.stabile.description=function(v,_bec){ -var _bed=dojo.widget.html.stabile._depth; -var _bee=function(){ +dojo.widget.html.stabile.description=function(v,_bee){ +var _bef=dojo.widget.html.stabile._depth; +var _bf0=function(){ return this.description(this,true); }; try{ @@ -14182,53 +14199,53 @@ return "new Date("+d.getFullYear+","+d.getMonth()+","+d.getDate()+")"; } var d; if(v instanceof Array||v.push){ -if(_bed>=dojo.widget.html.stabile.depthLimit){ +if(_bef>=dojo.widget.html.stabile.depthLimit){ return "[ ... ]"; } d="["; -var _bf1=true; +var _bf3=true; dojo.widget.html.stabile._depth++; for(var i=0;i=dojo.widget.html.stabile.depthLimit){ +if(v.constructor==Object||v.toString==_bf0){ +if(_bef>=dojo.widget.html.stabile.depthLimit){ return "{ ... }"; } if(typeof (v.hasOwnProperty)!="function"&&v.prototype){ throw new Error("description: "+v+" not supported by script engine"); } -var _bf1=true; +var _bf3=true; d="{"; dojo.widget.html.stabile._depth++; for(var key in v){ if(v[key]==void (0)||typeof (v[key])=="function"){ continue; } -if(_bf1){ -_bf1=false; +if(_bf3){ +_bf3=false; }else{ d+=", "; } var kd=key; if(!kd.match(/^[a-zA-Z_][a-zA-Z0-9_]*$/)){ -kd=arguments.callee(key,_bec); +kd=arguments.callee(key,_bee); } -d+=kd+": "+arguments.callee(v[key],_bec); +d+=kd+": "+arguments.callee(v[key],_bee); } return d+"}"; } -if(_bec){ +if(_bee){ if(dojo.widget.html.stabile._recur){ -var _bf5=Object.prototype.toString; -return _bf5.apply(v,[]); +var _bf7=Object.prototype.toString; +return _bf7.apply(v,[]); }else{ dojo.widget.html.stabile._recur=true; return v.toString(); @@ -14239,7 +14256,7 @@ return "'unknown'"; } } finally{ -dojo.widget.html.stabile._depth=_bed; +dojo.widget.html.stabile._depth=_bef; } }; dojo.widget.html.stabile._getStorage=function(){ @@ -14250,45 +14267,45 @@ var form=document.forms._dojo_form; return dojo.widget.html.stabile.dataField=form?form.stabile:{value:""}; }; dojo.provide("dojo.widget.ComboBox"); -dojo.declare("dojo.widget.incrementalComboBoxDataProvider",null,function(_bf7){ -this.searchUrl=_bf7.dataUrl; +dojo.declare("dojo.widget.incrementalComboBoxDataProvider",null,function(_bf9){ +this.searchUrl=_bf9.dataUrl; this._cache={}; this._inFlight=false; this._lastRequest=null; this.allowCache=false; -},{_addToCache:function(_bf8,data){ +},{_addToCache:function(_bfa,data){ if(this.allowCache){ -this._cache[_bf8]=data; +this._cache[_bfa]=data; } -},startSearch:function(_bfa,_bfb){ +},startSearch:function(_bfc,_bfd){ if(this._inFlight){ } -var tss=encodeURIComponent(_bfa); -var _bfd=dojo.string.substituteParams(this.searchUrl,{"searchString":tss}); -var _bfe=this; -var _bff=this._lastRequest=dojo.io.bind({url:_bfd,method:"get",mimetype:"text/json",load:function(type,data,evt){ -_bfe._inFlight=false; +var tss=encodeURIComponent(_bfc); +var _bff=dojo.string.substituteParams(this.searchUrl,{"searchString":tss}); +var _c00=this; +var _c01=this._lastRequest=dojo.io.bind({url:_bff,method:"get",mimetype:"text/json",load:function(type,data,evt){ +_c00._inFlight=false; if(!dojo.lang.isArray(data)){ -var _c03=[]; +var _c05=[]; for(var key in data){ -_c03.push([data[key],key]); +_c05.push([data[key],key]); } -data=_c03; +data=_c05; } -_bfe._addToCache(_bfa,data); -if(_bff==_bfe._lastRequest){ -_bfb(data); +_c00._addToCache(_bfc,data); +if(_c01==_c00._lastRequest){ +_bfd(data); } }}); this._inFlight=true; }}); -dojo.declare("dojo.widget.basicComboBoxDataProvider",null,function(_c05,node){ +dojo.declare("dojo.widget.basicComboBoxDataProvider",null,function(_c07,node){ this._data=[]; this.searchLimit=30; this.searchType="STARTSTRING"; this.caseSensitive=false; -if(!dj_undef("dataUrl",_c05)&&!dojo.string.isBlank(_c05.dataUrl)){ -this._getData(_c05.dataUrl); +if(!dj_undef("dataUrl",_c07)&&!dojo.string.isBlank(_c07.dataUrl)){ +this._getData(_c07.dataUrl); }else{ if((node)&&(node.nodeName.toLowerCase()=="select")){ var opts=node.getElementsByTagName("option"); @@ -14296,10 +14313,10 @@ var ol=opts.length; var data=[]; for(var x=0;x0)&&(ret.length>=this.searchLimit)){ break; } -var _c1a=new String((!this.caseSensitive)?this._data[x][0].toLowerCase():this._data[x][0]); -if(_c1a.length<_c15.length){ +var _c1c=new String((!this.caseSensitive)?this._data[x][0].toLowerCase():this._data[x][0]); +if(_c1c.length<_c17.length){ continue; } if(st=="STARTSTRING"){ -if(_c15==_c1a.substr(0,_c15.length)){ +if(_c17==_c1c.substr(0,_c17.length)){ ret.push(this._data[x]); } }else{ if(st=="SUBSTRING"){ -if(_c1a.indexOf(_c15)>=0){ +if(_c1c.indexOf(_c17)>=0){ ret.push(this._data[x]); } }else{ if(st=="STARTWORD"){ -var idx=_c1a.indexOf(_c15); +var idx=_c1c.indexOf(_c17); if(idx==0){ ret.push(this._data[x]); } if(idx<=0){ continue; } -var _c1c=false; +var _c1e=false; while(idx!=-1){ -if(" ,/(".indexOf(_c1a.charAt(idx-1))!=-1){ -_c1c=true; +if(" ,/(".indexOf(_c1c.charAt(idx-1))!=-1){ +_c1e=true; break; } -idx=_c1a.indexOf(_c15,idx+1); +idx=_c1c.indexOf(_c17,idx+1); } -if(!_c1c){ +if(!_c1e){ continue; }else{ ret.push(this._data[x]); @@ -14367,37 +14384,37 @@ ret.push(this._data[x]); } } } -_c16(ret); -},setData:function(_c1d){ -this._data=_c1d; +_c18(ret); +},setData:function(_c1f){ +this._data=_c1f; }}); -dojo.widget.defineWidget("dojo.widget.ComboBox",dojo.widget.HtmlWidget,{forceValidOption:false,searchType:"stringstart",dataProvider:null,autoComplete:true,searchDelay:100,dataUrl:"",fadeTime:200,maxListLength:8,mode:"local",selectedResult:null,dataProviderClass:"",buttonSrc:dojo.uri.moduleUri("dojo.widget","templates/images/combo_box_arrow.png"),dropdownToggle:"fade",templatePath:dojo.uri.moduleUri("dojo.widget","templates/ComboBox.html"),templateCssPath:dojo.uri.moduleUri("dojo.widget","templates/ComboBox.css"),setValue:function(_c1e){ -this.comboBoxValue.value=_c1e; -if(this.textInputNode.value!=_c1e){ -this.textInputNode.value=_c1e; +dojo.widget.defineWidget("dojo.widget.ComboBox",dojo.widget.HtmlWidget,{forceValidOption:false,searchType:"stringstart",dataProvider:null,autoComplete:true,searchDelay:100,dataUrl:"",fadeTime:200,maxListLength:8,mode:"local",selectedResult:null,dataProviderClass:"",buttonSrc:dojo.uri.moduleUri("dojo.widget","templates/images/combo_box_arrow.png"),dropdownToggle:"fade",templatePath:dojo.uri.moduleUri("dojo.widget","templates/ComboBox.html"),templateCssPath:dojo.uri.moduleUri("dojo.widget","templates/ComboBox.css"),setValue:function(_c20){ +this.comboBoxValue.value=_c20; +if(this.textInputNode.value!=_c20){ +this.textInputNode.value=_c20; dojo.widget.html.stabile.setState(this.widgetId,this.getState(),true); -this.onValueChanged(_c1e); +this.onValueChanged(_c20); } -},onValueChanged:function(_c1f){ +},onValueChanged:function(_c21){ },getValue:function(){ return this.comboBoxValue.value; },getState:function(){ return {value:this.getValue()}; -},setState:function(_c20){ -this.setValue(_c20.value); +},setState:function(_c22){ +this.setValue(_c22.value); },enable:function(){ this.disabled=false; this.textInputNode.removeAttribute("disabled"); },disable:function(){ this.disabled=true; this.textInputNode.setAttribute("disabled",true); -},_getCaretPos:function(_c21){ -if(dojo.lang.isNumber(_c21.selectionStart)){ -return _c21.selectionStart; +},_getCaretPos:function(_c23){ +if(dojo.lang.isNumber(_c23.selectionStart)){ +return _c23.selectionStart; }else{ if(dojo.render.html.ie){ var tr=document.selection.createRange().duplicate(); -var ntr=_c21.createTextRange(); +var ntr=_c23.createTextRange(); tr.move("character",0); ntr.move("character",0); try{ @@ -14409,36 +14426,36 @@ return 0; } } } -},_setCaretPos:function(_c24,_c25){ -_c25=parseInt(_c25); -this._setSelectedRange(_c24,_c25,_c25); -},_setSelectedRange:function(_c26,_c27,end){ +},_setCaretPos:function(_c26,_c27){ +_c27=parseInt(_c27); +this._setSelectedRange(_c26,_c27,_c27); +},_setSelectedRange:function(_c28,_c29,end){ if(!end){ -end=_c26.value.length; +end=_c28.value.length; } -if(_c26.setSelectionRange){ -_c26.focus(); -_c26.setSelectionRange(_c27,end); +if(_c28.setSelectionRange){ +_c28.focus(); +_c28.setSelectionRange(_c29,end); }else{ -if(_c26.createTextRange){ -var _c29=_c26.createTextRange(); -with(_c29){ +if(_c28.createTextRange){ +var _c2b=_c28.createTextRange(); +with(_c2b){ collapse(true); moveEnd("character",end); -moveStart("character",_c27); +moveStart("character",_c29); select(); } }else{ -_c26.value=_c26.value; -_c26.blur(); -_c26.focus(); -var dist=parseInt(_c26.value.length)-end; -var _c2b=String.fromCharCode(37); -var tcc=_c2b.charCodeAt(0); +_c28.value=_c28.value; +_c28.blur(); +_c28.focus(); +var dist=parseInt(_c28.value.length)-end; +var _c2d=String.fromCharCode(37); +var tcc=_c2d.charCodeAt(0); for(var x=0;x0)){ +if((this.autoComplete)&&(_c42.length)&&(!this._prev_key_backspace)&&(this.textInputNode.value.length>0)){ var cpos=this._getCaretPos(this.textInputNode); if((cpos+1)>this.textInputNode.value.length){ -this.textInputNode.value+=_c40[0][0].substr(cpos); +this.textInputNode.value+=_c42[0][0].substr(cpos); this._setSelectedRange(this.textInputNode,cpos,this.textInputNode.value.length); } } var even=true; -while(_c40.length){ -var tr=_c40.shift(); +while(_c42.length){ +var tr=_c42.shift(); if(tr){ var td=document.createElement("div"); td.appendChild(document.createTextNode(tr[0])); @@ -14648,12 +14665,12 @@ this._hasFocus=true; },_onBlurInput:function(){ this._hasFocus=false; this._handleBlurTimer(true,500); -},_handleBlurTimer:function(_c45,_c46){ -if(this.blurTimer&&(_c45||_c46)){ +},_handleBlurTimer:function(_c47,_c48){ +if(this.blurTimer&&(_c47||_c48)){ clearTimeout(this.blurTimer); } -if(_c46){ -this.blurTimer=dojo.lang.setTimeout(this,"_checkBlurred",_c46); +if(_c48){ +this.blurTimer=dojo.lang.setTimeout(this,"_checkBlurred",_c48); } },_onMouseOver:function(evt){ if(!this._mouseover_list){ @@ -14661,9 +14678,9 @@ this._handleBlurTimer(true,0); this._mouseover_list=true; } },_onMouseOut:function(evt){ -var _c49=evt.relatedTarget; +var _c4b=evt.relatedTarget; try{ -if(!_c49||_c49.parentNode!=this.optionsListNode){ +if(!_c4b||_c4b.parentNode!=this.optionsListNode){ this._mouseover_list=false; this._handleBlurTimer(true,100); this._tryFocus(); @@ -14671,24 +14688,24 @@ this._tryFocus(); } catch(e){ } -},_isInputEqualToResult:function(_c4a){ -var _c4b=this.textInputNode.value; +},_isInputEqualToResult:function(_c4c){ +var _c4d=this.textInputNode.value; if(!this.dataProvider.caseSensitive){ -_c4b=_c4b.toLowerCase(); -_c4a=_c4a.toLowerCase(); +_c4d=_c4d.toLowerCase(); +_c4c=_c4c.toLowerCase(); } -return (_c4b==_c4a); +return (_c4d==_c4c); },_isValidOption:function(){ var tgt=dojo.html.firstElement(this.optionsListNode); -var _c4d=false; -while(!_c4d&&tgt){ +var _c4f=false; +while(!_c4f&&tgt){ if(this._isInputEqualToResult(tgt.getAttribute("resultName"))){ -_c4d=true; +_c4f=true; }else{ tgt=dojo.html.nextElement(tgt); } } -return _c4d; +return _c4f; },_checkBlurred:function(){ if(!this._hasFocus&&!this._mouseover_list){ this._hideResultList(); @@ -14696,12 +14713,12 @@ if(!this.textInputNode.value.length){ this.setAllValues("",""); return; } -var _c4e=this._isValidOption(); -if(this.forceValidOption&&!_c4e){ +var _c50=this._isValidOption(); +if(this.forceValidOption&&!_c50){ this.setAllValues("",""); return; } -if(!_c4e){ +if(!_c50){ this.setSelectedValue(""); } } @@ -14741,15 +14758,15 @@ this.optionsListNode.innerHTML=""; },_hideResultList:function(){ this.popupWidget.close(); },_showResultList:function(){ -var _c51=this.optionsListNode.childNodes; -if(_c51.length){ -var _c52=Math.min(_c51.length,this.maxListLength); +var _c53=this.optionsListNode.childNodes; +if(_c53.length){ +var _c54=Math.min(_c53.length,this.maxListLength); with(this.optionsListNode.style){ display=""; -if(_c52==_c51.length){ +if(_c54==_c53.length){ height=""; }else{ -height=_c52*dojo.html.getMarginBox(_c51[0]).height+"px"; +height=_c54*dojo.html.getMarginBox(_c53[0]).height+"px"; } width=(dojo.html.getMarginBox(this.domNode).width-2)+"px"; } @@ -14788,15 +14805,15 @@ this.setState(s); } }}); dojo.provide("struts.widget.ComboBox"); -struts.widget.ComboBoxDataProvider=function(_c55,node){ +struts.widget.ComboBoxDataProvider=function(_c57,node){ this.data=[]; -this.searchLimit=_c55.searchLimit; +this.searchLimit=_c57.searchLimit; this.searchType="STARTSTRING"; this.caseSensitive=false; this._lastSearch=""; this._lastSearchResults=null; this.firstRequest=true; -this.cbox=_c55; +this.cbox=_c57; this.formId=this.cbox.formId; this.formFilter=this.cbox.formFilter; this.getData=function(url){ @@ -14807,44 +14824,44 @@ if(!this.firstRequest){ this.firstRequest=false; this.cbox.notify.apply(this.cbox,[data,type,evt]); } -var _c5b=null; -var _c5c=data[this.cbox.dataFieldName]; +var _c5d=null; +var _c5e=data[this.cbox.dataFieldName]; if(!dojo.lang.isArray(data)){ -if(_c5c){ -if(dojo.lang.isArray(_c5c)){ -_c5b=_c5c; +if(_c5e){ +if(dojo.lang.isArray(_c5e)){ +_c5d=_c5e; }else{ -if(dojo.lang.isObject(_c5c)){ -_c5b=[]; -for(var key in _c5c){ -_c5b.push([_c5c[key],key]); +if(dojo.lang.isObject(_c5e)){ +_c5d=[]; +for(var key in _c5e){ +_c5d.push([_c5e[key],key]); } } } }else{ for(var key in data){ if(dojo.string.startsWith(key,this.cbox.name)){ -_c5b=data[key]; +_c5d=data[key]; break; } -if(!_c5b&&dojo.lang.isArray(data[key])){ -_c5b=data[key]; +if(!_c5d&&dojo.lang.isArray(data[key])){ +_c5d=data[key]; } } } -data=_c5b; +data=_c5d; } this.setData(data); }),mimetype:"text/json"}); }; -this.startSearch=function(_c5e,_c5f){ -this._preformSearch(_c5e,_c5f); +this.startSearch=function(_c60,_c61){ +this._preformSearch(_c60,_c61); }; -this._preformSearch=function(_c60,_c61){ +this._preformSearch=function(_c62,_c63){ var st=this.searchType; var ret=[]; if(!this.caseSensitive){ -_c60=_c60.toLowerCase(); +_c62=_c62.toLowerCase(); } for(var x=0;x0)&&(ret.length>=this.searchLimit)){ break; } -var _c65=new String((!this.caseSensitive)?this.data[x][0].toLowerCase():this.data[x][0]); -if(_c65.length<_c60.length){ +var _c67=new String((!this.caseSensitive)?this.data[x][0].toLowerCase():this.data[x][0]); +if(_c67.length<_c62.length){ continue; } if(st=="STARTSTRING"){ -if(_c60==_c65.substr(0,_c60.length)){ +if(_c62==_c67.substr(0,_c62.length)){ ret.push(this.data[x]); } }else{ if(st=="SUBSTRING"){ -if(_c65.indexOf(_c60)>=0){ +if(_c67.indexOf(_c62)>=0){ ret.push(this.data[x]); } }else{ if(st=="STARTWORD"){ -var idx=_c65.indexOf(_c60); +var idx=_c67.indexOf(_c62); if(idx==0){ ret.push(this.data[x]); } if(idx<=0){ continue; } -var _c67=false; +var _c69=false; while(idx!=-1){ -if(" ,/(".indexOf(_c65.charAt(idx-1))!=-1){ -_c67=true; +if(" ,/(".indexOf(_c67.charAt(idx-1))!=-1){ +_c69=true; break; } -idx=_c65.indexOf(_c60,idx+1); +idx=_c67.indexOf(_c62,idx+1); } -if(!_c67){ +if(!_c69){ continue; }else{ ret.push(this.data[x]); @@ -14892,17 +14909,17 @@ ret.push(this.data[x]); } } } -_c61(ret); +_c63(ret); }; -this.addData=function(_c68){ -this.data=this.data.concat(_c68); +this.addData=function(_c6a){ +this.data=this.data.concat(_c6a); }; -this.setData=function(_c69){ -this.data=_c69; +this.setData=function(_c6b){ +this.data=_c6b; for(var i=0;i0)){ +if((this.autoComplete)&&(_c76.length)&&(!this._prev_key_backspace)&&(this.textInputNode.value.length>0)){ var cpos=this._getCaretPos(this.textInputNode); if((cpos+1)>this.textInputNode.value.length){ -this.textInputNode.value+=_c74[0][0].substr(cpos); +this.textInputNode.value+=_c76[0][0].substr(cpos); this._setSelectedRange(this.textInputNode,cpos,this.textInputNode.value.length); } } -var _c76=this.textInputNode.value; +var _c78=this.textInputNode.value; var even=true; -while(_c74.length){ -var tr=_c74.shift(); +while(_c76.length){ +var tr=_c76.shift(); if(tr){ var td=document.createElement("div"); var text=tr[0]; -var i=text.toLowerCase().indexOf(_c76.toLowerCase()); +var i=text.toLowerCase().indexOf(_c78.toLowerCase()); if(i>=0){ var pre=text.substring(0,i); -var _c7d=text.substring(i,i+_c76.length); -var post=text.substring(i+_c76.length); +var _c7f=text.substring(i,i+_c78.length); +var post=text.substring(i+_c78.length); if(!dojo.string.isBlank(pre)){ td.appendChild(document.createTextNode(pre)); } -var _c7f=document.createElement("b"); -td.appendChild(_c7f); -_c7f.appendChild(document.createTextNode(_c7d)); +var _c81=document.createElement("b"); +td.appendChild(_c81); +_c81.appendChild(document.createTextNode(_c7f)); td.appendChild(document.createTextNode(post)); }else{ td.appendChild(document.createTextNode(tr[0])); @@ -14991,12 +15008,12 @@ this.showResultList(); struts.widget.ComboBox.superclass.postCreate.apply(this); var self=this; if(!dojo.string.isBlank(this.listenTopics)){ -var _c81=this.listenTopics.split(","); -for(var i=0;i<_c81.length;i++){ -dojo.event.topic.subscribe(_c81[i],function(){ -var _c83={cancel:false}; -self.notify(this.widgetId,"before",_c83); -if(_c83.cancel){ +var _c83=this.listenTopics.split(","); +for(var i=0;i<_c83.length;i++){ +dojo.event.topic.subscribe(_c83[i],function(){ +var _c85={cancel:false}; +self.notify(this.widgetId,"before",_c85); +if(_c85.cancel){ return; } self.clearValues(); @@ -15038,37 +15055,37 @@ this.notify(data,"valuechanged",null); },notify:function(data,type,e){ if(this.notifyTopicsArray){ var self=this; -dojo.lang.forEach(this.notifyTopicsArray,function(_c89){ +dojo.lang.forEach(this.notifyTopicsArray,function(_c8b){ try{ -dojo.event.topic.publish(_c89,data,type,e); +dojo.event.topic.publish(_c8b,data,type,e); } catch(ex){ self.log(ex); } }); } -var _c8a=null; +var _c8c=null; switch(type){ case "before": -_c8a=this.beforeNotifyTopicsArray; +_c8c=this.beforeNotifyTopicsArray; break; case "load": -_c8a=this.afterNotifyTopicsArray; +_c8c=this.afterNotifyTopicsArray; break; case "error": -_c8a=this.errorNotifyTopicsArray; +_c8c=this.errorNotifyTopicsArray; break; case "valuechanged": -_c8a=this.valueNotifyTopicsArray; +_c8c=this.valueNotifyTopicsArray; break; } -this.notifyTo(_c8a,data,type,e); -},notifyTo:function(_c8b,data,type,e){ +this.notifyTo(_c8c,data,type,e); +},notifyTo:function(_c8d,data,type,e){ var self=this; -if(_c8b){ -dojo.lang.forEach(_c8b,function(_c90){ +if(_c8d){ +dojo.lang.forEach(_c8d,function(_c92){ try{ -dojo.event.topic.publish(_c90,data,type,e); +dojo.event.topic.publish(_c92,data,type,e); } catch(ex){ self.log(ex); @@ -15078,18 +15095,18 @@ self.log(ex); },log:function(text){ dojo.debug("["+(this.widgetId?this.widgetId:"unknown")+"] "+text); },_startSearchFromInput:function(){ -var _c92=this.textInputNode.value; +var _c94=this.textInputNode.value; if(this.loadOnType){ -if(_c92.length>=this.loadMinimum){ -var _c93=this.dataUrl+(this.dataUrl.indexOf("?")>-1?"&":"?"); -_c93+=this.name+"="+_c92; -this.dataProvider.getData(_c93); -this._startSearch(_c92); +if(_c94.length>=this.loadMinimum){ +var _c95=this.dataUrl+(this.dataUrl.indexOf("?")>-1?"&":"?"); +_c95+=this.name+"="+_c94; +this.dataProvider.getData(_c95); +this._startSearch(_c94); }else{ this._hideResultList(); } }else{ -this._startSearch(_c92); +this._startSearch(_c94); } }}); dojo.provide("dojo.widget.DropdownContainer"); @@ -15137,197 +15154,197 @@ this.inputNode.disabled=true; dojo.widget.DropdownContainer.superclass.disable.apply(this,arguments); }}); dojo.provide("dojo.date.serialize"); -dojo.date.setIso8601=function(_c97,_c98){ -var _c99=(_c98.indexOf("T")==-1)?_c98.split(" "):_c98.split("T"); -_c97=dojo.date.setIso8601Date(_c97,_c99[0]); -if(_c99.length==2){ -_c97=dojo.date.setIso8601Time(_c97,_c99[1]); +dojo.date.setIso8601=function(_c99,_c9a){ +var _c9b=(_c9a.indexOf("T")==-1)?_c9a.split(" "):_c9a.split("T"); +_c99=dojo.date.setIso8601Date(_c99,_c9b[0]); +if(_c9b.length==2){ +_c99=dojo.date.setIso8601Time(_c99,_c9b[1]); } -return _c97; +return _c99; }; -dojo.date.fromIso8601=function(_c9a){ -return dojo.date.setIso8601(new Date(0,0),_c9a); +dojo.date.fromIso8601=function(_c9c){ +return dojo.date.setIso8601(new Date(0,0),_c9c); }; -dojo.date.setIso8601Date=function(_c9b,_c9c){ -var _c9d="^([0-9]{4})((-?([0-9]{2})(-?([0-9]{2}))?)|"+"(-?([0-9]{3}))|(-?W([0-9]{2})(-?([1-7]))?))?$"; -var d=_c9c.match(new RegExp(_c9d)); +dojo.date.setIso8601Date=function(_c9d,_c9e){ +var _c9f="^([0-9]{4})((-?([0-9]{2})(-?([0-9]{2}))?)|"+"(-?([0-9]{3}))|(-?W([0-9]{2})(-?([1-7]))?))?$"; +var d=_c9e.match(new RegExp(_c9f)); if(!d){ -dojo.debug("invalid date string: "+_c9c); +dojo.debug("invalid date string: "+_c9e); return null; } var year=d[1]; -var _ca0=d[4]; +var _ca2=d[4]; var date=d[6]; -var _ca2=d[8]; +var _ca4=d[8]; var week=d[10]; -var _ca4=d[12]?d[12]:1; -_c9b.setFullYear(year); -if(_ca2){ -_c9b.setMonth(0); -_c9b.setDate(Number(_ca2)); +var _ca6=d[12]?d[12]:1; +_c9d.setFullYear(year); +if(_ca4){ +_c9d.setMonth(0); +_c9d.setDate(Number(_ca4)); }else{ if(week){ -_c9b.setMonth(0); -_c9b.setDate(1); -var gd=_c9b.getDay(); +_c9d.setMonth(0); +_c9d.setDate(1); +var gd=_c9d.getDay(); var day=gd?gd:7; -var _ca7=Number(_ca4)+(7*Number(week)); +var _ca9=Number(_ca6)+(7*Number(week)); if(day<=4){ -_c9b.setDate(_ca7+1-day); +_c9d.setDate(_ca9+1-day); }else{ -_c9b.setDate(_ca7+8-day); +_c9d.setDate(_ca9+8-day); } }else{ -if(_ca0){ -_c9b.setDate(1); -_c9b.setMonth(_ca0-1); +if(_ca2){ +_c9d.setDate(1); +_c9d.setMonth(_ca2-1); } if(date){ -_c9b.setDate(date); +_c9d.setDate(date); } } } -return _c9b; +return _c9d; }; -dojo.date.fromIso8601Date=function(_ca8){ -return dojo.date.setIso8601Date(new Date(0,0),_ca8); +dojo.date.fromIso8601Date=function(_caa){ +return dojo.date.setIso8601Date(new Date(0,0),_caa); }; -dojo.date.setIso8601Time=function(_ca9,_caa){ -var _cab="Z|(([-+])([0-9]{2})(:?([0-9]{2}))?)$"; -var d=_caa.match(new RegExp(_cab)); -var _cad=0; +dojo.date.setIso8601Time=function(_cab,_cac){ +var _cad="Z|(([-+])([0-9]{2})(:?([0-9]{2}))?)$"; +var d=_cac.match(new RegExp(_cad)); +var _caf=0; if(d){ if(d[0]!="Z"){ -_cad=(Number(d[3])*60)+Number(d[5]); -_cad*=((d[2]=="-")?1:-1); +_caf=(Number(d[3])*60)+Number(d[5]); +_caf*=((d[2]=="-")?1:-1); } -_cad-=_ca9.getTimezoneOffset(); -_caa=_caa.substr(0,_caa.length-d[0].length); +_caf-=_cab.getTimezoneOffset(); +_cac=_cac.substr(0,_cac.length-d[0].length); } -var _cae="^([0-9]{2})(:?([0-9]{2})(:?([0-9]{2})(.([0-9]+))?)?)?$"; -d=_caa.match(new RegExp(_cae)); +var _cb0="^([0-9]{2})(:?([0-9]{2})(:?([0-9]{2})(.([0-9]+))?)?)?$"; +d=_cac.match(new RegExp(_cb0)); if(!d){ -dojo.debug("invalid time string: "+_caa); +dojo.debug("invalid time string: "+_cac); return null; } -var _caf=d[1]; +var _cb1=d[1]; var mins=Number((d[3])?d[3]:0); var secs=(d[5])?d[5]:0; var ms=d[7]?(Number("0."+d[7])*1000):0; -_ca9.setHours(_caf); -_ca9.setMinutes(mins); -_ca9.setSeconds(secs); -_ca9.setMilliseconds(ms); -if(_cad!==0){ -_ca9.setTime(_ca9.getTime()+_cad*60000); +_cab.setHours(_cb1); +_cab.setMinutes(mins); +_cab.setSeconds(secs); +_cab.setMilliseconds(ms); +if(_caf!==0){ +_cab.setTime(_cab.getTime()+_caf*60000); } -return _ca9; +return _cab; }; -dojo.date.fromIso8601Time=function(_cb3){ -return dojo.date.setIso8601Time(new Date(0,0),_cb3); +dojo.date.fromIso8601Time=function(_cb5){ +return dojo.date.setIso8601Time(new Date(0,0),_cb5); }; -dojo.date.toRfc3339=function(_cb4,_cb5){ -if(!_cb4){ -_cb4=new Date(); +dojo.date.toRfc3339=function(_cb6,_cb7){ +if(!_cb6){ +_cb6=new Date(); } var _=dojo.string.pad; -var _cb7=[]; -if(_cb5!="timeOnly"){ -var date=[_(_cb4.getFullYear(),4),_(_cb4.getMonth()+1,2),_(_cb4.getDate(),2)].join("-"); -_cb7.push(date); +var _cb9=[]; +if(_cb7!="timeOnly"){ +var date=[_(_cb6.getFullYear(),4),_(_cb6.getMonth()+1,2),_(_cb6.getDate(),2)].join("-"); +_cb9.push(date); } -if(_cb5!="dateOnly"){ -var time=[_(_cb4.getHours(),2),_(_cb4.getMinutes(),2),_(_cb4.getSeconds(),2)].join(":"); -var _cba=_cb4.getTimezoneOffset(); -time+=(_cba>0?"-":"+")+_(Math.floor(Math.abs(_cba)/60),2)+":"+_(Math.abs(_cba)%60,2); -_cb7.push(time); +if(_cb7!="dateOnly"){ +var time=[_(_cb6.getHours(),2),_(_cb6.getMinutes(),2),_(_cb6.getSeconds(),2)].join(":"); +var _cbc=_cb6.getTimezoneOffset(); +time+=(_cbc>0?"-":"+")+_(Math.floor(Math.abs(_cbc)/60),2)+":"+_(Math.abs(_cbc)%60,2); +_cb9.push(time); } -return _cb7.join("T"); +return _cb9.join("T"); }; -dojo.date.fromRfc3339=function(_cbb){ -if(_cbb.indexOf("Tany")!=-1){ -_cbb=_cbb.replace("Tany",""); +dojo.date.fromRfc3339=function(_cbd){ +if(_cbd.indexOf("Tany")!=-1){ +_cbd=_cbd.replace("Tany",""); } -var _cbc=new Date(); -return dojo.date.setIso8601(_cbc,_cbb); +var _cbe=new Date(); +return dojo.date.setIso8601(_cbe,_cbd); }; dojo.provide("dojo.date.common"); -dojo.date.setDayOfYear=function(_cbd,_cbe){ -_cbd.setMonth(0); -_cbd.setDate(_cbe); -return _cbd; +dojo.date.setDayOfYear=function(_cbf,_cc0){ +_cbf.setMonth(0); +_cbf.setDate(_cc0); +return _cbf; }; -dojo.date.getDayOfYear=function(_cbf){ -var _cc0=_cbf.getFullYear(); -var _cc1=new Date(_cc0-1,11,31); -return Math.floor((_cbf.getTime()-_cc1.getTime())/86400000); +dojo.date.getDayOfYear=function(_cc1){ +var _cc2=_cc1.getFullYear(); +var _cc3=new Date(_cc2-1,11,31); +return Math.floor((_cc1.getTime()-_cc3.getTime())/86400000); }; -dojo.date.setWeekOfYear=function(_cc2,week,_cc4){ -if(arguments.length==1){ -_cc4=0; -} -dojo.unimplemented("dojo.date.setWeekOfYear"); -}; -dojo.date.getWeekOfYear=function(_cc5,_cc6){ +dojo.date.setWeekOfYear=function(_cc4,week,_cc6){ if(arguments.length==1){ _cc6=0; } -var _cc7=new Date(_cc5.getFullYear(),0,1); -var day=_cc7.getDay(); -_cc7.setDate(_cc7.getDate()-day+_cc6-(day>_cc6?7:0)); -return Math.floor((_cc5.getTime()-_cc7.getTime())/604800000); +dojo.unimplemented("dojo.date.setWeekOfYear"); }; -dojo.date.setIsoWeekOfYear=function(_cc9,week,_ccb){ +dojo.date.getWeekOfYear=function(_cc7,_cc8){ if(arguments.length==1){ -_ccb=1; +_cc8=0; +} +var _cc9=new Date(_cc7.getFullYear(),0,1); +var day=_cc9.getDay(); +_cc9.setDate(_cc9.getDate()-day+_cc8-(day>_cc8?7:0)); +return Math.floor((_cc7.getTime()-_cc9.getTime())/604800000); +}; +dojo.date.setIsoWeekOfYear=function(_ccb,week,_ccd){ +if(arguments.length==1){ +_ccd=1; } dojo.unimplemented("dojo.date.setIsoWeekOfYear"); }; -dojo.date.getIsoWeekOfYear=function(_ccc,_ccd){ +dojo.date.getIsoWeekOfYear=function(_cce,_ccf){ if(arguments.length==1){ -_ccd=1; +_ccf=1; } dojo.unimplemented("dojo.date.getIsoWeekOfYear"); }; dojo.date.shortTimezones=["IDLW","BET","HST","MART","AKST","PST","MST","CST","EST","AST","NFT","BST","FST","AT","GMT","CET","EET","MSK","IRT","GST","AFT","AGTT","IST","NPT","ALMT","MMT","JT","AWST","JST","ACST","AEST","LHST","VUT","NFT","NZT","CHAST","PHOT","LINT"]; dojo.date.timezoneOffsets=[-720,-660,-600,-570,-540,-480,-420,-360,-300,-240,-210,-180,-120,-60,0,60,120,180,210,240,270,300,330,345,360,390,420,480,540,570,600,630,660,690,720,765,780,840]; -dojo.date.getDaysInMonth=function(_cce){ -var _ccf=_cce.getMonth(); +dojo.date.getDaysInMonth=function(_cd0){ +var _cd1=_cd0.getMonth(); var days=[31,28,31,30,31,30,31,31,30,31,30,31]; -if(_ccf==1&&dojo.date.isLeapYear(_cce)){ +if(_cd1==1&&dojo.date.isLeapYear(_cd0)){ return 29; }else{ -return days[_ccf]; +return days[_cd1]; } }; -dojo.date.isLeapYear=function(_cd1){ -var year=_cd1.getFullYear(); +dojo.date.isLeapYear=function(_cd3){ +var year=_cd3.getFullYear(); return (year%400==0)?true:(year%100==0)?false:(year%4==0)?true:false; }; -dojo.date.getTimezoneName=function(_cd3){ -var str=_cd3.toString(); +dojo.date.getTimezoneName=function(_cd5){ +var str=_cd5.toString(); var tz=""; -var _cd6; +var _cd8; var pos=str.indexOf("("); if(pos>-1){ pos++; tz=str.substring(pos,str.indexOf(")")); }else{ var pat=/([A-Z\/]+) \d{4}$/; -if((_cd6=str.match(pat))){ -tz=_cd6[1]; +if((_cd8=str.match(pat))){ +tz=_cd8[1]; }else{ -str=_cd3.toLocaleString(); +str=_cd5.toLocaleString(); pat=/ ([A-Z\/]+)$/; -if((_cd6=str.match(pat))){ -tz=_cd6[1]; +if((_cd8=str.match(pat))){ +tz=_cd8[1]; } } } return tz=="AM"||tz=="PM"?"":tz; }; -dojo.date.getOrdinal=function(_cd9){ -var date=_cd9.getDate(); +dojo.date.getOrdinal=function(_cdb){ +var date=_cdb.getDate(); if(date%100!=11&&date%10==1){ return "st"; }else{ @@ -15343,12 +15360,12 @@ return "th"; } }; dojo.date.compareTypes={DATE:1,TIME:2}; -dojo.date.compare=function(_cdb,_cdc,_cdd){ -var dA=_cdb; -var dB=_cdc||new Date(); +dojo.date.compare=function(_cdd,_cde,_cdf){ +var dA=_cdd; +var dB=_cde||new Date(); var now=new Date(); with(dojo.date.compareTypes){ -var opt=_cdd||(DATE|TIME); +var opt=_cdf||(DATE|TIME); var d1=new Date((opt&DATE)?dA.getFullYear():now.getFullYear(),(opt&DATE)?dA.getMonth():now.getMonth(),(opt&DATE)?dA.getDate():now.getDate(),(opt&TIME)?dA.getHours():0,(opt&TIME)?dA.getMinutes():0,(opt&TIME)?dA.getSeconds():0); var d2=new Date((opt&DATE)?dB.getFullYear():now.getFullYear(),(opt&DATE)?dB.getMonth():now.getMonth(),(opt&DATE)?dB.getDate():now.getDate(),(opt&TIME)?dB.getHours():0,(opt&TIME)?dB.getMinutes():0,(opt&TIME)?dB.getSeconds():0); } @@ -15361,7 +15378,7 @@ return -1; return 0; }; dojo.date.dateParts={YEAR:0,MONTH:1,DAY:2,HOUR:3,MINUTE:4,SECOND:5,MILLISECOND:6,QUARTER:7,WEEK:8,WEEKDAY:9}; -dojo.date.add=function(dt,_ce5,incr){ +dojo.date.add=function(dt,_ce7,incr){ if(typeof dt=="number"){ dt=new Date(dt); } @@ -15372,7 +15389,7 @@ sum.setDate(0); } var sum=new Date(dt); with(dojo.date.dateParts){ -switch(_ce5){ +switch(_ce7){ case YEAR: sum.setFullYear(dt.getFullYear()+incr); fixOvershoot(); @@ -15390,7 +15407,7 @@ sum.setDate(dt.getDate()+incr); break; case WEEKDAY: var dat=dt.getDate(); -var _ce9=0; +var _ceb=0; var days=0; var strt=0; var trgt=0; @@ -15398,10 +15415,10 @@ var adj=0; var mod=incr%5; if(mod==0){ days=(incr>0)?5:-5; -_ce9=(incr>0)?((incr-5)/5):((incr+5)/5); +_ceb=(incr>0)?((incr-5)/5):((incr+5)/5); }else{ days=mod; -_ce9=parseInt(incr/5); +_ceb=parseInt(incr/5); } strt=dt.getDay(); if(strt==6&&incr>0){ @@ -15415,7 +15432,7 @@ trgt=(strt+days); if(trgt==0||trgt==6){ adj=(incr>0)?2:-2; } -sum.setDate(dat+(7*_ce9)+days+adj); +sum.setDate(dat+(7*_ceb)+days+adj); break; case HOUR: sum.setHours(sum.getHours()+incr); @@ -15435,60 +15452,60 @@ break; } return sum; }; -dojo.date.diff=function(dtA,dtB,_cf1){ +dojo.date.diff=function(dtA,dtB,_cf3){ if(typeof dtA=="number"){ dtA=new Date(dtA); } if(typeof dtB=="number"){ dtB=new Date(dtB); } -var _cf2=dtB.getFullYear()-dtA.getFullYear(); -var _cf3=(dtB.getMonth()-dtA.getMonth())+(_cf2*12); -var _cf4=dtB.getTime()-dtA.getTime(); -var _cf5=_cf4/1000; -var _cf6=_cf5/60; -var _cf7=_cf6/60; -var _cf8=_cf7/24; -var _cf9=_cf8/7; -var _cfa=0; +var _cf4=dtB.getFullYear()-dtA.getFullYear(); +var _cf5=(dtB.getMonth()-dtA.getMonth())+(_cf4*12); +var _cf6=dtB.getTime()-dtA.getTime(); +var _cf7=_cf6/1000; +var _cf8=_cf7/60; +var _cf9=_cf8/60; +var _cfa=_cf9/24; +var _cfb=_cfa/7; +var _cfc=0; with(dojo.date.dateParts){ -switch(_cf1){ +switch(_cf3){ case YEAR: -_cfa=_cf2; +_cfc=_cf4; break; case QUARTER: var mA=dtA.getMonth(); var mB=dtB.getMonth(); var qA=Math.floor(mA/3)+1; var qB=Math.floor(mB/3)+1; -qB+=(_cf2*4); -_cfa=qB-qA; +qB+=(_cf4*4); +_cfc=qB-qA; break; case MONTH: -_cfa=_cf3; +_cfc=_cf5; break; case WEEK: -_cfa=parseInt(_cf9); +_cfc=parseInt(_cfb); break; case DAY: -_cfa=_cf8; +_cfc=_cfa; break; case WEEKDAY: -var days=Math.round(_cf8); -var _d00=parseInt(days/7); +var days=Math.round(_cfa); +var _d02=parseInt(days/7); var mod=days%7; if(mod==0){ -days=_d00*5; +days=_d02*5; }else{ var adj=0; var aDay=dtA.getDay(); var bDay=dtB.getDay(); -_d00=parseInt(days/7); +_d02=parseInt(days/7); mod=days%7; -var _d05=new Date(dtA); -_d05.setDate(_d05.getDate()+(_d00*7)); -var _d06=_d05.getDay(); -if(_cf8>0){ +var _d07=new Date(dtA); +_d07.setDate(_d07.getDate()+(_d02*7)); +var _d08=_d07.getDay(); +if(_cfa>0){ switch(true){ case aDay==6: adj=-1; @@ -15502,14 +15519,14 @@ break; case bDay==0: adj=-2; break; -case (_d06+mod)>5: +case (_d08+mod)>5: adj=-2; break; default: break; } }else{ -if(_cf8<0){ +if(_cfa<0){ switch(true){ case aDay==6: adj=0; @@ -15523,7 +15540,7 @@ break; case bDay==0: adj=1; break; -case (_d06+mod)<0: +case (_d08+mod)<0: adj=2; break; default: @@ -15532,116 +15549,116 @@ break; } } days+=adj; -days-=(_d00*2); +days-=(_d02*2); } -_cfa=days; +_cfc=days; break; case HOUR: -_cfa=_cf7; +_cfc=_cf9; break; case MINUTE: -_cfa=_cf6; +_cfc=_cf8; break; case SECOND: -_cfa=_cf5; +_cfc=_cf7; break; case MILLISECOND: -_cfa=_cf4; +_cfc=_cf6; break; default: break; } } -return Math.round(_cfa); +return Math.round(_cfc); }; dojo.provide("dojo.date.supplemental"); -dojo.date.getFirstDayOfWeek=function(_d07){ -var _d08={mv:5,ae:6,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6,lb:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6,as:0,au:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0,il:0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mo:0,mp:0,mt:0,nz:0,ph:0,pk:0,sg:0,th:0,tt:0,tw:0,um:0,us:0,uz:0,vi:0,za:0,zw:0,et:0,mw:0,ng:0,tj:0,gb:0,sy:4}; -_d07=dojo.hostenv.normalizeLocale(_d07); -var _d09=_d07.split("-")[1]; -var dow=_d08[_d09]; +dojo.date.getFirstDayOfWeek=function(_d09){ +var _d0a={mv:5,ae:6,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6,lb:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6,as:0,au:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0,il:0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mo:0,mp:0,mt:0,nz:0,ph:0,pk:0,sg:0,th:0,tt:0,tw:0,um:0,us:0,uz:0,vi:0,za:0,zw:0,et:0,mw:0,ng:0,tj:0,gb:0,sy:4}; +_d09=dojo.hostenv.normalizeLocale(_d09); +var _d0b=_d09.split("-")[1]; +var dow=_d0a[_d0b]; return (typeof dow=="undefined")?1:dow; }; -dojo.date.getWeekend=function(_d0b){ -var _d0c={eg:5,il:5,sy:5,"in":0,ae:4,bh:4,dz:4,iq:4,jo:4,kw:4,lb:4,ly:4,ma:4,om:4,qa:4,sa:4,sd:4,tn:4,ye:4}; -var _d0d={ae:5,bh:5,dz:5,iq:5,jo:5,kw:5,lb:5,ly:5,ma:5,om:5,qa:5,sa:5,sd:5,tn:5,ye:5,af:5,ir:5,eg:6,il:6,sy:6}; -_d0b=dojo.hostenv.normalizeLocale(_d0b); -var _d0e=_d0b.split("-")[1]; -var _d0f=_d0c[_d0e]; -var end=_d0d[_d0e]; -if(typeof _d0f=="undefined"){ -_d0f=6; +dojo.date.getWeekend=function(_d0d){ +var _d0e={eg:5,il:5,sy:5,"in":0,ae:4,bh:4,dz:4,iq:4,jo:4,kw:4,lb:4,ly:4,ma:4,om:4,qa:4,sa:4,sd:4,tn:4,ye:4}; +var _d0f={ae:5,bh:5,dz:5,iq:5,jo:5,kw:5,lb:5,ly:5,ma:5,om:5,qa:5,sa:5,sd:5,tn:5,ye:5,af:5,ir:5,eg:6,il:6,sy:6}; +_d0d=dojo.hostenv.normalizeLocale(_d0d); +var _d10=_d0d.split("-")[1]; +var _d11=_d0e[_d10]; +var end=_d0f[_d10]; +if(typeof _d11=="undefined"){ +_d11=6; } if(typeof end=="undefined"){ end=0; } -return {start:_d0f,end:end}; +return {start:_d11,end:end}; }; -dojo.date.isWeekend=function(_d11,_d12){ -var _d13=dojo.date.getWeekend(_d12); -var day=(_d11||new Date()).getDay(); -if(_d13.end<_d13.start){ -_d13.end+=7; -if(day<_d13.start){ +dojo.date.isWeekend=function(_d13,_d14){ +var _d15=dojo.date.getWeekend(_d14); +var day=(_d13||new Date()).getDay(); +if(_d15.end<_d15.start){ +_d15.end+=7; +if(day<_d15.start){ day+=7; } } -return day>=_d13.start&&day<=_d13.end; +return day>=_d15.start&&day<=_d15.end; }; dojo.provide("dojo.i18n.common"); -dojo.i18n.getLocalization=function(_d15,_d16,_d17){ +dojo.i18n.getLocalization=function(_d17,_d18,_d19){ dojo.hostenv.preloadLocalizations(); -_d17=dojo.hostenv.normalizeLocale(_d17); -var _d18=_d17.split("-"); -var _d19=[_d15,"nls",_d16].join("."); -var _d1a=dojo.hostenv.findModule(_d19,true); -var _d1b; -for(var i=_d18.length;i>0;i--){ -var loc=_d18.slice(0,i).join("_"); -if(_d1a[loc]){ -_d1b=_d1a[loc]; +_d19=dojo.hostenv.normalizeLocale(_d19); +var _d1a=_d19.split("-"); +var _d1b=[_d17,"nls",_d18].join("."); +var _d1c=dojo.hostenv.findModule(_d1b,true); +var _d1d; +for(var i=_d1a.length;i>0;i--){ +var loc=_d1a.slice(0,i).join("_"); +if(_d1c[loc]){ +_d1d=_d1c[loc]; break; } } -if(!_d1b){ -_d1b=_d1a.ROOT; +if(!_d1d){ +_d1d=_d1c.ROOT; } -if(_d1b){ -var _d1e=function(){ +if(_d1d){ +var _d20=function(){ }; -_d1e.prototype=_d1b; -return new _d1e(); +_d20.prototype=_d1d; +return new _d20(); } -dojo.raise("Bundle not found: "+_d16+" in "+_d15+" , locale="+_d17); +dojo.raise("Bundle not found: "+_d18+" in "+_d17+" , locale="+_d19); }; -dojo.i18n.isLTR=function(_d1f){ -var lang=dojo.hostenv.normalizeLocale(_d1f).split("-")[0]; +dojo.i18n.isLTR=function(_d21){ +var lang=dojo.hostenv.normalizeLocale(_d21).split("-")[0]; var RTL={ar:true,fa:true,he:true,ur:true,yi:true}; return !RTL[lang]; }; dojo.provide("dojo.date.format"); (function(){ -dojo.date.format=function(_d22,_d23){ -if(typeof _d23=="string"){ +dojo.date.format=function(_d24,_d25){ +if(typeof _d25=="string"){ dojo.deprecated("dojo.date.format","To format dates with POSIX-style strings, please use dojo.date.strftime instead","0.5"); -return dojo.date.strftime(_d22,_d23); +return dojo.date.strftime(_d24,_d25); } -function formatPattern(_d24,_d25){ -return _d25.replace(/([a-z])\1*/ig,function(_d26){ +function formatPattern(_d26,_d27){ +return _d27.replace(/([a-z])\1*/ig,function(_d28){ var s; -var c=_d26.charAt(0); -var l=_d26.length; +var c=_d28.charAt(0); +var l=_d28.length; var pad; -var _d2b=["abbr","wide","narrow"]; +var _d2d=["abbr","wide","narrow"]; switch(c){ case "G": if(l>3){ dojo.unimplemented("Era format not implemented"); } -s=info.eras[_d24.getFullYear()<0?1:0]; +s=info.eras[_d26.getFullYear()<0?1:0]; break; case "y": -s=_d24.getFullYear(); +s=_d26.getFullYear(); switch(l){ case 1: break; @@ -15654,7 +15671,7 @@ pad=true; break; case "Q": case "q": -s=Math.ceil((_d24.getMonth()+1)/3); +s=Math.ceil((_d26.getMonth()+1)/3); switch(l){ case 1: case 2: @@ -15667,8 +15684,8 @@ dojo.unimplemented("Quarter format not implemented"); break; case "M": case "L": -var m=_d24.getMonth(); -var _d2e; +var m=_d26.getMonth(); +var _d30; switch(l){ case 1: case 2: @@ -15678,39 +15695,39 @@ break; case 3: case 4: case 5: -_d2e=_d2b[l-3]; +_d30=_d2d[l-3]; break; } -if(_d2e){ +if(_d30){ var type=(c=="L")?"standalone":"format"; -var prop=["months",type,_d2e].join("-"); +var prop=["months",type,_d30].join("-"); s=info[prop][m]; } break; case "w": -var _d31=0; -s=dojo.date.getWeekOfYear(_d24,_d31); +var _d33=0; +s=dojo.date.getWeekOfYear(_d26,_d33); pad=true; break; case "d": -s=_d24.getDate(); +s=_d26.getDate(); pad=true; break; case "D": -s=dojo.date.getDayOfYear(_d24); +s=dojo.date.getDayOfYear(_d26); pad=true; break; case "E": case "e": case "c": -var d=_d24.getDay(); -var _d2e; +var d=_d26.getDay(); +var _d30; switch(l){ case 1: case 2: if(c=="e"){ -var _d33=dojo.date.getFirstDayOfWeek(_d23.locale); -d=(d-_d33+7)%7; +var _d35=dojo.date.getFirstDayOfWeek(_d25.locale); +d=(d-_d35+7)%7; } if(c!="c"){ s=d+1; @@ -15720,24 +15737,24 @@ break; case 3: case 4: case 5: -_d2e=_d2b[l-3]; +_d30=_d2d[l-3]; break; } -if(_d2e){ +if(_d30){ var type=(c=="c")?"standalone":"format"; -var prop=["days",type,_d2e].join("-"); +var prop=["days",type,_d30].join("-"); s=info[prop][d]; } break; case "a": -var _d34=(_d24.getHours()<12)?"am":"pm"; -s=info[_d34]; +var _d36=(_d26.getHours()<12)?"am":"pm"; +s=info[_d36]; break; case "h": case "H": case "K": case "k": -var h=_d24.getHours(); +var h=_d26.getHours(); switch(c){ case "h": s=(h%12)||12; @@ -15755,26 +15772,26 @@ break; pad=true; break; case "m": -s=_d24.getMinutes(); +s=_d26.getMinutes(); pad=true; break; case "s": -s=_d24.getSeconds(); +s=_d26.getSeconds(); pad=true; break; case "S": -s=Math.round(_d24.getMilliseconds()*Math.pow(10,l-3)); +s=Math.round(_d26.getMilliseconds()*Math.pow(10,l-3)); break; case "v": case "z": -s=dojo.date.getTimezoneName(_d24); +s=dojo.date.getTimezoneName(_d26); if(s){ break; } l=4; case "Z": -var _d36=_d24.getTimezoneOffset(); -var tz=[(_d36<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_d36)/60),2),dojo.string.pad(Math.abs(_d36)%60,2)]; +var _d38=_d26.getTimezoneOffset(); +var tz=[(_d38<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_d38)/60),2),dojo.string.pad(Math.abs(_d38)%60,2)]; if(l==4){ tz.splice(0,0,"GMT"); tz.splice(3,0,":"); @@ -15787,11 +15804,11 @@ case "W": case "F": case "g": case "A": -dojo.debug(_d26+" modifier not yet implemented"); +dojo.debug(_d28+" modifier not yet implemented"); s="?"; break; default: -dojo.raise("dojo.date.format: invalid pattern char: "+_d25); +dojo.raise("dojo.date.format: invalid pattern char: "+_d27); } if(pad){ s=dojo.string.pad(s,l); @@ -15799,126 +15816,126 @@ s=dojo.string.pad(s,l); return s; }); } -_d23=_d23||{}; -var _d38=dojo.hostenv.normalizeLocale(_d23.locale); -var _d39=_d23.formatLength||"full"; -var info=dojo.date._getGregorianBundle(_d38); +_d25=_d25||{}; +var _d3a=dojo.hostenv.normalizeLocale(_d25.locale); +var _d3b=_d25.formatLength||"full"; +var info=dojo.date._getGregorianBundle(_d3a); var str=[]; -var _d3b=dojo.lang.curry(this,formatPattern,_d22); -if(_d23.selector!="timeOnly"){ -var _d3c=_d23.datePattern||info["dateFormat-"+_d39]; -if(_d3c){ -str.push(_processPattern(_d3c,_d3b)); +var _d3d=dojo.lang.curry(this,formatPattern,_d24); +if(_d25.selector!="timeOnly"){ +var _d3e=_d25.datePattern||info["dateFormat-"+_d3b]; +if(_d3e){ +str.push(_processPattern(_d3e,_d3d)); } } -if(_d23.selector!="dateOnly"){ -var _d3d=_d23.timePattern||info["timeFormat-"+_d39]; -if(_d3d){ -str.push(_processPattern(_d3d,_d3b)); +if(_d25.selector!="dateOnly"){ +var _d3f=_d25.timePattern||info["timeFormat-"+_d3b]; +if(_d3f){ +str.push(_processPattern(_d3f,_d3d)); } } -var _d3e=str.join(" "); -return _d3e; +var _d40=str.join(" "); +return _d40; }; -dojo.date.parse=function(_d3f,_d40){ -_d40=_d40||{}; -var _d41=dojo.hostenv.normalizeLocale(_d40.locale); -var info=dojo.date._getGregorianBundle(_d41); -var _d43=_d40.formatLength||"full"; -if(!_d40.selector){ -_d40.selector="dateOnly"; +dojo.date.parse=function(_d41,_d42){ +_d42=_d42||{}; +var _d43=dojo.hostenv.normalizeLocale(_d42.locale); +var info=dojo.date._getGregorianBundle(_d43); +var _d45=_d42.formatLength||"full"; +if(!_d42.selector){ +_d42.selector="dateOnly"; } -var _d44=_d40.datePattern||info["dateFormat-"+_d43]; -var _d45=_d40.timePattern||info["timeFormat-"+_d43]; -var _d46; -if(_d40.selector=="dateOnly"){ -_d46=_d44; +var _d46=_d42.datePattern||info["dateFormat-"+_d45]; +var _d47=_d42.timePattern||info["timeFormat-"+_d45]; +var _d48; +if(_d42.selector=="dateOnly"){ +_d48=_d46; }else{ -if(_d40.selector=="timeOnly"){ -_d46=_d45; +if(_d42.selector=="timeOnly"){ +_d48=_d47; }else{ -if(_d40.selector=="dateTime"){ -_d46=_d44+" "+_d45; +if(_d42.selector=="dateTime"){ +_d48=_d46+" "+_d47; }else{ -var msg="dojo.date.parse: Unknown selector param passed: '"+_d40.selector+"'."; +var msg="dojo.date.parse: Unknown selector param passed: '"+_d42.selector+"'."; msg+=" Defaulting to date pattern."; dojo.debug(msg); -_d46=_d44; +_d48=_d46; } } } -var _d48=[]; -var _d49=_processPattern(_d46,dojo.lang.curry(this,_buildDateTimeRE,_d48,info,_d40)); -var _d4a=new RegExp("^"+_d49+"$"); -var _d4b=_d4a.exec(_d3f); -if(!_d4b){ +var _d4a=[]; +var _d4b=_processPattern(_d48,dojo.lang.curry(this,_buildDateTimeRE,_d4a,info,_d42)); +var _d4c=new RegExp("^"+_d4b+"$"); +var _d4d=_d4c.exec(_d41); +if(!_d4d){ return null; } -var _d4c=["abbr","wide","narrow"]; -var _d4d=new Date(1972,0); -var _d4e={}; -for(var i=1;i<_d4b.length;i++){ -var grp=_d48[i-1]; +var _d4e=["abbr","wide","narrow"]; +var _d4f=new Date(1972,0); +var _d50={}; +for(var i=1;i<_d4d.length;i++){ +var grp=_d4a[i-1]; var l=grp.length; -var v=_d4b[i]; +var v=_d4d[i]; switch(grp.charAt(0)){ case "y": if(l!=2){ -_d4d.setFullYear(v); -_d4e.year=v; +_d4f.setFullYear(v); +_d50.year=v; }else{ if(v<100){ v=Number(v); var year=""+new Date().getFullYear(); -var _d54=year.substring(0,2)*100; -var _d55=Number(year.substring(2,4)); -var _d56=Math.min(_d55+20,99); -var num=(v<_d56)?_d54+v:_d54-100+v; -_d4d.setFullYear(num); -_d4e.year=num; +var _d56=year.substring(0,2)*100; +var _d57=Number(year.substring(2,4)); +var _d58=Math.min(_d57+20,99); +var num=(v<_d58)?_d56+v:_d56-100+v; +_d4f.setFullYear(num); +_d50.year=num; }else{ -if(_d40.strict){ +if(_d42.strict){ return null; } -_d4d.setFullYear(v); -_d4e.year=v; +_d4f.setFullYear(v); +_d50.year=v; } } break; case "M": if(l>2){ -if(!_d40.strict){ +if(!_d42.strict){ v=v.replace(/\./g,""); v=v.toLowerCase(); } -var _d58=info["months-format-"+_d4c[l-3]].concat(); -for(var j=0;j<_d58.length;j++){ -if(!_d40.strict){ -_d58[j]=_d58[j].toLowerCase(); +var _d5a=info["months-format-"+_d4e[l-3]].concat(); +for(var j=0;j<_d5a.length;j++){ +if(!_d42.strict){ +_d5a[j]=_d5a[j].toLowerCase(); } -if(v==_d58[j]){ -_d4d.setMonth(j); -_d4e.month=j; +if(v==_d5a[j]){ +_d4f.setMonth(j); +_d50.month=j; break; } } -if(j==_d58.length){ +if(j==_d5a.length){ dojo.debug("dojo.date.parse: Could not parse month name: '"+v+"'."); return null; } }else{ -_d4d.setMonth(v-1); -_d4e.month=v-1; +_d4f.setMonth(v-1); +_d50.month=v-1; } break; case "E": case "e": -if(!_d40.strict){ +if(!_d42.strict){ v=v.toLowerCase(); } -var days=info["days-format-"+_d4c[l-3]].concat(); +var days=info["days-format-"+_d4e[l-3]].concat(); for(var j=0;j23){ dojo.debug("dojo.date.parse: Illegal hours value"); return null; } -_d4d.setHours(v); +_d4f.setHours(v); break; case "m": -_d4d.setMinutes(v); +_d4f.setMinutes(v); break; case "s": -_d4d.setSeconds(v); +_d4f.setSeconds(v); break; case "S": -_d4d.setMilliseconds(v); +_d4f.setMilliseconds(v); break; default: dojo.unimplemented("dojo.date.parse: unsupported pattern char="+grp.charAt(0)); } } -if(_d4e.year&&_d4d.getFullYear()!=_d4e.year){ -dojo.debug("Parsed year: '"+_d4d.getFullYear()+"' did not match input year: '"+_d4e.year+"'."); +if(_d50.year&&_d4f.getFullYear()!=_d50.year){ +dojo.debug("Parsed year: '"+_d4f.getFullYear()+"' did not match input year: '"+_d50.year+"'."); return null; } -if(_d4e.month&&_d4d.getMonth()!=_d4e.month){ -dojo.debug("Parsed month: '"+_d4d.getMonth()+"' did not match input month: '"+_d4e.month+"'."); +if(_d50.month&&_d4f.getMonth()!=_d50.month){ +dojo.debug("Parsed month: '"+_d4f.getMonth()+"' did not match input month: '"+_d50.month+"'."); return null; } -if(_d4e.date&&_d4d.getDate()!=_d4e.date){ -dojo.debug("Parsed day of month: '"+_d4d.getDate()+"' did not match input day of month: '"+_d4e.date+"'."); +if(_d50.date&&_d4f.getDate()!=_d50.date){ +dojo.debug("Parsed day of month: '"+_d4f.getDate()+"' did not match input day of month: '"+_d50.date+"'."); return null; } -return _d4d; +return _d4f; }; -function _processPattern(_d5e,_d5f,_d60,_d61){ -var _d62=function(x){ +function _processPattern(_d60,_d61,_d62,_d63){ +var _d64=function(x){ return x; }; -_d5f=_d5f||_d62; -_d60=_d60||_d62; -_d61=_d61||_d62; -var _d64=_d5e.match(/(''|[^'])+/g); -var _d65=false; -for(var i=0;i<_d64.length;i++){ -if(!_d64[i]){ -_d64[i]=""; +_d61=_d61||_d64; +_d62=_d62||_d64; +_d63=_d63||_d64; +var _d66=_d60.match(/(''|[^'])+/g); +var _d67=false; +for(var i=0;i<_d66.length;i++){ +if(!_d66[i]){ +_d66[i]=""; }else{ -_d64[i]=(_d65?_d60:_d5f)(_d64[i]); -_d65=!_d65; +_d66[i]=(_d67?_d62:_d61)(_d66[i]); +_d67=!_d67; } } -return _d61(_d64.join("")); +return _d63(_d66.join("")); } -function _buildDateTimeRE(_d67,info,_d69,_d6a){ -return _d6a.replace(/([a-z])\1*/ig,function(_d6b){ +function _buildDateTimeRE(_d69,info,_d6b,_d6c){ +return _d6c.replace(/([a-z])\1*/ig,function(_d6d){ var s; -var c=_d6b.charAt(0); -var l=_d6b.length; +var c=_d6d.charAt(0); +var l=_d6d.length; switch(c){ case "y": s="\\d"+((l==2)?"{2,4}":"+"); @@ -16046,9 +16063,9 @@ case "S": s="\\d{1,3}"; break; case "a": -var am=_d69.am||info.am||"AM"; -var pm=_d69.pm||info.pm||"PM"; -if(_d69.strict){ +var am=_d6b.am||info.am||"AM"; +var pm=_d6b.pm||info.pm||"PM"; +if(_d6b.strict){ s=am+"|"+pm; }else{ s=am; @@ -16058,50 +16075,50 @@ s+=(pm!=pm.toLowerCase())?pm+"|"+pm.toLowerCase():pm; } break; default: -dojo.unimplemented("parse of date format, pattern="+_d6a); +dojo.unimplemented("parse of date format, pattern="+_d6c); } -if(_d67){ -_d67.push(_d6b); +if(_d69){ +_d69.push(_d6d); } return "\\s*("+s+")\\s*"; }); } })(); -dojo.date.strftime=function(_d71,_d72,_d73){ -var _d74=null; +dojo.date.strftime=function(_d73,_d74,_d75){ +var _d76=null; function _(s,n){ -return dojo.string.pad(s,n||2,_d74||"0"); +return dojo.string.pad(s,n||2,_d76||"0"); } -var info=dojo.date._getGregorianBundle(_d73); -function $(_d78){ -switch(_d78){ +var info=dojo.date._getGregorianBundle(_d75); +function $(_d7a){ +switch(_d7a){ case "a": -return dojo.date.getDayShortName(_d71,_d73); +return dojo.date.getDayShortName(_d73,_d75); case "A": -return dojo.date.getDayName(_d71,_d73); +return dojo.date.getDayName(_d73,_d75); case "b": case "h": -return dojo.date.getMonthShortName(_d71,_d73); +return dojo.date.getMonthShortName(_d73,_d75); case "B": -return dojo.date.getMonthName(_d71,_d73); +return dojo.date.getMonthName(_d73,_d75); case "c": -return dojo.date.format(_d71,{locale:_d73}); +return dojo.date.format(_d73,{locale:_d75}); case "C": -return _(Math.floor(_d71.getFullYear()/100)); +return _(Math.floor(_d73.getFullYear()/100)); case "d": -return _(_d71.getDate()); +return _(_d73.getDate()); case "D": return $("m")+"/"+$("d")+"/"+$("y"); case "e": -if(_d74==null){ -_d74=" "; +if(_d76==null){ +_d76=" "; } -return _(_d71.getDate()); +return _(_d73.getDate()); case "f": -if(_d74==null){ -_d74=" "; +if(_d76==null){ +_d76=" "; } -return _(_d71.getMonth()+1); +return _(_d73.getMonth()+1); case "g": break; case "G": @@ -16110,171 +16127,171 @@ break; case "F": return $("Y")+"-"+$("m")+"-"+$("d"); case "H": -return _(_d71.getHours()); +return _(_d73.getHours()); case "I": -return _(_d71.getHours()%12||12); +return _(_d73.getHours()%12||12); case "j": -return _(dojo.date.getDayOfYear(_d71),3); +return _(dojo.date.getDayOfYear(_d73),3); case "k": -if(_d74==null){ -_d74=" "; +if(_d76==null){ +_d76=" "; } -return _(_d71.getHours()); +return _(_d73.getHours()); case "l": -if(_d74==null){ -_d74=" "; +if(_d76==null){ +_d76=" "; } -return _(_d71.getHours()%12||12); +return _(_d73.getHours()%12||12); case "m": -return _(_d71.getMonth()+1); +return _(_d73.getMonth()+1); case "M": -return _(_d71.getMinutes()); +return _(_d73.getMinutes()); case "n": return "\n"; case "p": -return info[_d71.getHours()<12?"am":"pm"]; +return info[_d73.getHours()<12?"am":"pm"]; case "r": return $("I")+":"+$("M")+":"+$("S")+" "+$("p"); case "R": return $("H")+":"+$("M"); case "S": -return _(_d71.getSeconds()); +return _(_d73.getSeconds()); case "t": return "\t"; case "T": return $("H")+":"+$("M")+":"+$("S"); case "u": -return String(_d71.getDay()||7); +return String(_d73.getDay()||7); case "U": -return _(dojo.date.getWeekOfYear(_d71)); +return _(dojo.date.getWeekOfYear(_d73)); case "V": -return _(dojo.date.getIsoWeekOfYear(_d71)); +return _(dojo.date.getIsoWeekOfYear(_d73)); case "W": -return _(dojo.date.getWeekOfYear(_d71,1)); +return _(dojo.date.getWeekOfYear(_d73,1)); case "w": -return String(_d71.getDay()); +return String(_d73.getDay()); case "x": -return dojo.date.format(_d71,{selector:"dateOnly",locale:_d73}); +return dojo.date.format(_d73,{selector:"dateOnly",locale:_d75}); case "X": -return dojo.date.format(_d71,{selector:"timeOnly",locale:_d73}); +return dojo.date.format(_d73,{selector:"timeOnly",locale:_d75}); case "y": -return _(_d71.getFullYear()%100); +return _(_d73.getFullYear()%100); case "Y": -return String(_d71.getFullYear()); +return String(_d73.getFullYear()); case "z": -var _d79=_d71.getTimezoneOffset(); -return (_d79>0?"-":"+")+_(Math.floor(Math.abs(_d79)/60))+":"+_(Math.abs(_d79)%60); +var _d7b=_d73.getTimezoneOffset(); +return (_d7b>0?"-":"+")+_(Math.floor(Math.abs(_d7b)/60))+":"+_(Math.abs(_d7b)%60); case "Z": -return dojo.date.getTimezoneName(_d71); +return dojo.date.getTimezoneName(_d73); case "%": return "%"; } } -var _d7a=""; +var _d7c=""; var i=0; -var _d7c=0; -var _d7d=null; -while((_d7c=_d72.indexOf("%",i))!=-1){ -_d7a+=_d72.substring(i,_d7c++); -switch(_d72.charAt(_d7c++)){ +var _d7e=0; +var _d7f=null; +while((_d7e=_d74.indexOf("%",i))!=-1){ +_d7c+=_d74.substring(i,_d7e++); +switch(_d74.charAt(_d7e++)){ case "_": -_d74=" "; +_d76=" "; break; case "-": -_d74=""; +_d76=""; break; case "0": -_d74="0"; +_d76="0"; break; case "^": -_d7d="upper"; +_d7f="upper"; break; case "*": -_d7d="lower"; +_d7f="lower"; break; case "#": -_d7d="swap"; +_d7f="swap"; break; default: -_d74=null; -_d7c--; +_d76=null; +_d7e--; break; } -var _d7e=$(_d72.charAt(_d7c++)); -switch(_d7d){ +var _d80=$(_d74.charAt(_d7e++)); +switch(_d7f){ case "upper": -_d7e=_d7e.toUpperCase(); +_d80=_d80.toUpperCase(); break; case "lower": -_d7e=_d7e.toLowerCase(); +_d80=_d80.toLowerCase(); break; case "swap": -var _d7f=_d7e.toLowerCase(); -var _d80=""; +var _d81=_d80.toLowerCase(); +var _d82=""; var j=0; var ch=""; -while(j<_d7e.length){ -ch=_d7e.charAt(j); -_d80+=(ch==_d7f.charAt(j))?ch.toUpperCase():ch.toLowerCase(); +while(j<_d80.length){ +ch=_d80.charAt(j); +_d82+=(ch==_d81.charAt(j))?ch.toUpperCase():ch.toLowerCase(); j++; } -_d7e=_d80; +_d80=_d82; break; default: break; } -_d7d=null; -_d7a+=_d7e; -i=_d7c; +_d7f=null; +_d7c+=_d80; +i=_d7e; } -_d7a+=_d72.substring(i); -return _d7a; +_d7c+=_d74.substring(i); +return _d7c; }; (function(){ -var _d83=[]; -dojo.date.addCustomFormats=function(_d84,_d85){ -_d83.push({pkg:_d84,name:_d85}); +var _d85=[]; +dojo.date.addCustomFormats=function(_d86,_d87){ +_d85.push({pkg:_d86,name:_d87}); }; -dojo.date._getGregorianBundle=function(_d86){ -var _d87={}; -dojo.lang.forEach(_d83,function(desc){ -var _d89=dojo.i18n.getLocalization(desc.pkg,desc.name,_d86); -_d87=dojo.lang.mixin(_d87,_d89); +dojo.date._getGregorianBundle=function(_d88){ +var _d89={}; +dojo.lang.forEach(_d85,function(desc){ +var _d8b=dojo.i18n.getLocalization(desc.pkg,desc.name,_d88); +_d89=dojo.lang.mixin(_d89,_d8b); },this); -return _d87; +return _d89; }; })(); dojo.date.addCustomFormats("dojo.i18n.calendar","gregorian"); dojo.date.addCustomFormats("dojo.i18n.calendar","gregorianExtras"); -dojo.date.getNames=function(item,type,use,_d8d){ -var _d8e; -var _d8f=dojo.date._getGregorianBundle(_d8d); -var _d90=[item,use,type]; +dojo.date.getNames=function(item,type,use,_d8f){ +var _d90; +var _d91=dojo.date._getGregorianBundle(_d8f); +var _d92=[item,use,type]; if(use=="standAlone"){ -_d8e=_d8f[_d90.join("-")]; +_d90=_d91[_d92.join("-")]; } -_d90[1]="format"; -return (_d8e||_d8f[_d90.join("-")]).concat(); +_d92[1]="format"; +return (_d90||_d91[_d92.join("-")]).concat(); }; -dojo.date.getDayName=function(_d91,_d92){ -return dojo.date.getNames("days","wide","format",_d92)[_d91.getDay()]; +dojo.date.getDayName=function(_d93,_d94){ +return dojo.date.getNames("days","wide","format",_d94)[_d93.getDay()]; }; -dojo.date.getDayShortName=function(_d93,_d94){ -return dojo.date.getNames("days","abbr","format",_d94)[_d93.getDay()]; +dojo.date.getDayShortName=function(_d95,_d96){ +return dojo.date.getNames("days","abbr","format",_d96)[_d95.getDay()]; }; -dojo.date.getMonthName=function(_d95,_d96){ -return dojo.date.getNames("months","wide","format",_d96)[_d95.getMonth()]; +dojo.date.getMonthName=function(_d97,_d98){ +return dojo.date.getNames("months","wide","format",_d98)[_d97.getMonth()]; }; -dojo.date.getMonthShortName=function(_d97,_d98){ -return dojo.date.getNames("months","abbr","format",_d98)[_d97.getMonth()]; +dojo.date.getMonthShortName=function(_d99,_d9a){ +return dojo.date.getNames("months","abbr","format",_d9a)[_d99.getMonth()]; }; -dojo.date.toRelativeString=function(_d99){ +dojo.date.toRelativeString=function(_d9b){ var now=new Date(); -var diff=(now-_d99)/1000; +var diff=(now-_d9b)/1000; var end=" ago"; -var _d9d=false; +var _d9f=false; if(diff<0){ -_d9d=true; +_d9f=true; end=" from now"; diff=-diff; } @@ -16293,22 +16310,22 @@ return diff+" hour"+(diff==1?"":"s")+end; if(diff<60*60*24*7){ diff=Math.round(diff/(3600*24)); if(diff==1){ -return _d9d?"Tomorrow":"Yesterday"; +return _d9f?"Tomorrow":"Yesterday"; }else{ return diff+" days"+end; } } -return dojo.date.format(_d99); +return dojo.date.format(_d9b); }; -dojo.date.toSql=function(_d9e,_d9f){ -return dojo.date.strftime(_d9e,"%F"+!_d9f?" %T":""); +dojo.date.toSql=function(_da0,_da1){ +return dojo.date.strftime(_da0,"%F"+!_da1?" %T":""); }; -dojo.date.fromSql=function(_da0){ -var _da1=_da0.split(/[\- :]/g); -while(_da1.length<6){ -_da1.push(0); +dojo.date.fromSql=function(_da2){ +var _da3=_da2.split(/[\- :]/g); +while(_da3.length<6){ +_da3.push(0); } -return new Date(_da1[0],(parseInt(_da1[1],10)-1),_da1[2],_da1[3],_da1[4],_da1[5]); +return new Date(_da3[0],(parseInt(_da3[1],10)-1),_da3[2],_da3[3],_da3[4],_da3[5]); }; dojo.provide("dojo.widget.TimePicker"); dojo.widget.defineWidget("dojo.widget.TimePicker",dojo.widget.HtmlWidget,function(){ @@ -16322,13 +16339,13 @@ this.any="any"; this.selectedTime={hour:"",minute:"",amPm:"",anyTime:false}; this.hourIndexMap=["",2,4,6,8,10,1,3,5,7,9,11,0]; this.minuteIndexMap=[0,2,4,6,8,10,1,3,5,7,9,11]; -},{isContainer:false,templatePath:dojo.uri.moduleUri("dojo.widget","templates/TimePicker.html"),templateCssPath:dojo.uri.moduleUri("dojo.widget","templates/TimePicker.css"),postMixInProperties:function(_da2,frag){ +},{isContainer:false,templatePath:dojo.uri.moduleUri("dojo.widget","templates/TimePicker.html"),templateCssPath:dojo.uri.moduleUri("dojo.widget","templates/TimePicker.css"),postMixInProperties:function(_da4,frag){ dojo.widget.TimePicker.superclass.postMixInProperties.apply(this,arguments); this.calendar=dojo.i18n.getLocalization("dojo.i18n.calendar","gregorian",this.lang); this.widgetStrings=dojo.i18n.getLocalization("dojo.widget","TimePicker",this.lang); },fillInTemplate:function(args,frag){ -var _da6=this.getFragNodeRef(frag); -dojo.html.copyStyle(this.domNode,_da6); +var _da8=this.getFragNodeRef(frag); +dojo.html.copyStyle(this.domNode,_da8); if(args.value){ if(args.value instanceof Date){ this.storedTime=dojo.date.toRfc3339(args.value); @@ -16351,13 +16368,13 @@ this.time=dojo.widget.TimePicker.util.fromRfcDateTime("",0,1); } },initUI:function(){ if(!this.selectedTime.anyTime&&this.time){ -var _da7=dojo.widget.TimePicker.util.toAmPmHour(this.time.getHours()); -var hour=_da7[0]; -var isAm=_da7[1]; -var _daa=this.time.getMinutes(); -var _dab=parseInt(_daa/5); +var _da9=dojo.widget.TimePicker.util.toAmPmHour(this.time.getHours()); +var hour=_da9[0]; +var isAm=_da9[1]; +var _dac=this.time.getMinutes(); +var _dad=parseInt(_dac/5); this.onSetSelectedHour(this.hourIndexMap[hour]); -this.onSetSelectedMinute(this.minuteIndexMap[_dab]); +this.onSetSelectedMinute(this.minuteIndexMap[_dad]); this.onSetSelectedAmPm(isAm); }else{ this.onSetSelectedAnyTime(); @@ -16371,8 +16388,8 @@ this.selectedTime.anyTime=true; } this.initData(); this.initUI(); -},setDateTime:function(_dad){ -this.storedTime=_dad; +},setDateTime:function(_daf){ +this.storedTime=_daf; },onClearSelectedHour:function(evt){ this.clearSelectedHour(); },onClearSelectedMinute:function(evt){ @@ -16387,20 +16404,20 @@ this.time=dojo.widget.TimePicker.util.fromRfcDateTime("",this.useDefaultMinutes) this.initUI(); } },clearSelectedHour:function(){ -var _db2=this.hourContainerNode.getElementsByTagName("td"); -for(var i=0;i<_db2.length;i++){ -dojo.html.setClass(_db2.item(i),""); -} -},clearSelectedMinute:function(){ -var _db4=this.minuteContainerNode.getElementsByTagName("td"); +var _db4=this.hourContainerNode.getElementsByTagName("td"); for(var i=0;i<_db4.length;i++){ dojo.html.setClass(_db4.item(i),""); } -},clearSelectedAmPm:function(){ -var _db6=this.amPmContainerNode.getElementsByTagName("td"); +},clearSelectedMinute:function(){ +var _db6=this.minuteContainerNode.getElementsByTagName("td"); for(var i=0;i<_db6.length;i++){ dojo.html.setClass(_db6.item(i),""); } +},clearSelectedAmPm:function(){ +var _db8=this.amPmContainerNode.getElementsByTagName("td"); +for(var i=0;i<_db8.length;i++){ +dojo.html.setClass(_db8.item(i),""); +} },clearSelectedAnyTime:function(){ dojo.html.setClass(this.anyTimeContainerNode,"anyTimeContainer"); },onSetSelectedHour:function(evt){ @@ -16411,19 +16428,19 @@ this.onSetTime(); },setSelectedHour:function(evt){ if(evt&&evt.target){ if(evt.target.nodeType==dojo.dom.ELEMENT_NODE){ -var _dba=evt.target; +var _dbc=evt.target; }else{ -var _dba=evt.target.parentNode; +var _dbc=evt.target.parentNode; } dojo.event.browser.stopEvent(evt); -dojo.html.setClass(_dba,this.classNames.selectedTime); -this.selectedTime["hour"]=_dba.innerHTML; +dojo.html.setClass(_dbc,this.classNames.selectedTime); +this.selectedTime["hour"]=_dbc.innerHTML; }else{ if(!isNaN(evt)){ -var _dbb=this.hourContainerNode.getElementsByTagName("td"); -if(_dbb.item(evt)){ -dojo.html.setClass(_dbb.item(evt),this.classNames.selectedTime); -this.selectedTime["hour"]=_dbb.item(evt).innerHTML; +var _dbd=this.hourContainerNode.getElementsByTagName("td"); +if(_dbd.item(evt)){ +dojo.html.setClass(_dbd.item(evt),this.classNames.selectedTime); +this.selectedTime["hour"]=_dbd.item(evt).innerHTML; } } } @@ -16437,19 +16454,19 @@ this.onSetTime(); },setSelectedMinute:function(evt){ if(evt&&evt.target){ if(evt.target.nodeType==dojo.dom.ELEMENT_NODE){ -var _dbe=evt.target; +var _dc0=evt.target; }else{ -var _dbe=evt.target.parentNode; +var _dc0=evt.target.parentNode; } dojo.event.browser.stopEvent(evt); -dojo.html.setClass(_dbe,this.classNames.selectedTime); -this.selectedTime["minute"]=_dbe.innerHTML; +dojo.html.setClass(_dc0,this.classNames.selectedTime); +this.selectedTime["minute"]=_dc0.innerHTML; }else{ if(!isNaN(evt)){ -var _dbf=this.minuteContainerNode.getElementsByTagName("td"); -if(_dbf.item(evt)){ -dojo.html.setClass(_dbf.item(evt),this.classNames.selectedTime); -this.selectedTime["minute"]=_dbf.item(evt).innerHTML; +var _dc1=this.minuteContainerNode.getElementsByTagName("td"); +if(_dc1.item(evt)){ +dojo.html.setClass(_dc1.item(evt),this.classNames.selectedTime); +this.selectedTime["minute"]=_dc1.item(evt).innerHTML; } } } @@ -16460,20 +16477,20 @@ this.setSelectedAmPm(evt); this.selectedTime.anyTime=false; this.onSetTime(); },setSelectedAmPm:function(evt){ -var _dc2=evt.target; -if(evt&&_dc2){ -if(_dc2.nodeType!=dojo.dom.ELEMENT_NODE){ -_dc2=_dc2.parentNode; +var _dc4=evt.target; +if(evt&&_dc4){ +if(_dc4.nodeType!=dojo.dom.ELEMENT_NODE){ +_dc4=_dc4.parentNode; } dojo.event.browser.stopEvent(evt); -this.selectedTime.amPm=_dc2.id; -dojo.html.setClass(_dc2,this.classNames.selectedTime); +this.selectedTime.amPm=_dc4.id; +dojo.html.setClass(_dc4,this.classNames.selectedTime); }else{ evt=evt?0:1; -var _dc3=this.amPmContainerNode.getElementsByTagName("td"); -if(_dc3.item(evt)){ -this.selectedTime.amPm=_dc3.item(evt).id; -dojo.html.setClass(_dc3.item(evt),this.classNames.selectedTime); +var _dc5=this.amPmContainerNode.getElementsByTagName("td"); +if(_dc5.item(evt)){ +this.selectedTime.amPm=_dc5.item(evt).id; +dojo.html.setClass(_dc5.item(evt),this.classNames.selectedTime); } } },onSetSelectedAnyTime:function(evt){ @@ -16490,72 +16507,72 @@ dojo.event.browser.stopEvent(evt); },onSetTime:function(){ if(this.selectedTime.anyTime){ this.time=new Date(); -var _dc7=dojo.widget.TimePicker.util.toRfcDateTime(this.time); -this.setDateTime(_dc7.split("T")[0]); +var _dc9=dojo.widget.TimePicker.util.toRfcDateTime(this.time); +this.setDateTime(_dc9.split("T")[0]); }else{ var hour=12; -var _dc9=0; +var _dcb=0; var isAm=false; if(this.selectedTime["hour"]){ hour=parseInt(this.selectedTime["hour"],10); } if(this.selectedTime["minute"]){ -_dc9=parseInt(this.selectedTime["minute"],10); +_dcb=parseInt(this.selectedTime["minute"],10); } if(this.selectedTime["amPm"]){ isAm=(this.selectedTime["amPm"].toLowerCase()=="am"); } this.time=new Date(); this.time.setHours(dojo.widget.TimePicker.util.fromAmPmHour(hour,isAm)); -this.time.setMinutes(_dc9); +this.time.setMinutes(_dcb); this.setDateTime(dojo.widget.TimePicker.util.toRfcDateTime(this.time)); } this.onValueChanged(this.time); },onValueChanged:function(date){ }}); dojo.widget.TimePicker.util=new function(){ -this.toRfcDateTime=function(_dcc){ -if(!_dcc){ -_dcc=new Date(); +this.toRfcDateTime=function(_dce){ +if(!_dce){ +_dce=new Date(); } -_dcc.setSeconds(0); -return dojo.date.strftime(_dcc,"%Y-%m-%dT%H:%M:00%z"); +_dce.setSeconds(0); +return dojo.date.strftime(_dce,"%Y-%m-%dT%H:%M:00%z"); }; -this.fromRfcDateTime=function(_dcd,_dce,_dcf){ -var _dd0=new Date(); -if(!_dcd||_dcd.indexOf("T")==-1){ -if(_dce){ -_dd0.setMinutes(Math.floor(_dd0.getMinutes()/5)*5); +this.fromRfcDateTime=function(_dcf,_dd0,_dd1){ +var _dd2=new Date(); +if(!_dcf||_dcf.indexOf("T")==-1){ +if(_dd0){ +_dd2.setMinutes(Math.floor(_dd2.getMinutes()/5)*5); }else{ -_dd0.setMinutes(0); +_dd2.setMinutes(0); } }else{ -var _dd1=_dcd.split("T")[1].split(":"); -var _dd0=new Date(); -_dd0.setHours(_dd1[0]); -_dd0.setMinutes(_dd1[1]); +var _dd3=_dcf.split("T")[1].split(":"); +var _dd2=new Date(); +_dd2.setHours(_dd3[0]); +_dd2.setMinutes(_dd3[1]); } -return _dd0; +return _dd2; }; this.toAmPmHour=function(hour){ -var _dd3=hour; +var _dd5=hour; var isAm=true; -if(_dd3==0){ -_dd3=12; +if(_dd5==0){ +_dd5=12; }else{ -if(_dd3>12){ -_dd3=_dd3-12; +if(_dd5>12){ +_dd5=_dd5-12; isAm=false; }else{ -if(_dd3==12){ +if(_dd5==12){ isAm=false; } } } -return [_dd3,isAm]; +return [_dd5,isAm]; }; -this.fromAmPmHour=function(_dd5,isAm){ -var hour=parseInt(_dd5,10); +this.fromAmPmHour=function(_dd7,isAm){ +var hour=parseInt(_dd7,10); if(isAm&&hour==12){ hour=0; }else{ @@ -16569,8 +16586,8 @@ return hour; dojo.provide("dojo.widget.DropdownTimePicker"); dojo.widget.defineWidget("dojo.widget.DropdownTimePicker",dojo.widget.DropdownContainer,{iconURL:dojo.uri.moduleUri("dojo.widget","templates/images/timeIcon.gif"),formatLength:"short",displayFormat:"",timeFormat:"",saveFormat:"",value:"",name:"",postMixInProperties:function(){ dojo.widget.DropdownTimePicker.superclass.postMixInProperties.apply(this,arguments); -var _dd8=dojo.i18n.getLocalization("dojo.widget","DropdownTimePicker",this.lang); -this.iconAlt=_dd8.selectTime; +var _dda=dojo.i18n.getLocalization("dojo.widget","DropdownTimePicker",this.lang); +this.iconAlt=_dda.selectTime; if(typeof (this.value)=="string"&&this.value.toLowerCase()=="today"){ this.value=new Date(); } @@ -16595,9 +16612,9 @@ this.value=new Date(this.value); } },fillInTemplate:function(){ dojo.widget.DropdownTimePicker.superclass.fillInTemplate.apply(this,arguments); -var _ddd=""; +var _ddf=""; if(this.value instanceof Date){ -_ddd=this.value; +_ddf=this.value; }else{ if(this.value){ var orig=this.value; @@ -16609,11 +16626,11 @@ c[i]="0"+c[i]; } } orig=c.join(":"); -_ddd=dojo.date.fromRfc3339(d+"T"+orig); +_ddf=dojo.date.fromRfc3339(d+"T"+orig); } } -var _de2={widgetContainerId:this.widgetId,lang:this.lang,value:_ddd}; -this.timePicker=dojo.widget.createWidget("TimePicker",_de2,this.containerNode,"child"); +var _de4={widgetContainerId:this.widgetId,lang:this.lang,value:_ddf}; +this.timePicker=dojo.widget.createWidget("TimePicker",_de4,this.containerNode,"child"); dojo.event.connect(this.timePicker,"onValueChanged",this,"_updateText"); if(this.value){ this._updateText(); @@ -16625,12 +16642,12 @@ this.valueNode.name=this.name; return this.valueNode.value; },getTime:function(){ return this.timePicker.storedTime; -},setValue:function(_de3){ -this.setTime(_de3); -},setTime:function(_de4){ -var _de5=""; -if(_de4 instanceof Date){ -_de5=_de4; +},setValue:function(_de5){ +this.setTime(_de5); +},setTime:function(_de6){ +var _de7=""; +if(_de6 instanceof Date){ +_de7=_de6; }else{ if(this.value){ var orig=this.value; @@ -16642,10 +16659,10 @@ c[i]="0"+c[i]; } } orig=c.join(":"); -_de5=dojo.date.fromRfc3339(d+"T"+orig); +_de7=dojo.date.fromRfc3339(d+"T"+orig); } } -this.timePicker.setTime(_de5); +this.timePicker.setTime(_de7); this._syncValueNode(); },_updateText:function(){ if(this.timePicker.selectedTime.anyTime){ @@ -16661,43 +16678,43 @@ this.inputNode.value=dojo.date.format(this.timePicker.time,{formatLength:this.fo this._syncValueNode(); this.onValueChanged(this.getTime()); this.hideContainer(); -},onValueChanged:function(_dea){ +},onValueChanged:function(_dec){ },onInputChange:function(){ if(this.dateFormat){ dojo.deprecated("dojo.widget.DropdownTimePicker","Cannot parse user input. Must use displayFormat attribute instead of dateFormat. See dojo.date.format for specification.","0.5"); }else{ -var _deb=dojo.string.trim(this.inputNode.value); -if(_deb){ -var _dec=dojo.date.parse(_deb,{formatLength:this.formatLength,timePattern:this.displayFormat,selector:"timeOnly",locale:this.lang}); -if(_dec){ -this.setTime(_dec); +var _ded=dojo.string.trim(this.inputNode.value); +if(_ded){ +var _dee=dojo.date.parse(_ded,{formatLength:this.formatLength,timePattern:this.displayFormat,selector:"timeOnly",locale:this.lang}); +if(_dee){ +this.setTime(_dee); } }else{ -this.valueNode.value=_deb; +this.valueNode.value=_ded; } } -if(_deb){ +if(_ded){ this._updateText(); } },_syncValueNode:function(){ var time=this.timePicker.time; -var _dee; +var _df0; switch(this.saveFormat.toLowerCase()){ case "rfc": case "iso": case "": -_dee=dojo.date.toRfc3339(time,"timeOnly"); +_df0=dojo.date.toRfc3339(time,"timeOnly"); break; case "posix": case "unix": -_dee=Number(time); +_df0=Number(time); break; default: -_dee=dojo.date.format(time,{datePattern:this.saveFormat,selector:"timeOnly",locale:this.lang}); +_df0=dojo.date.format(time,{datePattern:this.saveFormat,selector:"timeOnly",locale:this.lang}); } -this.valueNode.value=_dee; -},destroy:function(_def){ -this.timePicker.destroy(_def); +this.valueNode.value=_df0; +},destroy:function(_df1){ +this.timePicker.destroy(_df1); dojo.widget.DropdownTimePicker.superclass.destroy.apply(this,arguments); }}); dojo.provide("struts.widget.StrutsTimePicker"); @@ -16716,29 +16733,29 @@ this.valueNotifyTopicsArray=this.valueNotifyTopics.split(","); } },_syncValueNode:function(){ var time=this.timePicker.time; -var _df1; +var _df3; switch(this.saveFormat.toLowerCase()){ case "rfc": case "iso": case "": -_df1=dojo.date.toRfc3339(time); +_df3=dojo.date.toRfc3339(time); break; case "posix": case "unix": -_df1=Number(time); +_df3=Number(time); break; default: -_df1=dojo.date.format(time,{datePattern:this.saveFormat,selector:"timeOnly",locale:this.lang}); +_df3=dojo.date.format(time,{datePattern:this.saveFormat,selector:"timeOnly",locale:this.lang}); } -this.valueNode.value=_df1; +this.valueNode.value=_df3; },_updateText:function(){ struts.widget.StrutsTimePicker.superclass._updateText.apply(this,arguments); if(this.valueNotifyTopicsArray!=null){ for(var i=0;i0){ for(var i=0;ithis.endDate){ -_dfc=new Date((_dfcthis.endDate){ +_dfe=new Date((_dfedays){ +if(dojo.date.diff(_e01,this.endDate,dojo.date.dateParts.DAY)>days){ this._preInitUI(this.startDate,true,false); -_dff=new Date(this.firstDay); +_e01=new Date(this.firstDay); } -this.curMonth=new Date(_dff); -this.curMonth.setDate(_dff.getDate()+6); +this.curMonth=new Date(_e01); +this.curMonth.setDate(_e01.getDate()+6); this.curMonth.setDate(1); -var _e02=(_dff.getMonth()==this.curMonth.getMonth())?"current":"previous"; +var _e04=(_e01.getMonth()==this.curMonth.getMonth())?"current":"previous"; } -if(_dfe){ +if(_e00){ this._initUI(days); } },_initUI:function(days){ @@ -16857,72 +16874,72 @@ dojo.dom.removeChildren(this.calendarDatesContainerNode); for(var i=0;ithis.endDate){ -_e0f=_e11=_e13=false; +if(_e11&&d2>this.endDate){ +_e11=_e13=_e15=false; } -if(_e10&&add(d,DAY,-1)this.endDate){ -_e11=_e13=false; +if(_e13&&add(d2,DAY,1)>this.endDate){ +_e13=_e15=false; } -if(_e12&&add(d2,YEAR,-1)this.endDate){ -_e13=false; +if(_e15&&add(d,YEAR,1)>this.endDate){ +_e15=false; } } -function enableControl(node,_e16){ -dojo.html.setVisibility(node,_e16?"":"hidden"); +function enableControl(node,_e18){ +dojo.html.setVisibility(node,_e18?"":"hidden"); } -enableControl(this.decreaseWeekNode,_e0e); -enableControl(this.increaseWeekNode,_e0f); -enableControl(this.decreaseMonthNode,_e10); -enableControl(this.increaseMonthNode,_e11); -enableControl(this.previousYearLabelNode,_e12); -enableControl(this.nextYearLabelNode,_e13); +enableControl(this.decreaseWeekNode,_e10); +enableControl(this.increaseWeekNode,_e11); +enableControl(this.decreaseMonthNode,_e12); +enableControl(this.increaseMonthNode,_e13); +enableControl(this.previousYearLabelNode,_e14); +enableControl(this.nextYearLabelNode,_e15); },_incrementWeek:function(evt){ var d=new Date(this.firstDay); switch(evt.target){ case this.increaseWeekNode.getElementsByTagName("img").item(0): case this.increaseWeekNode: -var _e19=dojo.date.add(d,dojo.date.dateParts.WEEK,1); -if(_e19this.startDate){ +if(_e1e>this.startDate){ d=dojo.date.add(d,dojo.date.dateParts.MONTH,-1); }else{ -var _e1e=true; +var _e20=true; } break; } -if(_e1e){ +if(_e20){ d=new Date(this.startDate); }else{ -if(_e1d){ +if(_e1f){ d=new Date(this.endDate); } } this._preInitUI(d,false,true); },_incrementYear:function(evt){ var year=this.curMonth.getFullYear(); -var _e21=new Date(this.firstDay); +var _e23=new Date(this.firstDay); switch(evt.target){ case this.nextYearLabelNode: -_e21=dojo.date.add(_e21,dojo.date.dateParts.YEAR,1); -if(_e21this.startDate){ +_e23=dojo.date.add(_e23,dojo.date.dateParts.YEAR,-1); +if(_e23>this.startDate){ year--; }else{ -var _e23=true; +var _e25=true; } break; } var d; -if(_e23){ +if(_e25){ d=new Date(this.startDate); }else{ -if(_e22){ +if(_e24){ d=new Date(this.endDate); }else{ d=new Date(year,this.curMonth.getMonth(),1); @@ -17011,8 +17028,8 @@ evt.stopPropagation(); if(!this.staticDisplay){ this._incrementYear(evt); } -},_setMonthLabel:function(_e28){ -this.monthLabelNode.innerHTML=dojo.date.getNames("months","wide","standAlone",this.lang)[_e28]; +},_setMonthLabel:function(_e2a){ +this.monthLabelNode.innerHTML=dojo.date.getNames("months","wide","standAlone",this.lang)[_e2a]; },_setYearLabels:function(year){ var y=year-1; var that=this; @@ -17022,64 +17039,64 @@ that[n+"YearLabelNode"].innerHTML=dojo.date.format(new Date(y++,0),{formatLength f("previous"); f("current"); f("next"); -},_getDateClassName:function(date,_e2e){ -var _e2f=this.classNames[_e2e]; +},_getDateClassName:function(date,_e30){ +var _e31=this.classNames[_e30]; if((!this.selectedIsUsed&&this.value)&&(Number(date)==Number(this.value))){ -_e2f=this.classNames.selectedDate+" "+_e2f; +_e31=this.classNames.selectedDate+" "+_e31; this.selectedIsUsed=true; } if((!this.currentIsUsed)&&(Number(date)==Number(this.today))){ -_e2f=_e2f+" "+this.classNames.currentDate; +_e31=_e31+" "+this.classNames.currentDate; this.currentIsUsed=true; } -return _e2f; +return _e31; },onClick:function(evt){ dojo.event.browser.stopEvent(evt); },_handleUiClick:function(evt){ -var _e32=evt.target; -if(_e32.nodeType!=dojo.dom.ELEMENT_NODE){ -_e32=_e32.parentNode; +var _e34=evt.target; +if(_e34.nodeType!=dojo.dom.ELEMENT_NODE){ +_e34=_e34.parentNode; } dojo.event.browser.stopEvent(evt); this.selectedIsUsed=this.todayIsUsed=false; -if(dojo.html.hasClass(_e32,this.classNames["disabledPrevious"])||dojo.html.hasClass(_e32,this.classNames["disabledCurrent"])||dojo.html.hasClass(_e32,this.classNames["disabledNext"])){ +if(dojo.html.hasClass(_e34,this.classNames["disabledPrevious"])||dojo.html.hasClass(_e34,this.classNames["disabledCurrent"])||dojo.html.hasClass(_e34,this.classNames["disabledNext"])){ return; } -this.clickedNode=_e32; -this.setDate(new Date(Number(dojo.html.getAttribute(_e32,"djDateValue")))); +this.clickedNode=_e34; +this.setDate(new Date(Number(dojo.html.getAttribute(_e34,"djDateValue")))); },onValueChanged:function(date){ -},_isDisabledDate:function(_e34){ -if(_e34this.endDate){ +},_isDisabledDate:function(_e36){ +if(_e36this.endDate){ return true; } -return this.isDisabledDate(_e34,this.lang); -},isDisabledDate:function(_e35,_e36){ +return this.isDisabledDate(_e36,this.lang); +},isDisabledDate:function(_e37,_e38){ return false; -},_initFirstDay:function(_e37,adj){ -var d=new Date(_e37); +},_initFirstDay:function(_e39,adj){ +var d=new Date(_e39); if(!adj){ d.setDate(1); } d.setDate(d.getDate()-this._getAdjustedDay(d,this.weekStartsOn)); d.setHours(0,0,0,0); return d; -},_getAdjustedDay:function(_e3a){ +},_getAdjustedDay:function(_e3c){ var days=[0,1,2,3,4,5,6]; if(this.weekStartsOn>0){ for(var i=0;i 0) { - var scripts = ""; - for(var i = 0; i < parsed.scripts.length; i++){ - scripts += parsed.scripts[i]; - } - (new Function('_container_', scripts+'; return this;'))(this); - } - this.setContent(parsed.text); - } - else { - this.setContent(data); - } - this.highlight(); - } else { - if(this.showError) { - var message = dojo.string.isBlank(this.errorText) ? e.message : this.errorText; - this.setContent(message); - } - } + //hide indicator + dojo.html.hide(this.indicator); + + //publish topics + this.notify(data, type, e); + + if(type == "load") { + if(this.validate) { + StrutsUtils.clearValidationErrors(this.formNode); + //validation is active for this action + var errors = StrutsUtils.getValidationErrors(data); + if(errors && errors.fieldErrors) { + //validation failed + StrutsUtils.showValidationErrors(this.formNode, errors); + return; + } else { + //validation passed + if(!this.ajaxAfterValidation && this.formNode) { + //regular submit + this.formNode.submit(); + return; + } + } + } + + // no validation or validation passed + if(this.executeScripts) { + //update targets content + var parsed = this.parse(data); + //eval scripts + if(parsed.scripts && parsed.scripts.length > 0) { + var scripts = ""; + for(var i = 0; i < parsed.scripts.length; i++){ + scripts += parsed.scripts[i]; + } + (new Function('_container_', scripts+'; return this;'))(this); + } + this.setContent(parsed.text); + } + else { + this.setContent(data); + } + this.highlight(); + } else { + if(this.showError) { + var message = dojo.string.isBlank(this.errorText) ? e.message : this.errorText; + this.setContent(message); + } + } }, notify : function(data, type, e) { @@ -22306,8 +22328,9 @@ dojo.widget.defineWidget( } //if there is a parent form, and it has a "onsubmit" - //execute it, validation is usually there - if(this.formNode && this.formNode.onsubmit != null) { + //execute it, validation is usually there, except is validation == true + //on which case it is ajax validation, instead of client side + if(!this.validate && this.formNode && this.formNode.onsubmit != null) { var makeRequest = this.formNode.onsubmit.call(evt); if(makeRequest != null && !makeRequest) { this.log("Request canceled by 'onsubmit' of the form"); @@ -22320,9 +22343,14 @@ dojo.widget.defineWidget( if(this.showLoading) { this.setContent(this.loadingText); } + + var tmpHref = this.href; + if(!this.ajaxAfterValidation) { + tmpHref = tmpHref + (tmpHref.indexOf("?") > -1 ? "&" : "?") + "validateOnly=true"; + } dojo.io.bind({ - url: this.href, + url: tmpHref, useCache: false, preventCache: true, formNode: self.formNode, diff --git a/plugins/dojo/src/main/resources/template/ajax/a.ftl b/plugins/dojo/src/main/resources/template/ajax/a.ftl index 02e2e7ef5..23f6487bb 100644 --- a/plugins/dojo/src/main/resources/template/ajax/a.ftl +++ b/plugins/dojo/src/main/resources/template/ajax/a.ftl @@ -1,4 +1,14 @@ + validate="${parameters.validate?string?html}"<#rt/> + <#else> + validate="false"<#rt/> + + <#if parameters.ajaxAfterValidation?exists> + ajaxAfterValidation="${parameters.ajaxAfterValidation?string?html}"<#rt/> + <#else> + ajaxAfterValidation="false" + <#include "/${parameters.templateDir}/ajax/ajax-common.ftl" /> <#include "/${parameters.templateDir}/simple/scripting-events.ftl" /> <#include "/${parameters.templateDir}/simple/common-attributes.ftl" /> diff --git a/plugins/dojo/src/main/resources/template/ajax/bind.ftl b/plugins/dojo/src/main/resources/template/ajax/bind.ftl index 736bb85b5..4578788a6 100644 --- a/plugins/dojo/src/main/resources/template/ajax/bind.ftl +++ b/plugins/dojo/src/main/resources/template/ajax/bind.ftl @@ -1,52 +1,74 @@ - - -<#-- - Code that will add javascript needed for tooltips ---><#t/> - <#lt/> - <#lt/> - diff --git a/plugins/dojo/src/main/resources/template/ajax/form.ftl b/plugins/dojo/src/main/resources/template/ajax/form.ftl deleted file mode 100644 index 25a72f98a..000000000 --- a/plugins/dojo/src/main/resources/template/ajax/form.ftl +++ /dev/null @@ -1,40 +0,0 @@ -<#if parameters.validate?exists> - - - - - - - -<#if parameters.namespace?exists> - namespace="${parameters.namespace?html}"<#rt/> - -<#if parameters.id?exists> - id="${parameters.id?html}"<#rt/> - -<#if parameters.name?exists> - name="${parameters.name?html}"<#rt/> - -<#if parameters.action?exists> - action="${parameters.action?html}"<#rt/> - -<#if parameters.target?exists> - target="${parameters.target?html}"<#rt/> - -<#if parameters.method?exists> - method="${parameters.method?html}"<#rt/> - -<#if parameters.enctype?exists> - enctype="${parameters.enctype?html}"<#rt/> - -<#if parameters.cssClass?exists> - class="${parameters.cssClass?html}"<#rt/> - -<#if parameters.acceptcharset?exists> - accept-charset="${parameters.acceptcharset?html}"<#rt/> - -<#if parameters.cssStyle?exists> - style="${parameters.cssStyle?html}"<#rt/> - - ${tag.addParameter("ajaxSubmit", "true")} -> diff --git a/plugins/dojo/src/main/resources/template/ajax/head.ftl b/plugins/dojo/src/main/resources/template/ajax/head.ftl index 291c93851..7e1b12f8b 100644 --- a/plugins/dojo/src/main/resources/template/ajax/head.ftl +++ b/plugins/dojo/src/main/resources/template/ajax/head.ftl @@ -7,8 +7,8 @@ baseRelativePath: "<@s.url value='${parameters.baseRelativePath}' includeParams='none' encode='false' />", baseScriptUri: "<@s.url value='${parameters.baseRelativePath}' includeParams='none' encode='false' />", <#else> - baseRelativePath: "<@s.url value='/struts/dojo/' includeParams='none' encode='false' />", - baseScriptUri: "<@s.url value='/struts/dojo/' includeParams='none' encode='false' />", + baseRelativePath: "${base}/struts/dojo/", + baseScriptUri: "${base}/struts/dojo/", <#if parameters.locale?if_exists != ""> locale: "${parameters.locale}", @@ -40,10 +40,14 @@ src="<@s.url value='${parameters.baseRelativePath}/${profile}${dojoFile}' includeParams='none' encode='false' />"> <#else> + src="${base}/struts/dojo/${profile}${dojoFile}"> + src="${base}/struts/ajax/dojoRequire.js"> + src="${base}/struts/CommonFunctions.js"> + + + + \ No newline at end of file diff --git a/plugins/dojo/src/main/resources/template/ajax/submit.ftl b/plugins/dojo/src/main/resources/template/ajax/submit.ftl index 0ce7d4eb3..886c8d434 100644 --- a/plugins/dojo/src/main/resources/template/ajax/submit.ftl +++ b/plugins/dojo/src/main/resources/template/ajax/submit.ftl @@ -1,3 +1,25 @@ +<#if parameters.parentTheme?default('') == 'xhtml'> + +
+ <#if parameters.align?exists> + align="${parameters.align?html}"<#t/> + + ><#t/> +<#elseif parameters.parentTheme?default('') == 'css_xhtml'> + <#if parameters.labelposition?default("top") == 'top'> +
+ <#else> + + + <#if parameters.align?exists> + align="${parameters.align?html}"<#t/> + + <#if parameters.id?exists> + id="wwctrl_${parameters.id}"<#rt/> + + ><#t/> + + <#if parameters.type?exists && parameters.type=="button"> <#include "/${parameters.templateDir}/ajax/ajax-common.ftl"/> @@ -25,8 +47,28 @@ <#if parameters.value?if_exists != ""> value="${parameters.value?html}"<#rt/> + <#if parameters.validate?exists> + validate="${parameters.validate?string?html}"<#rt/> + <#else> + validate="false"<#rt/> + + <#if parameters.ajaxAfterValidation?exists> + ajaxAfterValidation="${parameters.ajaxAfterValidation?string?html}"<#rt/> + <#else> + ajaxAfterValidation="false" + <#include "/${parameters.templateDir}/ajax/ajax-common.ftl"/> <#include "/${parameters.templateDir}/simple/scripting-events.ftl" /> <#include "/${parameters.templateDir}/simple/common-attributes.ftl" /> /> +<#if parameters.parentTheme?default('') == 'xhtml'> +
<#t/> + <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" /> +<#elseif parameters.parentTheme?default('') == 'css_xhtml'> + <#if parameters.labelposition?default("top") == 'top'> +
<#t/> + <#else> + <#t/> + + \ No newline at end of file diff --git a/plugins/dojo/src/main/resources/template/ajax/validation.js b/plugins/dojo/src/main/resources/template/ajax/validation.js deleted file mode 100644 index c485aec6e..000000000 --- a/plugins/dojo/src/main/resources/template/ajax/validation.js +++ /dev/null @@ -1,26 +0,0 @@ -var strutsValidator = new ValidationClient("$!base/validation"); -strutsValidator.onErrors = function(input, errors) { - - var form = input.form; - - clearErrorMessages(form); - clearErrorLabels(form); - - if (errors.fieldErrors) { - for (var fieldName in errors.fieldErrors) { - if (form.elements[fieldName].touched) { - for (var i = 0; i < errors.fieldErrors[fieldName].length; i++) { - addError(form.elements[fieldName], errors.fieldErrors[fieldName][i]); - } - } - } - } -} - -function validate(element) { - // mark the element as touch - element.touched = true; - var namespace = element.form.attributes['namespace'].nodeValue; - var actionName = element.form.attributes['name'].nodeValue; - strutsValidator.validate(element, namespace, actionName); -} diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java index 37dc88092..3251dbc60 100644 --- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java +++ b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java @@ -50,6 +50,8 @@ public class AnchorTest extends AbstractUITagTest { tag.setErrorNotifyTopics("l"); tag.setHighlightColor("m"); tag.setHighlightDuration("n"); + tag.setValidate("true"); + tag.setAjaxAfterValidation("true"); tag.doStartTag(); tag.doEndTag(); diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java index b7d3f9ac5..6189cb312 100644 --- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java +++ b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java @@ -26,6 +26,7 @@ public class BindTest extends AbstractUITagTest { tag.setEvents("o"); tag.setHighlightColor("p"); tag.setHighlightDuration("q"); + tag.setValidate("true"); tag.doStartTag(); tag.doEndTag(); diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java index ab25e88cd..e4c8b6c5e 100644 --- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java +++ b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java @@ -46,6 +46,8 @@ public class SubmitAjaxTest extends AbstractUITagTest { tag.setErrorNotifyTopics("m"); tag.setHighlightColor("n"); tag.setHighlightDuration("o"); + tag.setValidate("true"); + tag.setAjaxAfterValidation("true"); tag.doStartTag(); tag.doEndTag(); @@ -73,6 +75,7 @@ public class SubmitAjaxTest extends AbstractUITagTest { tag.setNotifyTopics("k"); tag.setIndicator("l"); tag.setErrorNotifyTopics("m"); + tag.setValidate("true"); tag.doStartTag(); tag.doEndTag(); @@ -101,6 +104,7 @@ public class SubmitAjaxTest extends AbstractUITagTest { tag.setNotifyTopics("k"); tag.setIndicator("l"); tag.setErrorNotifyTopics("m"); + tag.setValidate("true"); tag.doStartTag(); tag.doEndTag(); diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt index 968ba64a3..ba047727a 100644 --- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt +++ b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt @@ -9,11 +9,17 @@ "errorText":"d", "listenTopics":"e", "notifyTopics":"k", + "beforeNotifyTopics":"f", + "afterNotifyTopics":"g", + "errorNotifyTopics":"m", "indicator":"l", - "showError":"true", - "handler":"h" - "highlightColor":"p" - "highlightDuration":"q" + "showError":true, + "showLoading":true, + "handler":"h", + "highlightColor":"p", + "highlightDuration":q, + "validate": true, + "ajaxAfterValidation":false, }); }); \ No newline at end of file diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt index 99658840f..e4ca9caae 100644 --- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt +++ b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt @@ -21,4 +21,15 @@ + + + + + + + + \ No newline at end of file diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-2.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-2.txt index fea924012..7507b808c 100644 --- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-2.txt +++ b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-2.txt @@ -21,4 +21,15 @@ + + + + + + + + \ No newline at end of file diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt index cab4e09ca..5512d19bd 100644 --- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt +++ b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt @@ -1,5 +1,7 @@