extensions/net.sf.basedb.reggie/trunk/resources/methylation/beta_start.js

Code
Comments
Other
Rev Date Author Line
6869 15 Nov 22 nicklas 1 var Methylation = function()
6869 15 Nov 22 nicklas 2 {
6869 15 Nov 22 nicklas 3   var meth = {};
6869 15 Nov 22 nicklas 4   var debug = 0;
6869 15 Nov 22 nicklas 5   var selectionIsValid = false;
6869 15 Nov 22 nicklas 6   var subtypeMethylation = null;
6869 15 Nov 22 nicklas 7   var annotationTypePipeline = null;
6869 15 Nov 22 nicklas 8   
6869 15 Nov 22 nicklas 9   var clusterIsValid = false;
6869 15 Nov 22 nicklas 10   var manuallySelected = [];
6869 15 Nov 22 nicklas 11   
6869 15 Nov 22 nicklas 12   // Page initialization
6869 15 Nov 22 nicklas 13   meth.initPage = function()
6869 15 Nov 22 nicklas 14   {
6869 15 Nov 22 nicklas 15     // Step 1
6869 15 Nov 22 nicklas 16     Buttons.addClickHandler('btnSelectMethylation', meth.selectMethylationItems);
6869 15 Nov 22 nicklas 17     Events.addEventHandler('methylationItems', 'base-selected', meth.setMethylationItemsCallback);
6869 15 Nov 22 nicklas 18     Events.addEventHandler('methylationItems', 'change', meth.methylationItemsOnChange);
6869 15 Nov 22 nicklas 19     Events.addEventHandler('step-1', 'wizard-validate', meth.validateStep1);
6869 15 Nov 22 nicklas 20
6869 15 Nov 22 nicklas 21     // Step 2
6869 15 Nov 22 nicklas 22     Events.addEventHandler('step-2', 'wizard-initialize', meth.initializeStep2);
6869 15 Nov 22 nicklas 23     Events.addEventHandler('step-2', 'wizard-validate', meth.validateStep2);
6869 15 Nov 22 nicklas 24     Events.addEventHandler('clusters', 'change', meth.clusterOnChange);
6869 15 Nov 22 nicklas 25     Events.addEventHandler('betaSoftware', 'change', meth.softwareOnChange);
6869 15 Nov 22 nicklas 26
6869 15 Nov 22 nicklas 27     // Navigation
6869 15 Nov 22 nicklas 28     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
6869 15 Nov 22 nicklas 29     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
6869 15 Nov 22 nicklas 30     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
6869 15 Nov 22 nicklas 31     Buttons.addClickHandler('goregister', Wizard.goRegister);
6869 15 Nov 22 nicklas 32     
6869 15 Nov 22 nicklas 33     // Final registration
6869 15 Nov 22 nicklas 34     Events.addEventHandler('wizard', 'wizard-submit', meth.submit);
6869 15 Nov 22 nicklas 35
6869 15 Nov 22 nicklas 36     Wizard.showLoadingAnimation('Loading bioassays...');
6869 15 Nov 22 nicklas 37     var url = '../Methylation.servlet?ID='+App.getSessionId();
6869 15 Nov 22 nicklas 38     url += '&cmd=GetMethylationItemsForBetaAnalysis';
6869 15 Nov 22 nicklas 39     Wizard.asyncJsonRequest(url, meth.initializeStep1);
6869 15 Nov 22 nicklas 40   }
6869 15 Nov 22 nicklas 41   
6869 15 Nov 22 nicklas 42   // --- Step 1 -----------------------------------
6869 15 Nov 22 nicklas 43   meth.initializeStep1 = function(response)
6869 15 Nov 22 nicklas 44   {
6869 15 Nov 22 nicklas 45     var methylationItems = response.methylationItems;
6869 15 Nov 22 nicklas 46     var frm = document.forms['reggie'];  
6869 15 Nov 22 nicklas 47
6869 15 Nov 22 nicklas 48     if (methylationItems != null && methylationItems.length > 0)
6869 15 Nov 22 nicklas 49     {
6869 15 Nov 22 nicklas 50       var firstChip = null;
6869 15 Nov 22 nicklas 51       for (var mNo=0; mNo < methylationItems.length; mNo++)
6869 15 Nov 22 nicklas 52       {
6869 15 Nov 22 nicklas 53         var m = methylationItems[mNo];
6869 15 Nov 22 nicklas 54         var beadChip = m.beadChip ? m.beadChip : null; 
6869 15 Nov 22 nicklas 55         if (firstChip == null && beadChip != null) firstChip = beadChip.name;
6869 15 Nov 22 nicklas 56         var option = meth.createListOption(mNo+1, m, m.DO_NOT_USE == null && beadChip != null && beadChip.name==firstChip)
6869 15 Nov 22 nicklas 57         frm.methylationItems.options[frm.methylationItems.length] = option;
6869 15 Nov 22 nicklas 58       }
6869 15 Nov 22 nicklas 59       Events.sendChangeEvent('methylationItems');
6869 15 Nov 22 nicklas 60     }
6869 15 Nov 22 nicklas 61     else
6869 15 Nov 22 nicklas 62     {
6869 15 Nov 22 nicklas 63       Wizard.setInputStatus('methylationItems', 'invalid', 'No new methylation items available for processing');
6869 15 Nov 22 nicklas 64     }
6869 15 Nov 22 nicklas 65     
6869 15 Nov 22 nicklas 66     Doc.show('step-1');
6869 15 Nov 22 nicklas 67     Doc.show('gonext');
6869 15 Nov 22 nicklas 68
6869 15 Nov 22 nicklas 69     frm.methylationItems.focus();
6869 15 Nov 22 nicklas 70   }
6869 15 Nov 22 nicklas 71   
6869 15 Nov 22 nicklas 72   meth.validateStep1 = function(event)
6869 15 Nov 22 nicklas 73   {
6869 15 Nov 22 nicklas 74     if (!selectionIsValid) event.preventDefault();
6869 15 Nov 22 nicklas 75   }
6869 15 Nov 22 nicklas 76   
6869 15 Nov 22 nicklas 77   meth.selectMethylationItems = function()
6869 15 Nov 22 nicklas 78   {
6869 15 Nov 22 nicklas 79     var frm = document.forms['reggie'];
6869 15 Nov 22 nicklas 80     if (frm.methylationItems.disabled) return;
6869 15 Nov 22 nicklas 81     
6869 15 Nov 22 nicklas 82     if (subtypeMethylation == null)
6869 15 Nov 22 nicklas 83     {
6869 15 Nov 22 nicklas 84       subtypeMethylation = Reggie.getSubtypeInfo('METHYLATION');
6869 15 Nov 22 nicklas 85     }
6869 15 Nov 22 nicklas 86     if (annotationTypePipeline == null)
6869 15 Nov 22 nicklas 87     {
6869 15 Nov 22 nicklas 88       annotationTypePipeline = Reggie.getAnnotationTypeInfo('PIPELINE');
6869 15 Nov 22 nicklas 89     }
6869 15 Nov 22 nicklas 90     
6869 15 Nov 22 nicklas 91     // Reset list
6869 15 Nov 22 nicklas 92     manuallySelected = [];
6869 15 Nov 22 nicklas 93     var url = '&resetTemporary=1';
6869 15 Nov 22 nicklas 94     url += '&tmpfilter:INT:itemSubtype='+subtypeMethylation.id;
6869 15 Nov 22 nicklas 95     url += '&tmpfilter:STRING:'+encodeURIComponent('#')+annotationTypePipeline.id+'='+encodeURIComponent('DNA/Methylation');
6869 15 Nov 22 nicklas 96
6869 15 Nov 22 nicklas 97     Dialogs.selectItem('DERIVEDBIOASSAY', 'methylationItems', 1, url);
6869 15 Nov 22 nicklas 98   }
6869 15 Nov 22 nicklas 99
6869 15 Nov 22 nicklas 100   meth.setMethylationItemsCallback = function(event)
6869 15 Nov 22 nicklas 101   {
6869 15 Nov 22 nicklas 102     var m = event.detail;
6869 15 Nov 22 nicklas 103     var opt = Reggie.getListOption('methylationItems', m.id);
6869 15 Nov 22 nicklas 104     if (opt)
6869 15 Nov 22 nicklas 105     {
6869 15 Nov 22 nicklas 106       opt.selected = true;
6869 15 Nov 22 nicklas 107     }
6869 15 Nov 22 nicklas 108     else
6869 15 Nov 22 nicklas 109     {
6869 15 Nov 22 nicklas 110       manuallySelected[manuallySelected.length] = m.id;
6869 15 Nov 22 nicklas 111     }
6869 15 Nov 22 nicklas 112     
6869 15 Nov 22 nicklas 113     if (m.remaining == 0 && manuallySelected.length > 0)
6869 15 Nov 22 nicklas 114     {
6869 15 Nov 22 nicklas 115       var url = '../Methylation.servlet?ID='+App.getSessionId();
6869 15 Nov 22 nicklas 116       url += '&cmd=GetMethylationItemsForBetaAnalysis';
6869 15 Nov 22 nicklas 117       url += '&items='+manuallySelected.join(',');
6869 15 Nov 22 nicklas 118       Wizard.showLoadingAnimation('Loading bioassays...');
6869 15 Nov 22 nicklas 119       Wizard.asyncJsonRequest(url, meth.manuallySelected);
6869 15 Nov 22 nicklas 120     }
6869 15 Nov 22 nicklas 121     else
6869 15 Nov 22 nicklas 122     {
6869 15 Nov 22 nicklas 123       Events.sendChangeEvent('methylationItems');
6869 15 Nov 22 nicklas 124     }
6869 15 Nov 22 nicklas 125   }
6869 15 Nov 22 nicklas 126
6869 15 Nov 22 nicklas 127   meth.manuallySelected = function(response)
6869 15 Nov 22 nicklas 128   {
6869 15 Nov 22 nicklas 129     var methylationItems = response.methylationItems;
6869 15 Nov 22 nicklas 130     var frm = document.forms['reggie'];  
6869 15 Nov 22 nicklas 131
6869 15 Nov 22 nicklas 132     if (methylationItems != null && methylationItems.length > 0)
6869 15 Nov 22 nicklas 133     {
6869 15 Nov 22 nicklas 134       var offset = frm.methylationItems.length+1;
6869 15 Nov 22 nicklas 135       for (var mNo=0; mNo < methylationItems.length; mNo++)
6869 15 Nov 22 nicklas 136       {
6869 15 Nov 22 nicklas 137         var m = methylationItems[mNo];
6869 15 Nov 22 nicklas 138         var option = meth.createListOption(mNo+offset, m, m.DO_NOT_USE == null);
6869 15 Nov 22 nicklas 139         frm.methylationItems.options[frm.methylationItems.length] = option;
6869 15 Nov 22 nicklas 140       }
6869 15 Nov 22 nicklas 141       Events.sendChangeEvent('methylationItems');
6869 15 Nov 22 nicklas 142     }
6869 15 Nov 22 nicklas 143   }
6869 15 Nov 22 nicklas 144
6869 15 Nov 22 nicklas 145   meth.createListOption = function(index, methylationItem, selected)
6869 15 Nov 22 nicklas 146   {
6869 15 Nov 22 nicklas 147     var dna = methylationItem.dna;
6869 15 Nov 22 nicklas 148     var chip = methylationItem.beadChip;
6869 15 Nov 22 nicklas 149     
6869 15 Nov 22 nicklas 150     var tooltip = null;
6869 15 Nov 22 nicklas 151     var name = (index) + ': '+methylationItem.name;
6869 15 Nov 22 nicklas 152     name += ' - '+chip.BeadChipId+'_'+dna.BeadChipPosition;
6869 15 Nov 22 nicklas 153     
6869 15 Nov 22 nicklas 154     if (methylationItem.DO_NOT_USE)
6869 15 Nov 22 nicklas 155     {
6869 15 Nov 22 nicklas 156       name += ' [DoNotUse]';
6869 15 Nov 22 nicklas 157       tooltip = 'DoNotUse-'+Strings.encodeTags(methylationItem.DO_NOT_USE+': '+methylationItem.DO_NOT_USE_COMMENT);
6869 15 Nov 22 nicklas 158     }
6869 15 Nov 22 nicklas 159     else if (methylationItem.AutoProcess == 'ReProcess')
6869 15 Nov 22 nicklas 160     {
6869 15 Nov 22 nicklas 161       name += ' [R]';
6869 15 Nov 22 nicklas 162     }
6869 15 Nov 22 nicklas 163     
6869 15 Nov 22 nicklas 164     var option = new Option(name, methylationItem.id, false, selected);
6869 15 Nov 22 nicklas 165     if (tooltip) option.title = tooltip;
6869 15 Nov 22 nicklas 166     option.methylationItem = methylationItem;
6869 15 Nov 22 nicklas 167     return option;
6869 15 Nov 22 nicklas 168   }
6869 15 Nov 22 nicklas 169   
6869 15 Nov 22 nicklas 170   meth.methylationItemsOnChange = function()
6869 15 Nov 22 nicklas 171   {
6869 15 Nov 22 nicklas 172     var frm = document.forms['reggie'];
6869 15 Nov 22 nicklas 173     selectionIsValid = false;
6869 15 Nov 22 nicklas 174     var numSelected = 0;
6869 15 Nov 22 nicklas 175     var numDoNotUse = 0;
6869 15 Nov 22 nicklas 176     var invalidPipeline = null;
6869 15 Nov 22 nicklas 177     Wizard.setInputStatus('methylationItems');
6869 15 Nov 22 nicklas 178     Wizard.hideGoNextConfirmation();
6869 15 Nov 22 nicklas 179     
6869 15 Nov 22 nicklas 180     for (var mNo = 0; mNo < frm.methylationItems.length; mNo++)
6869 15 Nov 22 nicklas 181     {
6869 15 Nov 22 nicklas 182       if (frm.methylationItems[mNo].selected) 
6869 15 Nov 22 nicklas 183       {
6869 15 Nov 22 nicklas 184         numSelected++;
6869 15 Nov 22 nicklas 185         var m = frm.methylationItems[mNo].methylationItem;
6869 15 Nov 22 nicklas 186         if (m.DO_NOT_USE) numDoNotUse++;
6869 15 Nov 22 nicklas 187         if (m.pipeline && m.pipeline != 'DNA/Methylation')
6869 15 Nov 22 nicklas 188         {
6869 15 Nov 22 nicklas 189           invalidPipeline = Strings.encodeTags(m.name+' ('+m.pipeline)+') is not intended for the DNA/Methylation pipeline.';
6869 15 Nov 22 nicklas 190         }
6869 15 Nov 22 nicklas 191       }
6869 15 Nov 22 nicklas 192     }
6869 15 Nov 22 nicklas 193     
6869 15 Nov 22 nicklas 194     if (numSelected == 0)
6869 15 Nov 22 nicklas 195     {
6869 15 Nov 22 nicklas 196       Wizard.setInputStatus('methylationItems', 'invalid', 'Select at least one item');
6869 15 Nov 22 nicklas 197       return;
6869 15 Nov 22 nicklas 198     }
6869 15 Nov 22 nicklas 199     if (invalidPipeline) 
6869 15 Nov 22 nicklas 200     {
6869 15 Nov 22 nicklas 201       Wizard.setInputStatus('methylationItems', 'invalid', invalidPipeline);
6869 15 Nov 22 nicklas 202       return;
6869 15 Nov 22 nicklas 203     }
6869 15 Nov 22 nicklas 204     selectionIsValid = true;
6869 15 Nov 22 nicklas 205     
6869 15 Nov 22 nicklas 206     if (numDoNotUse > 0)
6869 15 Nov 22 nicklas 207     {
6869 15 Nov 22 nicklas 208       Wizard.setInputStatus('methylationItems', 'warning', numDoNotUse + ' selected items marked as DoNotUse');
6869 15 Nov 22 nicklas 209       Wizard.showGoNextConfirmation(true, 'Confirm ' + numDoNotUse + ' items marked as DoNotUse');
6869 15 Nov 22 nicklas 210     }
6869 15 Nov 22 nicklas 211     else
6869 15 Nov 22 nicklas 212     {
6869 15 Nov 22 nicklas 213       Wizard.setInputStatus('methylationItems', 'valid');
6869 15 Nov 22 nicklas 214     }
6869 15 Nov 22 nicklas 215   }
6869 15 Nov 22 nicklas 216
6869 15 Nov 22 nicklas 217   // --- Step 2 -----------------------------------
6869 15 Nov 22 nicklas 218   meth.initializeStep2 = function()
6869 15 Nov 22 nicklas 219   {
6869 15 Nov 22 nicklas 220     Wizard.setCurrentStep(2);
6869 15 Nov 22 nicklas 221     
6869 15 Nov 22 nicklas 222     // Check debug by default if debug is set or not on a secure server (=production server)
6869 15 Nov 22 nicklas 223     var frm = document.forms['reggie'];
6869 15 Nov 22 nicklas 224     frm.debug.checked = debug || location.protocol != 'https:';
6869 15 Nov 22 nicklas 225
6869 15 Nov 22 nicklas 226     Reggie.loadSoftware('METHYLATION_SOFTWARE', 'betaSoftware', 'PARAMETER_SET');
6869 15 Nov 22 nicklas 227     
6869 15 Nov 22 nicklas 228     // Load clusters
6869 15 Nov 22 nicklas 229     var url = '../OpenGrid.servlet?ID='+App.getSessionId() + '&cmd=GetHostInfo&config=methylation-beta';
6869 15 Nov 22 nicklas 230     Doc.addClass('clusters', 'list-loading');
6869 15 Nov 22 nicklas 231     frm.clusters[0] = new Option('loading...');
6869 15 Nov 22 nicklas 232     Wizard.asyncJsonRequest(url, meth.clustersLoaded);
6869 15 Nov 22 nicklas 233
6869 15 Nov 22 nicklas 234     Doc.show('goregister');
6869 15 Nov 22 nicklas 235     Doc.show('gocancel');
6869 15 Nov 22 nicklas 236   }
6869 15 Nov 22 nicklas 237   
6869 15 Nov 22 nicklas 238   meth.validateStep2 = function(event)
6869 15 Nov 22 nicklas 239   {
6869 15 Nov 22 nicklas 240     if (!clusterIsValid) event.preventDefault();
6869 15 Nov 22 nicklas 241   }
6869 15 Nov 22 nicklas 242   
6869 15 Nov 22 nicklas 243   meth.clustersLoaded = function(response)
6869 15 Nov 22 nicklas 244   {
6869 15 Nov 22 nicklas 245     Doc.removeClass('clusters', 'list-loading');
6869 15 Nov 22 nicklas 246     var frm = document.forms['reggie'];
6869 15 Nov 22 nicklas 247     var clusters = response.hosts;
6869 15 Nov 22 nicklas 248     frm.clusters.length = 0;
6869 15 Nov 22 nicklas 249     for (var i = 0; i < clusters.length; i++)
6869 15 Nov 22 nicklas 250     {
6869 15 Nov 22 nicklas 251       var cl = clusters[i];
6869 15 Nov 22 nicklas 252       var option = new Option(cl.connection.name, cl.id);
6869 15 Nov 22 nicklas 253       option.cluster = cl;
6869 15 Nov 22 nicklas 254       frm.clusters[frm.clusters.length] = option;
6869 15 Nov 22 nicklas 255       Wizard.setInputStatus('clusters', 'valid');
6869 15 Nov 22 nicklas 256       clusterIsValid = true;
6869 15 Nov 22 nicklas 257     }
6869 15 Nov 22 nicklas 258     if (frm.clusters.length == 0)
6869 15 Nov 22 nicklas 259     {
6869 15 Nov 22 nicklas 260       Wizard.setInputStatus('clusters', 'invalid', 'No available clusters');
6869 15 Nov 22 nicklas 261       clusterIsValid = false;
6869 15 Nov 22 nicklas 262     }
6869 15 Nov 22 nicklas 263     else
6869 15 Nov 22 nicklas 264     {
6869 15 Nov 22 nicklas 265       meth.clusterOnChange();
6869 15 Nov 22 nicklas 266     }
6869 15 Nov 22 nicklas 267   }
6869 15 Nov 22 nicklas 268   
6869 15 Nov 22 nicklas 269   meth.softwareOnChange = function(event)
6869 15 Nov 22 nicklas 270   {
6869 15 Nov 22 nicklas 271     var target = event.currentTarget;
6869 15 Nov 22 nicklas 272     var item = target[target.selectedIndex].item;
6869 15 Nov 22 nicklas 273     if (!item) item = {};
6869 15 Nov 22 nicklas 274     
6869 15 Nov 22 nicklas 275     Doc.element(target.id+'.parameterSet').innerHTML = Strings.encodeTags(item.ParameterSet || 'default');
6869 15 Nov 22 nicklas 276     Doc.element(target.id+'.description').innerHTML = Strings.encodeTags(item.description);
6869 15 Nov 22 nicklas 277     Wizard.setInputStatus(target.id, 'valid');
6869 15 Nov 22 nicklas 278
6869 15 Nov 22 nicklas 279     if (item.ParameterSet)
6869 15 Nov 22 nicklas 280     {
6869 15 Nov 22 nicklas 281       var url = '../Install.servlet?ID='+App.getSessionId();
6869 15 Nov 22 nicklas 282       url += '&cmd=GetParameterSetInfo';
6869 15 Nov 22 nicklas 283       url += '&parameterSet='+encodeURIComponent(item.ParameterSet);
6869 15 Nov 22 nicklas 284       url += '&targetId='+target.id;
6869 15 Nov 22 nicklas 285       Wizard.asyncJsonRequest(url, meth.parameterSetInfoLoaded);
6869 15 Nov 22 nicklas 286     }
6869 15 Nov 22 nicklas 287   }
6869 15 Nov 22 nicklas 288   
6869 15 Nov 22 nicklas 289   meth.parameterSetInfoLoaded = function(response)
6869 15 Nov 22 nicklas 290   {
6869 15 Nov 22 nicklas 291     if (!response.parameters || response.parameters.length == 0)
6869 15 Nov 22 nicklas 292     {
6869 15 Nov 22 nicklas 293       Wizard.setInputStatus(response.targetId, 'warning', 'Can\'t find \'' + Strings.encodeTags(response.parameterSet) + '\' parameter set in reggie-config.xml');
6869 15 Nov 22 nicklas 294     }
6869 15 Nov 22 nicklas 295   }
6869 15 Nov 22 nicklas 296   
6869 15 Nov 22 nicklas 297   meth.clusterOnChange = function()
6869 15 Nov 22 nicklas 298   {
6869 15 Nov 22 nicklas 299     var frm = document.forms['reggie'];
6869 15 Nov 22 nicklas 300     var cluster = frm.clusters[frm.clusters.selectedIndex].cluster;
6869 15 Nov 22 nicklas 301     if (cluster.priorities && cluster.priorities.length > 0)
6869 15 Nov 22 nicklas 302     {
6869 15 Nov 22 nicklas 303       frm.priority.length = 0;
6869 15 Nov 22 nicklas 304       for (var pNo = 0; pNo < cluster.priorities.length; pNo++)
6869 15 Nov 22 nicklas 305       {
6869 15 Nov 22 nicklas 306         var p = cluster.priorities[pNo];
6869 15 Nov 22 nicklas 307         frm.priority[frm.priority.length] = new Option(p.name + ' ('+p.value+')', p.value, p['default'], p['default']);
6869 15 Nov 22 nicklas 308       }
6869 15 Nov 22 nicklas 309       Doc.show('job-priority');
6869 15 Nov 22 nicklas 310     }
6869 15 Nov 22 nicklas 311     else
6869 15 Nov 22 nicklas 312     {
6869 15 Nov 22 nicklas 313       Doc.hide('job-priority');
6869 15 Nov 22 nicklas 314     }
6980 17 Jan 23 nicklas 315     if (cluster.partitions && cluster.partitions.length > 0)
6980 17 Jan 23 nicklas 316     {
6980 17 Jan 23 nicklas 317       frm.partition.length = 0;
6980 17 Jan 23 nicklas 318       for (var pNo = 0; pNo < cluster.partitions.length; pNo++)
6980 17 Jan 23 nicklas 319       {
6980 17 Jan 23 nicklas 320         var p = cluster.partitions[pNo];
6980 17 Jan 23 nicklas 321         var title = p.name;
6980 17 Jan 23 nicklas 322         if (p.description) title += ' ('+p.description+')';
6980 17 Jan 23 nicklas 323         frm.partition[frm.partition.length] = new Option(title, p.value, p['default'], p['default']);
6980 17 Jan 23 nicklas 324       }
6980 17 Jan 23 nicklas 325       Doc.show('job-partition');
6980 17 Jan 23 nicklas 326     }
6980 17 Jan 23 nicklas 327     else
6980 17 Jan 23 nicklas 328     {
6980 17 Jan 23 nicklas 329       Doc.hide('job-partition');
6980 17 Jan 23 nicklas 330     }
6869 15 Nov 22 nicklas 331   }
6869 15 Nov 22 nicklas 332
6869 15 Nov 22 nicklas 333   meth.submit = function()
6869 15 Nov 22 nicklas 334   {
6869 15 Nov 22 nicklas 335     var frm = document.forms['reggie'];
6869 15 Nov 22 nicklas 336       
6869 15 Nov 22 nicklas 337     var submitInfo = {};
6869 15 Nov 22 nicklas 338     submitInfo.betaSoftware = parseInt(frm.betaSoftware.value);
6869 15 Nov 22 nicklas 339     submitInfo.cluster = frm.clusters.value;
6869 15 Nov 22 nicklas 340     if (frm.priority.selectedIndex >= 0)
6869 15 Nov 22 nicklas 341     {
6869 15 Nov 22 nicklas 342       submitInfo.priority = parseInt(frm.priority.value);
6869 15 Nov 22 nicklas 343     }
6980 17 Jan 23 nicklas 344     if (frm.partition.selectedIndex >= 0)
6980 17 Jan 23 nicklas 345     {
6980 17 Jan 23 nicklas 346       submitInfo.partition = frm.partition.value;
6980 17 Jan 23 nicklas 347     }
6869 15 Nov 22 nicklas 348     submitInfo.debug = frm.debug.checked;
6869 15 Nov 22 nicklas 349     submitInfo.autoConfirm = frm.autoConfirm.checked;
6869 15 Nov 22 nicklas 350       
6869 15 Nov 22 nicklas 351     var methylationItems = [];
6869 15 Nov 22 nicklas 352     submitInfo.methylationItems = methylationItems;
6869 15 Nov 22 nicklas 353       
6869 15 Nov 22 nicklas 354     for (var mNo = 0; mNo < frm.methylationItems.length; mNo++)
6869 15 Nov 22 nicklas 355     {
6869 15 Nov 22 nicklas 356       if (frm.methylationItems[mNo].selected) 
6869 15 Nov 22 nicklas 357       {
6869 15 Nov 22 nicklas 358         var m = {};
6869 15 Nov 22 nicklas 359         m.id = frm.methylationItems[mNo].methylationItem.id;
6869 15 Nov 22 nicklas 360         methylationItems[methylationItems.length] = m;
6869 15 Nov 22 nicklas 361       }
6869 15 Nov 22 nicklas 362     }
6869 15 Nov 22 nicklas 363
6869 15 Nov 22 nicklas 364     var url = '../Methylation.servlet?ID='+App.getSessionId();
6869 15 Nov 22 nicklas 365     url += '&cmd=StartBetaAnalysis';
6869 15 Nov 22 nicklas 366
6869 15 Nov 22 nicklas 367     Wizard.showLoadingAnimation('Performing registration...');
6869 15 Nov 22 nicklas 368     Wizard.asyncJsonRequest(url, meth.submissionResults, 'POST', JSON.stringify(submitInfo));
6869 15 Nov 22 nicklas 369   }
6869 15 Nov 22 nicklas 370   
6869 15 Nov 22 nicklas 371   meth.submissionResults = function(response)
6869 15 Nov 22 nicklas 372   {
6869 15 Nov 22 nicklas 373     Wizard.showFinalMessage(response.messages);
6869 15 Nov 22 nicklas 374     Doc.show('gorestart');
6869 15 Nov 22 nicklas 375   }
6869 15 Nov 22 nicklas 376
6869 15 Nov 22 nicklas 377   return meth;
6869 15 Nov 22 nicklas 378 }();
6869 15 Nov 22 nicklas 379
6869 15 Nov 22 nicklas 380 Doc.onLoad(Methylation.initPage);
6869 15 Nov 22 nicklas 381