]> SALOME platform Git repositories - tools/siman.git/blobdiff - Workspace/Siman/WebContent/study/newStudy.jsp
Salome HOME
- Back-arrow is added when the user selects the new product on the new study screen
[tools/siman.git] / Workspace / Siman / WebContent / study / newStudy.jsp
index 34d5e8c13ed37aa614236004c6b7a5bef5e5c17b..bf04ebdaa6b3e3270751164828a669e0bef8e7d9 100644 (file)
 <%@ 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>&nbsp;<s:text name="field.studytitle" />:&nbsp;<span class="error">*</span>
+                               </td>
+                               <td><s:textfield theme="simple" size="60" name="title" /></td>
+                       </tr>
 
-            <tr>
-                <td>&nbsp;<s:text name="field.studytitle" />*:&nbsp;
-                </td>
-                <td><s:textfield theme="simple" size="60" name="title" /></td>
-            </tr>
+                       <tr>
+                               <td>&nbsp;<s:text name="field.product" />:&nbsp;<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">
+                                                               &nbsp;
+                                                               <s:text name="menu.newproduct" />
+                                                       </option>
+                                                       <optgroup label="&nbsp;<s:text name="label.products"/>">
+                                                               <s:iterator value="projectContextValues">
+                                                                       <option value="<s:property value="index"/>">
+                                                                               &nbsp;
+                                                                               <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>&nbsp;<s:text name="field.product" />*:&nbsp;
-                </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">
-                                &nbsp;
-                                <s:text name="menu.newproduct" />
-                            </option>
-                            <optgroup label="&nbsp;<s:text name="label.products"/>">
-                                <s:iterator value="projectContextValues">
-                                    <option value="<s:property value="index"/>">
-                                        &nbsp;
-                                        <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