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

Code
Comments
Other
Rev Date Author Line
2667 15 Sep 14 nicklas 1 var CDNAreg = function()
2667 15 Sep 14 nicklas 2 {
2667 15 Sep 14 nicklas 3   var cdnareg = {};
2702 26 Sep 14 nicklas 4   var debug = 0;
2667 15 Sep 14 nicklas 5   
2667 15 Sep 14 nicklas 6   var commentsIsValid = true;
2667 15 Sep 14 nicklas 7
2667 15 Sep 14 nicklas 8   // Page initialization
2667 15 Sep 14 nicklas 9   cdnareg.initPage = function()
2667 15 Sep 14 nicklas 10   {
2667 15 Sep 14 nicklas 11     // Step 1
2667 15 Sep 14 nicklas 12     Events.addEventHandler('outcomeSuccess', 'click', cdnareg.outcomeOnChange);
2667 15 Sep 14 nicklas 13     Events.addEventHandler('outcomeFailed', 'click', cdnareg.outcomeOnChange);
2667 15 Sep 14 nicklas 14     Events.addEventHandler('step-1', 'wizard-validate', cdnareg.validateStep1);
2667 15 Sep 14 nicklas 15     
2667 15 Sep 14 nicklas 16     // Step 2
2667 15 Sep 14 nicklas 17     Events.addEventHandler('step-2', 'wizard-initialize', cdnareg.initializeStep2);
2667 15 Sep 14 nicklas 18     Events.addEventHandler('step-2', 'wizard-validate', cdnareg.validateStep2);
2667 15 Sep 14 nicklas 19     Events.addEventHandler('synthesisDate', 'blur', Wizard.validateDate);
2667 15 Sep 14 nicklas 20     Events.addEventHandler('comments', 'blur', cdnareg.commentsOnChange);
2667 15 Sep 14 nicklas 21     
2667 15 Sep 14 nicklas 22     // Navigation
2667 15 Sep 14 nicklas 23     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
2667 15 Sep 14 nicklas 24     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
2667 15 Sep 14 nicklas 25     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
2667 15 Sep 14 nicklas 26     Buttons.addClickHandler('goregister', Wizard.goRegister);
2667 15 Sep 14 nicklas 27     
2667 15 Sep 14 nicklas 28     // Final registration
2667 15 Sep 14 nicklas 29     Events.addEventHandler('wizard', 'wizard-submit', cdnareg.submit);
2667 15 Sep 14 nicklas 30     
2667 15 Sep 14 nicklas 31     var url = '../MRna.servlet?ID='+App.getSessionId();
2667 15 Sep 14 nicklas 32     url += '&cmd=GetUnprocessedPlates&plateType=CDNA';    
2667 15 Sep 14 nicklas 33     Wizard.showLoadingAnimation('Loading cDNA plates...');
2667 15 Sep 14 nicklas 34     Wizard.asyncJsonRequest(url, cdnareg.initializeStep1);
2667 15 Sep 14 nicklas 35   }
2667 15 Sep 14 nicklas 36
2667 15 Sep 14 nicklas 37
2667 15 Sep 14 nicklas 38   cdnareg.initializeStep1 = function(response)
2667 15 Sep 14 nicklas 39   {
2667 15 Sep 14 nicklas 40     var frm = document.forms['reggie'];
2667 15 Sep 14 nicklas 41     var bioplates = response.bioplates;
2667 15 Sep 14 nicklas 42     
2667 15 Sep 14 nicklas 43     var plates = frm.bioplate;
2667 15 Sep 14 nicklas 44     if (bioplates.length > 0)
2667 15 Sep 14 nicklas 45     {
2667 15 Sep 14 nicklas 46       for (var i=0; i < bioplates.length; i++)
2667 15 Sep 14 nicklas 47       {
2667 15 Sep 14 nicklas 48         var bioplate = bioplates[i];
2667 15 Sep 14 nicklas 49         var option = new Option(bioplate.name, bioplate.id);
2667 15 Sep 14 nicklas 50         option.plate = bioplate;
2667 15 Sep 14 nicklas 51         plates.options[plates.length] = option;
2667 15 Sep 14 nicklas 52       }
2667 15 Sep 14 nicklas 53       bioplateIsValid = true;
2667 15 Sep 14 nicklas 54       Wizard.setInputStatus('bioplate', 'valid');
2667 15 Sep 14 nicklas 55       cdnareg.outcomeOnChange();
2667 15 Sep 14 nicklas 56     }
2667 15 Sep 14 nicklas 57     else
2667 15 Sep 14 nicklas 58     {
2667 15 Sep 14 nicklas 59       Wizard.setFatalError('No cDNA bioplates available for processing.');
2667 15 Sep 14 nicklas 60       return;
2667 15 Sep 14 nicklas 61     }
2667 15 Sep 14 nicklas 62
2667 15 Sep 14 nicklas 63     Doc.show('step-1');
2667 15 Sep 14 nicklas 64     Doc.show('gonext');
2667 15 Sep 14 nicklas 65     frm.bioplate.focus();
2667 15 Sep 14 nicklas 66   }
2667 15 Sep 14 nicklas 67   
2667 15 Sep 14 nicklas 68   cdnareg.outcomeOnChange = function()
2667 15 Sep 14 nicklas 69   {
2667 15 Sep 14 nicklas 70     Doc.addOrRemoveClass('comments', 'required', Doc.element('outcomeFailed').checked);
2667 15 Sep 14 nicklas 71     cdnareg.commentsOnChange();
2667 15 Sep 14 nicklas 72   }
2667 15 Sep 14 nicklas 73
2667 15 Sep 14 nicklas 74   cdnareg.validateStep1 = function()
2667 15 Sep 14 nicklas 75   {}
2667 15 Sep 14 nicklas 76   
2667 15 Sep 14 nicklas 77   cdnareg.initializeStep2 = function()
2667 15 Sep 14 nicklas 78   {
2667 15 Sep 14 nicklas 79     var frm = document.forms['reggie'];  
2667 15 Sep 14 nicklas 80     
2667 15 Sep 14 nicklas 81     Wizard.setCurrentStep(2);
2667 15 Sep 14 nicklas 82     if (Doc.element('outcomeFailed').checked)
2667 15 Sep 14 nicklas 83     {
2667 15 Sep 14 nicklas 84       Wizard.showGoNextConfirmation(true, 'Check to verify registration of failure.');
2667 15 Sep 14 nicklas 85     }
2667 15 Sep 14 nicklas 86
2667 15 Sep 14 nicklas 87     Doc.show('gocancel');
2667 15 Sep 14 nicklas 88     Doc.show('goregister');
2667 15 Sep 14 nicklas 89     
2667 15 Sep 14 nicklas 90     
2667 15 Sep 14 nicklas 91     Reggie.loadProtocols('CDNA_PROTOCOL', 'cdnaProtocol');
2667 15 Sep 14 nicklas 92     frm.synthesisDate.focus();
2667 15 Sep 14 nicklas 93   }
2667 15 Sep 14 nicklas 94
2667 15 Sep 14 nicklas 95   cdnareg.commentsOnChange = function()
2667 15 Sep 14 nicklas 96   {
2667 15 Sep 14 nicklas 97     var frm = document.forms['reggie'];
2667 15 Sep 14 nicklas 98     commentsIsValid = false;
2667 15 Sep 14 nicklas 99     Wizard.setInputStatus('comments');
2667 15 Sep 14 nicklas 100     
2667 15 Sep 14 nicklas 101     var comments = frm.comments.value;
2667 15 Sep 14 nicklas 102     if (comments == '' && Doc.element('outcomeFailed').checked)
2667 15 Sep 14 nicklas 103     {
2667 15 Sep 14 nicklas 104       Wizard.setInputStatus('comments', 'invalid', 'Missing');
2667 15 Sep 14 nicklas 105       return;
2667 15 Sep 14 nicklas 106     }
2667 15 Sep 14 nicklas 107
2667 15 Sep 14 nicklas 108     Wizard.setInputStatus('comments', 'valid');
2667 15 Sep 14 nicklas 109     commentsIsValid = true;
2667 15 Sep 14 nicklas 110   }
2667 15 Sep 14 nicklas 111
2667 15 Sep 14 nicklas 112   cdnareg.validateStep2 = function(event)
2667 15 Sep 14 nicklas 113   {
2667 15 Sep 14 nicklas 114     var valid = true;
2667 15 Sep 14 nicklas 115     valid &= commentsIsValid;
2667 15 Sep 14 nicklas 116     valid &= Wizard.isValid('synthesisDate');
2667 15 Sep 14 nicklas 117     if (!valid) event.preventDefault();
2667 15 Sep 14 nicklas 118   }
2667 15 Sep 14 nicklas 119   
2667 15 Sep 14 nicklas 120   cdnareg.submit = function()
2667 15 Sep 14 nicklas 121   {
2667 15 Sep 14 nicklas 122     var frm = document.forms['reggie'];
2667 15 Sep 14 nicklas 123
2667 15 Sep 14 nicklas 124     var submitInfo = {};
2667 15 Sep 14 nicklas 125     submitInfo.bioplate = parseInt(frm.bioplate.value, 10);
2667 15 Sep 14 nicklas 126     submitInfo.failed = Doc.element('outcomeSuccess').checked ? false : true;
2667 15 Sep 14 nicklas 127     submitInfo.cdnaProtocol = parseInt(frm.cdnaProtocol.value, 10);
2667 15 Sep 14 nicklas 128     submitInfo.synthesisDate = frm.synthesisDate.value;
2667 15 Sep 14 nicklas 129     submitInfo.synthesisOperator = frm.synthesisOperator.value;
2667 15 Sep 14 nicklas 130     submitInfo.comments = frm.comments.value;
2667 15 Sep 14 nicklas 131     
2667 15 Sep 14 nicklas 132     var url = '../MRna.servlet?ID='+App.getSessionId();
2667 15 Sep 14 nicklas 133     url += '&cmd=ImportCDnaResults';
2667 15 Sep 14 nicklas 134     Wizard.showLoadingAnimation('Performing registration...');
2667 15 Sep 14 nicklas 135     Wizard.asyncJsonRequest(url, cdnareg.submissionResults, 'POST', JSON.stringify(submitInfo));
2667 15 Sep 14 nicklas 136   }
2667 15 Sep 14 nicklas 137
2667 15 Sep 14 nicklas 138   cdnareg.submissionResults = function(response)
2667 15 Sep 14 nicklas 139   {
2667 15 Sep 14 nicklas 140     Wizard.showFinalMessage(response.messages);
2667 15 Sep 14 nicklas 141     Doc.show('gorestart');
2667 15 Sep 14 nicklas 142   }
2667 15 Sep 14 nicklas 143
2667 15 Sep 14 nicklas 144   return cdnareg;
2667 15 Sep 14 nicklas 145 }();
2667 15 Sep 14 nicklas 146
2667 15 Sep 14 nicklas 147 Doc.onLoad(CDNAreg.initPage);
2667 15 Sep 14 nicklas 148