extensions/net.sf.basedb.reggie/trunk/resources/sampleproc/storage-box.jsp

Code
Comments
Other
Rev Date Author Line
4550 30 Jun 17 nicklas 1 <%@ page
4550 30 Jun 17 nicklas 2   pageEncoding="UTF-8"
4550 30 Jun 17 nicklas 3   session="false"
4550 30 Jun 17 nicklas 4   import="net.sf.basedb.core.User"
4550 30 Jun 17 nicklas 5   import="net.sf.basedb.core.BioPlate"
4550 30 Jun 17 nicklas 6   import="net.sf.basedb.core.DbControl"  
4550 30 Jun 17 nicklas 7   import="net.sf.basedb.core.Item"
4550 30 Jun 17 nicklas 8   import="net.sf.basedb.core.ItemContext"
4550 30 Jun 17 nicklas 9   import="net.sf.basedb.core.SessionControl"
4550 30 Jun 17 nicklas 10   import="net.sf.basedb.core.Application"
4550 30 Jun 17 nicklas 11   import="net.sf.basedb.clients.web.Base"  
4550 30 Jun 17 nicklas 12   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4550 30 Jun 17 nicklas 13   import="net.sf.basedb.util.Values"
4550 30 Jun 17 nicklas 14   import="java.util.List"
4550 30 Jun 17 nicklas 15 %>
4550 30 Jun 17 nicklas 16 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
4550 30 Jun 17 nicklas 17 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4550 30 Jun 17 nicklas 18 <%
4550 30 Jun 17 nicklas 19 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
4550 30 Jun 17 nicklas 20 final String ID = sc.getId();
4550 30 Jun 17 nicklas 21 final float scale = Base.getScale(sc);
4550 30 Jun 17 nicklas 22 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
4550 30 Jun 17 nicklas 23 DbControl dc = null;
4550 30 Jun 17 nicklas 24 try
4550 30 Jun 17 nicklas 25 {
4550 30 Jun 17 nicklas 26   dc = sc.newDbControl();
4550 30 Jun 17 nicklas 27   final User user = User.getById(dc, sc.getLoggedInUserId());
4550 30 Jun 17 nicklas 28 %>
4550 30 Jun 17 nicklas 29 <base:page type="default" >
4550 30 Jun 17 nicklas 30 <base:head 
4550 30 Jun 17 nicklas 31   scripts="~../reggie-2.js,~storage-box.js" 
4550 30 Jun 17 nicklas 32   styles="path.css,~../css/reggie-2.css"
4550 30 Jun 17 nicklas 33 >
4550 30 Jun 17 nicklas 34 <style>
4550 30 Jun 17 nicklas 35
4550 30 Jun 17 nicklas 36 #box-table
4550 30 Jun 17 nicklas 37 {
4550 30 Jun 17 nicklas 38   margin: 1em auto;
5308 15 Feb 19 nicklas 39   border-collapse: collapse;
4550 30 Jun 17 nicklas 40 }
4550 30 Jun 17 nicklas 41
5308 15 Feb 19 nicklas 42 #box-table td, #box-table th
4550 30 Jun 17 nicklas 43 {
5340 29 Mar 19 nicklas 44   width: 8em;
4550 30 Jun 17 nicklas 45   text-align: center;
5308 15 Feb 19 nicklas 46   padding: 2px 0.25em;
4550 30 Jun 17 nicklas 47 }
4550 30 Jun 17 nicklas 48
5340 29 Mar 19 nicklas 49 .wizard .step-form .subprompt
5340 29 Mar 19 nicklas 50 {
5340 29 Mar 19 nicklas 51   text-align: left;
5340 29 Mar 19 nicklas 52   padding-left: 2em;
5340 29 Mar 19 nicklas 53 }
5340 29 Mar 19 nicklas 54
4550 30 Jun 17 nicklas 55 </style>
4550 30 Jun 17 nicklas 56
4550 30 Jun 17 nicklas 57 </base:head>
4550 30 Jun 17 nicklas 58 <base:body>
4550 30 Jun 17 nicklas 59
4550 30 Jun 17 nicklas 60   <p:path><p:pathelement 
4550 30 Jun 17 nicklas 61     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
4550 30 Jun 17 nicklas 62     /><p:pathelement title="Storage box creation wizard" 
4550 30 Jun 17 nicklas 63     /></p:path>
4550 30 Jun 17 nicklas 64   
4550 30 Jun 17 nicklas 65   <div class="content">
4550 30 Jun 17 nicklas 66
4550 30 Jun 17 nicklas 67   <form name="reggie" id="wizard" class="wizard">
4550 30 Jun 17 nicklas 68   
4550 30 Jun 17 nicklas 69   <div class="step" id="step-1">
4550 30 Jun 17 nicklas 70     <div class="step-no">1</div>
4550 30 Jun 17 nicklas 71     <div class="step-title">Create storage boxes</div>
4550 30 Jun 17 nicklas 72     <div class="step-content">
4550 30 Jun 17 nicklas 73   
4550 30 Jun 17 nicklas 74       <table class="step-form">
5340 29 Mar 19 nicklas 75       <tr class="section-header">
5340 29 Mar 19 nicklas 76         <td colspan="4">Storage boxes for regular processing</td>
5340 29 Mar 19 nicklas 77       </tr>
4550 30 Jun 17 nicklas 78       <tr>
5340 29 Mar 19 nicklas 79         <td class="subprompt">Number of empty boxes</td>
5340 29 Mar 19 nicklas 80         <td class="info" id="emptySpBoxes" colspan="2">-</td>
4550 30 Jun 17 nicklas 81         <td class="help"></td>
4550 30 Jun 17 nicklas 82       </tr>
4550 30 Jun 17 nicklas 83       <tr>
5340 29 Mar 19 nicklas 84         <td class="subprompt">Last existing box</td>
5340 29 Mar 19 nicklas 85         <td class="info" id="lastSpBox" colspan="2">-</td>
4550 30 Jun 17 nicklas 86         <td class="help"></td>
4550 30 Jun 17 nicklas 87       </tr>
4550 30 Jun 17 nicklas 88       <tr>
5340 29 Mar 19 nicklas 89         <td class="subprompt">Number of new boxes</td>
4550 30 Jun 17 nicklas 90         <td class="input">
5340 29 Mar 19 nicklas 91           <input type="text" name="numberOfSpBoxes" id="numberOfSpBoxes"
7138 26 Apr 23 nicklas 92             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="numberOfPSpBoxes"
5340 29 Mar 19 nicklas 93             style="width: 12em;" maxlength="2" value="0">
4550 30 Jun 17 nicklas 94         </td>
5340 29 Mar 19 nicklas 95         <td class="status" id="numberOfSpBoxes.status"></td>
4550 30 Jun 17 nicklas 96         <td class="help">
5340 29 Mar 19 nicklas 97           <span id="numberOfSpBoxes.message" class="message"></span>
4550 30 Jun 17 nicklas 98           Number of boxes to create (of each type): Sp*, Lys*, RNA*, DNA* and FT*.
4550 30 Jun 17 nicklas 99         </td>
4550 30 Jun 17 nicklas 100       </tr>
5340 29 Mar 19 nicklas 101       <tr class="section-header">
5340 29 Mar 19 nicklas 102         <td colspan="4">Storage boxes for paused specimen</td>
5340 29 Mar 19 nicklas 103       </tr>
5340 29 Mar 19 nicklas 104       <tr>
5340 29 Mar 19 nicklas 105         <td class="subprompt">Number of empty boxes</td>
5340 29 Mar 19 nicklas 106         <td class="info" id="emptyPSpBoxes" colspan="2">-</td>
5340 29 Mar 19 nicklas 107         <td class="help"></td>
5340 29 Mar 19 nicklas 108       </tr>
5340 29 Mar 19 nicklas 109       <tr>
5340 29 Mar 19 nicklas 110         <td class="subprompt">Last existing box</td>
5340 29 Mar 19 nicklas 111         <td class="info" id="lastPSpBox" colspan="2">-</td>
5340 29 Mar 19 nicklas 112         <td class="help"></td>
5340 29 Mar 19 nicklas 113       </tr>
5340 29 Mar 19 nicklas 114       <tr>
5340 29 Mar 19 nicklas 115         <td class="subprompt">Number of new boxes</td>
5340 29 Mar 19 nicklas 116         <td class="input">
5340 29 Mar 19 nicklas 117           <input type="text" name="numberOfPSpBoxes" id="numberOfPSpBoxes"
7138 26 Apr 23 nicklas 118             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="numberOfESpBoxes"
5340 29 Mar 19 nicklas 119             style="width: 12em;" maxlength="2" value="0">
5340 29 Mar 19 nicklas 120         </td>
5340 29 Mar 19 nicklas 121         <td class="status" id="numberOfPSpBoxes.status"></td>
5340 29 Mar 19 nicklas 122         <td class="help">
5340 29 Mar 19 nicklas 123           <span id="numberOfPSpBoxes.message" class="message"></span>
5340 29 Mar 19 nicklas 124           Number of boxes to create for paused specimen: PSp*
5340 29 Mar 19 nicklas 125         </td>
5340 29 Mar 19 nicklas 126       </tr>
7138 26 Apr 23 nicklas 127       <tr class="section-header">
7138 26 Apr 23 nicklas 128         <td colspan="4">Storage boxes for externally processed specimen</td>
7138 26 Apr 23 nicklas 129       </tr>
7138 26 Apr 23 nicklas 130       <tr>
7138 26 Apr 23 nicklas 131         <td class="subprompt">Number of empty boxes</td>
7138 26 Apr 23 nicklas 132         <td class="info" id="emptyESpBoxes" colspan="2">-</td>
7138 26 Apr 23 nicklas 133         <td class="help"></td>
7138 26 Apr 23 nicklas 134       </tr>
7138 26 Apr 23 nicklas 135       <tr>
7138 26 Apr 23 nicklas 136         <td class="subprompt">Last existing box</td>
7188 22 May 23 nicklas 137         <td class="info" id="lastESpBox" colspan="2">-</td>
7138 26 Apr 23 nicklas 138         <td class="help"></td>
7138 26 Apr 23 nicklas 139       </tr>
7138 26 Apr 23 nicklas 140       <tr>
7138 26 Apr 23 nicklas 141         <td class="subprompt">Number of new boxes</td>
7138 26 Apr 23 nicklas 142         <td class="input">
7138 26 Apr 23 nicklas 143           <input type="text" name="numberOfESpBoxes" id="numberOfESpBoxes"
7138 26 Apr 23 nicklas 144             style="width: 12em;" maxlength="2" value="0">
7138 26 Apr 23 nicklas 145         </td>
7138 26 Apr 23 nicklas 146         <td class="status" id="numberOfESpBoxes.status"></td>
7138 26 Apr 23 nicklas 147         <td class="help">
7138 26 Apr 23 nicklas 148           <span id="numberOfESpBoxes.message" class="message"></span>
7138 26 Apr 23 nicklas 149           Number of boxes to create (of each type): E-Sp*, E-Lys*, E-RNA*, E-DNA* and E-FT*.
7138 26 Apr 23 nicklas 150         </td>
7138 26 Apr 23 nicklas 151       </tr>
7188 22 May 23 nicklas 152       <tr>
7188 22 May 23 nicklas 153         <td class="subprompt">Freezer to use</td>
7188 22 May 23 nicklas 154         <td class="input">
7188 22 May 23 nicklas 155           <select name="freezer" id="freezer"></select>
7188 22 May 23 nicklas 156         </td>
7188 22 May 23 nicklas 157         <td class="status" id="freezer.status"></td>
7188 22 May 23 nicklas 158         <td class="help">
7188 22 May 23 nicklas 159           <span id="freezer.message" class="message"></span>
7188 22 May 23 nicklas 160           Select the freezer where the boxes for external specimen should be stored.
7188 22 May 23 nicklas 161         </td>
7188 22 May 23 nicklas 162       </tr>
4550 30 Jun 17 nicklas 163       </table>
4550 30 Jun 17 nicklas 164     </div>
4550 30 Jun 17 nicklas 165   </div>
4550 30 Jun 17 nicklas 166   
4550 30 Jun 17 nicklas 167   <div class="step" id="step-2">
4550 30 Jun 17 nicklas 168     <div class="step-no">2</div>
4550 30 Jun 17 nicklas 169     <div class="step-title">New boxes</div>
4550 30 Jun 17 nicklas 170     <div class="step-content">
4550 30 Jun 17 nicklas 171   
4550 30 Jun 17 nicklas 172       <table class="step-form">
4550 30 Jun 17 nicklas 173       <tr>
4550 30 Jun 17 nicklas 174         <td class="info" colspan="3">
5308 15 Feb 19 nicklas 175           <table id="box-table">
5308 15 Feb 19 nicklas 176             <thead class="fullborder bg-filled-100">
4550 30 Jun 17 nicklas 177             <tr>
4550 30 Jun 17 nicklas 178               <th>Specimen</th>
5340 29 Mar 19 nicklas 179               <th>Paused</th>
4550 30 Jun 17 nicklas 180               <th>Lysate</th>
4550 30 Jun 17 nicklas 181               <th>RNA</th>
4550 30 Jun 17 nicklas 182               <th>DNA</th>
4550 30 Jun 17 nicklas 183               <th>FlowThrough</th>
4550 30 Jun 17 nicklas 184             </tr>
4550 30 Jun 17 nicklas 185             </thead>
5308 15 Feb 19 nicklas 186             <tbody id="new-boxes" class="fullborder"></tbody>
5308 15 Feb 19 nicklas 187             <tbody>
5308 15 Feb 19 nicklas 188             <tr>
5308 15 Feb 19 nicklas 189               <td colspan="5" style="text-align: left; padding-top: 1em;">
5308 15 Feb 19 nicklas 190                 <b>Download labels</b>
5308 15 Feb 19 nicklas 191                 <base:icon subclass="link" id="downloadLabelsCsv" image="<%=home + "/images/download.png"%>" 
5308 15 Feb 19 nicklas 192                   data-format="csv" title="Download labels as a tab-separated text file (csv)">CSV</base:icon>
5308 15 Feb 19 nicklas 193                 <base:icon subclass="link" id="downloadLabelsXlsx" image="<%=home + "/images/download.png"%>" 
5308 15 Feb 19 nicklas 194                   data-format="xlsx" title="Download lables as an Excel worksheet file (xlsx)">Excel</base:icon>
5308 15 Feb 19 nicklas 195               </td>
5308 15 Feb 19 nicklas 196             </tr>
5308 15 Feb 19 nicklas 197             </tbody>
4550 30 Jun 17 nicklas 198           </table>
5308 15 Feb 19 nicklas 199           
4550 30 Jun 17 nicklas 200         </td>
4550 30 Jun 17 nicklas 201         <td class="help">
5308 15 Feb 19 nicklas 202           This table list all boxes that are created. Do not forget to 
5308 15 Feb 19 nicklas 203           <b>download labels</b> in either <b>CSV</b> or <b>Excel</b> 
5308 15 Feb 19 nicklas 204           format for creating labels.
4550 30 Jun 17 nicklas 205         </td>
4550 30 Jun 17 nicklas 206       </tr>
4550 30 Jun 17 nicklas 207       </table>
4550 30 Jun 17 nicklas 208       
4550 30 Jun 17 nicklas 209     </div>
4550 30 Jun 17 nicklas 210   </div>
4550 30 Jun 17 nicklas 211     
4550 30 Jun 17 nicklas 212   <div id="wizard-status"></div>
4550 30 Jun 17 nicklas 213
4550 30 Jun 17 nicklas 214   <table class="navigation" id="navigation">
4550 30 Jun 17 nicklas 215   <tr>
4550 30 Jun 17 nicklas 216     <td><base:button id="gocancel" title="Cancel" /></td>
4550 30 Jun 17 nicklas 217     <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
4550 30 Jun 17 nicklas 218     <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
4550 30 Jun 17 nicklas 219     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
4550 30 Jun 17 nicklas 220     <td id="gonext-message" class="message"></td>
4550 30 Jun 17 nicklas 221   </tr>
4550 30 Jun 17 nicklas 222   </table>
4550 30 Jun 17 nicklas 223   
4550 30 Jun 17 nicklas 224   </form>
4550 30 Jun 17 nicklas 225   </div>
4550 30 Jun 17 nicklas 226   
4550 30 Jun 17 nicklas 227 </base:body>
4550 30 Jun 17 nicklas 228 </base:page>
4550 30 Jun 17 nicklas 229 <%
4550 30 Jun 17 nicklas 230 }
4550 30 Jun 17 nicklas 231 finally
4550 30 Jun 17 nicklas 232 {
4550 30 Jun 17 nicklas 233   if (dc != null) dc.close();
4550 30 Jun 17 nicklas 234 }
4550 30 Jun 17 nicklas 235 %>