extensions/net.sf.basedb.reggie/trunk/resources/sampleproc/store-paused.js

Code
Comments
Other
Rev Date Author Line
5339 29 Mar 19 nicklas 1 var StorePaused = function()
5339 29 Mar 19 nicklas 2 {
5339 29 Mar 19 nicklas 3   var store = {};
5339 29 Mar 19 nicklas 4   var debug = 0;
5339 29 Mar 19 nicklas 5   
5339 29 Mar 19 nicklas 6   var specimenTubes;
5339 29 Mar 19 nicklas 7   
5339 29 Mar 19 nicklas 8   // Page initialization
5339 29 Mar 19 nicklas 9   store.initPage = function()
5339 29 Mar 19 nicklas 10   {
5339 29 Mar 19 nicklas 11     // Step 1
5339 29 Mar 19 nicklas 12     Events.addEventHandler('step-1', 'wizard-validate', store.validateStep1);
5339 29 Mar 19 nicklas 13     Buttons.addClickHandler('downloadLabelsCsv', store.downloadLabels);
5339 29 Mar 19 nicklas 14     Buttons.addClickHandler('downloadLabelsXlsx', store.downloadLabels);
5339 29 Mar 19 nicklas 15
5339 29 Mar 19 nicklas 16     // Navigation
5339 29 Mar 19 nicklas 17     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
5339 29 Mar 19 nicklas 18     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
5339 29 Mar 19 nicklas 19     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
5339 29 Mar 19 nicklas 20     Buttons.addClickHandler('goregister', Wizard.goRegister);
5339 29 Mar 19 nicklas 21     Buttons.addClickHandler('goprint', store.printPickList);
5339 29 Mar 19 nicklas 22
5339 29 Mar 19 nicklas 23     // Final registration
5339 29 Mar 19 nicklas 24     Events.addEventHandler('wizard', 'wizard-submit', store.submit);
5339 29 Mar 19 nicklas 25
5339 29 Mar 19 nicklas 26     var url = '../SpecimenTubeRegistration.servlet?ID='+App.getSessionId();
5339 29 Mar 19 nicklas 27     url += '&cmd=GetSpecimenTubesToStore';
5339 29 Mar 19 nicklas 28     Wizard.showLoadingAnimation('Loading specimen tube information...');
5339 29 Mar 19 nicklas 29     Wizard.asyncJsonRequest(url, store.initializeStep1);
5339 29 Mar 19 nicklas 30   }
5339 29 Mar 19 nicklas 31   
5339 29 Mar 19 nicklas 32   store.initializeStep1 = function(response)
5339 29 Mar 19 nicklas 33   {
5339 29 Mar 19 nicklas 34     specimenTubes = response.specimenTubes;
5339 29 Mar 19 nicklas 35     
5339 29 Mar 19 nicklas 36     if (!specimenTubes || specimenTubes.length == 0)
5339 29 Mar 19 nicklas 37     {
5339 29 Mar 19 nicklas 38       Wizard.setFatalError('No specimen tubes available for storing.');
5339 29 Mar 19 nicklas 39       return;
5339 29 Mar 19 nicklas 40     }
5339 29 Mar 19 nicklas 41     
5339 29 Mar 19 nicklas 42     var html = '<table id="specimenTable">';
5339 29 Mar 19 nicklas 43     html += '<thead class="bg-filled-100">';
5339 29 Mar 19 nicklas 44     // First header row
5339 29 Mar 19 nicklas 45     html += '<tr>';
5339 29 Mar 19 nicklas 46     html += '<th>Specimen</th>';
5339 29 Mar 19 nicklas 47     html += '<th>Arrival date</th>';
5339 29 Mar 19 nicklas 48     html += '<th>Storage box</th>';
5339 29 Mar 19 nicklas 49     html += '<th>Freezer</th>';
5339 29 Mar 19 nicklas 50     html += '<th>Remark</th>';
5339 29 Mar 19 nicklas 51     html += '</tr>';
5339 29 Mar 19 nicklas 52     html += '</thead>';
5339 29 Mar 19 nicklas 53     html += '<tbody>';
5339 29 Mar 19 nicklas 54     
5339 29 Mar 19 nicklas 55     var homeUrl = Data.get('page-data', 'home-url');
5339 29 Mar 19 nicklas 56     var yellowImg = '<img src="'+homeUrl+'/images/yellow-label.png">';
5339 29 Mar 19 nicklas 57     for (var i=0; i < specimenTubes.length; i++)
5339 29 Mar 19 nicklas 58     {
5339 29 Mar 19 nicklas 59       var specimen = specimenTubes[i];
5339 29 Mar 19 nicklas 60       var well = specimen.bioWell;
5339 29 Mar 19 nicklas 61       var plate = well.bioPlate;
5339 29 Mar 19 nicklas 62       var storage = plate.storage;
5339 29 Mar 19 nicklas 63       var isYellow = specimen.specimen && specimen.specimen.YellowLabel != null;
5339 29 Mar 19 nicklas 64       
5339 29 Mar 19 nicklas 65       var freezerLocation = [];
5339 29 Mar 19 nicklas 66       if (storage.section) freezerLocation[freezerLocation.length] = 'Section ' + storage.section;
5339 29 Mar 19 nicklas 67       if (storage.tray) freezerLocation[freezerLocation.length] = 'Tray ' + storage.tray;
5339 29 Mar 19 nicklas 68       if (storage.position) freezerLocation[freezerLocation.length] = 'Position ' + storage.position;
5339 29 Mar 19 nicklas 69       
5339 29 Mar 19 nicklas 70
5339 29 Mar 19 nicklas 71       var img = isYellow ? yellowImg : '';
5339 29 Mar 19 nicklas 72       html += '<tr class="highlight'+(isYellow ? ' yellow-specimen' : '')+'">';
5339 29 Mar 19 nicklas 73       html += '<td class="specimen if-yellow">'+img+Strings.encodeTags(specimen.name)+'</td>';
5339 29 Mar 19 nicklas 74       html += '<td class="arrivaldate">'+Reggie.reformatDate(specimen.ArrivalDate)+'</td>';
5339 29 Mar 19 nicklas 75       html += '<td class="box">'+Strings.encodeTags(plate.name+' '+well.location)+'</td>';
5339 29 Mar 19 nicklas 76       html += '<td class="location">'+Strings.encodeTags(storage.name)+'<br>'+Strings.encodeTags(freezerLocation.join(', '))+'</td>';
5339 29 Mar 19 nicklas 77       html += '<td class="remarks"></td>';
5339 29 Mar 19 nicklas 78       html += '</tr>'
5339 29 Mar 19 nicklas 79     }
5339 29 Mar 19 nicklas 80     html += '</tbody>';
5339 29 Mar 19 nicklas 81     html += '</table>';
5339 29 Mar 19 nicklas 82     
5339 29 Mar 19 nicklas 83     Doc.element('specimenList').innerHTML = html;
5339 29 Mar 19 nicklas 84
5339 29 Mar 19 nicklas 85     Doc.show('step-1');
5339 29 Mar 19 nicklas 86     Doc.show('goregister');
5339 29 Mar 19 nicklas 87     Doc.show('goprint');
5339 29 Mar 19 nicklas 88     Wizard.showGoNextConfirmation(true, 'If needed, print the protocol before registering!');
5339 29 Mar 19 nicklas 89   }
5339 29 Mar 19 nicklas 90   
5339 29 Mar 19 nicklas 91
5339 29 Mar 19 nicklas 92   store.downloadLabels = function(event)
5339 29 Mar 19 nicklas 93   {
5339 29 Mar 19 nicklas 94     var format = Data.get(event.currentTarget, 'format');
5339 29 Mar 19 nicklas 95     var specimen = [];
5339 29 Mar 19 nicklas 96     for (var i = 0; i < specimenTubes.length; i++)
5339 29 Mar 19 nicklas 97     {
5339 29 Mar 19 nicklas 98       specimen[specimen.length] = specimenTubes[i].id;
5339 29 Mar 19 nicklas 99     }
5339 29 Mar 19 nicklas 100     
5339 29 Mar 19 nicklas 101     var url = '../SpecimenTubeRegistration.servlet?ID='+App.getSessionId();
5339 29 Mar 19 nicklas 102     url += '&cmd=GetSpecimenTubeLabels';
5339 29 Mar 19 nicklas 103     url += '&specimen=' + encodeURIComponent(specimen.join(','));
5339 29 Mar 19 nicklas 104     url += '&format='+encodeURIComponent(format);
5339 29 Mar 19 nicklas 105     window.open(url);
5339 29 Mar 19 nicklas 106   }
5339 29 Mar 19 nicklas 107   
5339 29 Mar 19 nicklas 108   
5339 29 Mar 19 nicklas 109   store.printPickList = function()
5339 29 Mar 19 nicklas 110   {
5339 29 Mar 19 nicklas 111     Wizard.hideGoNextConfirmation();
5339 29 Mar 19 nicklas 112     Doc.removeClass('goregister', 'disabled');
5339 29 Mar 19 nicklas 113     var reportName = 'Pick-list protocol for lysate re-extraction';
5339 29 Mar 19 nicklas 114     var printNote = '<b>Note!</b> For better printing set page orientation to <i>portrait</i>.';
5339 29 Mar 19 nicklas 115     Reggie.openPrintWindow('full-protocol', reportName, 'portrait', printNote, '../', 'store_paused.css');
5339 29 Mar 19 nicklas 116   }
5339 29 Mar 19 nicklas 117
5339 29 Mar 19 nicklas 118   store.submit = function()
5339 29 Mar 19 nicklas 119   {
5339 29 Mar 19 nicklas 120     var specimen = [];
5339 29 Mar 19 nicklas 121     for (var i = 0; i < specimenTubes.length; i++)
5339 29 Mar 19 nicklas 122     {
5339 29 Mar 19 nicklas 123       specimen[specimen.length] = specimenTubes[i].id;
5339 29 Mar 19 nicklas 124     }
5339 29 Mar 19 nicklas 125     
5339 29 Mar 19 nicklas 126     var submitInfo = {};
5339 29 Mar 19 nicklas 127     submitInfo.specimen = specimen;
5339 29 Mar 19 nicklas 128     
5339 29 Mar 19 nicklas 129     var url = '../SpecimenTubeRegistration.servlet?ID='+App.getSessionId();
5339 29 Mar 19 nicklas 130     url += '&cmd=RegisterPausedSpecimen';
5339 29 Mar 19 nicklas 131     Wizard.showLoadingAnimation('Performing registration...');
5339 29 Mar 19 nicklas 132     Wizard.asyncJsonRequest(url, store.submissionResults, 'POST', JSON.stringify(submitInfo));
5339 29 Mar 19 nicklas 133   }
5339 29 Mar 19 nicklas 134   
5339 29 Mar 19 nicklas 135   store.submissionResults = function(response)
5339 29 Mar 19 nicklas 136   {
5339 29 Mar 19 nicklas 137     Wizard.showFinalMessage(response.messages);
5339 29 Mar 19 nicklas 138     Doc.show('gorestart');
5339 29 Mar 19 nicklas 139   }
5339 29 Mar 19 nicklas 140
5339 29 Mar 19 nicklas 141   return store;
5339 29 Mar 19 nicklas 142 }();
5339 29 Mar 19 nicklas 143
5339 29 Mar 19 nicklas 144 Doc.onLoad(StorePaused.initPage);
5339 29 Mar 19 nicklas 145