extensions/net.sf.basedb.reggie/trunk/resources/personal/import_followup_blood.js

Code
Comments
Other
Rev Date Author Line
5910 17 Apr 20 nicklas 1 var BloodImport = function()
5910 17 Apr 20 nicklas 2 {
5910 17 Apr 20 nicklas 3   var blood = {};
5947 20 May 20 nicklas 4   var debug = 0;
5910 17 Apr 20 nicklas 5   var sampleFileIsValid = false;
5910 17 Apr 20 nicklas 6
5910 17 Apr 20 nicklas 7   // Page initialization
5910 17 Apr 20 nicklas 8   blood.initPage = function()
5910 17 Apr 20 nicklas 9   {
5910 17 Apr 20 nicklas 10     // Step 1
5910 17 Apr 20 nicklas 11     Events.addEventHandler('sampleFile', 'change', blood.sampleFileOnChange);
5910 17 Apr 20 nicklas 12     Events.addEventHandler('sheet', 'change', blood.sampleFileOnChange);
5910 17 Apr 20 nicklas 13     Events.addEventHandler('step-1', 'wizard-validate', blood.validateStep1);
5910 17 Apr 20 nicklas 14
5910 17 Apr 20 nicklas 15     // Navigation
5910 17 Apr 20 nicklas 16     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
5910 17 Apr 20 nicklas 17     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
5910 17 Apr 20 nicklas 18     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
5910 17 Apr 20 nicklas 19     Buttons.addClickHandler('goregister', Wizard.goRegister);
5919 24 Apr 20 nicklas 20     Buttons.addClickHandler('goabort', blood.goAbort);
5910 17 Apr 20 nicklas 21     
5910 17 Apr 20 nicklas 22     // Final registration
5910 17 Apr 20 nicklas 23     Events.addEventHandler('wizard', 'wizard-submit', blood.submit);
5910 17 Apr 20 nicklas 24
5910 17 Apr 20 nicklas 25     Doc.show('step-1');
5910 17 Apr 20 nicklas 26     Doc.show('goregister');
5910 17 Apr 20 nicklas 27
5910 17 Apr 20 nicklas 28   }
5910 17 Apr 20 nicklas 29
5910 17 Apr 20 nicklas 30   
5910 17 Apr 20 nicklas 31   blood.sampleFileOnChange = function()
5910 17 Apr 20 nicklas 32   {
5910 17 Apr 20 nicklas 33     var frm = document.forms['reggie'];
5910 17 Apr 20 nicklas 34     Wizard.setInputStatus('sampleFile');
5910 17 Apr 20 nicklas 35     sampleFileIsValid = false;
5910 17 Apr 20 nicklas 36     
5910 17 Apr 20 nicklas 37     var file = frm.sampleFile.files[0];
5910 17 Apr 20 nicklas 38     if (file)
5910 17 Apr 20 nicklas 39     {
5910 17 Apr 20 nicklas 40       var url = '../BloodFollowUpRegistration.servlet?ID='+App.getSessionId();
5910 17 Apr 20 nicklas 41       url += '&cmd=BatchImportFromFile&validateOnly=1';
5910 17 Apr 20 nicklas 42       url += '&filename='+encodeURIComponent(file.name);
5910 17 Apr 20 nicklas 43       url += '&sheet='+encodeURIComponent(frm.sheet.value);
5910 17 Apr 20 nicklas 44       
5910 17 Apr 20 nicklas 45       Wizard.setInputStatus('sampleFile', 'checking', 'Validating...');
5910 17 Apr 20 nicklas 46       Wizard.showLoadingAnimation('Validating ' + Strings.encodeTags(file.name));
5910 17 Apr 20 nicklas 47       Wizard.asyncJsonRequest(url, blood.sampleFileValidated, 'POST', file);
5910 17 Apr 20 nicklas 48     }
5910 17 Apr 20 nicklas 49     else
5910 17 Apr 20 nicklas 50     {
5910 17 Apr 20 nicklas 51       Wizard.setInputStatus('sampleFile', 'invalid', 'Missing');
5910 17 Apr 20 nicklas 52     }
5910 17 Apr 20 nicklas 53   }
5910 17 Apr 20 nicklas 54
5910 17 Apr 20 nicklas 55
5910 17 Apr 20 nicklas 56   blood.sampleFileValidated = function(response)
5910 17 Apr 20 nicklas 57   {
5910 17 Apr 20 nicklas 58     var frm = document.forms['reggie'];
5910 17 Apr 20 nicklas 59     Wizard.setInputStatus('sampleFile');
5910 17 Apr 20 nicklas 60     sampleFileIsValid = false;
5910 17 Apr 20 nicklas 61     
5910 17 Apr 20 nicklas 62     var sheetNames = response.sheetNames;
5910 17 Apr 20 nicklas 63     var currentSheet = frm.sheet.value;
5910 17 Apr 20 nicklas 64     frm.sheet.length = 0;
5910 17 Apr 20 nicklas 65     if (sheetNames && sheetNames.length)
5910 17 Apr 20 nicklas 66     {
5910 17 Apr 20 nicklas 67       for (var sNo = 0; sNo < sheetNames.length; sNo++)
5910 17 Apr 20 nicklas 68       {
5910 17 Apr 20 nicklas 69         var sheet = sheetNames[sNo];
5910 17 Apr 20 nicklas 70         frm.sheet[frm.sheet.length] = new Option(sheet, sheet, false, currentSheet == sheet);
5910 17 Apr 20 nicklas 71       }
5910 17 Apr 20 nicklas 72     }
5910 17 Apr 20 nicklas 73     
5910 17 Apr 20 nicklas 74     Doc.showHide('worksheetSection', frm.sheet.length > 1);
5910 17 Apr 20 nicklas 75     Doc.showHide('worksheetSection.help', frm.sheet.length > 1);
5910 17 Apr 20 nicklas 76
5910 17 Apr 20 nicklas 77     Wizard.showFinalMessage(response.messages);
5910 17 Apr 20 nicklas 78     
5910 17 Apr 20 nicklas 79     if (response.numErrors > 0)
5910 17 Apr 20 nicklas 80     {
5910 17 Apr 20 nicklas 81       Wizard.setInputStatus('sampleFile', 'invalid', 'The sample file has ' + response.numErrors + ' errors.');
5910 17 Apr 20 nicklas 82     }
5910 17 Apr 20 nicklas 83     else
5910 17 Apr 20 nicklas 84     {
5910 17 Apr 20 nicklas 85       Wizard.setInputStatus('sampleFile', 'valid');
5910 17 Apr 20 nicklas 86       sampleFileIsValid = true;
5910 17 Apr 20 nicklas 87     }
5910 17 Apr 20 nicklas 88   }
5910 17 Apr 20 nicklas 89   
5910 17 Apr 20 nicklas 90   blood.validateStep1 = function(event)
5910 17 Apr 20 nicklas 91   {
5910 17 Apr 20 nicklas 92     var frm = document.forms['reggie'];
5910 17 Apr 20 nicklas 93     if (frm.sampleFile.files.length == 0)
5910 17 Apr 20 nicklas 94     {
5910 17 Apr 20 nicklas 95       Wizard.setInputStatus('sampleFile', 'invalid', 'Missing');
5910 17 Apr 20 nicklas 96     }
5910 17 Apr 20 nicklas 97     
5910 17 Apr 20 nicklas 98     if (!sampleFileIsValid) event.preventDefault();
5910 17 Apr 20 nicklas 99   }
5910 17 Apr 20 nicklas 100
5910 17 Apr 20 nicklas 101   blood.submit = function()
5910 17 Apr 20 nicklas 102   {
5916 22 Apr 20 nicklas 103     var frm = document.forms['reggie'];
5916 22 Apr 20 nicklas 104     var file = frm.sampleFile.files[0];
5916 22 Apr 20 nicklas 105     
5916 22 Apr 20 nicklas 106     var url = '../BloodFollowUpRegistration.servlet?ID='+App.getSessionId();
5916 22 Apr 20 nicklas 107     url += '&cmd=BatchImportFromFile';
5916 22 Apr 20 nicklas 108     url += '&filename='+encodeURIComponent(file.name);
5916 22 Apr 20 nicklas 109     url += '&sheet='+encodeURIComponent(frm.sheet.value);
5916 22 Apr 20 nicklas 110     
5916 22 Apr 20 nicklas 111     Wizard.showLoadingAnimation('Importing ' + Strings.encodeTags(file.name), 'follow-up-import-progress');
5916 22 Apr 20 nicklas 112     Wizard.asyncJsonRequest(url, blood.submissionResults, 'POST', file);
5919 24 Apr 20 nicklas 113     Doc.show('goabort');
5910 17 Apr 20 nicklas 114   }
5910 17 Apr 20 nicklas 115   
5910 17 Apr 20 nicklas 116   blood.submissionResults = function(response)
5910 17 Apr 20 nicklas 117   {
5910 17 Apr 20 nicklas 118     Wizard.showFinalMessage(response.messages);
5931 06 May 20 nicklas 119     Doc.hide('goabort');
5910 17 Apr 20 nicklas 120     Doc.show('gorestart');
5910 17 Apr 20 nicklas 121   }
5910 17 Apr 20 nicklas 122   
5919 24 Apr 20 nicklas 123   blood.goAbort = function()
5919 24 Apr 20 nicklas 124   {
5919 24 Apr 20 nicklas 125     if (confirm('Are you sure that you want to abort the import?'))
5919 24 Apr 20 nicklas 126     {
5919 24 Apr 20 nicklas 127       var url = '../Session.servlet?ID='+App.getSessionId();
5919 24 Apr 20 nicklas 128       url += '&cmd=AbortProcess&name=follow-up-import-progress';
5919 24 Apr 20 nicklas 129       var request = Ajax.getXmlHttpRequest();
5919 24 Apr 20 nicklas 130       request.open("GET", url, true);
5919 24 Apr 20 nicklas 131       request.send(null);
5919 24 Apr 20 nicklas 132     }
5919 24 Apr 20 nicklas 133   }
5919 24 Apr 20 nicklas 134   
5910 17 Apr 20 nicklas 135   return blood;
5910 17 Apr 20 nicklas 136 }();
5910 17 Apr 20 nicklas 137
5910 17 Apr 20 nicklas 138 Doc.onLoad(BloodImport.initPage);
5910 17 Apr 20 nicklas 139