Salome HOME
Fix for the bug: urls to documents in the repository are cached for all users with...
[tools/siman.git] / Workspace / Siman / WebContent / study / searchStudy.jsp
1 <%@page language="java" contentType="text/html; charset=ISO-8859-1"
2     pageEncoding="ISO-8859-1"
3 %>
4 <%@page import="org.splat.dal.bo.som.Study"%>
5 <%@page import="org.splat.som.ApplicationRights"%>
6 <%@page import="org.splat.simer.ApplicationSettings"%>
7 <%@page import="java.util.ResourceBundle"%>
8 <%@page import="java.util.Calendar"%>
9 <%@page import="java.text.SimpleDateFormat"%>
10 <%@page import="org.splat.simer.Action"%>
11 <%@page import="com.opensymphony.xwork2.ActionContext"%>
12 <%@taglib prefix="s" uri="/struts-tags"%>
13 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
14
15 <!-- Initialization of the context
16      =============================================================================================================================
17   -->
18 <%  
19     ApplicationRights rights    = (ApplicationRights)session.getAttribute("user.rights");
20     Action anAction = (Action)ActionContext.getContext().getActionInvocation().getAction();
21     ResourceBundle    locale    = ResourceBundle.getBundle("som", 
22                 anAction.getApplicationSettings().getCurrentLocale());
23     String            format    = locale.getString("date.format");
24     SimpleDateFormat  tostring  = new SimpleDateFormat(format);
25     String            result    = "uptodate";
26     boolean           connected = false;
27
28     if (rights.getUser() != null)                      connected = true;
29     if (session.getAttribute("search.result") == null) result    = "obsolete";
30 %>
31
32 <s:set var="user"><%=connected%></s:set>
33 <s:set var="format"><%=format%></s:set>
34 <s:set var="today"><%=tostring.format(java.util.Calendar.getInstance().getTime())%></s:set>
35 <html>
36
37   <link href=<s:url value="/skin/default.css"/> rel="stylesheet" type="text/css">
38
39   <script language="JavaScript" type="text/javascript" src="../js/search.js"></script>
40
41   <body onLoad="initialize('<%=result%>')">
42
43 <!-- Search criteria section
44      =============================================================================================================================
45   -->
46       <div id=article-box>
47         <div id=section><s:text name="title.criteria"/></div>
48         <div id="article-body">
49           <form name="search" action="refresh-study" method="post">
50           <input type=hidden name="contextIndex" />
51           <s:set var="match1" value="criteriaMatch"/>
52           <s:set var="match2" value="contextMatch"/>
53           <s:set var="him"    value="author"/>
54
55           <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
56             <tr height=20>
57               <td width=40%>
58                 <b><s:text name="field.among"/></b>&nbsp;&nbsp;&nbsp;
59                 <s:if test="%{#match1 == 'all'}">
60                 <input type=radio name="criteriaMatch" value="all"  checked onClick="changeFilter()"><s:text name="field.matchall"/>
61                 &nbsp;
62                 <input type=radio name="criteriaMatch" value="any"          onClick="changeFilter()"><s:text name="field.matchany"/>
63                 </s:if><s:else>
64                 <input type=radio name="criteriaMatch" value="all"          onClick="changeFilter()"><s:text name="field.matchall"/>
65                 &nbsp;
66                 <input type=radio name="criteriaMatch" value="any"  checked onClick="changeFilter()"><s:text name="field.matchany"/>
67                 </s:else>
68               </td>
69               <td width=60%>|&nbsp;&nbsp;
70                 <b><s:text name="field.context"/></b>&nbsp;&nbsp;&nbsp;
71                 <s:if test="%{#match2 == 'all'}">
72                 <input type=radio name="contextMatch" value="all"  checked onClick="changeFilter()"><s:text name="field.matchall"/>
73                 &nbsp;
74                 <input type=radio name="contextMatch" value="any"          onClick="changeFilter()"><s:text name="field.matchany"/>
75                 </s:if><s:else>
76                 <input type=radio name="contextMatch" value="all"          onClick="changeFilter()"><s:text name="field.matchall"/>
77                 &nbsp;
78                 <input type=radio name="contextMatch" value="any"  checked onClick="changeFilter()"><s:text name="field.matchany"/>
79                 </s:else>
80               </td>
81             </tr>
82             <tr height=1 bgcolor=#AAAAAA><td colspan=2></td></tr>
83           </table>
84
85           <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
86             <tr valign=top>
87               <td width=40%>
88               <table cellpadding=0 cellspacing=0 border=0 class=text>
89                 <tr>
90                   <td colspan=2><s:text name="criterion.study"/>&nbsp;</td>
91                   <td colspan=3 align=center>
92                   <select name="state" style="width: <s:text name="size.search.select"/>" onChange="setState()">
93                     <s:if test="state == 'ANY'">       <option value="ANY"        selected><s:text name="criterion.any" /></option></s:if>
94                     <s:else>                           <option value="ANY"                ><s:text name="criterion.any" /></option></s:else>
95                     <s:if test="#user">
96                       <s:if test="state == 'inWORK'">  <option value="inWORK"     selected><s:text name="criterion.inwork" /></option></s:if>
97                       <s:else>                         <option value="inWORK"             ><s:text name="criterion.inwork" /></option></s:else>
98                       <s:if test="state == 'inDRAFT'"> <option value="inDRAFT"    selected><s:text name="criterion.indraft" /></option></s:if>
99                       <s:else>                         <option value="inDRAFT"            ><s:text name="criterion.indraft" /></option></s:else>
100                       <s:if test="state == 'inCHECK'"> <option value="inCHECK"    selected><s:text name="criterion.incheck" /></option></s:if>
101                       <s:else>                         <option value="inCHECK"            ><s:text name="criterion.incheck" /></option></s:else>
102                     </s:if>
103                     <s:if test="state == 'APPROVED'">  <option value="APPROVED"   selected><s:text name="criterion.approved" /></option></s:if>
104                     <s:else>                           <option value="APPROVED"           ><s:text name="criterion.approved" /></option></s:else>
105                     <s:if test="state == 'TEMPLATE'">  <option value="TEMPLATE"   selected><s:text name="criterion.template" /></option></s:if>
106                     <s:else>                           <option value="TEMPLATE"           ><s:text name="criterion.template" /></option></s:else>
107                   </select>
108                   </td>
109                 </tr>
110                 <tr>
111                   <td colspan=5 align=left>
112                     <s:if test="visibility == 'PRIVATE'">
113                       <input type=radio name="visibility" value="PRIVATE"    checked onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
114                       <input type=radio name="visibility" value="PUBLIC"             onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
115                       <input type=radio name="visibility" value="all"                onClick="changeFilter()"><s:text name="field.either"/>
116                     </s:if>
117                     <s:elseif test="visibility == 'PUBLIC'">
118                       <input type=radio name="visibility" value="PRIVATE"            onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
119                       <input type=radio name="visibility" value="PUBLIC"     checked onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
120                       <input type=radio name="visibility" value="all"                onClick="changeFilter()"><s:text name="field.either"/>
121                     </s:elseif>
122                     <s:elseif test="visibility == 'onlypublic'">
123                       <input type=radio name="visibility" value="PRIVATE"   disabled onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
124                       <input type=radio name="visibility" value="onlypublic" checked onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
125                       <input type=radio name="visibility" value="all"       disabled onClick="changeFilter()"><s:text name="field.either"/>
126                     </s:elseif>
127                     <s:else>
128                       <input type=radio name="visibility" value="PRIVATE"            onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
129                       <input type=radio name="visibility" value="PUBLIC"             onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
130                       <input type=radio name="visibility" value="all"        checked onClick="changeFilter()"><s:text name="field.either"/>
131                     </s:else>
132                   </td>
133                 </tr>
134                 <tr>
135                   <td colspan=2><s:text name="criterion.author"/>&nbsp;</td>
136                   <td colspan=3 align=center>
137                 <select name="author" style="width: <s:text name="size.search.select"/>" onChange="changeFilter()">
138                   <option value="0"><s:text name="criterion.anybody" /></option>
139                   <s:iterator value="candidates">
140                     <s:if test="%{index == #him}">
141                       <option value="<s:property value="index"/>" selected><s:property value="toString()"/></option>
142                     </s:if><s:else>
143                       <option value="<s:property value="index"/>"><s:property value="toString()"/></option>
144                     </s:else>
145                   </s:iterator>
146                 </select>
147                   </td>
148                 </tr>
149                 <tr>
150                   <s:set var="tipdate">
151                     <s:text name="help.search.date">
152                       <s:param><s:text name="%{#format}"/></s:param>
153                       <s:param><s:text name="%{#today}"/></s:param>
154                     </s:text>
155                   </s:set>
156                   <td><s:text name="field.credate"/>&nbsp;</td>
157                   <td><s:text name="field.after"/>&nbsp;</td>
158                   <td><input type=text name=after size=7 onKeydown="changeFilter()" title="<s:property value="%{#tipdate}"/>" />&nbsp;</td>
159                   <td><s:text name="field.before"/>&nbsp;</td>
160                   <td><input type=text name=before size=7 onKeydown="changeFilter()" title="<s:property value="%{#tipdate}"/>" /></td>
161                 </tr><tr>
162                   <td><s:text name="field.lasdate"/>&nbsp;</td>
163                   <td><s:text name="field.after"/>&nbsp;</td>
164                   <td><input type=text name=after size=7 onKeydown="changeFilter()" title="<s:property value="%{#tipdate}"/>" />&nbsp;</td>
165                   <td><s:text name="field.before"/>&nbsp;</td>
166                   <td><input type=text name="before" size=7 onKeydown="changeFilter()" title="<s:property value="%{#tipdate}"/>" /></td>
167                 </tr>
168               </table>
169               <table cellpadding=0 cellspacing=0 border=0 class=text>
170                 <tr>
171                   <td><s:text name="field.contain"/>:&nbsp;</td>
172                   <td><input type=text name=words style="width: <s:text name="size.search.input"/>" value="<s:property value="%{words}"/>" onKeydown="changeFilter()" title="<s:text name="help.search.title"/>" /></td>
173                 </tr><tr>
174                   <td><s:text name="field.reference"/>:&nbsp;</td>
175                   <td><input type=text name="reference" style="width: <s:text name="size.search.input"/>" value="<s:property value="%{reference}"/>" onKeydown="changeFilter()" title="<s:text name="help.search.refid"/>" /></td>
176                 </tr>
177               </table>
178               </td>
179               <td width=60%>
180                 <table cellpadding=0 cellspacing=0 border=0 class=text>
181                   <s:iterator value="simulationContexts">
182                     <tr>
183                       <td><input type=checkbox checked onClick="removeContext('<s:property value="index"/>')">&nbsp;</td>
184                       <td>
185                         <s:if test="%{type.isApproved()}"><s:text name="type.context.%{type.name}"/>:&nbsp;</s:if>
186                         <s:else><s:property value="%{type.name}"/>:&nbsp;</s:else>
187                       </td>
188                       <td><s:property value="value"/></td>
189                     </tr>
190                   </s:iterator>
191
192                   <s:if test="%{actionType == 'setContext'}">
193                     <tr>
194                       <td>
195                         <img src="<s:url value="/skin/icon.undo.png"/>" border="none" title="<s:text name="tooltip.cancel"/>" onClick="cancel()" />&nbsp;
196                       </td>
197                       <td>
198                         <s:if test="%{selectedContextType.isApproved()}"><s:text name="type.context.%{selectedContextType.name}"/>:&nbsp;</s:if>
199                         <s:else><s:property value="%{selectedContextType.name}"/>:&nbsp;</s:else>
200                       </td>
201                       <td>
202                         <select name="contextValue" onChange="submit()">
203                           <option value="-1"><s:text name="menu.select"/></option>
204                           <s:iterator value="contextValueOptions">
205                             <option value="<s:property value="index"/>">&nbsp;<s:property value="value" /></option>
206                           </s:iterator>
207                         </select>
208                       </td>
209                     </tr>
210                   </s:if>
211                 </table>
212
213                 <s:if test="%{actionType != 'setContext'}">
214                         <select name="contextType" onChange="submit()">
215                           <option value="-1"><s:text name="menu.addcontext"/></option>
216                           <s:iterator value="contextTypeOptions">
217                             <option value="<s:property value="index"/>">
218                               <s:if test="%{isApproved()}">&nbsp;<s:text name="type.context.%{name}" /></s:if>
219                               <s:else>&nbsp;<s:property value="%{name}" /></s:else>
220                             </option>
221                           </s:iterator>
222                         </select>
223                 </s:if>
224               </td>
225             </tr>
226           </table>
227
228           <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
229             <tr>
230               <td width=40%></td>
231               <td width=60% align=left><input type="submit" name="refresh" value="<s:text name="button.result"/>" disabled/></td>
232             </tr>
233           </table>
234
235           </form>
236         </div>
237       </div>
238
239 <!-- Result list
240      =============================================================================================================================
241   -->
242       <div id=resulist>
243       <div id=article-box>
244         <div id=section><s:text name="title.result"/></div>
245         <div id=article-body class=text>
246
247           <s:if test="result.size > 0">
248             <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
249             <tr height=20 valign=bottom>
250               <td width=20></td>
251               <td width=80><s:text name="label.reference"/></td>
252               <td><s:text name="label.title"/><img src="<s:url value="/skin/icon.sortup.png"/>" border="none"/></td>
253               <td width=150><s:text name="label.manager"/></td>
254             </tr>
255             <tr height=1 bgcolor=#AAAAAA><td colspan=4></td></tr>
256               <s:iterator value="result">
257                 <tr>
258                   <td><img src="<s:url value="/skin/icon.%{progressState}.png"/>" width=12 height=12 border="none" title=""/></td>
259                   <td><s:property value="reference"/></td>
260                   <td>
261                       <s:url id="open" namespace="/study" action="open-study?selection=0.0">
262                         <s:param name="index" value="%{index}"/>
263                       </s:url>
264                       <s:a href="%{open}" cssClass="link"><s:property value="title"/></s:a>
265                   </td>
266                   <td><s:property value="authorName"/></td>
267                 </tr>
268               </s:iterator>
269             </table>
270           </s:if>
271
272           <s:else>
273             <s:text name="message.nostudy" />
274           </s:else>
275         </div>
276       </div>
277       </div>
278
279   </body>
280 </html>