extensions/net.sf.basedb.meludi/trunk/resources/personal/ffpe_section_order_form.js

Code
Comments
Other
Rev Date Author Line
4915 16 Jul 18 olle 1 var Istat = function()
4915 16 Jul 18 olle 2 {
4915 16 Jul 18 olle 3   var istat = {};
4915 16 Jul 18 olle 4   var debug = 0;
4915 16 Jul 18 olle 5   
4915 16 Jul 18 olle 6   var refVariantDefault = 'kit1_standard';
4915 16 Jul 18 olle 7
4915 16 Jul 18 olle 8   // Page initialization
4915 16 Jul 18 olle 9   istat.initPage = function()
4915 16 Jul 18 olle 10   {
4915 16 Jul 18 olle 11     // Step 1
4915 16 Jul 18 olle 12     Events.addEventHandler('step-1', 'wizard-validate', istat.validateStep1);
4915 16 Jul 18 olle 13     Events.addEventHandler('extractSourceItems', 'change', istat.sourceItemsOnChange);
4915 16 Jul 18 olle 14     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
4915 16 Jul 18 olle 15
4915 16 Jul 18 olle 16     // Step 2
4915 16 Jul 18 olle 17     Buttons.addClickHandler('downloadformbatch2', istat.downloadFormBatch2);
5069 01 Nov 18 olle 18     Buttons.addClickHandler('downloadffpesectionlabelfile', istat.downloadFfpeSectionLabelFile);
5069 01 Nov 18 olle 19     Buttons.addClickHandler('downloadheglasslabelfile', istat.downloadHeGlassLabelFile);
5127 21 Nov 18 olle 20     Buttons.addClickHandler('formsok', istat.formsOk);
4915 16 Jul 18 olle 21     
4915 16 Jul 18 olle 22     // Navigation
4915 16 Jul 18 olle 23     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
4915 16 Jul 18 olle 24     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
4915 16 Jul 18 olle 25
4915 16 Jul 18 olle 26     // Get FFPE block items
4915 16 Jul 18 olle 27     var url = '../Extraction.servlet?ID='+App.getSessionId();
5061 30 Oct 18 olle 28     url += '&cmd=GetFfpeBlocksUnusedForSectionOrderForm';    
4915 16 Jul 18 olle 29     Wizard.showLoadingAnimation('Loading unprocessed items...');
4915 16 Jul 18 olle 30     Wizard.asyncJsonRequest(url, istat.initializeStep1);
4915 16 Jul 18 olle 31   }
4915 16 Jul 18 olle 32   
4915 16 Jul 18 olle 33   istat.initializeStep1 = function(response)
4915 16 Jul 18 olle 34   {
4915 16 Jul 18 olle 35     var frm = document.forms['meludi'];
4915 16 Jul 18 olle 36     var items = response.items;
4915 16 Jul 18 olle 37     
4915 16 Jul 18 olle 38     var sourceItemList = frm.extractSourceItems;
4915 16 Jul 18 olle 39     if (items.length)
4915 16 Jul 18 olle 40     {
4915 16 Jul 18 olle 41       var numItems = items.length;
4915 16 Jul 18 olle 42       for (var i=0; i < items.length; i++)
4915 16 Jul 18 olle 43       {
4915 16 Jul 18 olle 44         var item = items[i];
4915 16 Jul 18 olle 45         var name = (i+1) + ': ' + Strings.encodeTags(item.name);
5084 12 Nov 18 olle 46 /*
4915 16 Jul 18 olle 47         if (item.pad)
4915 16 Jul 18 olle 48         {
4915 16 Jul 18 olle 49           name += ' -- (PAD: ' + Strings.encodeTags(item.pad + ')');
4915 16 Jul 18 olle 50         }
5084 12 Nov 18 olle 51 */
5084 12 Nov 18 olle 52         if (item.materialNumber)
5084 12 Nov 18 olle 53         {
5084 12 Nov 18 olle 54           name += ' -- (Mtrl-no: ' + Strings.encodeTags(item.materialNumber + ')');
5084 12 Nov 18 olle 55         }
4915 16 Jul 18 olle 56         var selected = i < 8;
4915 16 Jul 18 olle 57         var option = new Option(name, item.id, selected, selected);
4915 16 Jul 18 olle 58         option.item = item;
5048 22 Oct 18 olle 59         if (item.yellowLabel)
5048 22 Oct 18 olle 60         {
5048 22 Oct 18 olle 61           option.className = 'yellow';
5048 22 Oct 18 olle 62         }
4915 16 Jul 18 olle 63         sourceItemList.options[sourceItemList.length] = option;
4915 16 Jul 18 olle 64       }
4915 16 Jul 18 olle 65       istat.sourceItemsOnChange();
4915 16 Jul 18 olle 66     }
4915 16 Jul 18 olle 67     else
4915 16 Jul 18 olle 68     {
4915 16 Jul 18 olle 69       Wizard.setFatalError('No FFPE block items available.');
4915 16 Jul 18 olle 70       return;
4915 16 Jul 18 olle 71     }
4915 16 Jul 18 olle 72
4915 16 Jul 18 olle 73     Doc.show('step-1');
4915 16 Jul 18 olle 74     Doc.show('gonext');
4915 16 Jul 18 olle 75   }
4915 16 Jul 18 olle 76
4915 16 Jul 18 olle 77   istat.sourceItemsOnChange = function()
4915 16 Jul 18 olle 78   {
4915 16 Jul 18 olle 79     sourceItemListIsValid = false;
4915 16 Jul 18 olle 80     Wizard.setInputStatus('extractSourceItems');
4915 16 Jul 18 olle 81     
4915 16 Jul 18 olle 82     var frm = document.forms['meludi'];
4915 16 Jul 18 olle 83     var sourceItemList = frm.extractSourceItems;
4915 16 Jul 18 olle 84     
4915 16 Jul 18 olle 85     var numSelected = 0;
4915 16 Jul 18 olle 86     for (var i = 0; i < sourceItemList.length; i++)
4915 16 Jul 18 olle 87     {
4915 16 Jul 18 olle 88       if (sourceItemList[i].selected) numSelected++;
4915 16 Jul 18 olle 89     }
4915 16 Jul 18 olle 90
4915 16 Jul 18 olle 91     if (numSelected < 1)
4915 16 Jul 18 olle 92     {
4915 16 Jul 18 olle 93       Wizard.setInputStatus('extractSourceItems', 'invalid', 'Must select a number of FFPE block items.');
4915 16 Jul 18 olle 94       return;
4915 16 Jul 18 olle 95     }
4915 16 Jul 18 olle 96     
4915 16 Jul 18 olle 97     sourceItemListIsValid = true;
4915 16 Jul 18 olle 98     Wizard.setInputStatus('extractSourceItems', 'valid');
4915 16 Jul 18 olle 99   }
4915 16 Jul 18 olle 100
4915 16 Jul 18 olle 101   istat.validateStep1 = function(event)
4915 16 Jul 18 olle 102   {
4915 16 Jul 18 olle 103     if (!sourceItemListIsValid)
4915 16 Jul 18 olle 104     {
4915 16 Jul 18 olle 105       event.preventDefault();
4915 16 Jul 18 olle 106     }
4915 16 Jul 18 olle 107     var valid = true;
4915 16 Jul 18 olle 108
4915 16 Jul 18 olle 109     istat.generateReferralForms();
4915 16 Jul 18 olle 110   }
4915 16 Jul 18 olle 111
4915 16 Jul 18 olle 112   istat.generateReferralForms = function()
4915 16 Jul 18 olle 113   {
4915 16 Jul 18 olle 114     var frm = document.forms['meludi'];
4915 16 Jul 18 olle 115     var refVariant = refVariantDefault;
4915 16 Jul 18 olle 116     var ffpeBlockList = istat.getSelectedItemsList();
4915 16 Jul 18 olle 117
4915 16 Jul 18 olle 118     Doc.addClass('extractSourceItems', 'disabled');
4915 16 Jul 18 olle 119
4915 16 Jul 18 olle 120     Doc.hide('gonext');
4915 16 Jul 18 olle 121
4915 16 Jul 18 olle 122     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4915 16 Jul 18 olle 123     url += '&cmd=GenerateFfpeSectionOrderForm';
4915 16 Jul 18 olle 124     url += '&referralvariant='+encodeURIComponent(refVariant);
4915 16 Jul 18 olle 125     url += '&ffpeblocklist='+encodeURIComponent(JSON.stringify(ffpeBlockList));
4915 16 Jul 18 olle 126
4915 16 Jul 18 olle 127     Wizard.showLoadingAnimation('Generating referral forms...', 'ref-gen-progress');
4915 16 Jul 18 olle 128     Wizard.asyncJsonRequest(url, istat.initializeStep2);
4915 16 Jul 18 olle 129 /*
4915 16 Jul 18 olle 130     // POST
4915 16 Jul 18 olle 131     Wizard.showLoadingAnimation('Generating referral forms...', 'ref-gen-progress');
4915 16 Jul 18 olle 132     Wizard.asyncJsonRequest(url, istat.initializeStep2, 'POST', formData);
4915 16 Jul 18 olle 133 */
4915 16 Jul 18 olle 134   }
4915 16 Jul 18 olle 135
4915 16 Jul 18 olle 136   istat.initializeStep2 = function(response)
4915 16 Jul 18 olle 137   {
4915 16 Jul 18 olle 138     var frm = document.forms['meludi'];
4915 16 Jul 18 olle 139     frm.extractSourceItems.disabled = true;
4915 16 Jul 18 olle 140
4915 16 Jul 18 olle 141     Wizard.setCurrentStep(2);
4915 16 Jul 18 olle 142     Wizard.showFinalMessage(response.messages);
4915 16 Jul 18 olle 143
4915 16 Jul 18 olle 144     Doc.hide('gonext');
4915 16 Jul 18 olle 145     Doc.show('downloadformbatch2');
5069 01 Nov 18 olle 146     Doc.show('downloadffpesectionlabelfile');
5069 01 Nov 18 olle 147     Doc.show('downloadheglasslabelfile');
5127 21 Nov 18 olle 148     Doc.show('formsok');
4915 16 Jul 18 olle 149   
4915 16 Jul 18 olle 150     Doc.show('step-2');
4915 16 Jul 18 olle 151   }
4915 16 Jul 18 olle 152     
5213 09 Jan 19 olle 153   istat.initializeStep2a = function(response)
5213 09 Jan 19 olle 154   {
5213 09 Jan 19 olle 155     var frm = document.forms['meludi'];
5213 09 Jan 19 olle 156     frm.extractSourceItems.disabled = true;
5213 09 Jan 19 olle 157
5213 09 Jan 19 olle 158     Wizard.setCurrentStep(3);
5213 09 Jan 19 olle 159     Wizard.showFinalMessage(response.messages);
5213 09 Jan 19 olle 160
5213 09 Jan 19 olle 161     Doc.show('gorestart');
5213 09 Jan 19 olle 162     Doc.hide('gonext');
5213 09 Jan 19 olle 163     Doc.show('downloadformbatch2');
5213 09 Jan 19 olle 164     Doc.show('downloadffpesectionlabelfile');
5213 09 Jan 19 olle 165     Doc.show('downloadheglasslabelfile');
5213 09 Jan 19 olle 166   
5213 09 Jan 19 olle 167     Doc.show('step-3');
5213 09 Jan 19 olle 168   }
5213 09 Jan 19 olle 169     
4915 16 Jul 18 olle 170   istat.downloadFormBatch2 = function()
4915 16 Jul 18 olle 171   {
4915 16 Jul 18 olle 172     istat.downloadFormBatch(2);
4915 16 Jul 18 olle 173   }
4915 16 Jul 18 olle 174
4915 16 Jul 18 olle 175   istat.downloadFormBatch = function(batchType)
4915 16 Jul 18 olle 176   {
4915 16 Jul 18 olle 177     var frm = document.forms['meludi'];
4915 16 Jul 18 olle 178     var ffpeBlockList = istat.getSelectedItemsList();
4915 16 Jul 18 olle 179     var startItemName = ffpeBlockList[0].name;
4915 16 Jul 18 olle 180     var endItemName = ffpeBlockList[ffpeBlockList.length - 1].name;
4915 16 Jul 18 olle 181     var nofFfpeBlocks = ffpeBlockList.length;
5215 09 Jan 19 olle 182     var altFilename = 'FFPE_Section_Order_Form';
4915 16 Jul 18 olle 183
4915 16 Jul 18 olle 184     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4915 16 Jul 18 olle 185     url += '&cmd=DownloadFormBatchFile';
4915 16 Jul 18 olle 186     url += '&batchType='+batchType;
4915 16 Jul 18 olle 187     url += '&startitemname='+encodeURIComponent(startItemName);
4915 16 Jul 18 olle 188     url += '&enditemname='+encodeURIComponent(endItemName);
4915 16 Jul 18 olle 189     url += '&nofFfpeBlocks='+encodeURIComponent(nofFfpeBlocks);
5215 09 Jan 19 olle 190     url += '&altfilename='+encodeURIComponent(altFilename);
4915 16 Jul 18 olle 191     window.open(url);
4915 16 Jul 18 olle 192   }
4915 16 Jul 18 olle 193
5069 01 Nov 18 olle 194   istat.downloadFfpeSectionLabelFile = function()
5069 01 Nov 18 olle 195   {
5069 01 Nov 18 olle 196     var frm = document.forms['meludi'];
5069 01 Nov 18 olle 197     var ffpeBlockList = istat.getSelectedItemsList();
5069 01 Nov 18 olle 198     var preview = false;
5069 01 Nov 18 olle 199
5069 01 Nov 18 olle 200     var url = '../LabelGeneration.servlet?ID=' + App.getSessionId();
5069 01 Nov 18 olle 201     url += '&cmd=GetFfpeSectionLabelFile';
5069 01 Nov 18 olle 202     url += '&ffpeblocklist='+encodeURIComponent(JSON.stringify(ffpeBlockList));
5069 01 Nov 18 olle 203     url += '&preview=' + preview;
5069 01 Nov 18 olle 204     
5069 01 Nov 18 olle 205     if (preview) 
5069 01 Nov 18 olle 206     {
5069 01 Nov 18 olle 207       Doc.hide('previewWrapper');
5069 01 Nov 18 olle 208       url += '&preview=1';
5069 01 Nov 18 olle 209       
5069 01 Nov 18 olle 210       Wizard.showLoadingAnimation('Working...');
5069 01 Nov 18 olle 211       Doc.hide('navigation');
5069 01 Nov 18 olle 212       Wizard.asyncJsonRequest(url, istat.onPreviewLoaded);
5069 01 Nov 18 olle 213     }
5069 01 Nov 18 olle 214     else
5069 01 Nov 18 olle 215     {
5084 12 Nov 18 olle 216       //window.location = url;    
5084 12 Nov 18 olle 217       window.open(url);    
5069 01 Nov 18 olle 218     }
5069 01 Nov 18 olle 219   }
5069 01 Nov 18 olle 220
5069 01 Nov 18 olle 221   istat.downloadHeGlassLabelFile = function()
5069 01 Nov 18 olle 222   {
5069 01 Nov 18 olle 223     var frm = document.forms['meludi'];
5069 01 Nov 18 olle 224     var ffpeBlockList = istat.getSelectedItemsList();
5069 01 Nov 18 olle 225     var preview = false;
5069 01 Nov 18 olle 226
5069 01 Nov 18 olle 227     var url = '../LabelGeneration.servlet?ID=' + App.getSessionId();
5069 01 Nov 18 olle 228     url += '&cmd=GetHeGlassLabelFile';
5069 01 Nov 18 olle 229     url += '&ffpeblocklist='+encodeURIComponent(JSON.stringify(ffpeBlockList));
5069 01 Nov 18 olle 230     url += '&preview=' + preview;
5069 01 Nov 18 olle 231     
5069 01 Nov 18 olle 232     if (preview) 
5069 01 Nov 18 olle 233     {
5069 01 Nov 18 olle 234       Doc.hide('previewWrapper');
5069 01 Nov 18 olle 235       url += '&preview=1';
5069 01 Nov 18 olle 236       
5069 01 Nov 18 olle 237       Wizard.showLoadingAnimation('Working...');
5069 01 Nov 18 olle 238       Doc.hide('navigation');
5069 01 Nov 18 olle 239       Wizard.asyncJsonRequest(url, istat.onPreviewLoaded);
5069 01 Nov 18 olle 240     }
5069 01 Nov 18 olle 241     else
5069 01 Nov 18 olle 242     {
5084 12 Nov 18 olle 243       //window.location = url;    
5084 12 Nov 18 olle 244       window.open(url);    
5069 01 Nov 18 olle 245     }
5069 01 Nov 18 olle 246   }
5069 01 Nov 18 olle 247
5127 21 Nov 18 olle 248   istat.formsOk = function()
5127 21 Nov 18 olle 249   {
5127 21 Nov 18 olle 250     var frm = document.forms['meludi'];
5127 21 Nov 18 olle 251     var ffpeBlockList = istat.getSelectedItemsList();
5127 21 Nov 18 olle 252
5127 21 Nov 18 olle 253     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
5127 21 Nov 18 olle 254     url += '&cmd=RegisterFfpeSectionOrderFormsAsOk';
5127 21 Nov 18 olle 255     url += '&ffpeblocklist='+encodeURIComponent(JSON.stringify(ffpeBlockList));
5127 21 Nov 18 olle 256
5127 21 Nov 18 olle 257     Wizard.showLoadingAnimation('Registering forms as OK...', 'ref-gen-progress');
5213 09 Jan 19 olle 258     //Wizard.asyncJsonRequest(url, istat.initializeStep2);
5213 09 Jan 19 olle 259     Wizard.asyncJsonRequest(url, istat.initializeStep2a);
5127 21 Nov 18 olle 260   }
5127 21 Nov 18 olle 261
4915 16 Jul 18 olle 262   istat.getSelectedItemsList = function()
4915 16 Jul 18 olle 263   {
4915 16 Jul 18 olle 264     var frm = document.forms['meludi'];
4915 16 Jul 18 olle 265     
4915 16 Jul 18 olle 266     // Get number of selected extract source items
4915 16 Jul 18 olle 267     var numItems = 0;
4915 16 Jul 18 olle 268     var selItemsList = [];
4915 16 Jul 18 olle 269     for (var i = 0; i < frm.extractSourceItems.length; i++)
4915 16 Jul 18 olle 270     {
4915 16 Jul 18 olle 271       if (frm.extractSourceItems[i].selected)
4915 16 Jul 18 olle 272       {
4915 16 Jul 18 olle 273         if (frm.extractSourceItems[i].item != null)
4915 16 Jul 18 olle 274         {
4915 16 Jul 18 olle 275           selItemsList[numItems] = frm.extractSourceItems[i].item;
4915 16 Jul 18 olle 276           numItems++;
4915 16 Jul 18 olle 277         }
4915 16 Jul 18 olle 278       }
4915 16 Jul 18 olle 279     }
4915 16 Jul 18 olle 280     return selItemsList;
4915 16 Jul 18 olle 281   }
4915 16 Jul 18 olle 282
4915 16 Jul 18 olle 283   return istat;
4915 16 Jul 18 olle 284 }();
4915 16 Jul 18 olle 285
4915 16 Jul 18 olle 286 Doc.onLoad(Istat.initPage);
4915 16 Jul 18 olle 287