extensions/net.sf.basedb.reggie/trunk/resources/sampleproc/rna_normalization.jsp

Code
Comments
Other
Rev Date Author Line
2903 06 Nov 14 nicklas 1 <%@ page
2903 06 Nov 14 nicklas 2   pageEncoding="UTF-8"
2903 06 Nov 14 nicklas 3   session="false"
2903 06 Nov 14 nicklas 4   import="net.sf.basedb.core.User"
2903 06 Nov 14 nicklas 5   import="net.sf.basedb.core.DbControl"
2903 06 Nov 14 nicklas 6   import="net.sf.basedb.core.SessionControl"
2903 06 Nov 14 nicklas 7   import="net.sf.basedb.core.Application"
2903 06 Nov 14 nicklas 8   import="net.sf.basedb.util.Values"
2903 06 Nov 14 nicklas 9   import="net.sf.basedb.util.formatter.DateFormatter"
2903 06 Nov 14 nicklas 10   import="net.sf.basedb.util.formatter.Formatter"
2903 06 Nov 14 nicklas 11   import="net.sf.basedb.util.extensions.Extension"
2903 06 Nov 14 nicklas 12   import="net.sf.basedb.clients.web.Base"  
2903 06 Nov 14 nicklas 13   import="net.sf.basedb.clients.web.util.HTML"  
2903 06 Nov 14 nicklas 14   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
2903 06 Nov 14 nicklas 15   import="java.util.Arrays"
2903 06 Nov 14 nicklas 16   import="java.util.Date"
2903 06 Nov 14 nicklas 17 %>
2903 06 Nov 14 nicklas 18 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2903 06 Nov 14 nicklas 19 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
2903 06 Nov 14 nicklas 20 <%
3976 26 May 16 nicklas 21 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
2903 06 Nov 14 nicklas 22 final String ID = sc.getId();
2903 06 Nov 14 nicklas 23 final float scale = Base.getScale(sc);
2903 06 Nov 14 nicklas 24 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
2903 06 Nov 14 nicklas 25 final Formatter dateFormat = new DateFormatter("yyyyMMdd");
2903 06 Nov 14 nicklas 26 DbControl dc = null;
2903 06 Nov 14 nicklas 27 try
2903 06 Nov 14 nicklas 28 {
2903 06 Nov 14 nicklas 29   dc = sc.newDbControl();
2903 06 Nov 14 nicklas 30   final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie");
2903 06 Nov 14 nicklas 31   final User user = User.getById(dc, sc.getLoggedInUserId());
2903 06 Nov 14 nicklas 32   String[] rna = request.getParameterValues("rna");
2903 06 Nov 14 nicklas 33   if (request.getParameter("restart") != null) rna = null;
2903 06 Nov 14 nicklas 34 %>
2903 06 Nov 14 nicklas 35 <base:page type="default" >
2903 06 Nov 14 nicklas 36 <base:head 
2903 06 Nov 14 nicklas 37   scripts="~../reggie-2.js,~rna_normalization.js" 
5360 12 Apr 19 nicklas 38   styles="path.css,~../css/reggie-2.css,~../css/normalize_extract.css"
2903 06 Nov 14 nicklas 39   >
2903 06 Nov 14 nicklas 40   
2903 06 Nov 14 nicklas 41 <style>
2903 06 Nov 14 nicklas 42 tr.highlight
2903 06 Nov 14 nicklas 43 {
3026 11 Dec 14 nicklas 44   border-top-width: 1px;
3026 11 Dec 14 nicklas 45   border-top-style: dotted;
2903 06 Nov 14 nicklas 46 }
2903 06 Nov 14 nicklas 47
5360 12 Apr 19 nicklas 48 #extractTable
2903 06 Nov 14 nicklas 49 {
3026 11 Dec 14 nicklas 50   border-width: 0;
2903 06 Nov 14 nicklas 51   font-size: 100%;
2903 06 Nov 14 nicklas 52 }
2903 06 Nov 14 nicklas 53
5360 12 Apr 19 nicklas 54 #extractTable td:first-child, #extractTable th:first-child
2903 06 Nov 14 nicklas 55 {
3026 11 Dec 14 nicklas 56   border-left-width: 0;
2903 06 Nov 14 nicklas 57 }
2903 06 Nov 14 nicklas 58
2903 06 Nov 14 nicklas 59 #protocol-header
2903 06 Nov 14 nicklas 60 {
2903 06 Nov 14 nicklas 61   display: none;
2903 06 Nov 14 nicklas 62 }
6726 04 May 22 nicklas 63 #protocol-footer
6726 04 May 22 nicklas 64 {
6726 04 May 22 nicklas 65   border-top-width: 1px;
6726 04 May 22 nicklas 66   padding: 0.5em;
6726 04 May 22 nicklas 67 }
2903 06 Nov 14 nicklas 68 </style>
2903 06 Nov 14 nicklas 69
2903 06 Nov 14 nicklas 70 </base:head>
2903 06 Nov 14 nicklas 71 <base:body>
2903 06 Nov 14 nicklas 72
2903 06 Nov 14 nicklas 73   <p:path><p:pathelement 
2903 06 Nov 14 nicklas 74     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
2903 06 Nov 14 nicklas 75     /><p:pathelement title="RNA concentration normalization" 
2903 06 Nov 14 nicklas 76     /></p:path>
2903 06 Nov 14 nicklas 77
2903 06 Nov 14 nicklas 78   <div class="content">
2903 06 Nov 14 nicklas 79
2903 06 Nov 14 nicklas 80   <div id="page-data" class="datacontainer"
2903 06 Nov 14 nicklas 81     data-rna-id="[<%=rna == null ? "" : Values.getString(Arrays.asList(rna), ",", true) %>]"
3741 12 Feb 16 nicklas 82     data-home-url="<%=home%>"
2903 06 Nov 14 nicklas 83   ></div>
2903 06 Nov 14 nicklas 84
2903 06 Nov 14 nicklas 85   <form name="reggie" id="wizard" class="wizard">
2903 06 Nov 14 nicklas 86   
2903 06 Nov 14 nicklas 87   <!-- 1. RNA selection -->
2903 06 Nov 14 nicklas 88   <div class="step auto-hide" id="step-1">
2903 06 Nov 14 nicklas 89     <div class="step-no">1</div>
2903 06 Nov 14 nicklas 90     <div class="step-title">Select RNA</div>
2903 06 Nov 14 nicklas 91     <div class="step-content">
2903 06 Nov 14 nicklas 92
2903 06 Nov 14 nicklas 93       <table class="step-form">
2903 06 Nov 14 nicklas 94       <tr class="align-top">
2903 06 Nov 14 nicklas 95         <td class="prompt">RNA extracts</td>
2903 06 Nov 14 nicklas 96         <td class="input" rowspan="2">
3741 12 Feb 16 nicklas 97           <select name="rna" id="rna" class="yellow-label-support" multiple size="15"></select>
2903 06 Nov 14 nicklas 98           
2903 06 Nov 14 nicklas 99           <base:buttongroup style="margin-top: 0.5em;">
2903 06 Nov 14 nicklas 100             <base:button id="btnSelectRna" title="Select manually&hellip;" />
2903 06 Nov 14 nicklas 101           </base:buttongroup>
2903 06 Nov 14 nicklas 102         </td>
2903 06 Nov 14 nicklas 103         <td class="status" id="rna.status"></td>
2903 06 Nov 14 nicklas 104         <td class="help">
2903 06 Nov 14 nicklas 105           <span id="rna.message" class="message"></span>
2903 06 Nov 14 nicklas 106           The list contain RNA extracts that has been selected
2903 06 Nov 14 nicklas 107           for pre-normalization. The list is sorted by Qiacube run and
2903 06 Nov 14 nicklas 108           position.
3741 12 Feb 16 nicklas 109           Use the <b>Select manually</b> button for free selection.<br>
3741 12 Feb 16 nicklas 110           <base:icon image="<%=home+"/images/yellow-label.png"%>" /> = YellowLabel specimen
2903 06 Nov 14 nicklas 111         </td>
2903 06 Nov 14 nicklas 112       </tr>
2903 06 Nov 14 nicklas 113       </table>
2903 06 Nov 14 nicklas 114     </div>
2903 06 Nov 14 nicklas 115   </div>
2903 06 Nov 14 nicklas 116   
2903 06 Nov 14 nicklas 117   <div class="step" id="step-2">
2903 06 Nov 14 nicklas 118     <div class="step-no">2</div>
2903 06 Nov 14 nicklas 119     <div class="step-title">Normalization protocol</div>
2903 06 Nov 14 nicklas 120     <div class="step-content">
2903 06 Nov 14 nicklas 121
3269 23 Apr 15 nicklas 122       <table class="step-form">
3269 23 Apr 15 nicklas 123       <tr class="align-top">
3269 23 Apr 15 nicklas 124         <td class="prompt">Normalization protocol</td>
3269 23 Apr 15 nicklas 125         <td class="input" rowspan="2">
3269 23 Apr 15 nicklas 126           <select name="normalizationProtocol" id="normalizationProtocol" class="required"></select>
3269 23 Apr 15 nicklas 127         </td>
3269 23 Apr 15 nicklas 128         <td class="status" id="normalizationProtocol.status"></td>
3269 23 Apr 15 nicklas 129         <td class="help">
3269 23 Apr 15 nicklas 130           <span id="normalizationProtocol.message" class="message"></span>
3269 23 Apr 15 nicklas 131           Select the protocol that match the intended library preparation 
3269 23 Apr 15 nicklas 132           protocol for the selected RNA items. RNA that
3269 23 Apr 15 nicklas 133           doesn't have enough remaining quantity for the selected
3269 23 Apr 15 nicklas 134           protocol are flagged with the NotEnoughRemainingQuantity 
3269 23 Apr 15 nicklas 135           annotation.
3269 23 Apr 15 nicklas 136         </td>
3269 23 Apr 15 nicklas 137       </tr>
3269 23 Apr 15 nicklas 138       </table>
2903 06 Nov 14 nicklas 139       
3269 23 Apr 15 nicklas 140       <div id="full-protocol" class="topborder">
3269 23 Apr 15 nicklas 141       
2903 06 Nov 14 nicklas 142         <div id="protocol-header">
2903 06 Nov 14 nicklas 143         <h1>Lab Protocol for RNA normalization <span class="reggie">Reggie <%=reggie.getAbout().getVersion() %></span></h1>
2903 06 Nov 14 nicklas 144       
2903 06 Nov 14 nicklas 145         <table class="protocolheader">
2903 06 Nov 14 nicklas 146         <tbody id="qiacube-info" style="display: none;">
2903 06 Nov 14 nicklas 147           <tr>
2903 06 Nov 14 nicklas 148             <th>Qiacube date</th>
2903 06 Nov 14 nicklas 149             <td id="qiacube-date"></td>
2903 06 Nov 14 nicklas 150           </tr>
2903 06 Nov 14 nicklas 151           <tr>
2903 06 Nov 14 nicklas 152             <th>Qiacube run</th>
2903 06 Nov 14 nicklas 153             <td id="qiacube-run"></td>
2903 06 Nov 14 nicklas 154           </tr>
2903 06 Nov 14 nicklas 155         </tbody>
2903 06 Nov 14 nicklas 156         <tr>
3269 23 Apr 15 nicklas 157           <th>Normalization protocol</th>
3269 23 Apr 15 nicklas 158           <td id="normalization-protocol"></td>
3269 23 Apr 15 nicklas 159         </tr>
3269 23 Apr 15 nicklas 160         <tr>
2903 06 Nov 14 nicklas 161           <th>Normalization date</th>
2903 06 Nov 14 nicklas 162           <td></td>
2903 06 Nov 14 nicklas 163         </tr>
2903 06 Nov 14 nicklas 164         <tr>
2903 06 Nov 14 nicklas 165           <th>Normalization operator</th>
2903 06 Nov 14 nicklas 166           <td></td>
2903 06 Nov 14 nicklas 167         </tr>
2903 06 Nov 14 nicklas 168         </table>
2903 06 Nov 14 nicklas 169         </div>
2903 06 Nov 14 nicklas 170         
2903 06 Nov 14 nicklas 171         <div id="rnaNormalize"></div>
2903 06 Nov 14 nicklas 172             
2903 06 Nov 14 nicklas 173       </div>
2903 06 Nov 14 nicklas 174
2903 06 Nov 14 nicklas 175     </div>
2903 06 Nov 14 nicklas 176   </div>
2903 06 Nov 14 nicklas 177   
2903 06 Nov 14 nicklas 178   <div class="step" id="step-3">
2903 06 Nov 14 nicklas 179     <div class="step-no">3</div>
2903 06 Nov 14 nicklas 180     <div class="step-title">Register normalization</div>
2903 06 Nov 14 nicklas 181     <div class="step-content">
2903 06 Nov 14 nicklas 182
2903 06 Nov 14 nicklas 183       <table class="step-form">
2903 06 Nov 14 nicklas 184       <tr>
2903 06 Nov 14 nicklas 185         <td class="prompt">Normalization date</td>
2903 06 Nov 14 nicklas 186         <td class="input">
2903 06 Nov 14 nicklas 187           <input type="text" name="normalizationDate" id="normalizationDate"
2903 06 Nov 14 nicklas 188             value="<%=dateFormat.format(new Date()) %>" 
2903 06 Nov 14 nicklas 189             class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="normalizationOperator"
2903 06 Nov 14 nicklas 190             style="width: 12em;" maxlength="10">
2903 06 Nov 14 nicklas 191             <base:icon 
2903 06 Nov 14 nicklas 192               id="normalizationDateCalendar"
2903 06 Nov 14 nicklas 193               subclass="auto-init"
2903 06 Nov 14 nicklas 194               data-auto-init="calendar"
2903 06 Nov 14 nicklas 195               data-textarea-id="normalizationDate"
2903 06 Nov 14 nicklas 196               data-date-format="yyyyMMdd"
2903 06 Nov 14 nicklas 197               data-title="Normalization date"
2903 06 Nov 14 nicklas 198               image="calendar.png" 
2903 06 Nov 14 nicklas 199               tooltip="Select a date from a calendar" 
2903 06 Nov 14 nicklas 200               tabindex="-1"
2903 06 Nov 14 nicklas 201             />
2903 06 Nov 14 nicklas 202         </td>
2903 06 Nov 14 nicklas 203         <td class="status" id="normalizationDate.status"></td>
2903 06 Nov 14 nicklas 204         <td class="help">
2903 06 Nov 14 nicklas 205           <span id="normalizationDate.message" class="message"></span>
2903 06 Nov 14 nicklas 206           Date the RNA was normalized (YYYYMMDD or MMDD)
2903 06 Nov 14 nicklas 207         </td>
2903 06 Nov 14 nicklas 208       </tr>
2903 06 Nov 14 nicklas 209       <tr>
2903 06 Nov 14 nicklas 210         <td class="prompt">Operator</td>
2903 06 Nov 14 nicklas 211         <td class="input">
2903 06 Nov 14 nicklas 212           <input type="text" name="normalizationOperator" id="normalizationOperator"
2903 06 Nov 14 nicklas 213             value="<%=HTML.encodeTags(user.getName()) %>" maxlength="255">
2903 06 Nov 14 nicklas 214         </td>
2903 06 Nov 14 nicklas 215         <td class="status" id="normalizationOperator.status"></td>
2903 06 Nov 14 nicklas 216         <td class="help">
2903 06 Nov 14 nicklas 217           <span id="normalizationOperator.message" class="message"></span>
2903 06 Nov 14 nicklas 218         </td>
2903 06 Nov 14 nicklas 219       </tr>
2903 06 Nov 14 nicklas 220       </table>
2903 06 Nov 14 nicklas 221       
2903 06 Nov 14 nicklas 222     </div>
2903 06 Nov 14 nicklas 223   </div>
2903 06 Nov 14 nicklas 224
2903 06 Nov 14 nicklas 225   <div id="wizard-status"></div>
2903 06 Nov 14 nicklas 226   
2903 06 Nov 14 nicklas 227   <table class="navigation" id="navigation">
2903 06 Nov 14 nicklas 228   <tr>
2903 06 Nov 14 nicklas 229     <td><base:button id="gocancel" title="Cancel" /></td>
2903 06 Nov 14 nicklas 230     <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
2903 06 Nov 14 nicklas 231     <td><base:button id="goprint" title="Print&hellip;" image="<%=home+"/images/print.png"%>" /></td>
2903 06 Nov 14 nicklas 232     <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
2903 06 Nov 14 nicklas 233     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
2903 06 Nov 14 nicklas 234     <td id="gonext-message" class="message"></td>
2903 06 Nov 14 nicklas 235   </tr>
2903 06 Nov 14 nicklas 236   </table>
2903 06 Nov 14 nicklas 237
2903 06 Nov 14 nicklas 238   </form>
2903 06 Nov 14 nicklas 239   </div>
2903 06 Nov 14 nicklas 240   
2903 06 Nov 14 nicklas 241 </base:body>
2903 06 Nov 14 nicklas 242 </base:page>
2903 06 Nov 14 nicklas 243 <%
2903 06 Nov 14 nicklas 244 }
2903 06 Nov 14 nicklas 245 finally
2903 06 Nov 14 nicklas 246 {
2903 06 Nov 14 nicklas 247   if (dc != null) dc.close();
2903 06 Nov 14 nicklas 248 }
2903 06 Nov 14 nicklas 249 %>