extensions/net.sf.basedb.reggie/trunk/resources/sequencing/sequencing_external.jsp

Code
Comments
Other
Rev Date Author Line
5867 18 Mar 20 nicklas 1 <%@ page
5867 18 Mar 20 nicklas 2   pageEncoding="UTF-8"
5867 18 Mar 20 nicklas 3   session="false"
5867 18 Mar 20 nicklas 4   import="net.sf.basedb.core.User"
5867 18 Mar 20 nicklas 5   import="net.sf.basedb.core.DbControl"
5867 18 Mar 20 nicklas 6   import="net.sf.basedb.core.SessionControl"
5867 18 Mar 20 nicklas 7   import="net.sf.basedb.core.Application"
5867 18 Mar 20 nicklas 8   import="net.sf.basedb.util.formatter.DateFormatter"
5867 18 Mar 20 nicklas 9   import="net.sf.basedb.util.formatter.Formatter"
5867 18 Mar 20 nicklas 10   import="net.sf.basedb.clients.web.Base"  
5867 18 Mar 20 nicklas 11   import="net.sf.basedb.clients.web.util.HTML"  
5867 18 Mar 20 nicklas 12   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5867 18 Mar 20 nicklas 13   import="java.util.Date"
5867 18 Mar 20 nicklas 14 %>
5867 18 Mar 20 nicklas 15 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
5867 18 Mar 20 nicklas 16 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
5867 18 Mar 20 nicklas 17 <%
5867 18 Mar 20 nicklas 18 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
5867 18 Mar 20 nicklas 19 final String ID = sc.getId();
5867 18 Mar 20 nicklas 20 final float scale = Base.getScale(sc);
5867 18 Mar 20 nicklas 21 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
5867 18 Mar 20 nicklas 22 final String pipeline = request.getParameter("pipeline");
5867 18 Mar 20 nicklas 23 DbControl dc = null;
5867 18 Mar 20 nicklas 24 try
5867 18 Mar 20 nicklas 25 {
5867 18 Mar 20 nicklas 26   dc = sc.newDbControl();
5867 18 Mar 20 nicklas 27   final User user = User.getById(dc, sc.getLoggedInUserId());
5867 18 Mar 20 nicklas 28   final Formatter dateFormat = new DateFormatter("yyyyMMdd");
5867 18 Mar 20 nicklas 29 %>
5867 18 Mar 20 nicklas 30 <base:page type="default" >
5867 18 Mar 20 nicklas 31 <base:head 
5867 18 Mar 20 nicklas 32   scripts="~../reggie-2.js,~sequencing_external.js" 
5867 18 Mar 20 nicklas 33   styles="path.css,~../css/reggie-2.css"
5867 18 Mar 20 nicklas 34 />
5867 18 Mar 20 nicklas 35 <base:body>
5867 18 Mar 20 nicklas 36
5867 18 Mar 20 nicklas 37   <p:path><p:pathelement 
5867 18 Mar 20 nicklas 38     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
5867 18 Mar 20 nicklas 39     /><p:pathelement title="Register external sequencing" 
5867 18 Mar 20 nicklas 40     /></p:path>
5867 18 Mar 20 nicklas 41
5867 18 Mar 20 nicklas 42   <div id="page-data" class="datacontainer"
5867 18 Mar 20 nicklas 43     data-pipeline="<%=HTML.encodeTags(pipeline)%>"
5867 18 Mar 20 nicklas 44   ></div>
5867 18 Mar 20 nicklas 45
5867 18 Mar 20 nicklas 46   <div class="content">
5867 18 Mar 20 nicklas 47   <form name="reggie" id="wizard" class="wizard">
5867 18 Mar 20 nicklas 48
5867 18 Mar 20 nicklas 49   <div class="step" id="step-1">
5867 18 Mar 20 nicklas 50     <div class="step-no">1</div>
5867 18 Mar 20 nicklas 51     <div class="step-title">Information about the sequencing</div>
5867 18 Mar 20 nicklas 52     <div class="step-content">
5867 18 Mar 20 nicklas 53
5867 18 Mar 20 nicklas 54       <table class="step-form">
5867 18 Mar 20 nicklas 55       <tr>
5870 20 Mar 20 nicklas 56         <td class="prompt">Operator</td>
5870 20 Mar 20 nicklas 57         <td class="input">
5886 30 Mar 20 nicklas 58           <select name="operator" id="operator" class="required auto-init"
5886 30 Mar 20 nicklas 59             data-auto-init="focus-on-enter" data-next-focus="libProtocol"
5886 30 Mar 20 nicklas 60             >
5870 20 Mar 20 nicklas 61             <option value="CTG">CTG
5870 20 Mar 20 nicklas 62           </option>
5870 20 Mar 20 nicklas 63         </td>
5870 20 Mar 20 nicklas 64         <td class="status" id="operator.status"></td>
5870 20 Mar 20 nicklas 65         <td class="help">
5870 20 Mar 20 nicklas 66           <span id="operator.message" class="message"></span>
5870 20 Mar 20 nicklas 67           The external operator.
5870 20 Mar 20 nicklas 68         </td>
5870 20 Mar 20 nicklas 69       </tr>
5870 20 Mar 20 nicklas 70       <tr>
5886 30 Mar 20 nicklas 71         <td class="prompt">Protocol</td>
5886 30 Mar 20 nicklas 72         <td class="input">
5886 30 Mar 20 nicklas 73           <select name="libProtocol" id="libProtocol" class="required auto-init" 
5886 30 Mar 20 nicklas 74             data-auto-init="focus-on-enter" data-next-focus="flowCellId"
5886 30 Mar 20 nicklas 75             ></select>
5886 30 Mar 20 nicklas 76         </td>
5886 30 Mar 20 nicklas 77         <td class="status" id="libProtocol.status"></td>
5886 30 Mar 20 nicklas 78         <td class="help">
5886 30 Mar 20 nicklas 79           <span id="libProtocol.message" class="message"></span>
5886 30 Mar 20 nicklas 80           Select the protocol used for library preparation.
5886 30 Mar 20 nicklas 81         </td>
5886 30 Mar 20 nicklas 82       </tr>
5886 30 Mar 20 nicklas 83       <tr>
5867 18 Mar 20 nicklas 84         <td class="prompt">Flow cell ID</td>
5867 18 Mar 20 nicklas 85         <td class="input">
5867 18 Mar 20 nicklas 86           <input type="text" name="flowCellId" id="flowCellId"
5870 20 Mar 20 nicklas 87             class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="sampleSheetFile"
5867 18 Mar 20 nicklas 88             style="width: 12em;">
5867 18 Mar 20 nicklas 89         </td>
5867 18 Mar 20 nicklas 90         <td class="status" id="flowCellId.status"></td>
5867 18 Mar 20 nicklas 91         <td class="help">
5867 18 Mar 20 nicklas 92           <span id="flowCellId.message" class="message"></span>
5867 18 Mar 20 nicklas 93           The barcode of the flow cell.
5867 18 Mar 20 nicklas 94         </td>
5867 18 Mar 20 nicklas 95       </tr>
5867 18 Mar 20 nicklas 96       <tr>
5867 18 Mar 20 nicklas 97         <td class="prompt">Sample sheet</td>
5867 18 Mar 20 nicklas 98         <td class="input">
5867 18 Mar 20 nicklas 99           <input type="file" name="sampleSheetFile" id="sampleSheetFile" class="required" style="width: 95%;" accept="text/plain">
5867 18 Mar 20 nicklas 100         </td>
5867 18 Mar 20 nicklas 101         <td class="status" id="sampleSheetFile.status"></td>
5867 18 Mar 20 nicklas 102         <td class="help">
5867 18 Mar 20 nicklas 103           <span id="sampleSheetFile.message" class="message"></span>
5867 18 Mar 20 nicklas 104           Select the file sample sheet for the sequencing.
5867 18 Mar 20 nicklas 105         </td>
5867 18 Mar 20 nicklas 106       </tr>
5867 18 Mar 20 nicklas 107       <tr>
5867 18 Mar 20 nicklas 108         <td class="prompt">Start date</td>
5867 18 Mar 20 nicklas 109         <td class="input">
5867 18 Mar 20 nicklas 110           <input type="text" name="startDate" id="startDate"
5870 20 Mar 20 nicklas 111             class="auto-init required" data-auto-init="focus-on-enter" data-next-focus="comments"
5867 18 Mar 20 nicklas 112             style="width: 12em;" maxlength="10">
5867 18 Mar 20 nicklas 113         </td>
5867 18 Mar 20 nicklas 114         <td class="status" id="startDate.status"></td>
5867 18 Mar 20 nicklas 115         <td class="help">
5867 18 Mar 20 nicklas 116           <span id="startDate.message" class="message"></span>
5867 18 Mar 20 nicklas 117           Date when the sequencing started (YYYYMMDD)
5867 18 Mar 20 nicklas 118         </td>
5867 18 Mar 20 nicklas 119       </tr>
5867 18 Mar 20 nicklas 120       <tr>
5867 18 Mar 20 nicklas 121         <td class="prompt">Flow cell type</td>
5867 18 Mar 20 nicklas 122         <td class="input">
5867 18 Mar 20 nicklas 123           <label><input type="radio" name="flowCellType" id="flowCellTypeNovaSeq" checked value="NovaSeq">NovaSeq</label>
5867 18 Mar 20 nicklas 124         </td>
5867 18 Mar 20 nicklas 125         <td class="status" id="flowCellType.status"></td>
5867 18 Mar 20 nicklas 126         <td class="help">
5867 18 Mar 20 nicklas 127           <span id="flowCellType.message" class="message"></span>
5867 18 Mar 20 nicklas 128           The type of flow cell. Only NovaSeq is supported so far.
5867 18 Mar 20 nicklas 129         </td>
5867 18 Mar 20 nicklas 130       </tr>
5867 18 Mar 20 nicklas 131       <tr>
5867 18 Mar 20 nicklas 132         <td class="prompt">Lanes/flow cell</td>
5867 18 Mar 20 nicklas 133         <td class="input" id="lanes">
5867 18 Mar 20 nicklas 134           <label><input type="radio" name="num_lanes" id="num_lanes_2" value="2" checked>2</label>
5867 18 Mar 20 nicklas 135           <label><input type="radio" name="num_lanes" id="num_lanes_4" value="4">4</label>
5867 18 Mar 20 nicklas 136         </td>
5867 18 Mar 20 nicklas 137         <td class="status" id="lanes.status"></td>
5867 18 Mar 20 nicklas 138         <td class="help">
5867 18 Mar 20 nicklas 139           <span id="lanes.message" class="message"></span>
5867 18 Mar 20 nicklas 140           Select the number of lanes on the flow cell.
5867 18 Mar 20 nicklas 141         </td>
5867 18 Mar 20 nicklas 142       </tr>
5867 18 Mar 20 nicklas 143       <tr class="align-top">
5867 18 Mar 20 nicklas 144         <td class="prompt">Comments</td>
5867 18 Mar 20 nicklas 145         <td class="input">
5867 18 Mar 20 nicklas 146           <textarea name="comments" id="comments" rows="4"></textarea>
5867 18 Mar 20 nicklas 147         </td>
5867 18 Mar 20 nicklas 148         <td class="status" id="comments.status"></td>
5867 18 Mar 20 nicklas 149         <td class="help">
5867 18 Mar 20 nicklas 150           <span id="comments.message" class="message"></span>
5867 18 Mar 20 nicklas 151           Comments about the sequencing.
5867 18 Mar 20 nicklas 152         </td>
5867 18 Mar 20 nicklas 153       </tr>
5867 18 Mar 20 nicklas 154       <tbody id="auto-analyze-section">
5867 18 Mar 20 nicklas 155         <tr class="section-header">
5867 18 Mar 20 nicklas 156           <td colspan="4">Auto-analyze options</td>
5867 18 Mar 20 nicklas 157         </tr>
5867 18 Mar 20 nicklas 158         <tr>
5867 18 Mar 20 nicklas 159           <td class="subprompt">Auto-analyze</td>
5867 18 Mar 20 nicklas 160           <td class="input">
5867 18 Mar 20 nicklas 161             <label><input type="radio" name="autoAnalyze" id="autoAnalyzeYes" disabled>Yes</label>
5867 18 Mar 20 nicklas 162             <label><input type="radio" name="autoAnalyze" id="autoAnalyzeNo" disabled>No</label>
5867 18 Mar 20 nicklas 163           </td>
5867 18 Mar 20 nicklas 164           <td class="status" id="autoAnalyze.status"></td>
5867 18 Mar 20 nicklas 165           <td class="help">
5867 18 Mar 20 nicklas 166             <span id="autoAnalyze.message" class="message"></span>
5867 18 Mar 20 nicklas 167             If the auto-analyze option is enabled, Reggie will automatically detect
5867 18 Mar 20 nicklas 168             when the sequencing has ended. If everything seems to be okay, 
5867 18 Mar 20 nicklas 169             secondary analysis is automatically started.
5867 18 Mar 20 nicklas 170           </td>
5867 18 Mar 20 nicklas 171         </tr>
5867 18 Mar 20 nicklas 172         <tr>
6735 09 May 22 nicklas 173           <td class="subprompt">Cluster</td>
5867 18 Mar 20 nicklas 174           <td class="input">
5867 18 Mar 20 nicklas 175             <select name="clusters" id="clusters" class="required" disabled></select>
5867 18 Mar 20 nicklas 176           </td>
5867 18 Mar 20 nicklas 177           <td class="status" id="clusters.status"></td>
5867 18 Mar 20 nicklas 178           <td class="help">
5867 18 Mar 20 nicklas 179             <span id="clusters.message" class="message"></span>
5867 18 Mar 20 nicklas 180             Select the cluster to use for running the analysis.
5867 18 Mar 20 nicklas 181           </td>
5867 18 Mar 20 nicklas 182         </tr>
6980 17 Jan 23 nicklas 183         <tr id="job-priority" style="display: none;">
5867 18 Mar 20 nicklas 184           <td class="subprompt">Job priority</td>
5867 18 Mar 20 nicklas 185           <td class="input">
5867 18 Mar 20 nicklas 186             <select name="priority" id="priority" disabled></select>
5867 18 Mar 20 nicklas 187           </td>
5867 18 Mar 20 nicklas 188           <td class="status" id="priority.status"></td>
5867 18 Mar 20 nicklas 189           <td class="help">
5867 18 Mar 20 nicklas 190             <span id="priority.message" class="message"></span>
5867 18 Mar 20 nicklas 191             Select the priority of the analysis jobs.
5867 18 Mar 20 nicklas 192           </td>
5867 18 Mar 20 nicklas 193         </tr>
6980 17 Jan 23 nicklas 194         <tr id="job-partition" style="display: none;">
6980 17 Jan 23 nicklas 195           <td class="subprompt">Job partition</td>
6980 17 Jan 23 nicklas 196           <td class="input">
6980 17 Jan 23 nicklas 197             <select name="partition" id="partition"></select>
6980 17 Jan 23 nicklas 198           </td>
6980 17 Jan 23 nicklas 199           <td class="status" id="partition.status"></td>
6980 17 Jan 23 nicklas 200           <td class="help">
6980 17 Jan 23 nicklas 201             <span id="partition.message" class="message"></span>
6980 17 Jan 23 nicklas 202             Select the partition/queue that the job should be submitted to.
6980 17 Jan 23 nicklas 203           </td>
6980 17 Jan 23 nicklas 204         </tr>
5867 18 Mar 20 nicklas 205         <tr>
5867 18 Mar 20 nicklas 206           <td class="subprompt">Debug</td>
5867 18 Mar 20 nicklas 207           <td class="input"><input type="checkbox" name="debug" disabled></td>
5867 18 Mar 20 nicklas 208           <td class="status" id="debug.status"></td>
5867 18 Mar 20 nicklas 209           <td class="help">
5867 18 Mar 20 nicklas 210             <span id="debug.message" class="message"></span>
5867 18 Mar 20 nicklas 211             When running in debug mode only part of the sequenced data is used and
5867 18 Mar 20 nicklas 212             temporary files are not removed from the cluster nodes.
5867 18 Mar 20 nicklas 213           </td>
5867 18 Mar 20 nicklas 214         </tr>
5867 18 Mar 20 nicklas 215       </tbody>
5867 18 Mar 20 nicklas 216       </table>
5867 18 Mar 20 nicklas 217     </div>
5867 18 Mar 20 nicklas 218   </div>
5867 18 Mar 20 nicklas 219   
5867 18 Mar 20 nicklas 220   <table class="navigation" id="navigation" style="margin-bottom: 1em;">
5867 18 Mar 20 nicklas 221   <tr>
5867 18 Mar 20 nicklas 222     <td><base:button id="gocancel" title="Cancel" /></td>
5867 18 Mar 20 nicklas 223     <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
5867 18 Mar 20 nicklas 224     <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
5867 18 Mar 20 nicklas 225     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
5867 18 Mar 20 nicklas 226     <td id="gonext-message" class="message"></td>
5867 18 Mar 20 nicklas 227   </tr>
5867 18 Mar 20 nicklas 228   </table>
5867 18 Mar 20 nicklas 229
5867 18 Mar 20 nicklas 230   <div id="wizard-status"></div>
5867 18 Mar 20 nicklas 231   
5885 30 Mar 20 nicklas 232   
5885 30 Mar 20 nicklas 233   <div id="debug-tools">
5885 30 Mar 20 nicklas 234     <select name="libplate" id="libplate"></select>
5885 30 Mar 20 nicklas 235     <base:button 
5885 30 Mar 20 nicklas 236       id="btnFakeSampleSheet"
5885 30 Mar 20 nicklas 237       image="bug.png"
5885 30 Mar 20 nicklas 238       title="Fake sample sheet file" 
5885 30 Mar 20 nicklas 239       tooltip="Generate a fake sample sheet file"
5885 30 Mar 20 nicklas 240     />
5885 30 Mar 20 nicklas 241   </div>
5885 30 Mar 20 nicklas 242   
5867 18 Mar 20 nicklas 243   </form>
5867 18 Mar 20 nicklas 244   </div>
5867 18 Mar 20 nicklas 245   
5867 18 Mar 20 nicklas 246 </base:body>
5867 18 Mar 20 nicklas 247 </base:page>
5867 18 Mar 20 nicklas 248 <%
5867 18 Mar 20 nicklas 249 }
5867 18 Mar 20 nicklas 250 finally
5867 18 Mar 20 nicklas 251 {
5867 18 Mar 20 nicklas 252   if (dc != null) dc.close();
5867 18 Mar 20 nicklas 253 }
5867 18 Mar 20 nicklas 254 %>