extensions/net.sf.basedb.reggie/trunk/resources/mipsanalysis/align_start.js

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