<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
+ pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
-<tiles:importAttribute name="valid_action" scope="request"/>
+<tiles:importAttribute name="valid_action" scope="request" />
<script language="JavaScript">
- function initialize() {
- create.elements[0].focus();
- }
+ function initialize() {
+ create.elements[0].focus();
+ }
- function setValue() {
- var select = create.projectContextId.value; // contextValue select input
- if (select == "0") { // Creation of a new context type
- tds = document.getElementById("select");
- tde = document.getElementById("enter");
- tds.style.display = "none"; // Hides the select input
- tde.style.display = "block"; // Displays the text input
- }
- create.projectContext.focus();
+ function setValue() {
+ var select = create.projectContextId.value; // contextValue select input
+ if (select == "0") { // Creation of a new context type
+ tds = document.getElementById("select");
+ tde = document.getElementById("enter");
+ tds.style.display = "none"; // Hides the select input
+ tde.style.display = "block"; // Displays the text input
+ }
+ create.projectContext.focus();
+ }
+
+ function setDefaultSelection() {
+ tds = document.getElementById("select");
+ tde = document.getElementById("enter");
+ tds.style.display = "block"; // Hides the select input
+ tde.style.display = "none"; // Displays the text input
+
+ create.projectContextId.value = -1;
+ create.projectContextId.focus();
}
-
- $(document).ready(function () {
- create.projectContextId.value = <s:property value="projectContextId"/>;
- setValue();
- });
+
+ $(document).ready(function() {
+ <s:if test="projectContextValues.size > 0">
+ create.projectContextId.value = <s:property value="projectContextId"/>;
+ </s:if>
+ setValue();
+
+ //Studied product validation (based on struts-generated validation)
+ //relies on javascript included by 'validate="true"' for displaying error messages
+ document.getElementById("create").addEventListener('submit', function(event) { //cross-browser solution
+ form = document.getElementById("create");
+
+ var errors = false;
+ var continueValidation = true;
+
+ // field name: product
+ // custom validation function
+ if (form.elements['projectContext'] && form.elements['projectContextId']) {
+ field = form.elements['projectContext'];
+ id = form.elements['projectContextId'];
+ var error = "The field \'Studied product\' must be filled";
+ if (continueValidation
+ && id.value != null && (
+ (id.value == 0
+ && field.value != null
+ && (field.value == "" || field.value.replace(/^\s+|\s+$/g,"").length == 0)
+ )
+ || id.value == -1
+ )
+ ) {
+ addError(field, error);
+ errors = true;
+ }
+ }
+ if(errors) {
+ event.preventDefault(); //cross-browser solution
+ }
+ });
+ });
</script>
<!-- New study dialog
===========================================================================
-->
<div id="article-box">
- <div id="section">
- <s:text name="title.newstudy" />
- </div>
- <div id="top-spacer"></div>
- <form id="create" name="create" action="<tiles:getAsString name="input_action"/>" method="post">
- <table class="text">
+ <div id="section">
+ <s:text name="title.newstudy" />
+ </div>
+ <div id="top-spacer"></div>
+ <s:form id="create" name="create"
+ action="%{#request.valid_action}" method="post" validate="true" cssClass="text">
+
+ <tr class="error">
+ <td colspan="3"><s:text name="%{error}" /></td>
+ </tr>
- <tr class="error">
- <td colspan="3"><s:text name="%{error}" /></td>
- </tr>
+ <tr>
+ <td> <s:text name="field.studytitle" />: <span class="error">*</span>
+ </td>
+ <td><s:textfield theme="simple" size="60" name="title" /></td>
+ </tr>
- <tr>
- <td> <s:text name="field.studytitle" />*:
- </td>
- <td><s:textfield theme="simple" size="60" name="title" /></td>
- </tr>
+ <tr>
+ <td> <s:text name="field.product" />: <span class="error">*</span>
+ </td>
+ <s:if test="projectContextValues.size > 0">
+ <td id="select"><select name="projectContextId"
+ style="width: 214px" onChange="setValue()">
+ <option value="-1">
+ <s:text name="menu.select" />
+ </option>
+ <option value="0">
+
+ <s:text name="menu.newproduct" />
+ </option>
+ <optgroup label=" <s:text name="label.products"/>">
+ <s:iterator value="projectContextValues">
+ <option value="<s:property value="index"/>">
+
+ <s:property value="value" />
+ </option>
+ </s:iterator>
+ </optgroup>
+ </select></td>
+ <td id="enter" style="display: none">
+ <s:textfield theme="simple" size="30" name="projectContext" />
+ <img src="<s:url value="/skin/icon.undo.png"/>" border="none"
+ title="<s:text name="tooltip.cancel"/>"
+ onclick="setDefaultSelection()"/>
+ </td>
+ </s:if>
+ <s:else>
+ <td><s:hidden name="projectContextId" value="0" /> <s:textfield
+ theme="simple" size="30" name="projectContext" /></td>
+ </s:else>
+ </tr>
+ <tiles:insertAttribute name="source_study" ignore="true" />
- <tr>
- <td> <s:text name="field.product" />*:
- </td>
- <s:if test="projectContextValues.size > 0">
- <td id="select"><select name="projectContextId"
- style="width: 214px" onChange="setValue()">
- <option value="-1">
- <s:text name="menu.select" />
- </option>
- <option value="0">
-
- <s:text name="menu.newproduct" />
- </option>
- <optgroup label=" <s:text name="label.products"/>">
- <s:iterator value="projectContextValues">
- <option value="<s:property value="index"/>">
-
- <s:property value="value" />
- </option>
- </s:iterator>
- </optgroup>
- </select></td>
- <td id="enter" style="display: none"><s:textfield
- theme="simple" size="30" name="projectContext" /></td>
- </s:if>
- <s:else>
- <td><s:hidden name="projectContextId" value="0" /> <s:textfield
- size="30" name="projectContext" /></td>
- </s:else>
- </tr>
- <tiles:insertAttribute name="source_study" ignore="true" />
-
- <tr>
- <td align="right" colspan="2"><s:submit action="%{#request.valid_action}"
- theme="simple" type="button" key="button.newstudy" /></td>
- </tr>
+ <tr>
+ <td align="right" colspan="2"><s:submit
+ theme="simple" type="button"
+ key="button.newstudy" /></td>
+ </tr>
- </table>
- </form>
- <div id="top-spacer"></div>
+ </s:form>
+ <div id="top-spacer"></div>
</div>
<!-- Reserved