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 d227e8e7f373b4e9da07636d486e3066a15829da..bf04ebdaa6b3e3270751164828a669e0bef8e7d9 100644 (file)
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
-    pageEncoding="ISO-8859-1"
-%><%@
-    taglib prefix="s" uri="/struts-tags"
-%>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
+       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" />
 
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <title><s:text name="name.module"/></title>
-    <link href=<s:url value="/skin/default.css"/> rel="stylesheet" type="text/css">
-    <script language="JavaScript">
+<script language="JavaScript">
+       function initialize() {
+               create.elements[0].focus();
+       }
 
-    function initialize () {
-//  ----------------------
-      create.elements[0].focus();
-    }
-
-    function setValue () {
-//  -------------------
-      var select = create.elements[1].value;  // contextValue select input
-      if (select == "0") {                    // Creation of a new context type
+       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 = "none";           // Hides the select input
-        tde.style.display = "block";          // Displays the text input
-      }
-      create.elements[2].focus();
+        tds.style.display = "block"; // Hides the select input
+        tde.style.display = "none"; // Displays the text input
+        
+        create.projectContextId.value = -1;
+        create.projectContextId.focus();
     }
-    </script>
-  </head>
-
-  <body onLoad="initialize()">
-<!-- Menu-bar
-     =============================================================================================================================
-  -->
-    <jsp:include page="/jsp/menubar.jsp" />
-    <div id=top-spacer></div>
 
-<!-- Creation menu
-     =============================================================================================================================
-  -->
-    <div id=left-pane>
-      <jsp:include page="/jsp/toolbar.jsp" />
-      <div id=top-spacer></div>
-      <jsp:include page="/jsp/menuitem.jsp">
-        <jsp:param name="menu" value="open" />
-      </jsp:include>
-    </div>
+       $(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=center-pane>
-      <div id=article-box>
-        <div id=section><s:text name="title.newstudy"/></div>
-        <div id=top-spacer></div>
-        <form name="create" action="valid-new" method="post">
-        <table class="text">
+<div id="article-box">
+       <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 colspan=2>
-              <input type=text size="60" name=title value="<s:property value="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="projectContext" 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">
-                <input type=text size="30" name=projectContext>
-              </td>
-            </s:if>
-            <s:else>
-              <td>
-                <input type=hidden         name=projectContext value="0">
-                <input type=text size="30" name=projectContext>
-              </td>
-            </s:else>
-            <td align=right>
-              <input type="submit" value="<s:text name="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>
-      </div>
-    </div>
+       </s:form>
+       <div id="top-spacer"></div>
+</div>
 
 <!-- Reserved
   -->
-    <div id=right-pane></div>
-    <div id=bottom-spacer></div>
-
-  </body>
-
-</html>
\ No newline at end of file
+<div id="right-pane"></div>
+<div id="bottom-spacer"></div>