extensions/net.sf.basedb.meludi/trunk/resources/sampleproc/edit_dnarna_prep_details.js

Code
Comments
Other
Rev Date Author Line
3176 06 Mar 15 olle 1 var PrepDetails = function()
3176 06 Mar 15 olle 2 {
3176 06 Mar 15 olle 3   var details = {};
3176 06 Mar 15 olle 4   var debug = 0;
3176 06 Mar 15 olle 5   
3176 06 Mar 15 olle 6   // Page initialization
3176 06 Mar 15 olle 7   details.initPage = function()
3176 06 Mar 15 olle 8   {
3176 06 Mar 15 olle 9     Buttons.addClickHandler('close', App.closeWindow);
3176 06 Mar 15 olle 10     Buttons.addClickHandler('btnSave', details.saveDetails);
3176 06 Mar 15 olle 11 /*
3176 06 Mar 15 olle 12     Events.addEventHandler('dnaVolume', 'keypress', Events.numberOnly);
3176 06 Mar 15 olle 13     Events.addEventHandler('rnaVolume', 'keypress', Events.numberOnly);
3176 06 Mar 15 olle 14 */
3176 06 Mar 15 olle 15     
3176 06 Mar 15 olle 16     var index = Data.int('page-data', 'index');
3176 06 Mar 15 olle 17     var frm = document.forms['prepdetails'];
3176 06 Mar 15 olle 18     var pfrm = window.opener.document.forms['meludi'];
3176 06 Mar 15 olle 19     //var specimen = pfrm.extractSourceItems[index].specimen;
3176 06 Mar 15 olle 20     var selItemsList = getSelectedItemsList();
3176 06 Mar 15 olle 21     var item = selItemsList[index];
3176 06 Mar 15 olle 22     var specimen = item;
3176 06 Mar 15 olle 23
3176 06 Mar 15 olle 24     frm.qiacubePosition.value = specimen.qiacubePosition;
3176 06 Mar 15 olle 25     details.checkForm();
3176 06 Mar 15 olle 26     frm.qiacubePosition.focus();
3176 06 Mar 15 olle 27   }
3176 06 Mar 15 olle 28   
3176 06 Mar 15 olle 29   details.checkForm = function()
3176 06 Mar 15 olle 30   {
3176 06 Mar 15 olle 31     var frm = document.forms['prepdetails'];
3176 06 Mar 15 olle 32     
3176 06 Mar 15 olle 33     var index = Data.int('page-data', 'index');
3176 06 Mar 15 olle 34     var selItemsList = getSelectedItemsList();
3176 06 Mar 15 olle 35     var item = selItemsList[index];
3176 06 Mar 15 olle 36
3176 06 Mar 15 olle 37     // Qiacube position
3176 06 Mar 15 olle 38     var qiacubePositionStr = frm.qiacubePosition.value;
3352 26 May 15 olle 39     if (ExtractUtils.isSpecimen(item))
3176 06 Mar 15 olle 40     {
3176 06 Mar 15 olle 41       // Check prefix indicating QIAcube instrument
3176 06 Mar 15 olle 42       var qiacubeInstrPrefix = qiacubePositionStr.substring(0,1);
3176 06 Mar 15 olle 43       if (/^[A-Z]$/.test(qiacubeInstrPrefix) == false)
3176 06 Mar 15 olle 44       {
3176 06 Mar 15 olle 45         Forms.showNotification('qiacubePosition', 'QIAcube instrument prefix must be uppercase letter A-Z.');
3176 06 Mar 15 olle 46         return false;
3176 06 Mar 15 olle 47       }
3176 06 Mar 15 olle 48       // Remove prefix indicating QIAcube instrument
3176 06 Mar 15 olle 49       qiacubePositionStr = qiacubePositionStr.substring(1);
3176 06 Mar 15 olle 50       var qiacubePosition = parseInt(qiacubePositionStr, 10);
3176 06 Mar 15 olle 51       if (qiacubePosition < 1 || qiacubePosition > 12)
3176 06 Mar 15 olle 52       {
3176 06 Mar 15 olle 53         Forms.showNotification('qiacubePosition', 'QIAcube position must be between 1 and 12.');
3176 06 Mar 15 olle 54         return false;
3176 06 Mar 15 olle 55       }
3176 06 Mar 15 olle 56     }
3176 06 Mar 15 olle 57     else
3176 06 Mar 15 olle 58     {
3176 06 Mar 15 olle 59       if (qiacubePositionStr)
3176 06 Mar 15 olle 60       {
3176 06 Mar 15 olle 61         Forms.showNotification('qiacubePosition', 'Input RNA and DNA do not have a QIAcube position.');
3176 06 Mar 15 olle 62         return false;
3176 06 Mar 15 olle 63       }
3176 06 Mar 15 olle 64     }
3176 06 Mar 15 olle 65     return true;
3176 06 Mar 15 olle 66   }
3176 06 Mar 15 olle 67
3176 06 Mar 15 olle 68   details.saveDetails = function()
3176 06 Mar 15 olle 69   {
3176 06 Mar 15 olle 70     if (!details.checkForm()) return;
3176 06 Mar 15 olle 71     
3176 06 Mar 15 olle 72     var index = Data.int('page-data', 'index');
3176 06 Mar 15 olle 73     var mode = Data.get('page-data', 'mode');
3176 06 Mar 15 olle 74     //var specimen = window.opener.document.forms['meludi'].extractSourceItems[index].specimen;
3176 06 Mar 15 olle 75     //var specimen = pfrm.extractSourceItems[index].specimen;
3176 06 Mar 15 olle 76     var selItemsList = getSelectedItemsList();
3176 06 Mar 15 olle 77     var item = selItemsList[index];
3176 06 Mar 15 olle 78     var specimen = item;
3176 06 Mar 15 olle 79     var frm = document.forms['prepdetails'];
3176 06 Mar 15 olle 80
3176 06 Mar 15 olle 81     specimen.qiacubePosition = frm.qiacubePosition.value;
3176 06 Mar 15 olle 82     if (mode != null && mode == 'ExtractionReg')
3176 06 Mar 15 olle 83     {
3176 06 Mar 15 olle 84       window.opener.ExtractionReg.updateDetailsTable();
3176 06 Mar 15 olle 85     }
3176 06 Mar 15 olle 86     else
3176 06 Mar 15 olle 87     {
3176 06 Mar 15 olle 88       window.opener.ExtractionPrep.updateDetailsTable();
3176 06 Mar 15 olle 89     }
3176 06 Mar 15 olle 90     window.close();
3176 06 Mar 15 olle 91   }
3176 06 Mar 15 olle 92
3176 06 Mar 15 olle 93   getSelectedItemsList = function()
3176 06 Mar 15 olle 94   {
3176 06 Mar 15 olle 95     var pfrm = window.opener.document.forms['meludi'];
3176 06 Mar 15 olle 96     
3176 06 Mar 15 olle 97     // Get number of selected extract source items
3176 06 Mar 15 olle 98     var numItems = 0;
3176 06 Mar 15 olle 99     var selItemsList = [];
3176 06 Mar 15 olle 100     for (var i = 0; i < pfrm.extractSourceItems.length; i++)
3176 06 Mar 15 olle 101     {
3176 06 Mar 15 olle 102       if (pfrm.extractSourceItems[i].selected)
3176 06 Mar 15 olle 103       {
3212 27 Mar 15 olle 104         if (pfrm.extractSourceItems[i].item != null)
3176 06 Mar 15 olle 105         {
3212 27 Mar 15 olle 106           selItemsList[numItems] = pfrm.extractSourceItems[i].item;
3176 06 Mar 15 olle 107           numItems++;
3176 06 Mar 15 olle 108         }
3176 06 Mar 15 olle 109       }
3176 06 Mar 15 olle 110     }
3176 06 Mar 15 olle 111     return selItemsList;
3176 06 Mar 15 olle 112   }
3176 06 Mar 15 olle 113   
3176 06 Mar 15 olle 114   return details;
3176 06 Mar 15 olle 115 }();
3176 06 Mar 15 olle 116
3176 06 Mar 15 olle 117 Doc.onLoad(PrepDetails.initPage);
3176 06 Mar 15 olle 118