extensions/net.sf.basedb.reggie/trunk/resources/sampleproc/edit_dnarna_details.js

Code
Comments
Other
Rev Date Author Line
2688 23 Sep 14 nicklas 1 var Details = function()
2688 23 Sep 14 nicklas 2 {
2688 23 Sep 14 nicklas 3   var details = {};
2702 26 Sep 14 nicklas 4   var debug = 0;
2688 23 Sep 14 nicklas 5   
2688 23 Sep 14 nicklas 6   // Page initialization
2688 23 Sep 14 nicklas 7   details.initPage = function()
2688 23 Sep 14 nicklas 8   {
2688 23 Sep 14 nicklas 9     Buttons.addClickHandler('close', App.closeWindow);
2688 23 Sep 14 nicklas 10     Buttons.addClickHandler('btnSave', details.saveDetails);
2688 23 Sep 14 nicklas 11     
2688 23 Sep 14 nicklas 12     Events.addEventHandler('qiacubePosition', 'keypress', Events.integerOnly);
2688 23 Sep 14 nicklas 13     Events.addEventHandler('lysateOriginalQuantity', 'keypress', Events.numberOnly);
2688 23 Sep 14 nicklas 14     Events.addEventHandler('lysateUsedQuantity', 'keypress', Events.numberOnly);
2688 23 Sep 14 nicklas 15     Events.addEventHandler('dnaVolume', 'keypress', Events.numberOnly);
2688 23 Sep 14 nicklas 16     Events.addEventHandler('rnaVolume', 'keypress', Events.numberOnly);
2688 23 Sep 14 nicklas 17     Events.addEventHandler('ftVolume', 'keypress', Events.numberOnly);
2688 23 Sep 14 nicklas 18     
2688 23 Sep 14 nicklas 19     var index = Data.int('page-data', 'index');
2688 23 Sep 14 nicklas 20     var frm = document.forms['details'];
4094 12 Sep 16 nicklas 21     var pfrm = window.opener.document.forms['reggie'];
3468 26 Aug 15 nicklas 22     var lysate = window.opener.ExtractionReg.getSelectedLysate(index);
2688 23 Sep 14 nicklas 23
2688 23 Sep 14 nicklas 24     frm.qiacubePosition.value = lysate.qiacubePosition;
4094 12 Sep 16 nicklas 25     if (lysate.isReProcess)
4094 12 Sep 16 nicklas 26     {
4094 12 Sep 16 nicklas 27       frm.lysateOriginalQuantity.disabled = true;
4094 12 Sep 16 nicklas 28       frm.lysateOriginalQuantity.value = Numbers.formatNumber(lysate.remainingQuantity, 0);
4094 12 Sep 16 nicklas 29     }
4094 12 Sep 16 nicklas 30     else
4094 12 Sep 16 nicklas 31     {
4094 12 Sep 16 nicklas 32       frm.lysateOriginalQuantity.value = lysate.originalQuantity;
4094 12 Sep 16 nicklas 33     }
2688 23 Sep 14 nicklas 34     frm.lysateUsedQuantity.value = lysate.processedQuantity;
2688 23 Sep 14 nicklas 35     frm.dnaVolume.value = lysate.dna.volume;
2688 23 Sep 14 nicklas 36     frm.rnaVolume.value = lysate.rna.volume;
2688 23 Sep 14 nicklas 37     frm.ftVolume.value = lysate.ft.volume;
2688 23 Sep 14 nicklas 38     
2688 23 Sep 14 nicklas 39     frm.lysateComment.value = lysate.comment || '';
2688 23 Sep 14 nicklas 40     frm.dnaComment.value = lysate.dna.comment || '';
2688 23 Sep 14 nicklas 41     frm.rnaComment.value = lysate.rna.comment || '';
2688 23 Sep 14 nicklas 42     frm.ftComment.value = lysate.ft.comment || '';
2690 24 Sep 14 nicklas 43
2690 24 Sep 14 nicklas 44     var reagents = window.opener.ExtractionReg.REAGENTS;
2690 24 Sep 14 nicklas 45     for (var i = 0; i < reagents.length; i++)
2690 24 Sep 14 nicklas 46     {
2690 24 Sep 14 nicklas 47       var rg = reagents[i];
4094 12 Sep 16 nicklas 48       var isLysisReagent = Data.get(frm[rg], 'lysis');
4094 12 Sep 16 nicklas 49       if (lysate.isReProcess && isLysisReagent)
4094 12 Sep 16 nicklas 50       {
4094 12 Sep 16 nicklas 51         frm[rg].disabled = true;
4094 12 Sep 16 nicklas 52       }
4094 12 Sep 16 nicklas 53       else
4094 12 Sep 16 nicklas 54       {
4094 12 Sep 16 nicklas 55         frm[rg].value = lysate[rg] || '';
4094 12 Sep 16 nicklas 56         Doc.element(rg+'.default').innerHTML = Strings.encodeTags(pfrm[rg].value);
4094 12 Sep 16 nicklas 57       }
2690 24 Sep 14 nicklas 58     }
2688 23 Sep 14 nicklas 59     
2688 23 Sep 14 nicklas 60     frm.qiacubePosition.focus();
3152 26 Feb 15 nicklas 61     setTimeout(details.checkForm, 100);
2688 23 Sep 14 nicklas 62   }
2688 23 Sep 14 nicklas 63   
2688 23 Sep 14 nicklas 64   details.checkForm = function()
2688 23 Sep 14 nicklas 65   {
2688 23 Sep 14 nicklas 66     var frm = document.forms['details'];
2688 23 Sep 14 nicklas 67     
2688 23 Sep 14 nicklas 68     // Qiacube position
2688 23 Sep 14 nicklas 69     var qiacubePosition = parseInt(frm.qiacubePosition.value, 10);
2688 23 Sep 14 nicklas 70     if (qiacubePosition < 1 || qiacubePosition > 12)
2688 23 Sep 14 nicklas 71     {
2688 23 Sep 14 nicklas 72       Forms.showNotification('qiacubePosition', 'Qiacube position must be between 1 and 12.');
2688 23 Sep 14 nicklas 73       return false;
2688 23 Sep 14 nicklas 74     }
2688 23 Sep 14 nicklas 75     
2688 23 Sep 14 nicklas 76     // Lysate quanities
4094 12 Sep 16 nicklas 77     if (!frm.lysateOriginalQuantity.disabled)
2688 23 Sep 14 nicklas 78     {
4094 12 Sep 16 nicklas 79       var lysateOriginalQuantity = parseFloat(frm.lysateOriginalQuantity.value);
4094 12 Sep 16 nicklas 80       if (!(lysateOriginalQuantity > 0))
4094 12 Sep 16 nicklas 81       {
4094 12 Sep 16 nicklas 82         Forms.showNotification('lysateOriginalQuantity', 'Invalid value for Lysate total quantity.');
4094 12 Sep 16 nicklas 83         return false;
4094 12 Sep 16 nicklas 84       }
2688 23 Sep 14 nicklas 85     }
2688 23 Sep 14 nicklas 86     var lysateUsedQuantity = parseFloat(frm.lysateUsedQuantity.value);
2688 23 Sep 14 nicklas 87     if (!(lysateUsedQuantity > 0))
2688 23 Sep 14 nicklas 88     {
2688 23 Sep 14 nicklas 89       Forms.showNotification('lysateUsedQuantity', 'Invalid value for Lysate used quantity.');
2688 23 Sep 14 nicklas 90       return false;
2688 23 Sep 14 nicklas 91     }
2688 23 Sep 14 nicklas 92     if (lysateUsedQuantity > lysateOriginalQuantity)
2688 23 Sep 14 nicklas 93     {
2688 23 Sep 14 nicklas 94       Forms.showNotification('lysateUsedQuantity', 'Lysate used quantity is bigger than total quantity.');
2688 23 Sep 14 nicklas 95       return false;
2688 23 Sep 14 nicklas 96     }
2688 23 Sep 14 nicklas 97
2688 23 Sep 14 nicklas 98     // DNA
2688 23 Sep 14 nicklas 99     var dnaVolume = parseFloat(frm.dnaVolume.value);
2688 23 Sep 14 nicklas 100     if (!(dnaVolume > 0))
2688 23 Sep 14 nicklas 101     {
2688 23 Sep 14 nicklas 102       Forms.showNotification('dnaVolume', 'Invalid value for DNA volume.');
2688 23 Sep 14 nicklas 103       return false;
2688 23 Sep 14 nicklas 104     }
2688 23 Sep 14 nicklas 105
2688 23 Sep 14 nicklas 106     // RNA
2688 23 Sep 14 nicklas 107     var rnaVolume = parseFloat(frm.rnaVolume.value);
2688 23 Sep 14 nicklas 108     if (!(rnaVolume > 0))
2688 23 Sep 14 nicklas 109     {
2688 23 Sep 14 nicklas 110       Forms.showNotification('rnaVolume', 'Invalid value for RNA volume.');
2688 23 Sep 14 nicklas 111       return false;
2688 23 Sep 14 nicklas 112     }
2688 23 Sep 14 nicklas 113     
2688 23 Sep 14 nicklas 114     // FT
2688 23 Sep 14 nicklas 115     var ftVolume = parseFloat(frm.ftVolume.value);
2688 23 Sep 14 nicklas 116     if (!(ftVolume > 0))
2688 23 Sep 14 nicklas 117     {
2688 23 Sep 14 nicklas 118       Forms.showNotification('ftVolume', 'Invalid value for FT volume.');
2688 23 Sep 14 nicklas 119       return false;
2688 23 Sep 14 nicklas 120     }
2688 23 Sep 14 nicklas 121
2688 23 Sep 14 nicklas 122     return true;
2688 23 Sep 14 nicklas 123   }
2688 23 Sep 14 nicklas 124
2688 23 Sep 14 nicklas 125   details.saveDetails = function()
2688 23 Sep 14 nicklas 126   {
2688 23 Sep 14 nicklas 127     if (!details.checkForm()) return;
2688 23 Sep 14 nicklas 128     
2688 23 Sep 14 nicklas 129     var index = Data.int('page-data', 'index');
3468 26 Aug 15 nicklas 130     var lysate = window.opener.ExtractionReg.getSelectedLysate(index);
2688 23 Sep 14 nicklas 131     var frm = document.forms['details'];
2688 23 Sep 14 nicklas 132
2688 23 Sep 14 nicklas 133     lysate.qiacubePosition = parseInt(frm.qiacubePosition.value, 10);
4094 12 Sep 16 nicklas 134     if (!lysate.isReProcess)
4094 12 Sep 16 nicklas 135     {
4094 12 Sep 16 nicklas 136       lysate.originalQuantity = parseFloat(frm.lysateOriginalQuantity.value);
4094 12 Sep 16 nicklas 137     }
2688 23 Sep 14 nicklas 138     lysate.processedQuantity = parseFloat(frm.lysateUsedQuantity.value);
2688 23 Sep 14 nicklas 139     lysate.comment = frm.lysateComment.value;
2688 23 Sep 14 nicklas 140
2688 23 Sep 14 nicklas 141     lysate.dna.volume = parseFloat(frm.dnaVolume.value);
2688 23 Sep 14 nicklas 142     lysate.dna.comment = frm.dnaComment.value;
2688 23 Sep 14 nicklas 143     lysate.rna.volume = parseFloat(frm.rnaVolume.value);
2688 23 Sep 14 nicklas 144     lysate.rna.comment = frm.rnaComment.value;
2688 23 Sep 14 nicklas 145     lysate.ft.volume = parseFloat(frm.ftVolume.value);
2688 23 Sep 14 nicklas 146     lysate.ft.comment = frm.ftComment.value;
2688 23 Sep 14 nicklas 147     
2690 24 Sep 14 nicklas 148     var reagents = window.opener.ExtractionReg.REAGENTS;
2690 24 Sep 14 nicklas 149     for (var i = 0; i < reagents.length; i++)
2690 24 Sep 14 nicklas 150     {
2690 24 Sep 14 nicklas 151       var rg = reagents[i];
4094 12 Sep 16 nicklas 152       if (!frm[rg].disabled)
4094 12 Sep 16 nicklas 153       {
4094 12 Sep 16 nicklas 154         lysate[rg] = frm[rg].value || null;
4094 12 Sep 16 nicklas 155       }
2690 24 Sep 14 nicklas 156     }
2690 24 Sep 14 nicklas 157     
2688 23 Sep 14 nicklas 158     window.opener.ExtractionReg.updateDetailsTable();
2688 23 Sep 14 nicklas 159     window.close();
2688 23 Sep 14 nicklas 160   }
2688 23 Sep 14 nicklas 161
2688 23 Sep 14 nicklas 162   
2688 23 Sep 14 nicklas 163   return details;
2688 23 Sep 14 nicklas 164 }();
2688 23 Sep 14 nicklas 165
2688 23 Sep 14 nicklas 166 Doc.onLoad(Details.initPage);
2688 23 Sep 14 nicklas 167