diff --git a/.hgignore b/.hgignore index 4f400848685..fe8b760f370 100644 --- a/.hgignore +++ b/.hgignore @@ -38,3 +38,9 @@ run_functional_tests.html # Chrom len files *.len + +# Misc +*.orig +.DS_Store +*.rej + diff --git a/static/june_2007_style/blue/trackster.css b/static/june_2007_style/blue/trackster.css index 948a0b663f4..3825591e443 100644 --- a/static/june_2007_style/blue/trackster.css +++ b/static/june_2007_style/blue/trackster.css @@ -1,125 +1,23 @@ -.viewport-container { - overflow-x: hidden; - overflow-y: auto; -} - -/*canvas{ - border-left: 1px solid green; - border-right: 1px solid red; } /* debugging */ -.nav { - padding: 0 0; - color:#333;font-weight:bold; -} - -.nav-controls { - text-align: center; - background:#cccccc; - background-image:url(style/panel_header_bg.png); - background-position:top center; - background-repeat:repeat-x; - padding: 2px 0; -} -.nav-controls input { - margin: 0 5px; -} -.nav-controls a { - padding: 0 0.4em; -} - -.overview { - width: 100%; - margin: 0px; - color: white; - margin-top: -6px; - margin-bottom: -4px; -} - -.overview-viewport { - position: relative; - height: 14px; -/* border-top: solid #666 1px;*/ -/* border-bottom: solid #aaa 1px;*/ - background: white; - border-top: solid gray 1px; - border-bottom: solid gray 1px; - margin: 5px 0; -} -.overview-box { - position: absolute; - margin-top: 0px; - height: 14px; - background: #ddd url(images/visualization/draggable_horizontal.png) center center no-repeat; - /*border-style: outset;*/ -} - -.viewport { -/* overflow-x: hidden;*/ - background-color: #fff; -/* overflow: scroll;*/ -/* border-bottom: 2px solid black;*/ -} - -.viewport-canvas { - width: 100%; - height: 100px; -} - -.yaxislabel { - color: #777; -} -/* Line track needs borders to show range */ -.line-track .track-content { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; -} - -.track { - /* border-top: solid #DDDDDD 1px; */ - /* border-bottom: solid #DDDDDD 1px; */ - background: white; -} - -.track-header { - text-align: center; - padding: 4px; - color: #666; -} - -.track-content { - overflow: hidden; - text-align: center; -} - -.track.error { - background-color: #ECB4AF; -} -.track.nodata { - background-color: #ddd; -} - -.loading { - min-height: 100px; -} - -.label-track { - /* font-weight: bold; */ - /* font-size: 10px; */ -} -.label-track .label { - border-left: solid #999 1px; - padding: 1px; - display: inline-block; -} -.right-float { - float: right; - margin-left: 5px; -} - -.top-labeltrack { - border-bottom: solid #999 1px; -} - -.nav-labeltrack { - border-top: solid #999 1px; - border-bottom: solid #999 1px; -} +.viewport-container{overflow-x:hidden;overflow-y:auto;} +.nav{padding:0 0;color:#333;font-weight:bold;} +.nav-controls{text-align:center;background:#cccccc;background-image:url(panel_header_bg.png);background-position:top center;background-repeat:repeat-x;padding:2px 0;} +.nav-controls input{margin:0 5px;} +.nav-controls a{padding:0 0.4em;} +.overview{width:100%;margin:0px;color:white;margin-top:-6px;margin-bottom:-4px;} +.overview-viewport{position:relative;height:14px;background:white;border-top:solid gray 1px;border-bottom:solid gray 1px;margin:5px 0;} +.overview-box{position:absolute;margin-top:0px;height:14px;background:#ddd url(../images/visualization/draggable_horizontal.png) center center no-repeat;} +.viewport{background-color:#fff;} +.viewport-canvas{width:100%;height:100px;} +.yaxislabel{color:#777;} +.line-track .track-content{border-top:1px solid #ddd;border-bottom:1px solid #ddd;} +.track{background:white;} +.track-header{text-align:center;padding:4px;color:#666;} +.track-content{overflow:hidden;text-align:center;} +.track.error{background-color:#ECB4AF;} +.track.nodata{background-color:#ddd;} +.loading{min-height:100px;} +.label-track{} +.label-track .label{border-left:solid #999 1px;padding:1px;display:inline-block;} +.right-float{float:right;margin-left:5px;} +.top-labeltrack{border-bottom:solid #999 1px;} +.nav-labeltrack{border-top:solid #999 1px;border-bottom:solid #999 1px;} diff --git a/static/scripts/packed/trackster.js b/static/scripts/packed/trackster.js index 23cbeb8ee2e..7fc59ec4540 100644 --- a/static/scripts/packed/trackster.js +++ b/static/scripts/packed/trackster.js @@ -1 +1 @@ -var DENSITY=200,FEATURE_LEVELS=10,DATA_ERROR="There was an error in indexing this dataset. ",DATA_NOCONVERTER="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",DATA_NONE="No data for this chrom/contig.",DATA_PENDING="Currently indexing... please wait",DATA_LOADING="Loading data...",CACHED_TILES_FEATURE=10,CACHED_TILES_LINE=30,CACHED_DATA=5,CONTEXT=$("").get(0).getContext("2d"),PX_PER_CHAR=CONTEXT.measureText("A").width,RIGHT_STRAND,LEFT_STRAND;var right_img=new Image();right_img.src="/static/images/visualization/strand_right.png";right_img.onload=function(){RIGHT_STRAND=CONTEXT.createPattern(right_img,"repeat")};var left_img=new Image();left_img.src="/static/images/visualization/strand_left.png";left_img.onload=function(){LEFT_STRAND=CONTEXT.createPattern(left_img,"repeat")};var right_img_inv=new Image();right_img_inv.src="/static/images/visualization/strand_right_inv.png";right_img_inv.onload=function(){RIGHT_STRAND_INV=CONTEXT.createPattern(right_img_inv,"repeat")};var left_img_inv=new Image();left_img_inv.src="/static/images/visualization/strand_left_inv.png";left_img_inv.onload=function(){LEFT_STRAND_INV=CONTEXT.createPattern(left_img_inv,"repeat")};var Cache=function(a){this.num_elements=a;this.clear()};$.extend(Cache.prototype,{get:function(b){var a=this.key_ary.indexOf(b);if(a!=-1){this.key_ary.splice(a,1);this.key_ary.push(b)}return this.obj_cache[b]},set:function(b,c){if(!this.obj_cache[b]){if(this.key_ary.length>=this.num_elements){var a=this.key_ary.shift();delete this.obj_cache[a]}this.key_ary.push(b)}this.obj_cache[b]=c;return c},clear:function(){this.obj_cache={};this.key_ary=[]}});var View=function(a,c,e,d,b){this.container=a;this.vis_id=d;this.dbkey=b;this.title=e;this.chrom=c;this.tracks=[];this.label_tracks=[];this.max_low=0;this.max_high=0;this.track_id_counter=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.init();this.reset()};$.extend(View.prototype,{init:function(){var c=this.container,a=this;this.content_div=$("
").addClass("content").css("position","relative").appendTo(c);this.top_labeltrack=$("").addClass("top-labeltrack").appendTo(this.content_div);this.viewport_container=$("").addClass("viewport-container").addClass("viewport-container").appendTo(this.content_div);this.viewport=$("").addClass("viewport").appendTo(this.viewport_container);this.nav_container=$("").addClass("nav-container").appendTo(c);this.nav_labeltrack=$("").addClass("nav-labeltrack").appendTo(this.nav_container);this.nav=$("").addClass("nav").appendTo(this.nav_container);this.overview=$("").addClass("overview").appendTo(this.nav);this.overview_viewport=$("").addClass("overview-viewport").appendTo(this.overview);this.overview_box=$("").addClass("overview-box").appendTo(this.overview_viewport);this.nav_controls=$("").addClass("nav-controls").appendTo(this.nav);this.chrom_form=$("").attr("action",function(){void (0)}).appendTo(this.nav_controls);this.chrom_select=$("").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("").appendTo(this.chrom_form);this.low_input=$("").addClass("low").css("width","10em").appendTo(this.chrom_form);$("").text(" - ").appendTo(this.chrom_form);this.high_input=$("").addClass("high").css("width","10em").appendTo(this.chrom_form);this.hidden_input=$("").attr("type","hidden").val(this.vis_id).appendTo(this.chrom_form);this.zi_link=$("").click(function(){a.zoom_in();a.redraw()}).html('
').appendTo(this.chrom_form);this.zo_link=$("").click(function(){a.zoom_out();a.redraw()}).html('
').appendTo(this.chrom_form);var b=(this.vis_id!==undefined?{vis_id:this.vis_id}:{dbkey:this.dbkey});$.ajax({url:chrom_url,data:b,dataType:"json",success:function(d){if(d.reference){a.add_label_track(new ReferenceTrack(a))}a.chrom_data=d.chrom_info;var f='';for(i in a.chrom_data){var e=a.chrom_data[i]["chrom"];f+='"}a.chrom_select.html(f);a.chrom_select.bind("change",function(){a.chrom=a.chrom_select.val();var h=$.grep(a.chrom_data,function(k,l){return k.chrom===a.chrom})[0];a.max_high=h.len;a.reset();a.redraw(true);for(var j in a.tracks){var g=a.tracks[j];if(g.init){g.init()}}a.redraw()})},error:function(){alert("Could not load chroms for this dbkey:",a.dbkey)}});this.content_div.bind("mousewheel",function(d,f){if(Math.abs(f)<0.5){return}if(f>0){a.zoom_in(d.pageX,this.viewport_container)}else{a.zoom_out()}d.preventDefault()});this.content_div.bind("dblclick",function(d){a.zoom_in(d.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(d){this.current_x=d.offsetX}).bind("drag",function(d){var g=d.offsetX-this.current_x;this.current_x=d.offsetX;var f=Math.round(g/a.viewport_container.width()*(a.high-a.low));a.move_delta(-2*f)});this.viewport_container.bind("dragstart",function(d){this.original_low=a.low;this.current_height=d.clientY;this.current_x=d.offsetX}).bind("drag",function(g){var d=$(this);var j=g.offsetX-this.current_x;var f=d.scrollTop()-(g.clientY-this.current_height);if(f"+d.message+"",{Close:hide_modal})});a.content_div.append(e)}}else{if(d==="no converter"){a.container_div.addClass("error");a.content_div.text(DATA_NOCONVERTER)}else{if(d.data!==undefined&&(d.data===null||d.data.length===0)){a.container_div.addClass("nodata");a.content_div.text(DATA_NONE)}else{if(d==="pending"){a.container_div.addClass("pending");a.content_div.text(DATA_PENDING);setTimeout(function(){a.init()},5000)}else{a.content_div.text("");a.content_div.css("height",a.height_px+"px");a.enabled=true;b(d);a.draw()}}}}})}else{a.container_div.addClass("nodata");a.content_div.text(DATA_NONE)}}});var TiledTrack=function(){this.left_offset=200};$.extend(TiledTrack.prototype,Track.prototype,{draw:function(){var j=this.view.low,e=this.view.high,f=e-j,d=this.view.resolution;var l=$(""),m=this.content_div.width()/f,h;this.content_div.children(":first").remove();this.content_div.append(l),this.max_height=0;var a=Math.floor(j/d/DENSITY);while((a*DENSITY*d)
').appendTo(this.chrom_form);this.zo_link=$("").click(function(){a.zoom_out();a.redraw()}).html('
').appendTo(this.chrom_form);$.ajax({url:chrom_url,data:(this.vis_id!==undefined?{vis_id:this.vis_id}:{dbkey:this.dbkey}),dataType:"json",success:function(c){if(c.reference){a.add_label_track(new ReferenceTrack(a))}a.chrom_data=c.chrom_info;var e='';for(i in a.chrom_data){var d=a.chrom_data[i]["chrom"];e+='"}a.chrom_select.html(e);a.chrom_select.bind("change",function(){a.chrom=a.chrom_select.val();var g=$.grep(a.chrom_data,function(j,k){return j.chrom===a.chrom})[0];a.max_high=g.len;a.reset();a.redraw(true);for(var h in a.tracks){var f=a.tracks[h];if(f.init){f.init()}}a.redraw()})},error:function(){alert("Could not load chroms for this dbkey:",a.dbkey)}});this.content_div.bind("mousewheel",function(c,d){if(Math.abs(d)<0.5){return}if(d>0){a.zoom_in(c.pageX,this.viewport_container)}else{a.zoom_out()}c.preventDefault()});this.content_div.bind("dblclick",function(c){a.zoom_in(c.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(c){this.current_x=c.offsetX}).bind("drag",function(c){var f=c.offsetX-this.current_x;this.current_x=c.offsetX;var d=Math.round(f/a.viewport_container.width()*(a.high-a.low));a.move_delta(-2*d)});this.viewport_container.bind("dragstart",function(c){this.original_low=a.low;this.current_height=c.clientY;this.current_x=c.offsetX}).bind("drag",function(f){var c=$(this);var h=f.offsetX-this.current_x;var d=c.scrollTop()-(f.clientY-this.current_height);if(d"+d.message+"",{Close:hide_modal})});a.content_div.append(e)}}else{if(d==="no converter"){a.container_div.addClass("error");a.content_div.text(DATA_NOCONVERTER)}else{if(d.data!==undefined&&(d.data===null||d.data.length===0)){a.container_div.addClass("nodata");a.content_div.text(DATA_NONE)}else{if(d==="pending"){a.container_div.addClass("pending");a.content_div.text(DATA_PENDING);setTimeout(function(){a.init()},5000)}else{a.content_div.text("");a.content_div.css("height",a.height_px+"px");a.enabled=true;b(d);a.draw()}}}}})}else{a.container_div.addClass("nodata");a.content_div.text(DATA_NONE)}}});var TiledTrack=function(){this.left_offset=200};$.extend(TiledTrack.prototype,Track.prototype,{draw:function(){var j=this.view.low,e=this.view.high,f=e-j,d=this.view.resolution;var l=$(""),m=this.content_div.width()/f,h;this.content_div.children(":first").remove();this.content_div.append(l),this.max_height=0;var a=Math.floor(j/d/DENSITY);while((a*DENSITY*d)
').appendTo(this.chrom_form);
this.zo_link = $("").click(function() { view.zoom_out(); view.redraw() }).html('
').appendTo(this.chrom_form);;
- var data_d = (this.vis_id !== undefined ? { vis_id: this.vis_id } : { dbkey: this.dbkey });
-
$.ajax({
url: chrom_url,
- data: data_d,
+ data: (this.vis_id !== undefined ? { vis_id: this.vis_id } : { dbkey: this.dbkey }),
dataType: "json",
success: function ( result ) {
if (result['reference']) {
diff --git a/templates/tracks/browser.mako b/templates/tracks/browser.mako
index 1a19e620355..d3a1fe4aa07 100644
--- a/templates/tracks/browser.mako
+++ b/templates/tracks/browser.mako
@@ -85,8 +85,8 @@ ${h.js( "galaxy.base", "galaxy.panels", "json2", "jquery", "jquery.event.drag",
%endfor
init();
%else:
- continue_fn = function() {
- view = new View( undefined, $("#new-title").val(), undefined, $("#new-dbkey").val() );
+ var continue_fn = function() {
+ view = new View( $("#center"), undefined, $("#new-title").val(), undefined, $("#new-dbkey").val() );
init();
hide_modal();
};
@@ -105,18 +105,20 @@ ${h.js( "galaxy.base", "galaxy.panels", "json2", "jquery", "jquery.event.drag",
});
%endif
- $(document).bind( "redraw", function( e ) {
+ $(document).bind( "redraw", function() {
view.redraw();
});
// To adjust the size of the viewport to fit the fixed-height footer
- var refresh = function( e ) {
- view.viewport_container.height( $(window).height() - 100 );
- view.nav_container.width( $("#center").width() );
- view.redraw();
+ var refresh = function() {
+ if (view !== undefined) {
+ view.viewport_container.height( $(window).height() - 100 );
+ view.nav_container.width( $("#center").width() );
+ view.redraw();
+ }
};
- $(window).bind( "resize", function(e) { refresh(e); } );
- $("#right-border").bind( "click dragend", function(e) { refresh(e); } );
+ $(window).bind( "resize", function() { refresh(); } );
+ $("#right-border").bind( "click dragend", function() { refresh(); } );
$(window).trigger( "resize" );
// Execute initializer for EDITOR specific javascript
@@ -154,9 +156,10 @@ ${h.js( "galaxy.base", "galaxy.panels", "json2", "jquery", "jquery.event.drag",
error: function() {},
success: function(track_data) {
var td = track_data,
- track_types = { "LineTrack": LineTrack, "FeatureTrack": FeatureTrack, "ReadTrack": ReadTrack };
-
- view.add_track(new track_types[track_data.track_type]( track_data.name, view, track_data.dataset_id, track_data.prefs) );
+ track_types = { "LineTrack": LineTrack, "FeatureTrack": FeatureTrack, "ReadTrack": ReadTrack },
+ new_track = new track_types[track_data.track_type]( track_data.name, view, track_data.dataset_id, track_data.prefs);
+
+ view.add_track(new_track);
view.has_changes = true;
sidebar_box(new_track);
}