extensions/net.sf.basedb.meludi/trunk/resources/reports/case_summary_shortcut_alt_rec.js

Code
Comments
Other
Rev Date Author Line
5162 03 Dec 18 olle 1 var Istat = function()
5162 03 Dec 18 olle 2 {
5162 03 Dec 18 olle 3   var istat = {};
5162 03 Dec 18 olle 4   var debug = 0;
5162 03 Dec 18 olle 5
5162 03 Dec 18 olle 6   var caseInfo;
5162 03 Dec 18 olle 7
5162 03 Dec 18 olle 8   istat.initPage = function()
5162 03 Dec 18 olle 9   {
5162 03 Dec 18 olle 10     // Step 1
5162 03 Dec 18 olle 11     Events.addEventHandler('step-1', 'wizard-validate', istat.validateStep1);
5162 03 Dec 18 olle 12     Events.addEventHandler('extractSourceItems', 'change', istat.sourceItemsOnChange);
5162 03 Dec 18 olle 13     
5162 03 Dec 18 olle 14     // Navigation
5162 03 Dec 18 olle 15     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
5162 03 Dec 18 olle 16     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
5162 03 Dec 18 olle 17     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
5162 03 Dec 18 olle 18
5162 03 Dec 18 olle 19     // Get case items
5162 03 Dec 18 olle 20     var url = '../Extraction.servlet?ID='+App.getSessionId();
5162 03 Dec 18 olle 21     url += '&cmd=GetCases';    
5162 03 Dec 18 olle 22     Wizard.showLoadingAnimation('Loading unprocessed items...');
5162 03 Dec 18 olle 23     Wizard.asyncJsonRequest(url, istat.initializeStep1);
5162 03 Dec 18 olle 24   }
5162 03 Dec 18 olle 25   
5162 03 Dec 18 olle 26   istat.initPermissions = function()
5162 03 Dec 18 olle 27   {
5162 03 Dec 18 olle 28     // Get permission information
5162 03 Dec 18 olle 29     var url = '../Install.servlet?ID='+App.getSessionId();
5162 03 Dec 18 olle 30     url += '&cmd=GetPermissions';
5162 03 Dec 18 olle 31     var request = Ajax.getXmlHttpRequest();
5162 03 Dec 18 olle 32     request.open("GET", url, true);
5162 03 Dec 18 olle 33     Ajax.setReadyStateHandler(request, istat.onPermissionsLoaded, istat.onPermissionsLoaded);
5162 03 Dec 18 olle 34     request.send(null);
5162 03 Dec 18 olle 35   }
5162 03 Dec 18 olle 36   
5162 03 Dec 18 olle 37   // Callback when permission information is ready
5162 03 Dec 18 olle 38   istat.onPermissionsLoaded = function(request)
5162 03 Dec 18 olle 39   {
5162 03 Dec 18 olle 40     if (debug) App.debug(Strings.encodeTags(request.responseText));
5162 03 Dec 18 olle 41     var response;
5162 03 Dec 18 olle 42     var error = false;
5162 03 Dec 18 olle 43     try
5162 03 Dec 18 olle 44     {
5162 03 Dec 18 olle 45       response = JSON.parse(request.responseText);
5162 03 Dec 18 olle 46       if (response.status != 'ok')
5162 03 Dec 18 olle 47       {
5162 03 Dec 18 olle 48         error = response.message || response.stacktrace || 'Unexpected error';
5162 03 Dec 18 olle 49       }
5162 03 Dec 18 olle 50     }
5162 03 Dec 18 olle 51     catch (ex)
5162 03 Dec 18 olle 52     {
5162 03 Dec 18 olle 53       error = ex;
5162 03 Dec 18 olle 54     }
5162 03 Dec 18 olle 55     
5162 03 Dec 18 olle 56     if (error)
5162 03 Dec 18 olle 57     {
5162 03 Dec 18 olle 58       alert(error);
5162 03 Dec 18 olle 59       return;
5162 03 Dec 18 olle 60     }
5162 03 Dec 18 olle 61     
5162 03 Dec 18 olle 62     myPermissions = response.permissions;
5162 03 Dec 18 olle 63     //var isAdmin = myPermissions['Administrator'] == 1;
5162 03 Dec 18 olle 64     //var noProjectIsActive = !App.getActiveProjectId();
5162 03 Dec 18 olle 65   }
5162 03 Dec 18 olle 66
5162 03 Dec 18 olle 67   istat.initializeStep1 = function(response)
5162 03 Dec 18 olle 68   {
5162 03 Dec 18 olle 69     var frm = document.forms['meludi'];
5162 03 Dec 18 olle 70     var items = response.items;
5162 03 Dec 18 olle 71     
5162 03 Dec 18 olle 72     var sourceItemList = frm.extractSourceItems;
5162 03 Dec 18 olle 73     if (items.length)
5162 03 Dec 18 olle 74     {
5162 03 Dec 18 olle 75       var numItems = items.length;
5162 03 Dec 18 olle 76       for (var i=0; i < items.length; i++)
5162 03 Dec 18 olle 77       {
5162 03 Dec 18 olle 78         var item = items[i];
5162 03 Dec 18 olle 79         var name = (i+1) + ': ' + Strings.encodeTags(item.name);
5162 03 Dec 18 olle 80         var referralId = "";
5162 03 Dec 18 olle 81         if (item.referralId)
5162 03 Dec 18 olle 82         {
5162 03 Dec 18 olle 83           referralId = item.referralId;
5162 03 Dec 18 olle 84         }
5162 03 Dec 18 olle 85         var personalNumber = "";
5162 03 Dec 18 olle 86         if (item.personalNumber)
5162 03 Dec 18 olle 87         {
5162 03 Dec 18 olle 88           personalNumber = item.personalNumber;
5162 03 Dec 18 olle 89         }
5162 03 Dec 18 olle 90         if (referralId || personalNumber)
5162 03 Dec 18 olle 91         {
5162 03 Dec 18 olle 92           name += ' -- (Referral-ID: ' + Strings.encodeTags(referralId) + ' Pno: ' + Strings.encodeTags(personalNumber) + ')';
5162 03 Dec 18 olle 93         }
5162 03 Dec 18 olle 94         var selected = i == 0;
5162 03 Dec 18 olle 95         var option = new Option(name, item.id, selected, selected);
5162 03 Dec 18 olle 96         option.item = item;
5162 03 Dec 18 olle 97         sourceItemList.options[sourceItemList.length] = option;
5162 03 Dec 18 olle 98       }
5162 03 Dec 18 olle 99       istat.sourceItemsOnChange();
5162 03 Dec 18 olle 100     }
5162 03 Dec 18 olle 101     else
5162 03 Dec 18 olle 102     {
5162 03 Dec 18 olle 103       Wizard.setFatalError('No case items available.');
5162 03 Dec 18 olle 104       return;
5162 03 Dec 18 olle 105     }
5162 03 Dec 18 olle 106
5162 03 Dec 18 olle 107     Doc.show('step-1');
5162 03 Dec 18 olle 108     Doc.show('gonext');
5162 03 Dec 18 olle 109   }
5162 03 Dec 18 olle 110     
5162 03 Dec 18 olle 111   istat.sourceItemsOnChange = function()
5162 03 Dec 18 olle 112   {
5162 03 Dec 18 olle 113     sourceItemListIsValid = false;
5162 03 Dec 18 olle 114     Wizard.setInputStatus('extractSourceItems');
5162 03 Dec 18 olle 115     
5162 03 Dec 18 olle 116     var frm = document.forms['meludi'];
5162 03 Dec 18 olle 117     var sourceItemList = frm.extractSourceItems;
5162 03 Dec 18 olle 118     
5162 03 Dec 18 olle 119     var numSelected = 0;
5162 03 Dec 18 olle 120     for (var i = 0; i < sourceItemList.length; i++)
5162 03 Dec 18 olle 121     {
5162 03 Dec 18 olle 122       if (sourceItemList[i].selected) numSelected++;
5162 03 Dec 18 olle 123     }
5162 03 Dec 18 olle 124
5162 03 Dec 18 olle 125     if (numSelected < 1)
5162 03 Dec 18 olle 126     {
5162 03 Dec 18 olle 127       Wizard.setInputStatus('extractSourceItems', 'invalid', 'Must select a number of FFPE block items.');
5162 03 Dec 18 olle 128       return;
5162 03 Dec 18 olle 129     }
5162 03 Dec 18 olle 130     
5162 03 Dec 18 olle 131     sourceItemListIsValid = true;
5162 03 Dec 18 olle 132     Wizard.setInputStatus('extractSourceItems', 'valid');
5162 03 Dec 18 olle 133   }
5162 03 Dec 18 olle 134
5162 03 Dec 18 olle 135   istat.validateStep1 = function(event)
5162 03 Dec 18 olle 136   {
5162 03 Dec 18 olle 137 //alert("case_summary_shortcut_alt_rec.js::validateStep1(): Start");
5162 03 Dec 18 olle 138     var valid = true;
5162 03 Dec 18 olle 139     if (!valid) event.preventDefault();
5162 03 Dec 18 olle 140
5162 03 Dec 18 olle 141     istat.caseSummary();
5162 03 Dec 18 olle 142   }
5162 03 Dec 18 olle 143
5162 03 Dec 18 olle 144   istat.caseSummary = function()
5162 03 Dec 18 olle 145   {
5162 03 Dec 18 olle 146 //alert("case_summary_shortcut_alt_rec.js::caseSummary(): Start");
5162 03 Dec 18 olle 147     var frm = document.forms['meludi'];
5162 03 Dec 18 olle 148     var caseList = istat.getSelectedItemsList();
5162 03 Dec 18 olle 149     var caseName = caseList[0].name;
5162 03 Dec 18 olle 150 //alert("case_summary_shortcut_alt_rec.js::caseSummary(): caseName = " + caseName);
5162 03 Dec 18 olle 151
5162 03 Dec 18 olle 152     Doc.addClass('extractSourceItems', 'disabled');
5162 03 Dec 18 olle 153
5162 03 Dec 18 olle 154     Doc.hide('gonext');
5162 03 Dec 18 olle 155
5162 03 Dec 18 olle 156     var url = 'case_summary_alt_rec.jsp?ID='+App.getSessionId();
5162 03 Dec 18 olle 157     url += '&caseName='+encodeURIComponent(caseName);
5162 03 Dec 18 olle 158     //url += '&pageType='+Data.get('page-data', 'page-type');
5162 03 Dec 18 olle 159 //alert("case_summary_shortcut_alt_rec::caseSummary(): url = " + url);
5162 03 Dec 18 olle 160     location.href = url;
5162 03 Dec 18 olle 161   }
5162 03 Dec 18 olle 162
5162 03 Dec 18 olle 163   istat.getSelectedItemsList = function()
5162 03 Dec 18 olle 164   {
5162 03 Dec 18 olle 165     var frm = document.forms['meludi'];
5162 03 Dec 18 olle 166     
5162 03 Dec 18 olle 167     // Get number of selected extract source items
5162 03 Dec 18 olle 168     var numItems = 0;
5162 03 Dec 18 olle 169     var selItemsList = [];
5162 03 Dec 18 olle 170     for (var i = 0; i < frm.extractSourceItems.length; i++)
5162 03 Dec 18 olle 171     {
5162 03 Dec 18 olle 172       if (frm.extractSourceItems[i].selected)
5162 03 Dec 18 olle 173       {
5162 03 Dec 18 olle 174         if (frm.extractSourceItems[i].item != null)
5162 03 Dec 18 olle 175         {
5162 03 Dec 18 olle 176           selItemsList[numItems] = frm.extractSourceItems[i].item;
5162 03 Dec 18 olle 177           numItems++;
5162 03 Dec 18 olle 178         }
5162 03 Dec 18 olle 179       }
5162 03 Dec 18 olle 180     }
5162 03 Dec 18 olle 181     return selItemsList;
5162 03 Dec 18 olle 182   }
5162 03 Dec 18 olle 183
5162 03 Dec 18 olle 184   return istat;
5162 03 Dec 18 olle 185 }();
5162 03 Dec 18 olle 186
5162 03 Dec 18 olle 187 Doc.onLoad(Istat.initPage);
5162 03 Dec 18 olle 188