extensions/net.sf.basedb.reggie/trunk/resources/libprep/mrna_registration.js

Code
Comments
Other
Rev Date Author Line
2666 15 Sep 14 nicklas 1 var MRNAreg = function()
2666 15 Sep 14 nicklas 2 {
2666 15 Sep 14 nicklas 3   var mrnareg = {};
2702 26 Sep 14 nicklas 4   var debug = 0;
2666 15 Sep 14 nicklas 5
2666 15 Sep 14 nicklas 6   var commentsIsValid = false;
2666 15 Sep 14 nicklas 7
2666 15 Sep 14 nicklas 8   // Page initialization
2666 15 Sep 14 nicklas 9   mrnareg.initPage = function()
2666 15 Sep 14 nicklas 10   {
2666 15 Sep 14 nicklas 11     // Step 1
3282 29 Apr 15 nicklas 12     Events.addEventHandler('bioplate', 'change', mrnareg.bioPlateOnChange);
2666 15 Sep 14 nicklas 13     Events.addEventHandler('step-1', 'wizard-validate', mrnareg.validateStep1);
2666 15 Sep 14 nicklas 14     
2666 15 Sep 14 nicklas 15     // Step 2
2666 15 Sep 14 nicklas 16     Events.addEventHandler('step-2', 'wizard-initialize', mrnareg.initializeStep2);
2666 15 Sep 14 nicklas 17     Events.addEventHandler('step-2', 'wizard-validate', mrnareg.validateStep2);
2666 15 Sep 14 nicklas 18     Events.addEventHandler('purificationDate', 'blur', Wizard.validateDate);
2666 15 Sep 14 nicklas 19     Events.addEventHandler('fragmentationDate', 'blur', Wizard.validateDate);
2666 15 Sep 14 nicklas 20     Events.addEventHandler('cleanupDate', 'blur', Wizard.validateDate);
2666 15 Sep 14 nicklas 21     Events.addEventHandler('comments', 'blur', mrnareg.commentsOnChange);
2666 15 Sep 14 nicklas 22     Wizard.initFileSelectionField('pdf');
2666 15 Sep 14 nicklas 23     
2666 15 Sep 14 nicklas 24     // Navigation
2666 15 Sep 14 nicklas 25     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
2666 15 Sep 14 nicklas 26     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
2666 15 Sep 14 nicklas 27     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
2666 15 Sep 14 nicklas 28     Buttons.addClickHandler('goregister', Wizard.goRegister);
2666 15 Sep 14 nicklas 29     
2666 15 Sep 14 nicklas 30     // Final registration
2666 15 Sep 14 nicklas 31     Events.addEventHandler('wizard', 'wizard-submit', mrnareg.submit);
2666 15 Sep 14 nicklas 32     
2666 15 Sep 14 nicklas 33     var url = '../MRna.servlet?ID='+App.getSessionId();
2666 15 Sep 14 nicklas 34     url += '&cmd=GetUnprocessedPlates&plateType=MRNA&onlyDiluted=1';    
2666 15 Sep 14 nicklas 35     Wizard.showLoadingAnimation('Loading mRNA plates...');
2666 15 Sep 14 nicklas 36     Wizard.asyncJsonRequest(url, mrnareg.initializeStep1);
2666 15 Sep 14 nicklas 37   }
2666 15 Sep 14 nicklas 38
2666 15 Sep 14 nicklas 39
2666 15 Sep 14 nicklas 40   mrnareg.initializeStep1 = function(response)
2666 15 Sep 14 nicklas 41   {
2666 15 Sep 14 nicklas 42     var frm = document.forms['reggie'];
2666 15 Sep 14 nicklas 43     var bioplates = response.bioplates;
2666 15 Sep 14 nicklas 44     
2666 15 Sep 14 nicklas 45     var plates = frm.bioplate;
2666 15 Sep 14 nicklas 46     if (bioplates.length > 0)
2666 15 Sep 14 nicklas 47     {
2666 15 Sep 14 nicklas 48       for (var i=0; i < bioplates.length; i++)
2666 15 Sep 14 nicklas 49       {
2666 15 Sep 14 nicklas 50         var bioplate = bioplates[i];
2906 07 Nov 14 nicklas 51         var name = bioplate.name;
2906 07 Nov 14 nicklas 52         if (bioplate.AutoProcessing == 'PreNormalizeRNA')
2906 07 Nov 14 nicklas 53         {
2906 07 Nov 14 nicklas 54           name += ' (pre-normalized)';
2906 07 Nov 14 nicklas 55         }
2906 07 Nov 14 nicklas 56         else if (bioplate.DilutionDate)
2906 07 Nov 14 nicklas 57         {
2906 07 Nov 14 nicklas 58           name += ' (diluted ' + Reggie.reformatDate(bioplate.DilutionDate) + ')';
2906 07 Nov 14 nicklas 59         }
2906 07 Nov 14 nicklas 60         
2906 07 Nov 14 nicklas 61         var option = new Option(name, bioplate.id);
2666 15 Sep 14 nicklas 62         option.plate = bioplate;
2666 15 Sep 14 nicklas 63         plates.options[plates.length] = option;
2666 15 Sep 14 nicklas 64       }
2666 15 Sep 14 nicklas 65       bioplateIsValid = true;
2666 15 Sep 14 nicklas 66       Wizard.setInputStatus('bioplate', 'valid');
2666 15 Sep 14 nicklas 67       mrnareg.bioPlateOnChange();
2666 15 Sep 14 nicklas 68     }
2666 15 Sep 14 nicklas 69     else
2666 15 Sep 14 nicklas 70     {
2666 15 Sep 14 nicklas 71       Wizard.setFatalError('No mRNA bioplates available for processing.');
2666 15 Sep 14 nicklas 72       return;
2666 15 Sep 14 nicklas 73     }
2666 15 Sep 14 nicklas 74
2666 15 Sep 14 nicklas 75     Doc.show('step-1');
2666 15 Sep 14 nicklas 76     Doc.show('gonext');
2666 15 Sep 14 nicklas 77     frm.bioplate.focus();
2666 15 Sep 14 nicklas 78
2666 15 Sep 14 nicklas 79   }
2666 15 Sep 14 nicklas 80   
2666 15 Sep 14 nicklas 81   mrnareg.bioPlateOnChange = function()
2666 15 Sep 14 nicklas 82   {
2666 15 Sep 14 nicklas 83     var frm = document.forms['reggie'];
3282 29 Apr 15 nicklas 84     var bioplate = frm.bioplate[frm.bioplate.selectedIndex].plate;
3282 29 Apr 15 nicklas 85     Doc.element('comments-info').innerHTML = Strings.encodeTags(bioplate.comments);
2666 15 Sep 14 nicklas 86   }
2666 15 Sep 14 nicklas 87
2666 15 Sep 14 nicklas 88   mrnareg.validateStep1 = function()
2666 15 Sep 14 nicklas 89   {}
2666 15 Sep 14 nicklas 90   
2666 15 Sep 14 nicklas 91   mrnareg.initializeStep2 = function()
2666 15 Sep 14 nicklas 92   {
2666 15 Sep 14 nicklas 93     var frm = document.forms['reggie'];  
3282 29 Apr 15 nicklas 94     frm.comments.value = frm.bioplate[frm.bioplate.selectedIndex].plate.comments;
3282 29 Apr 15 nicklas 95     Doc.addOrRemoveClass('comments', 'required', Doc.element('outcomeFailed').checked);
3282 29 Apr 15 nicklas 96     mrnareg.commentsOnChange();
3282 29 Apr 15 nicklas 97   
2666 15 Sep 14 nicklas 98     Wizard.setCurrentStep(2);
2666 15 Sep 14 nicklas 99     if (Doc.element('outcomeFailed').checked)
2666 15 Sep 14 nicklas 100     {
2666 15 Sep 14 nicklas 101       Wizard.showGoNextConfirmation(true, 'Check to verify registration of failure.');
2666 15 Sep 14 nicklas 102     }
2666 15 Sep 14 nicklas 103     Doc.show('gocancel');
2666 15 Sep 14 nicklas 104     Doc.show('goregister');
2666 15 Sep 14 nicklas 105     
2666 15 Sep 14 nicklas 106     Events.sendChangeEvent('pdf');
2666 15 Sep 14 nicklas 107     
2666 15 Sep 14 nicklas 108     Reggie.loadProtocols('MRNA_PROTOCOL', 'mrnaProtocol');
2666 15 Sep 14 nicklas 109     frm.purificationDate.focus();
2666 15 Sep 14 nicklas 110   }
2666 15 Sep 14 nicklas 111
2666 15 Sep 14 nicklas 112   mrnareg.commentsOnChange = function()
2666 15 Sep 14 nicklas 113   {
2666 15 Sep 14 nicklas 114     var frm = document.forms['reggie'];
2666 15 Sep 14 nicklas 115     commentsIsValid = false;
2666 15 Sep 14 nicklas 116     Wizard.setInputStatus('comments');
2666 15 Sep 14 nicklas 117     
2666 15 Sep 14 nicklas 118     var comments = frm.comments.value;
2666 15 Sep 14 nicklas 119     if (comments == '' && Doc.element('outcomeFailed').checked)
2666 15 Sep 14 nicklas 120     {
2666 15 Sep 14 nicklas 121       Wizard.setInputStatus('comments', 'invalid', 'Missing');
2666 15 Sep 14 nicklas 122       return;
2666 15 Sep 14 nicklas 123     }
2666 15 Sep 14 nicklas 124
2666 15 Sep 14 nicklas 125     Wizard.setInputStatus('comments', 'valid');
2666 15 Sep 14 nicklas 126     commentsIsValid = true;
2666 15 Sep 14 nicklas 127   }
2666 15 Sep 14 nicklas 128
2666 15 Sep 14 nicklas 129   mrnareg.validateStep2 = function(event)
2666 15 Sep 14 nicklas 130   {
2666 15 Sep 14 nicklas 131     var valid = true;
2666 15 Sep 14 nicklas 132     
2666 15 Sep 14 nicklas 133     valid &= Wizard.isValid('pdf');
2666 15 Sep 14 nicklas 134     valid &= commentsIsValid;
2666 15 Sep 14 nicklas 135     valid &= Wizard.isValid('purificationDate');
2666 15 Sep 14 nicklas 136     valid &= Wizard.isValid('fragmentationDate');
2666 15 Sep 14 nicklas 137     valid &= Wizard.isValid('cleanupDate');
2666 15 Sep 14 nicklas 138     
2666 15 Sep 14 nicklas 139     if (!valid) event.preventDefault();
2666 15 Sep 14 nicklas 140   }
2666 15 Sep 14 nicklas 141   
2666 15 Sep 14 nicklas 142   mrnareg.submit = function()
2666 15 Sep 14 nicklas 143   {
2666 15 Sep 14 nicklas 144     var frm = document.forms['reggie'];
2666 15 Sep 14 nicklas 145
2666 15 Sep 14 nicklas 146     var submitInfo = {};
2666 15 Sep 14 nicklas 147     submitInfo.bioplate = parseInt(frm.bioplate.value, 10);
2666 15 Sep 14 nicklas 148     submitInfo.mrnaProtocol = parseInt(frm.mrnaProtocol.value, 10);
2666 15 Sep 14 nicklas 149     submitInfo.failed = Doc.element('outcomeSuccess').checked ? false : true;
2666 15 Sep 14 nicklas 150     submitInfo.pdf = frm.pdf.value;
2666 15 Sep 14 nicklas 151     submitInfo.purificationDate = frm.purificationDate.value;
2666 15 Sep 14 nicklas 152     submitInfo.purificationOperator = frm.purificationOperator.value;
2666 15 Sep 14 nicklas 153     submitInfo.fragmentationDate = frm.fragmentationDate.value;
2666 15 Sep 14 nicklas 154     submitInfo.fragmentationOperator = frm.fragmentationOperator.value;
2666 15 Sep 14 nicklas 155     submitInfo.cleanupDate = frm.cleanupDate.value;
2666 15 Sep 14 nicklas 156     submitInfo.cleanupOperator = frm.cleanupOperator.value;
2666 15 Sep 14 nicklas 157     submitInfo.comments = frm.comments.value;
2666 15 Sep 14 nicklas 158     
2666 15 Sep 14 nicklas 159     var url = '../MRna.servlet?ID='+App.getSessionId();
2666 15 Sep 14 nicklas 160     url += '&cmd=ImportMRnaQCResults';
2666 15 Sep 14 nicklas 161     Wizard.showLoadingAnimation('Performing registration...');
2666 15 Sep 14 nicklas 162     Wizard.asyncJsonRequest(url, mrnareg.submissionResults, 'POST', JSON.stringify(submitInfo));
2666 15 Sep 14 nicklas 163   }
2666 15 Sep 14 nicklas 164
2666 15 Sep 14 nicklas 165   mrnareg.submissionResults = function(response)
2666 15 Sep 14 nicklas 166   {
2666 15 Sep 14 nicklas 167     Wizard.showFinalMessage(response.messages);
2666 15 Sep 14 nicklas 168     Doc.show('gorestart');
2666 15 Sep 14 nicklas 169   }
2666 15 Sep 14 nicklas 170
2666 15 Sep 14 nicklas 171   return mrnareg;
2666 15 Sep 14 nicklas 172 }();
2666 15 Sep 14 nicklas 173
2666 15 Sep 14 nicklas 174 Doc.onLoad(MRNAreg.initPage);
2666 15 Sep 14 nicklas 175