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

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