e57edf093bd442bff0b0f42afe6daa7be76954f0 larrym Sat Jul 30 20:00:59 2011 -0700 add and use hgTracks.cgiVersion diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index b9fea28..31ffa55 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -2561,48 +2561,52 @@ hideLoadingImage(this.loadingId); } if(imageV2 && this.id && this.cmd && this.cmd != 'wholeImage' && this.cmd != 'selectWholeGene') { // Extract <TR id='tr_ID'>...</TR> and update appropriate row in imgTbl; // this updates src in img_left_ID, img_center_ID and img_data_ID and map in map_data_ID var id = this.id; if(updateTrackImgForId(response, id)) { afterImgTblReload(); } else { showWarning("Couldn't parse out new image for id: " + id); //alert("Couldn't parse out new image for id: " + id+"BR"+response); // Very helpful } } else { if(imageV2) { // Implement in-place updating of hgTracks image - // + setPositionByCoordinates(json.chromName, json.winStart + 1, json.winEnd); + $("input[name='c']").val(json.chromName); + $("input[name='l']").val(json.winStart); + $("input[name='r']").val(json.winEnd); + if(json.cgiVersion != hgTracks.cgiVersion) { + // Must reload whole page because of a new version on the server; this should happen very rarely. + // Note that we have already updated position based on the user's action. + jQuery('body').css('cursor', 'wait'); + document.TrackHeaderForm.submit(); + } else { // We update rows one at a time (updating the whole imgTable at one time doesn't work in IE). for (id in hgTracks.trackDb) { if(!updateTrackImgForId(response, id)) { showWarning("Couldn't parse out new image for id: " + id); //alert("Couldn't parse out new image for id: " + id+"BR"+response); // Very helpful } } - if(json != undefined) { hgTracks = json; - $("input[name='c']").val(json.chromName); - $("input[name='l']").val(json.winStart); - $("input[name='r']").val(json.winEnd); - } - setPositionByCoordinates(hgTracks.chromName, hgTracks.winStart + 1, hgTracks.winEnd); originalPosition = undefined; initVars(); afterImgTblReload(); + } } else { a= /<IMG([^>]+SRC[^>]+id='trackMap[^>]*)>/.exec(response); // Deal with a is null if(a[1]) { var b = /WIDTH\s*=\s*['"]?(\d+)['"]?/.exec(a[1]); var width = b[1]; b = /HEIGHT\s*=\s*['"]?(\d+)['"]?/.exec(a[1]); var height = b[1]; b = /SRC\s*=\s*"([^")]+)"/.exec(a[1]); var src = b[1]; $('#trackMap').attr('src', src); var obj = imgAreaSelect.data('imgAreaSelect'); if(width) { trackImg.attr('width', width); }