1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
2 pageEncoding="ISO-8859-1"
4 <%@ page import="java.util.Iterator"%>
5 <%@ page import="com.opensymphony.xwork2.util.ValueStack"%>
6 <%@ page import="com.opensymphony.xwork2.ActionContext"%>
7 <%@ page import="org.splat.simer.StudyPropertiesAction"%>
8 <%@ page import="org.splat.dal.bo.kernel.User"%>
9 <%@ taglib prefix="s" uri="/struts-tags"%>
11 <s:if test="actionType == null">
12 <s:set var="todo">display</s:set>
16 <s:property value="actionType" />
20 <s:url id="edititle" namespace="/study" action="edit-title" />
21 <s:url id="edibutor" namespace="/study" action="edit-contributor" />
22 <s:url id="addcycle" namespace="/study" action="edit-cycle">
23 <s:param name="cycle" value="%{'default'}"/>
25 <s:url id="undo" namespace="/study" action="prop-study" />
26 <script language="JavaScript">
28 var type = edit.documentType.value;
33 =============================================================================================================================
37 <s:text name="title.prop.study" />
39 <div id=article-body class=text>
41 <s:form name="edit" action="valid-edit" method="post" validate="true" cssClass="text">
43 <tr height=10><td width=20></td></tr>
45 <td width=16><img src="<s:url value="/skin/image.downarrow.png"/>" border="none"/></td>
46 <td width=24%><b><s:text name="field.studytitle"/></b></td>
52 <tr height=5><td></td></tr>
55 <s:if test="actionType eq 'edititle'">
57 <s:a href="%{#undo}"><img src="<s:url value="/skin/icon.undo.png"/>" border="none" title="<s:text name="button.cancel"/>"/></s:a>
60 <s:textfield size="108" name="title" value="%{studyTitle}" theme="simple"/>
63 <s:submit type="button" name="saveTitle" value="" cssStyle="width:24px; height:16px; border:0; cursor:pointer; cursor:hand; background:transparent" theme="simple">
64 <img src="<s:url value="/skin/image.export.png"/>" title="<s:text name="button.save"/>"/>
71 <s:if test="#todo == 'display'"><s:a href="%{#edititle}"><img src="<s:url value="/skin/icon.ed.png"/>" border="none" title="<s:text name="tooltip.edit.title"/>"/></s:a></s:if>
73 <td colspan=4><s:property value="studyTitle"/></td>
77 <tr height=10><td width=20></td></tr>
79 <td><img src="<s:url value="/skin/image.downarrow.png"/>" border="none"/></td>
80 <td><b><s:text name="label.members"/></b></td>
82 <tr height=5><td></td></tr>
84 <s:if test="actionType eq 'edibutor'">
87 <s:a href="%{#undo}"><img src="<s:url value="/skin/icon.undo.png"/>" border="none" title="<s:text name="button.cancel"/>"/></s:a>
89 <td><s:text name="label.presents"/></td>
90 <td colspan=3><s:text name="label.absents"/></td>
92 <button type="submit" name="saveContributors" value="" style="width:24px; height:16px; border:0; cursor:pointer; cursor:hand; background:transparent">
93 <img src="<s:url value="/skin/image.export.png"/>" title="<s:text name="button.save"/>"/>
97 <tr height=1 bgcolor=#AAAAAA><td colspan=6></td></tr>
99 // Scriptlet implementation is required due to specific iteration
100 ValueStack stack = ActionContext.getContext().getValueStack();
101 Object stacktop = stack.peek();
102 StudyPropertiesAction controler = (StudyPropertiesAction)stacktop;
104 Iterator<User> members = controler.getContributors().iterator();
105 for (Iterator<User> staff = controler.getCandidates().iterator(); staff.hasNext(); ) {%>
107 <%if (members.hasNext()) {
108 User user = members.next();%>
109 <td><input type="checkbox" name="members" value="<%=String.valueOf(user.getIndex())%>" checked/></td>
111 <%=controler.getText(user.getDisplayName())%>
116 for (int j=0; j<3; j++) {
117 if (staff.hasNext()) {
118 User user = staff.next();%>
119 <td><input type="checkbox" name="candidates" value="<%=String.valueOf(user.getIndex())%>" />
120 <%=controler.getText(user.getDisplayName())%>
128 while (members.hasNext()) {
129 User user = members.next();%>
131 <td><input type="checkbox" name="members" value="<%=String.valueOf(user.getIndex())%>" checked/></td>
133 <%=controler.getText(user.getDisplayName())%>
141 <td><s:text name="label.contributor"/></td>
144 <td><s:text name="label.manager"/></td>
146 <tr height=1 bgcolor=#AAAAAA><td colspan=6></td></tr>
149 <s:if test="#todo == 'display'"><s:a href="%{#edibutor}"><img src="<s:url value="/skin/icon.ed.png"/>" border="none" title="<s:text name="tooltip.edit.members"/>"/></s:a></s:if>
152 <s:if test="contributors.size > 0">
153 <s:iterator value="contributors" status="counter">
154 <s:if test="#counter.last"><s:property value="getText(displayName)"/></s:if>
155 <s:else><s:property value="getText(displayName)"/>,</s:else>
158 <s:property value="%{'-'}"/>
161 <td><s:property value="%{getText(author.displayName)}"/></td>
165 <!-- Readers functionality -->
166 <tr height=10><td width=20></td></tr>
168 <td><img src="<s:url value="/skin/image.downarrow.png"/>" border="none"/></td>
169 <td><b><s:text name="label.readers.section"/></b></td>
171 <tr height=5><td></td></tr>
173 <s:if test="actionType eq 'editReaders'">
176 <s:a href="%{#undo}"><img src="<s:url value="/skin/icon.undo.png"/>" border="none" title="<s:text name="button.cancel"/>"/></s:a>
179 <td><s:text name="label.readers.present"/></td>
180 <td colspan=3><s:text name="label.readers.absents"/></td>
182 <button type="submit" name="saveReaders" value=""
183 style="width:24px; height:16px; border:0; cursor:pointer; cursor:hand; background:transparent">
184 <img src="<s:url value="/skin/image.export.png"/>" title="<s:text name="button.save"/>"/>
188 <tr height=1 bgcolor=#AAAAAA><td colspan=6></td></tr>
194 <table border="0" cellpadding="0" cellspacing="0">
195 <s:iterator value="readers">
198 <s:checkbox name="readerIds" fieldValue="%{index}" theme="simple" value="true" />
199 <s:property value="%{getText(displayName)}"/>
206 <td colspan="3" valign="top">
207 <table border="0" cellpadding="0" cellspacing="0" width="100%">
209 <s:iterator value="candidates" status="status">
211 <s:checkbox name="readerIds" fieldValue="%{index}" theme="simple"/>
212 <s:property value="%{getText(displayName)}"/>
214 <s:if test="%{(#status.index + 1) % 3 == 0}">
226 <tr><td/><td><s:text name="label.readers"/></td></tr>
227 <tr height=1 bgcolor=#AAAAAA><td colspan=6></td></tr>
230 <s:if test="#todo == 'display'"> <s:a namespace="/study" action="init-edit-readers" >
231 <img src="<s:url value="/skin/icon.ed.png"/>" border="none"
232 title="<s:text name="tooltip.edit.readers"/>"/>
236 <s:iterator value="readers" status="counter">
237 <s:if test="#counter.last"><s:property value="%{getText(displayName)}"/></s:if>
238 <s:else><s:property value="%{getText(displayName)}"/>,</s:else>
245 <tr height=15><td width=20></td></tr>
247 <td><img src="<s:url value="/skin/image.downarrow.png"/>" border="none"/></td>
248 <td><b><s:text name="label.approcycle"/></b></td>
250 <tr height=5><td></td></tr>
253 <td><s:text name="field.documentype"/></td>
254 <td><s:text name="label.PROMOTION"/></td>
255 <td><s:text name="label.REVIEW"/></td>
256 <td><s:text name="label.APPROVAL"/></td>
258 <tr height=1 bgcolor=#AAAAAA><td colspan=6></td></tr>
260 <s:set var="edited" value="cycle"/>
261 <s:set var="height" value=""/>
262 <s:iterator value="validations" status="counter">
263 <s:url id="edicycle" namespace="/study" action="edit-cycle">
264 <s:param name="cycle" value="documentType"/>
266 <s:if test="#counter.last"><s:set var="height" value="24"/></s:if>
267 <tr height="<s:property value="#height"/>">
269 <s:if test="#todo == 'display'">
270 <s:if test="#counter.last">
271 <s:if test="otherDocumentTypes.size > 0">
272 <s:a href="%{#addcycle}">
273 <img src="<s:url value="/skin/icon.ed.png"/>" border="none" title="<s:text name="tooltip.addvalidation"/>" />
277 <s:a href="%{#edicycle}">
278 <img src="<s:url value="/skin/icon.ed.png"/>" border="none" title="<s:text name="tooltip.editvalidation"/>" />
281 </s:if><s:elseif test="#todo == 'edicycle' && documentType == #edited">
282 <s:a href="%{#undo}"><img src="<s:url value="/skin/icon.undo.png"/>" border="none" title="<s:text name="button.cancel"/>"/></s:a>
286 <s:if test="#counter.last">
287 <s:if test="#todo == 'edicycle' && documentType == #edited">
288 <select name="documentType" onChange="setType()">
289 <option value="0"> <s:text name="menu.select"/></option>
290 <s:iterator value="otherDocumentTypes">
291 <option value="<s:property value="index"/>"><s:text name="type.document.%{name}"/></option>
295 <s:if test="validations.size > 0"><i><s:text name="label.other"/></i></s:if>
296 <s:else><i><s:text name="label.all"/></i></s:else>
299 <s:if test="#todo == 'edicycle' && documentType == #edited">
300 <input type="hidden" name="documentType" value="<s:property value="documentTypeIndex"/>"/>
302 <s:text name="type.document.%{documentType}"/>
306 <s:if test="#todo == 'edicycle' && documentType == #edited">
307 <s:set var="selection" value="publisherIndex"/>
308 <select name="publisher">
309 <option value="0"><s:text name="label.bytheauthor"/></option>
310 <s:if test="%{#selection != 0}"><option value="<s:property value="#selection"/>" selected><s:text name="label.me"/></option></s:if>
311 <s:else><option value="<s:property value="author.index"/>"><s:text name="label.me"/></option></s:else>
314 <s:if test="publisherIndex > 0"><s:property value="publisherName"/></s:if>
315 <s:else><i><s:property value="publisherName"/></i></s:else>
319 <s:if test="#todo == 'edicycle' && documentType == #edited">
320 <s:set var="selection" value="reviewerIndex"/>
321 <select name="reviewer">
322 <option value="0">- <s:text name="label.skipped"/> -</option>
323 <s:iterator value="validationActors">
324 <s:if test="%{index == #selection}"><option value="<s:property value="index"/>" selected><s:property value="getText(displayName)"/></option></s:if>
325 <s:else><option value="<s:property value="index"/>"><s:property value="getText(displayName)"/></option></s:else>
329 <s:if test="reviewerIndex > 0"><s:property value="reviewerName"/></s:if>
330 <s:else><font color="#A1A192"><i><s:property value="reviewerName"/></i></font></s:else>
334 <s:if test="#todo == 'edicycle' && documentType == #edited">
335 <s:set var="selection" value="approverIndex"/>
336 <select name="approver">
337 <option value="0">- <s:text name="label.skipped"/> -</option>
338 <s:iterator value="validationActors">
339 <s:if test="%{index == #selection}"><option value="<s:property value="index"/>" selected><s:property value="getText(displayName)"/></option></s:if>
340 <s:else><option value="<s:property value="index"/>"><s:property value="getText(displayName)"/></option></s:else>
344 <s:if test="approverIndex > 0"><s:property value="approverName"/></s:if>
345 <s:else><font color="#A1A192"><i><s:property value="approverName"/></i></font></s:else>
349 <s:if test="#todo == 'edicycle' && documentType == #edited">
350 <button type="submit" name="saveCycle" value="" style="width:24px; height:16px; border:0; cursor:pointer; cursor:hand; background:transparent">
351 <img src="<s:url value="/skin/image.export.png"/>" title="<s:text name="button.save"/>"/>
357 <tr height=3><td></td></tr>