]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman/WebContent/study/searchKnowledge.jsp
Salome HOME
Menus are improved
[tools/siman.git] / Workspace / Siman / WebContent / study / searchKnowledge.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.KnowledgeElement"%>
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 <%@
11     taglib prefix="s" uri="/struts-tags"
12 %>
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 <%  String  action = request.getParameter("action");
19
20     ApplicationRights rights    = (ApplicationRights)session.getAttribute("user.rights");
21     ResourceBundle    locale    = ResourceBundle.getBundle("som", ApplicationSettings.getCurrentLocale());
22     String            format    = locale.getString("date.format");
23     SimpleDateFormat  tostring  = new SimpleDateFormat(format);
24     String            result    = "uptodate";
25     boolean           connected = false;
26
27     if (rights.getUser() != null)                      connected = true;
28     if (session.getAttribute("search.result") == null) result    = "obsolete";
29 %>
30 <s:set var="todo"><%=action%></s:set>
31 <s:set var="user"><%=connected%></s:set>
32 <s:set var="format"><%=format%></s:set>
33 <s:set var="today"><%=tostring.format(java.util.Calendar.getInstance().getTime())%></s:set>
34 <html>
35   <head>
36     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
37     <title><s:text name="name.module"/></title>
38     <link href=<s:url value="/skin/default.css"/> rel="stylesheet" type="text/css">
39     <script language="JavaScript" type="text/javascript" src="../js/search.js"></script>
40   </head>
41
42   <body onLoad="initialize('<%=result%>')">
43 <!-- Menu-bar
44      =============================================================================================================================
45   -->
46     <jsp:include page="/jsp/menubar.jsp" />
47     <div id=top-spacer></div>
48
49 <!-- Search menu
50      =============================================================================================================================
51   -->
52     <div id=left-pane>
53       <jsp:include page="/jsp/toolbar.jsp">
54         <jsp:param name="tools" value="none" />
55       </jsp:include>
56       <div id=top-spacer></div>
57       <jsp:include page="/jsp/menuitem.jsp">
58         <jsp:param name="menu" value="open" />
59       </jsp:include>
60     </div>
61
62     <div id=main-pane>
63
64 <!-- Search criteria section
65      =============================================================================================================================
66   -->
67       <div id=article-box>
68         <div id=section><s:text name="title.criteria"/></div>
69         <div id="article-body">
70           <form name="search" action="refresh-knowledge" method="post">
71           <input type=hidden name="contextIndex" />
72           <s:set var="match1" value="criteriaMatch"/>
73           <s:set var="match2" value="contextMatch"/>
74           <s:set var="type"   value="state"/>
75           <s:set var="him"    value="author"/>
76
77           <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
78             <tr height=20>
79               <td width=40%>
80                 <b><s:text name="field.among"/></b>&nbsp;&nbsp;&nbsp;
81                 <s:if test="%{#match1 == 'all'}">
82                 <input type=radio name="criteriaMatch" value="all"  checked onClick="changeFilter()"><s:text name="field.matchall"/>
83                 &nbsp;
84                 <input type=radio name="criteriaMatch" value="any"          onClick="changeFilter()"><s:text name="field.matchany"/>
85                 </s:if><s:else>
86                 <input type=radio name="criteriaMatch" value="all"          onClick="changeFilter()"><s:text name="field.matchall"/>
87                 &nbsp;
88                 <input type=radio name="criteriaMatch" value="any"  checked onClick="changeFilter()"><s:text name="field.matchany"/>
89                 </s:else>
90               </td>
91               <td width=60%>|&nbsp;&nbsp;
92                 <b><s:text name="field.context"/></b>&nbsp;&nbsp;&nbsp;
93                 <s:if test="%{#match2 == 'all'}">
94                 <input type=radio name="contextMatch" value="all"  checked onClick="changeFilter()"><s:text name="field.matchall"/>
95                 &nbsp;
96                 <input type=radio name="contextMatch" value="any"          onClick="changeFilter()"><s:text name="field.matchany"/>
97                 </s:if><s:else>
98                 <input type=radio name="contextMatch" value="all"          onClick="changeFilter()"><s:text name="field.matchall"/>
99                 &nbsp;
100                 <input type=radio name="contextMatch" value="any"  checked onClick="changeFilter()"><s:text name="field.matchany"/>
101                 </s:else>
102               </td>
103             </tr>
104             <tr height=1 bgcolor=#AAAAAA><td colspan=2></td></tr>
105           </table>
106
107           <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
108             <tr valign=top>
109               <td width=40%>
110               <table cellpadding=0 cellspacing=0 border=0 class=text>
111                 <tr>
112                   <td colspan=2><s:text name="criterion.knowledge"/>&nbsp;</td>
113                   <td colspan=3 align=center>
114                 <select name="state" style="width: <s:text name="size.search.select"/>" onChange="changeFilter()">
115                   <s:iterator value="knowledgeTypes">
116                     <s:if test="%{index == #type}">
117                       <option value="<s:property value="index"/>" selected><s:text name="type.knowledge.%{name}" /></option>
118                     </s:if><s:else>
119                       <option value="<s:property value="index"/>"><s:text name="type.knowledge.%{name}" /></option>
120                     </s:else>
121                   </s:iterator>
122                 </select>
123                   </td>
124                 </tr>
125                 <tr>
126                   <td colspan=5 align=left>
127                     <s:if test="visibility == 'PRIVATE'">
128                       <input type=radio name="visibility" value="PRIVATE"    checked 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"                onClick="changeFilter()"><s:text name="field.either"/>
131                     </s:if>
132                     <s:elseif test="visibility == 'PUBLIC'">
133                       <input type=radio name="visibility" value="PRIVATE"            onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
134                       <input type=radio name="visibility" value="PUBLIC"     checked onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
135                       <input type=radio name="visibility" value="all"                onClick="changeFilter()"><s:text name="field.either"/>
136                     </s:elseif>
137                     <s:elseif test="visibility == 'onlypublic'">
138                       <input type=radio name="visibility" value="PRIVATE"   disabled onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
139                       <input type=radio name="visibility" value="onlypublic" checked onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
140                       <input type=radio name="visibility" value="all"       disabled onClick="changeFilter()"><s:text name="field.either"/>
141                     </s:elseif>
142                     <s:else>
143                       <input type=radio name="visibility" value="PRIVATE"            onClick="changeFilter()"><s:text name="field.private"/>&nbsp;&nbsp;
144                       <input type=radio name="visibility" value="PUBLIC"             onClick="changeFilter()"><s:text name="field.public"/>&nbsp;&nbsp;
145                       <input type=radio name="visibility" value="all"        checked onClick="changeFilter()"><s:text name="field.either"/>
146                     </s:else>
147                   </td>
148                 </tr>
149                 <tr>
150                   <td colspan=2><s:text name="criterion.author"/>&nbsp;</td>
151                   <td colspan=3 align=center>
152                 <select name="author" style="width: <s:text name="size.search.select"/>" onChange="changeFilter()">
153                   <option value="0"><s:text name="criterion.anybody" /></option>
154                   <s:iterator value="candidates">
155                     <s:if test="%{index == #him}">
156                       <option value="<s:property value="index"/>" selected><s:property value="toString()"/></option>
157                     </s:if><s:else>
158                       <option value="<s:property value="index"/>"><s:property value="toString()"/></option>
159                     </s:else>
160                   </s:iterator>
161                 </select>
162                   </td>
163                 </tr>
164                 <tr>
165                   <s:set var="tipdate">
166                     <s:text name="help.search.date">
167                       <s:param><s:text name="%{#format}"/></s:param>
168                       <s:param><s:text name="%{#today}"/></s:param>
169                     </s:text>
170                   </s:set>
171                   <td><s:text name="field.credate"/>&nbsp;</td>
172                   <td><s:text name="field.after"/>&nbsp;</td>
173                   <td><input type=text name=after size=7 onKeydown="changeFilter()" title="<s:property value="%{#tipdate}"/>" />&nbsp;</td>
174                   <td><s:text name="field.before"/>&nbsp;</td>
175                   <td><input type=text name=before size=7 onKeydown="changeFilter()" title="<s:property value="%{#tipdate}"/>" /></td>
176                 </tr>
177                 <tr height=26><td></td></tr>
178               </table>
179               <table cellpadding=0 cellspacing=0 border=0 class=text>
180                 <tr>
181                   <td><s:text name="field.contain"/>:&nbsp;</td>
182                   <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>
183                 </tr><tr>
184                   <td><s:text name="field.reference"/>:&nbsp;</td>
185                   <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>
186                 </tr>
187               </table>
188               </td>
189               <td width=60%>
190                 <table cellpadding=0 cellspacing=0 border=0 class=text>
191                   <s:iterator value="simulationContexts">
192                     <tr>
193                       <td><input type=checkbox checked onClick="removeContext('<s:property value="index"/>')">&nbsp;</td>
194                       <td>
195                         <s:if test="%{type.isApproved()}"><s:text name="type.context.%{type.name}"/>:&nbsp;</s:if>
196                         <s:else><s:property value="%{type.name}"/>:&nbsp;</s:else>
197                       </td>
198                       <td><s:property value="value"/></td>
199                     </tr>
200                   </s:iterator>
201
202                   <s:if test="%{#todo == 'setContext'}">
203                     <tr>
204                       <td>
205                         <img src="<s:url value="/skin/icon.undo.png"/>" border="none" title="<s:text name="tooltip.cancel"/>" onClick="cancel()" />&nbsp;
206                       </td>
207                       <td>
208                         <s:if test="%{selectedContextType.isApproved()}"><s:text name="type.context.%{selectedContextType.name}"/>:&nbsp;</s:if>
209                         <s:else><s:property value="%{selectedContextType.name}"/>:&nbsp;</s:else>
210                       </td>
211                       <td>
212                         <select name="contextValue" onChange="submit()">
213                           <option value="-1"><s:text name="menu.select"/></option>
214                           <s:iterator value="contextValueOptions">
215                             <option value="<s:property value="index"/>">&nbsp;<s:property value="value" /></option>
216                           </s:iterator>
217                         </select>
218                       </td>
219                     </tr>
220                   </s:if>
221                 </table>
222
223                 <s:if test="%{#todo != 'setContext'}">
224                         <select name="contextType" onChange="submit()">
225                           <option value="-1"><s:text name="menu.addcontext"/></option>
226                           <s:set var="snum" value="null"/>
227                           <s:iterator value="contextTypeOptions">
228                             <s:if test="%{#snum != attachedStep.number}">
229                               <s:set var="snum" value="%{attachedStep.number}"/>
230                               <optgroup label="&nbsp;<s:text name="folder.step.%{#snum}"/>">
231                             </s:if>
232                               <option value="<s:property value="index"/>">
233                                 <s:if test="%{isApproved()}">&nbsp;<s:text name="type.context.%{name}" /></s:if>
234                                 <s:else>&nbsp;<s:property value="%{name}" /></s:else>
235                               </option>
236                           </s:iterator>
237                         </select>
238                 </s:if>
239               </td>
240             </tr>
241           </table>
242
243           <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
244             <tr>
245               <td width=40%></td>
246               <td width=60% align=left><input type="submit" name="refresh" value="<s:text name="button.result"/>" disabled/></td>
247             </tr>
248           </table>
249
250           </form>
251         </div>
252       </div>
253
254 <!-- Result list
255      =============================================================================================================================
256   -->
257       <div id=resulist>
258       <div id=article-box>
259         <div id=section><s:text name="title.result"/></div>
260         <div id=article-body class=text>
261
262           <s:if test="result.size > 0">
263             <table width=100% cellpadding=0 cellspacing=0 border=0 class=text>
264             <tr height=20 valign=bottom>
265               <td width=20></td>
266               <td width=80><s:text name="label.reference"/></td>
267               <td><s:text name="label.title"/><img src="<s:url value="/skin/icon.sortup.png"/>" border="none"/></td>
268               <td width=150><s:text name="label.author"/></td>
269             </tr>
270             <tr height=1 bgcolor=#AAAAAA><td colspan=4></td></tr>
271               <s:iterator value="result">
272                 <tr>
273                   <td><img src="<s:url value="/skin/icon.%{progressState}.png"/>" width=12 height=12 border="none" title=""/></td>
274                   <td><s:property value="reference"/></td>
275                   <td>
276                       <s:url id="open" namespace="/study" action="open-knowledge?selection=0">
277                         <s:param name="index" value="%{index}"/>
278                       </s:url>
279                       <s:a href="%{open}" cssClass="link"><s:property value="title"/></s:a>
280                   </td>
281                   <td><s:property value="authorName"/></td>
282                 </tr>
283               </s:iterator>
284             </table>
285           </s:if>
286
287           <s:else>
288             <s:text name="message.noknowledge" />
289           </s:else>
290         </div>
291       </div>
292       </div>
293     </div>
294
295   </body>
296 </html>