GBrowse

 view release on metacpan or  search on metacpan

htdocs/js/controller.js  view on Meta::CPAN

    set_display_option:
    function(option, value) {
        var param = {action: 'set_display_option'};
        param[option] = value;
        new Ajax.Request(Controller.url,
            {
                method: 'post', 
                parameters: param,
                onComplete:  function (transport) {
                    Controller.refresh_tracks(); // causes an elegant panel refresh
                } 
            }
        );
    },

    // Signal Change to Server Methods ********************************
    set_track_visibility:
    function(track_id,visible) {
        var gbtrack  = this.gbtracks.get(track_id);
        if (gbtrack == null) return;

        var track_name = gbtrack.track_name;

        this.each_track(track_id,function(gbtrack) {

            new Ajax.Request(Controller.url,{
                method:     'post',
                parameters: {
                    action:     'set_track_visibility',
                    visible:    visible,
                    track_name: track_name
                },
                onSuccess: function(transport) {
                    if (visible && gbtrack.get_last_update_key() == null || gbtrack.get_last_update_key() < Controller.last_update_key) {
                        Controller.rerender_track(gbtrack.track_id);
                    }
                }
            });
        });
    },

    // Kick-off Render Methods ****************************************
    reload_panels:  // called only to reload a snapshot
	function (segment_info) {
	    if (segment_info != null) {
		this.segment_info = segment_info;
	    }

	    new Ajax.Request(Controller.url,{
		    method: 'post',
		    parameters: {
			action: 'render_panels'
		    },
		    onSuccess: function(transport) { 
			$('panels').innerHTML = transport.responseText;
			$('panels').innerHTML.evalScripts();
			var color = overviewObject.background;
			var unit  = overviewObject.unit;
			var divider = overviewObject.divider;
			['overview','region','detail'].each(function(e) {
				    var m = $(e+'SelectMenu');
				    if (m) m.remove();
			    });
			this.initialize_page();
			set_dragcolors(color);
			set_dragunits(unit,divider);
		    }
		});
	    
	}, //end render_panels()

    update_coordinates:
    function (action, snapshot) {
	if (snapshot == null){
		snapshot = false;
	}
	
        // submit search form if the detail panel doesn't exist
        if ( null == $(detail_container_id) ){
            document.searchform.force_submit.value = 1; 
            document.searchform.submit(); 
        }

        this.busy();

        TrackPan.grey_out_markers();
        $('ruler_handle').setOpacity(0.3);
        $('detail_scale_scale').setOpacity(0.3);

        //Grey out image
        this.each_track(function(gbtrack) {
            if ($(gbtrack.track_image_id) != null)
                $(gbtrack.track_image_id).setOpacity(0.3);
            //  else
            //  alert('REPORT THIS BUG: element '+gbtrack.track_image_id+' should not be null');
        });

        new Ajax.Request(Controller.url, {
            method:     'post',
            parameters: {
                action:     'navigate',  // 'action'   triggers an async call
                navigate:   action,      // 'navigate' is an argument passed to the async routine
                view_start: Math.round(TrackPan.get_start()),
                view_stop:  Math.round(TrackPan.get_stop()),
		snapshot:   snapshot // Is true when a snapshot is being loaded, and false otherwise
            },
            onSuccess: function(transport) {
                var results                 = transport.responseJSON;
                Controller.segment_info     = results.segment_info;
                var track_keys              = results.track_keys;
                var overview_scale_bar_hash = results.overview_scale_bar;
                var region_scale_bar_hash   = results.region_scale_bar;
                var detail_scale_bar_hash   = results.detail_scale_bar;
                Controller.set_last_update_keys(track_keys);

                if (overview_scale_bar_hash) {
                    Controller.update_scale_bar(overview_scale_bar_hash);
                    $('overview_panels').setStyle({width: overview_scale_bar_hash.width+'px'});
                }
                if (region_scale_bar_hash) {
                    Controller.update_scale_bar(region_scale_bar_hash);



( run in 1.377 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )