5910 |
17 Apr 20 |
nicklas |
var BloodImport = function() |
5910 |
17 Apr 20 |
nicklas |
2 |
{ |
5910 |
17 Apr 20 |
nicklas |
var blood = {}; |
5947 |
20 May 20 |
nicklas |
var debug = 0; |
5910 |
17 Apr 20 |
nicklas |
var sampleFileIsValid = false; |
5910 |
17 Apr 20 |
nicklas |
6 |
|
5910 |
17 Apr 20 |
nicklas |
// Page initialization |
5910 |
17 Apr 20 |
nicklas |
blood.initPage = function() |
5910 |
17 Apr 20 |
nicklas |
9 |
{ |
5910 |
17 Apr 20 |
nicklas |
// Step 1 |
5910 |
17 Apr 20 |
nicklas |
Events.addEventHandler('sampleFile', 'change', blood.sampleFileOnChange); |
5910 |
17 Apr 20 |
nicklas |
Events.addEventHandler('sheet', 'change', blood.sampleFileOnChange); |
5910 |
17 Apr 20 |
nicklas |
Events.addEventHandler('step-1', 'wizard-validate', blood.validateStep1); |
5910 |
17 Apr 20 |
nicklas |
14 |
|
5910 |
17 Apr 20 |
nicklas |
// Navigation |
5910 |
17 Apr 20 |
nicklas |
Buttons.addClickHandler('gocancel', Wizard.cancelWizard); |
5910 |
17 Apr 20 |
nicklas |
Buttons.addClickHandler('gorestart', Wizard.restartWizard); |
5910 |
17 Apr 20 |
nicklas |
Buttons.addClickHandler('gonext', Wizard.goNextOnClick); |
5910 |
17 Apr 20 |
nicklas |
Buttons.addClickHandler('goregister', Wizard.goRegister); |
5919 |
24 Apr 20 |
nicklas |
Buttons.addClickHandler('goabort', blood.goAbort); |
5910 |
17 Apr 20 |
nicklas |
21 |
|
5910 |
17 Apr 20 |
nicklas |
// Final registration |
5910 |
17 Apr 20 |
nicklas |
Events.addEventHandler('wizard', 'wizard-submit', blood.submit); |
5910 |
17 Apr 20 |
nicklas |
24 |
|
5910 |
17 Apr 20 |
nicklas |
Doc.show('step-1'); |
5910 |
17 Apr 20 |
nicklas |
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 |
blood.sampleFileOnChange = function() |
5910 |
17 Apr 20 |
nicklas |
32 |
{ |
5910 |
17 Apr 20 |
nicklas |
var frm = document.forms['reggie']; |
5910 |
17 Apr 20 |
nicklas |
Wizard.setInputStatus('sampleFile'); |
5910 |
17 Apr 20 |
nicklas |
sampleFileIsValid = false; |
5910 |
17 Apr 20 |
nicklas |
36 |
|
5910 |
17 Apr 20 |
nicklas |
var file = frm.sampleFile.files[0]; |
5910 |
17 Apr 20 |
nicklas |
if (file) |
5910 |
17 Apr 20 |
nicklas |
39 |
{ |
5910 |
17 Apr 20 |
nicklas |
var url = '../BloodFollowUpRegistration.servlet?ID='+App.getSessionId(); |
5910 |
17 Apr 20 |
nicklas |
url += '&cmd=BatchImportFromFile&validateOnly=1'; |
5910 |
17 Apr 20 |
nicklas |
url += '&filename='+encodeURIComponent(file.name); |
5910 |
17 Apr 20 |
nicklas |
url += '&sheet='+encodeURIComponent(frm.sheet.value); |
5910 |
17 Apr 20 |
nicklas |
44 |
|
5910 |
17 Apr 20 |
nicklas |
Wizard.setInputStatus('sampleFile', 'checking', 'Validating...'); |
5910 |
17 Apr 20 |
nicklas |
Wizard.showLoadingAnimation('Validating ' + Strings.encodeTags(file.name)); |
5910 |
17 Apr 20 |
nicklas |
Wizard.asyncJsonRequest(url, blood.sampleFileValidated, 'POST', file); |
5910 |
17 Apr 20 |
nicklas |
48 |
} |
5910 |
17 Apr 20 |
nicklas |
else |
5910 |
17 Apr 20 |
nicklas |
50 |
{ |
5910 |
17 Apr 20 |
nicklas |
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 |
blood.sampleFileValidated = function(response) |
5910 |
17 Apr 20 |
nicklas |
57 |
{ |
5910 |
17 Apr 20 |
nicklas |
var frm = document.forms['reggie']; |
5910 |
17 Apr 20 |
nicklas |
Wizard.setInputStatus('sampleFile'); |
5910 |
17 Apr 20 |
nicklas |
sampleFileIsValid = false; |
5910 |
17 Apr 20 |
nicklas |
61 |
|
5910 |
17 Apr 20 |
nicklas |
var sheetNames = response.sheetNames; |
5910 |
17 Apr 20 |
nicklas |
var currentSheet = frm.sheet.value; |
5910 |
17 Apr 20 |
nicklas |
frm.sheet.length = 0; |
5910 |
17 Apr 20 |
nicklas |
if (sheetNames && sheetNames.length) |
5910 |
17 Apr 20 |
nicklas |
66 |
{ |
5910 |
17 Apr 20 |
nicklas |
for (var sNo = 0; sNo < sheetNames.length; sNo++) |
5910 |
17 Apr 20 |
nicklas |
68 |
{ |
5910 |
17 Apr 20 |
nicklas |
var sheet = sheetNames[sNo]; |
5910 |
17 Apr 20 |
nicklas |
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 |
Doc.showHide('worksheetSection', frm.sheet.length > 1); |
5910 |
17 Apr 20 |
nicklas |
Doc.showHide('worksheetSection.help', frm.sheet.length > 1); |
5910 |
17 Apr 20 |
nicklas |
76 |
|
5910 |
17 Apr 20 |
nicklas |
Wizard.showFinalMessage(response.messages); |
5910 |
17 Apr 20 |
nicklas |
78 |
|
5910 |
17 Apr 20 |
nicklas |
if (response.numErrors > 0) |
5910 |
17 Apr 20 |
nicklas |
80 |
{ |
5910 |
17 Apr 20 |
nicklas |
Wizard.setInputStatus('sampleFile', 'invalid', 'The sample file has ' + response.numErrors + ' errors.'); |
5910 |
17 Apr 20 |
nicklas |
82 |
} |
5910 |
17 Apr 20 |
nicklas |
else |
5910 |
17 Apr 20 |
nicklas |
84 |
{ |
5910 |
17 Apr 20 |
nicklas |
Wizard.setInputStatus('sampleFile', 'valid'); |
5910 |
17 Apr 20 |
nicklas |
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 |
blood.validateStep1 = function(event) |
5910 |
17 Apr 20 |
nicklas |
91 |
{ |
5910 |
17 Apr 20 |
nicklas |
var frm = document.forms['reggie']; |
5910 |
17 Apr 20 |
nicklas |
if (frm.sampleFile.files.length == 0) |
5910 |
17 Apr 20 |
nicklas |
94 |
{ |
5910 |
17 Apr 20 |
nicklas |
Wizard.setInputStatus('sampleFile', 'invalid', 'Missing'); |
5910 |
17 Apr 20 |
nicklas |
96 |
} |
5910 |
17 Apr 20 |
nicklas |
97 |
|
5910 |
17 Apr 20 |
nicklas |
if (!sampleFileIsValid) event.preventDefault(); |
5910 |
17 Apr 20 |
nicklas |
99 |
} |
5910 |
17 Apr 20 |
nicklas |
100 |
|
5910 |
17 Apr 20 |
nicklas |
blood.submit = function() |
5910 |
17 Apr 20 |
nicklas |
102 |
{ |
5916 |
22 Apr 20 |
nicklas |
var frm = document.forms['reggie']; |
5916 |
22 Apr 20 |
nicklas |
var file = frm.sampleFile.files[0]; |
5916 |
22 Apr 20 |
nicklas |
105 |
|
5916 |
22 Apr 20 |
nicklas |
var url = '../BloodFollowUpRegistration.servlet?ID='+App.getSessionId(); |
5916 |
22 Apr 20 |
nicklas |
url += '&cmd=BatchImportFromFile'; |
5916 |
22 Apr 20 |
nicklas |
url += '&filename='+encodeURIComponent(file.name); |
5916 |
22 Apr 20 |
nicklas |
url += '&sheet='+encodeURIComponent(frm.sheet.value); |
5916 |
22 Apr 20 |
nicklas |
110 |
|
5916 |
22 Apr 20 |
nicklas |
Wizard.showLoadingAnimation('Importing ' + Strings.encodeTags(file.name), 'follow-up-import-progress'); |
5916 |
22 Apr 20 |
nicklas |
Wizard.asyncJsonRequest(url, blood.submissionResults, 'POST', file); |
5919 |
24 Apr 20 |
nicklas |
Doc.show('goabort'); |
5910 |
17 Apr 20 |
nicklas |
114 |
} |
5910 |
17 Apr 20 |
nicklas |
115 |
|
5910 |
17 Apr 20 |
nicklas |
blood.submissionResults = function(response) |
5910 |
17 Apr 20 |
nicklas |
117 |
{ |
5910 |
17 Apr 20 |
nicklas |
Wizard.showFinalMessage(response.messages); |
5931 |
06 May 20 |
nicklas |
Doc.hide('goabort'); |
5910 |
17 Apr 20 |
nicklas |
Doc.show('gorestart'); |
5910 |
17 Apr 20 |
nicklas |
121 |
} |
5910 |
17 Apr 20 |
nicklas |
122 |
|
5919 |
24 Apr 20 |
nicklas |
blood.goAbort = function() |
5919 |
24 Apr 20 |
nicklas |
124 |
{ |
5919 |
24 Apr 20 |
nicklas |
if (confirm('Are you sure that you want to abort the import?')) |
5919 |
24 Apr 20 |
nicklas |
126 |
{ |
5919 |
24 Apr 20 |
nicklas |
var url = '../Session.servlet?ID='+App.getSessionId(); |
5919 |
24 Apr 20 |
nicklas |
url += '&cmd=AbortProcess&name=follow-up-import-progress'; |
5919 |
24 Apr 20 |
nicklas |
var request = Ajax.getXmlHttpRequest(); |
5919 |
24 Apr 20 |
nicklas |
request.open("GET", url, true); |
5919 |
24 Apr 20 |
nicklas |
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 |
return blood; |
5910 |
17 Apr 20 |
nicklas |
136 |
}(); |
5910 |
17 Apr 20 |
nicklas |
137 |
|
5910 |
17 Apr 20 |
nicklas |
Doc.onLoad(BloodImport.initPage); |
5910 |
17 Apr 20 |
nicklas |
139 |
|