extensions/net.sf.basedb.reggie/trunk/resources/sampleproc/histology_protocol.js

Code
Comments
Other
Rev Date Author Line
2785 10 Oct 14 nicklas 1 var Protocol = function()
2785 10 Oct 14 nicklas 2 {
2785 10 Oct 14 nicklas 3   var protocol = {};
2785 10 Oct 14 nicklas 4   var debug = 0;
2785 10 Oct 14 nicklas 5   
2785 10 Oct 14 nicklas 6   var lysatesIsValid = false;
2785 10 Oct 14 nicklas 7
2785 10 Oct 14 nicklas 8   // Page initialization
2785 10 Oct 14 nicklas 9   protocol.initPage = function()
2785 10 Oct 14 nicklas 10   {
2785 10 Oct 14 nicklas 11     var pageId = Doc.getPageId();
2785 10 Oct 14 nicklas 12     if (pageId == 'protocol')
2785 10 Oct 14 nicklas 13     {
2785 10 Oct 14 nicklas 14       Buttons.addClickHandler('print-button', Wizard.goPrint);  
5309 15 Feb 19 nicklas 15       Buttons.addClickHandler('downloadLabelsCsv', protocol.downloadLabels);
5309 15 Feb 19 nicklas 16       Buttons.addClickHandler('downloadLabelsXlsx', protocol.downloadLabels);
2785 10 Oct 14 nicklas 17       Doc.show('all-protocol');
2785 10 Oct 14 nicklas 18     }
2785 10 Oct 14 nicklas 19     else
2785 10 Oct 14 nicklas 20     {
2785 10 Oct 14 nicklas 21       Buttons.addClickHandler('btnCreateWorkList', protocol.createWorkList);
2785 10 Oct 14 nicklas 22       Buttons.addClickHandler('gocreate', protocol.viewProtocol);
2785 10 Oct 14 nicklas 23
2785 10 Oct 14 nicklas 24       var url = '../Histology.servlet?ID='+App.getSessionId();
2785 10 Oct 14 nicklas 25       url += '&cmd=GetHistologyWorkLists';
2785 10 Oct 14 nicklas 26       Wizard.showLoadingAnimation('Loading histology work lists...');
2785 10 Oct 14 nicklas 27       Wizard.asyncJsonRequest(url, protocol.initializeStep1);
2785 10 Oct 14 nicklas 28     }
2785 10 Oct 14 nicklas 29   }
2785 10 Oct 14 nicklas 30
2785 10 Oct 14 nicklas 31   protocol.initializeStep1 = function(response)
2785 10 Oct 14 nicklas 32   {
2785 10 Oct 14 nicklas 33     var frm = document.forms['reggie'];
2785 10 Oct 14 nicklas 34     var workLists = response.workLists;
2785 10 Oct 14 nicklas 35     
2785 10 Oct 14 nicklas 36     var workList = frm.workList;
2785 10 Oct 14 nicklas 37     if (workLists.length > 0)
2785 10 Oct 14 nicklas 38     {
2785 10 Oct 14 nicklas 39       for (var i=0; i < workLists.length; i++)
2785 10 Oct 14 nicklas 40       {
2785 10 Oct 14 nicklas 41         var list = workLists[i];
2785 10 Oct 14 nicklas 42         var name = list.name + ' (' + list.size + ')';
2785 10 Oct 14 nicklas 43         var option = new Option(name, list.id);
2785 10 Oct 14 nicklas 44         workList.options[workList.length] = option;
2785 10 Oct 14 nicklas 45       }
2785 10 Oct 14 nicklas 46       
2785 10 Oct 14 nicklas 47     }
2785 10 Oct 14 nicklas 48     else
2785 10 Oct 14 nicklas 49     {
2785 10 Oct 14 nicklas 50       Wizard.setInputStatus('workList', 'invalid', 'No Histology works lists available for processing.');
2785 10 Oct 14 nicklas 51     }
2785 10 Oct 14 nicklas 52     
2785 10 Oct 14 nicklas 53     Doc.show('step-1');
2785 10 Oct 14 nicklas 54     Doc.show('gocreate');
2785 10 Oct 14 nicklas 55   }
2785 10 Oct 14 nicklas 56   
2785 10 Oct 14 nicklas 57
2785 10 Oct 14 nicklas 58   protocol.createWorkList = function()
2785 10 Oct 14 nicklas 59   {
2785 10 Oct 14 nicklas 60     var url = 'histology_work_list.jsp?ID='+App.getSessionId();
2785 10 Oct 14 nicklas 61     location.href = url;
2785 10 Oct 14 nicklas 62   }
2785 10 Oct 14 nicklas 63   
2785 10 Oct 14 nicklas 64   protocol.viewProtocol = function()
2785 10 Oct 14 nicklas 65   {
2785 10 Oct 14 nicklas 66     var frm = document.forms['reggie'];
2785 10 Oct 14 nicklas 67     if (frm.workList.selectedIndex == -1)
2785 10 Oct 14 nicklas 68     {
2785 10 Oct 14 nicklas 69       Wizard.notifyError();
2785 10 Oct 14 nicklas 70       return;
2785 10 Oct 14 nicklas 71     }
2785 10 Oct 14 nicklas 72     frm.submit();
2785 10 Oct 14 nicklas 73   }
2785 10 Oct 14 nicklas 74
2785 10 Oct 14 nicklas 75   protocol.downloadLabels = function(event)
2785 10 Oct 14 nicklas 76   {
5309 15 Feb 19 nicklas 77     var format = Data.get(event.currentTarget, 'format');
2785 10 Oct 14 nicklas 78     var numLabelsPerBlock = prompt('Number of labels per block?', 3);
2785 10 Oct 14 nicklas 79     if (numLabelsPerBlock == null) return;
2785 10 Oct 14 nicklas 80     
2785 10 Oct 14 nicklas 81     if (!parseInt(numLabelsPerBlock, 10)) 
2785 10 Oct 14 nicklas 82     {
2785 10 Oct 14 nicklas 83       alert('"' + numLabelsPerBlock + '" is not a valid number');
2785 10 Oct 14 nicklas 84       return;
2785 10 Oct 14 nicklas 85     }
2785 10 Oct 14 nicklas 86     
2785 10 Oct 14 nicklas 87     var url = '../Histology.servlet?ID='+App.getSessionId();
2785 10 Oct 14 nicklas 88     url += '&cmd=DownloadHEGlassLabels';
2785 10 Oct 14 nicklas 89     url += '&workListId='+Data.int(event.currentTarget, 'list-id');
2785 10 Oct 14 nicklas 90     url += '&numSlides=' + parseInt(numLabelsPerBlock, 10);
5309 15 Feb 19 nicklas 91     url += '&format='+encodeURIComponent(format);
2785 10 Oct 14 nicklas 92     
2785 10 Oct 14 nicklas 93     location.href = url;
2785 10 Oct 14 nicklas 94   }
2785 10 Oct 14 nicklas 95
2785 10 Oct 14 nicklas 96
2785 10 Oct 14 nicklas 97   return protocol;
2785 10 Oct 14 nicklas 98 }();
2785 10 Oct 14 nicklas 99
2785 10 Oct 14 nicklas 100 Doc.onLoad(Protocol.initPage);
2785 10 Oct 14 nicklas 101