extensions/net.sf.basedb.reggie/trunk/resources/outtake/picklist2.jsp

Code
Comments
Other
Rev Date Author Line
4164 20 Oct 16 nicklas 1 <%@ page
4164 20 Oct 16 nicklas 2   pageEncoding="UTF-8"
4164 20 Oct 16 nicklas 3   session="false"
4164 20 Oct 16 nicklas 4   import="net.sf.basedb.core.User"
4164 20 Oct 16 nicklas 5   import="net.sf.basedb.core.DbControl"
4164 20 Oct 16 nicklas 6   import="net.sf.basedb.core.SessionControl"
4164 20 Oct 16 nicklas 7   import="net.sf.basedb.core.Application"
4164 20 Oct 16 nicklas 8   import="net.sf.basedb.core.ItemList"
4164 20 Oct 16 nicklas 9   import="net.sf.basedb.util.Values"
4164 20 Oct 16 nicklas 10   import="net.sf.basedb.util.extensions.Extension"
4164 20 Oct 16 nicklas 11   import="net.sf.basedb.clients.web.Base"  
4164 20 Oct 16 nicklas 12   import="net.sf.basedb.clients.web.util.HTML"
4164 20 Oct 16 nicklas 13   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4164 20 Oct 16 nicklas 14   import="java.util.List"
4164 20 Oct 16 nicklas 15   import="java.util.ArrayList"
4164 20 Oct 16 nicklas 16 %>
4164 20 Oct 16 nicklas 17 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
4164 20 Oct 16 nicklas 18 <%
4164 20 Oct 16 nicklas 19 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
4164 20 Oct 16 nicklas 20 final String ID = sc.getId();
4164 20 Oct 16 nicklas 21 final float scale = Base.getScale(sc);
4164 20 Oct 16 nicklas 22 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
4164 20 Oct 16 nicklas 23 final String root = request.getContextPath();
4164 20 Oct 16 nicklas 24 DbControl dc = null;
4164 20 Oct 16 nicklas 25 try
4164 20 Oct 16 nicklas 26 {
4164 20 Oct 16 nicklas 27   dc = sc.newDbControl();
4164 20 Oct 16 nicklas 28   final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie");
4164 20 Oct 16 nicklas 29   final User user = User.getById(dc, sc.getLoggedInUserId());
4164 20 Oct 16 nicklas 30   final int listId = Values.getInt(request.getParameter("workList"));
4164 20 Oct 16 nicklas 31   ItemList workList = ItemList.getById(dc, listId);
4166 21 Oct 16 nicklas 32   final boolean useExternalId = Values.getBoolean(request.getParameter("useExternalId"));
4164 20 Oct 16 nicklas 33 %>
4164 20 Oct 16 nicklas 34 <base:page id="protocol" type="iframe" noskin="true"
4164 20 Oct 16 nicklas 35   favicon="<%=home+"/images/outtake.png"%>" 
4164 20 Oct 16 nicklas 36   title="Pick list protocol for sample outtake">
4164 20 Oct 16 nicklas 37 <base:head
4164 20 Oct 16 nicklas 38   scripts="~../reggie-2.js,~picklist.js" 
4164 20 Oct 16 nicklas 39   styles="~../css/reggie-2.css,~../css/printable.css"
4164 20 Oct 16 nicklas 40   >
4164 20 Oct 16 nicklas 41   <style>
4164 20 Oct 16 nicklas 42   
4164 20 Oct 16 nicklas 43   td, th
4164 20 Oct 16 nicklas 44   {
6730 05 May 22 nicklas 45     padding: 3px;
4164 20 Oct 16 nicklas 46   }
4164 20 Oct 16 nicklas 47   
4164 20 Oct 16 nicklas 48   table.top-header, table.aliquot-list
4164 20 Oct 16 nicklas 49   {
4164 20 Oct 16 nicklas 50     width: 100%;
4164 20 Oct 16 nicklas 51     border: 1px solid #000000;
4164 20 Oct 16 nicklas 52     margin-bottom: 1em;
4164 20 Oct 16 nicklas 53     border-collapse: collapse;
4164 20 Oct 16 nicklas 54   }
4164 20 Oct 16 nicklas 55   
4164 20 Oct 16 nicklas 56   table.top-header th
4164 20 Oct 16 nicklas 57   {
4164 20 Oct 16 nicklas 58     width: 20%;
4164 20 Oct 16 nicklas 59     text-align: left;
4164 20 Oct 16 nicklas 60     background-color: #F0F0F0;
4164 20 Oct 16 nicklas 61     border-right: 1px solid #000000;
4164 20 Oct 16 nicklas 62   }
4164 20 Oct 16 nicklas 63   
4164 20 Oct 16 nicklas 64   table.top-header td
4164 20 Oct 16 nicklas 65   {
4164 20 Oct 16 nicklas 66     width: 80%;
4164 20 Oct 16 nicklas 67   }
4164 20 Oct 16 nicklas 68
4164 20 Oct 16 nicklas 69   table.aliquot-list thead
4164 20 Oct 16 nicklas 70   {
4164 20 Oct 16 nicklas 71     border-bottom: 1px solid #000000;
4164 20 Oct 16 nicklas 72   }
4164 20 Oct 16 nicklas 73
4164 20 Oct 16 nicklas 74   table.aliquot-list thead th
4164 20 Oct 16 nicklas 75   {
4164 20 Oct 16 nicklas 76     background-color: #F0F0F0;
4164 20 Oct 16 nicklas 77   }
4164 20 Oct 16 nicklas 78
4164 20 Oct 16 nicklas 79   table.aliquot-list tbody th
4164 20 Oct 16 nicklas 80   {
4164 20 Oct 16 nicklas 81   }
4164 20 Oct 16 nicklas 82   
4164 20 Oct 16 nicklas 83   table.aliquot-list tbody tr
4164 20 Oct 16 nicklas 84   {
4164 20 Oct 16 nicklas 85     border-bottom: 1px dotted #999999;
4164 20 Oct 16 nicklas 86   }
4164 20 Oct 16 nicklas 87   
4168 21 Oct 16 nicklas 88   table.aliquot-list tbody tr.box-row 
4164 20 Oct 16 nicklas 89   {
4172 24 Oct 16 nicklas 90     border-top: 1px solid #000000;
6730 05 May 22 nicklas 91     background-color: #F0F0F0;
4164 20 Oct 16 nicklas 92   }
4164 20 Oct 16 nicklas 93   
4168 21 Oct 16 nicklas 94   table.aliquot-list tbody tr.box-row td
4168 21 Oct 16 nicklas 95   {
4168 21 Oct 16 nicklas 96     font-weight: bold;
6730 05 May 22 nicklas 97     padding: 0.5em;
4168 21 Oct 16 nicklas 98   }
4168 21 Oct 16 nicklas 99   
4172 24 Oct 16 nicklas 100   table.aliquot-list tbody tr.box-row td .freezer
4172 24 Oct 16 nicklas 101   {
4172 24 Oct 16 nicklas 102     font-weight: normal;
4172 24 Oct 16 nicklas 103   }
4172 24 Oct 16 nicklas 104   
6730 05 May 22 nicklas 105   table.aliquot-list tbody tr.odd-row .new-box
4164 20 Oct 16 nicklas 106   {
6730 05 May 22 nicklas 107     background-color: #D0D0D0;
4164 20 Oct 16 nicklas 108   }
6730 05 May 22 nicklas 109   td.label
6730 05 May 22 nicklas 110   {
6730 05 May 22 nicklas 111     font-weight: bold;
6730 05 May 22 nicklas 112     white-space: nowrap;
6730 05 May 22 nicklas 113   }
4164 20 Oct 16 nicklas 114   td.volume
4164 20 Oct 16 nicklas 115   {
4164 20 Oct 16 nicklas 116     width: 5em;
4164 20 Oct 16 nicklas 117     padding-right: 1em;
4164 20 Oct 16 nicklas 118     text-align: right;
4164 20 Oct 16 nicklas 119     color: #C80000;
4164 20 Oct 16 nicklas 120   }
4164 20 Oct 16 nicklas 121   td.water
4164 20 Oct 16 nicklas 122   {
4164 20 Oct 16 nicklas 123     width: 5em;
4164 20 Oct 16 nicklas 124     padding-right: 1em;
4164 20 Oct 16 nicklas 125     text-align: right;
4164 20 Oct 16 nicklas 126     color: #0000C8;
4164 20 Oct 16 nicklas 127   }
4168 21 Oct 16 nicklas 128   td.box
4168 21 Oct 16 nicklas 129   {
4168 21 Oct 16 nicklas 130     text-align: center;
4168 21 Oct 16 nicklas 131   }
6730 05 May 22 nicklas 132   /* Can't use display: none since it will cause colspan=".." to fail */
6730 05 May 22 nicklas 133   .nolabels .label
6730 05 May 22 nicklas 134   {
6730 05 May 22 nicklas 135     width: 0;
6730 05 May 22 nicklas 136     max-width: 0;
6730 05 May 22 nicklas 137     overflow: hidden;
6730 05 May 22 nicklas 138     visibility: hidden;
6730 05 May 22 nicklas 139   }
4164 20 Oct 16 nicklas 140   </style>
4164 20 Oct 16 nicklas 141 </base:head>
4164 20 Oct 16 nicklas 142 <base:body>
4172 24 Oct 16 nicklas 143   <div class="paper">
4164 20 Oct 16 nicklas 144
4164 20 Oct 16 nicklas 145   <form name="reggie" id="wizard">
4164 20 Oct 16 nicklas 146   
4164 20 Oct 16 nicklas 147   <div id="wizard-status"></div>
4164 20 Oct 16 nicklas 148   
4164 20 Oct 16 nicklas 149   <div id="all-protocol" style="display: none;">
4164 20 Oct 16 nicklas 150
4164 20 Oct 16 nicklas 151   <div id="print-instructions" class="noprint fullwidth">
4164 20 Oct 16 nicklas 152     <base:button id="print-button" image="<%=home+"/images/print.png"%>" title="Print&hellip;" />
4164 20 Oct 16 nicklas 153     <br clear="all">
4164 20 Oct 16 nicklas 154   </div>
4164 20 Oct 16 nicklas 155
4164 20 Oct 16 nicklas 156   <div id="page-data" class="datacontainer"
4164 20 Oct 16 nicklas 157     data-list-id="<%=listId%>"
4166 21 Oct 16 nicklas 158     data-use-external-id="<%=useExternalId ? 1 : 0%>"
4164 20 Oct 16 nicklas 159   ></div>
4164 20 Oct 16 nicklas 160
4164 20 Oct 16 nicklas 161   <h1>Pick list protocol for sample outtake</h1>
4164 20 Oct 16 nicklas 162   
4164 20 Oct 16 nicklas 163   <table class="top-header">
4164 20 Oct 16 nicklas 164   <tr>
4164 20 Oct 16 nicklas 165     <th>Work list</th>
4164 20 Oct 16 nicklas 166     <td><%=HTML.encodeTags(workList.getName())%></td>
4164 20 Oct 16 nicklas 167   </tr>
4164 20 Oct 16 nicklas 168   <tr>
6326 14 Jun 21 nicklas 169     <th>Parent item type</th>
6326 14 Jun 21 nicklas 170     <td><span id="parentType"></span></td>
6326 14 Jun 21 nicklas 171   </tr>
6326 14 Jun 21 nicklas 172   <tr id="targetAmountSection">
4164 20 Oct 16 nicklas 173     <th>Target amount</th>
4164 20 Oct 16 nicklas 174     <td><span id="targetAmount"></span></td>
4164 20 Oct 16 nicklas 175   </tr>
6326 14 Jun 21 nicklas 176   <tr id="targetVolumeSection">
4164 20 Oct 16 nicklas 177     <th>Target volume</th>
4164 20 Oct 16 nicklas 178     <td><span id="targetVolume"></span></td>
4164 20 Oct 16 nicklas 179   </tr>
6326 14 Jun 21 nicklas 180   <tr id="targetConcentrationSection">
4164 20 Oct 16 nicklas 181     <th>Target concentration</th>
4164 20 Oct 16 nicklas 182     <td><span id="targetConcentration"></span></td>
4164 20 Oct 16 nicklas 183   </tr>
4164 20 Oct 16 nicklas 184   <tr>
4164 20 Oct 16 nicklas 185     <th>New boxes</th>
4164 20 Oct 16 nicklas 186     <td><span id="newBoxes"></span></td>
4164 20 Oct 16 nicklas 187   </tr>
4164 20 Oct 16 nicklas 188   <tr style="border-top: 1px solid #000000;"> 
4172 24 Oct 16 nicklas 189     <td colspan="2" style="height: 5em; vertical-align: top;"><%=HTML.niceFormat(workList.getDescription()) %></td>
4164 20 Oct 16 nicklas 190   </tr>
4164 20 Oct 16 nicklas 191   </table>
4164 20 Oct 16 nicklas 192   
6730 05 May 22 nicklas 193   <table id="aliquot-table" class="aliquot-list nolabels">
4164 20 Oct 16 nicklas 194     <thead>
4164 20 Oct 16 nicklas 195     <tr>
6730 05 May 22 nicklas 196       <th colspan="3">Source item</th>
4164 20 Oct 16 nicklas 197       <th colspan="2" class="leftborder">Dilution (µl)</th>
4164 20 Oct 16 nicklas 198       <th colspan="2" class="leftborder">Aliquot item</th>
4164 20 Oct 16 nicklas 199       <th class="leftborder"></th>
4164 20 Oct 16 nicklas 200     </tr>
4164 20 Oct 16 nicklas 201     <tr>
4164 20 Oct 16 nicklas 202       <th>Name</th>
6730 05 May 22 nicklas 203       <th class="label">Label¹</th>
4164 20 Oct 16 nicklas 204       <th>Storage location</th>
4164 20 Oct 16 nicklas 205       <th class="leftborder">Volume</th>
4164 20 Oct 16 nicklas 206       <th>H<sub>2</sub>0</th>
4166 21 Oct 16 nicklas 207       <th class="leftborder"><%=useExternalId ? "External ID" : "Name" %></th>
4164 20 Oct 16 nicklas 208       <th>New box</th>
4164 20 Oct 16 nicklas 209       <th class="leftborder">Comments</th>
4164 20 Oct 16 nicklas 210     </tr>
4164 20 Oct 16 nicklas 211     </thead>
4164 20 Oct 16 nicklas 212     
4164 20 Oct 16 nicklas 213     <tbody id="aliquot-list"></tbody>
4164 20 Oct 16 nicklas 214   </table>
6730 05 May 22 nicklas 215   <div id="protocol-footer" style="display: none;">
6730 05 May 22 nicklas 216     ¹ Some SCAN-B tubes have a non-standard label.
6730 05 May 22 nicklas 217   </div>
4164 20 Oct 16 nicklas 218
4164 20 Oct 16 nicklas 219   </div>
4164 20 Oct 16 nicklas 220   </form>
4164 20 Oct 16 nicklas 221   </div>
4164 20 Oct 16 nicklas 222 </base:body>
4164 20 Oct 16 nicklas 223 </base:page>
4164 20 Oct 16 nicklas 224 <%
4164 20 Oct 16 nicklas 225 }
4164 20 Oct 16 nicklas 226 finally
4164 20 Oct 16 nicklas 227 {
4164 20 Oct 16 nicklas 228   if (dc != null) dc.close();
4164 20 Oct 16 nicklas 229 }
4164 20 Oct 16 nicklas 230 %>