From: <lal...@us...> - 2011-04-17 21:23:49
|
Revision: 24829 http://gmod.svn.sourceforge.net/gmod/?rev=24829&view=rev Author: lallsonu Date: 2011-04-17 21:23:36 +0000 (Sun, 17 Apr 2011) Log Message: ----------- session develpment--saving snapshot works, currently have a tab called 'saved snapshots' in which the snapshots area all listed with their [GMT] time stamp, and user can delete snapshots as well...working on saving and sending Modified Paths: -------------- Generic-Genome-Browser/branches/sonudev2/conf/languages/POSIX.pm Generic-Genome-Browser/branches/sonudev2/conf/languages/en.pm Generic-Genome-Browser/branches/sonudev2/htdocs/js/controller.js Generic-Genome-Browser/branches/sonudev2/htdocs/js/tabs.js Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Action.pm Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render/HTML.pm Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render.pm Modified: Generic-Genome-Browser/branches/sonudev2/conf/languages/POSIX.pm =================================================================== --- Generic-Genome-Browser/branches/sonudev2/conf/languages/POSIX.pm 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/conf/languages/POSIX.pm 2011-04-17 21:23:36 UTC (rev 24829) @@ -105,7 +105,10 @@ CLEAR_FAV => 'Clear All Favorites', ############# + + SNAPSHOT_FORM => 'Snapshot Name', + SNAPSHOT_SELECT => 'Saved Snapshots', SELECT_TRACKS => 'Select Tracks', Modified: Generic-Genome-Browser/branches/sonudev2/conf/languages/en.pm =================================================================== --- Generic-Genome-Browser/branches/sonudev2/conf/languages/en.pm 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/conf/languages/en.pm 2011-04-17 21:23:36 UTC (rev 24829) @@ -106,7 +106,9 @@ CLEAR_FAV => 'Clear All Favorites', ############# + SNAPSHOT_FORM => 'Snapshot Name', + SNAPSHOT_SELECT => 'Saved Snapshots', SELECT_TRACKS => 'Select Tracks', Modified: Generic-Genome-Browser/branches/sonudev2/htdocs/js/controller.js =================================================================== --- Generic-Genome-Browser/branches/sonudev2/htdocs/js/controller.js 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/htdocs/js/controller.js 2011-04-17 21:23:36 UTC (rev 24829) @@ -1207,52 +1207,75 @@ Controller.update_sections(new Array(custom_tracks_id)); }, - + + + hide_snapshot_prompt: + function(){ + $('save_snapshot').hide(); + return false; + }, + + submitWithEnter: + function(e,utcTime){ + if (!e) var e = window.event; + if (e.keyCode) code = e.keyCode; + else if (e.which) code = e.which; + + if (code==13) { + + Controller.hide_snapshot_prompt(); + Controller.saveSession('snapshot_name',utcTime) + Controller.update_sections('snapshots_page'); + } + + }, + + killSession: + function(snapshot){ + var snapshot_row = document.getElementById(snapshot); + + snapshot_row.style.display="none"; + new Ajax.Request(document.URL, { + method: 'POST', + asynchronous:true, + parameters: { + action: 'delete_session', + name: snapshot, + + + + }}); + + }, + saveSession: - function(/*settings_json*/){ + function(textFieldId,gmt_time){ // var settings = settings_json.evalJSON(); - -var name = prompt("Please enter a unique session name","Session Name"); + var sessionName = document.getElementById(textFieldId).value; - new Ajax.Request(document.URL, { method: 'POST', asynchronous:true, parameters: { action: 'save_session', - name: name, + name: sessionName, + time: gmt_time + }}); +Controller.hide_snapshot_prompt(); + + + + /* for (var o in settings){ alert(o+" : "+settings[o]); }*/ - }, - - addOption: - function(selectbox,text,value){ - - var optn = document.createElement("OPTION"); - optn.text = text; - optn.value = value; - selectbox.options.add(optn); - - }, - + }, - addOptionArray: - function(snapshots) { - - var snapshotArray = snapshots.split(','); - for (var i=0; i < snapshotArray.length;++i){ - var snapshotform = document.getElementById('set_session'); - Controller.addOption(snapshotform.select_snapshot, snapshotArray[i], snapshotArray[i]); -} - }, - - setSession: function(){ // var settings = settings_json.evalJSON(); Modified: Generic-Genome-Browser/branches/sonudev2/htdocs/js/tabs.js =================================================================== --- Generic-Genome-Browser/branches/sonudev2/htdocs/js/tabs.js 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/htdocs/js/tabs.js 2011-04-17 21:23:36 UTC (rev 24829) @@ -42,24 +42,7 @@ }); - var imgs = document.getElementsByClassName('toolbarStar'); - idtoarray(imgs,'toolbarStar'); - var stars_id_array = idArray; - - - - - - - -// alert(toolbarstars); -// alert('hello'); -// if(tab_id == 'main_page_select'){ -// // alert('hello'); -// /*alert*/(labels); -// -// } this.tab_menus.each( function(e) { e.className='tabmenu_inactive'; Modified: Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Action.pm =================================================================== --- Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Action.pm 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Action.pm 2011-04-17 21:23:36 UTC (rev 24829) @@ -334,30 +334,37 @@ +sub ACTION_delete_session { + my $self = shift; + my $q = shift; + my $name = $q->param('name'); + + my $settings = $self->state; + my %snapshot = %{$settings}; + delete %snapshot->{snapshots}->{$name}; + $self->session->flush; + return (204,'text/plain',undef); +} sub ACTION_save_session { my $self = shift; my $q = shift; my $name = $q->param('name'); + my $settings = $self->state; - my $session = $self->session; - -# - my %snapshot = %{$settings}; + my $UTCtime = gmtime(time); + $settings->{session_time}=$UTCtime; +# warn "time = $UTCtime"; + + my %snapshot = %{$settings}; delete %snapshot->{snapshots}; $settings->{snapshots}->{$name} = \%snapshot; -# my @sessions_arv = @{$session->{session_argv}}; -# foreach (@sessions_arv) { -# warn $_; -# } -# - $self->session->flush; return (204,'text/plain',undef); } Modified: Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render/HTML.pm =================================================================== --- Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render/HTML.pm 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render/HTML.pm 2011-04-17 21:23:36 UTC (rev 24829) @@ -90,7 +90,7 @@ # Render Tabbed Pages - Returns the HTML containing the tabs & the page DIVs to hold the content. sub render_tabbed_pages { my $self = shift; - my ($main_html,$tracks_html,$community_tracks_html,$custom_tracks_html,$settings_html,) = @_; + my ($main_html,$tracks_html,$community_tracks_html,$custom_tracks_html,$settings_html,$snapshot_html) = @_; my $uses_database = $self->user_tracks->database; my $main_title = $self->translate('MAIN_PAGE'); @@ -98,7 +98,8 @@ my $community_tracks_title = $self->translate('COMMUNITY_TRACKS_PAGE') if $uses_database; my $custom_tracks_title = $self->translate('CUSTOM_TRACKS_PAGE'); my $settings_title = $self->translate('SETTINGS_PAGE'); - + my $snapshot_title = $self->translate('SNAPSHOT_SELECT'); +# my $html = ''; $html .= div({-id=>'tabbed_section', -class=>'tabbed'}, div({-id=>'tabbed_menu',-class=>'tabmenu'}, @@ -107,12 +108,14 @@ $uses_database? span({id=>'community_tracks_page_select'}, $community_tracks_title) : "", span({id=>'custom_tracks_page_select'}, $custom_tracks_title), span({id=>'settings_page_select'}, $settings_title), + span({id=>'snapshots_page_select'}, $snapshot_title), ), div({-id=>'main_page', -class=>'tabbody'}, $main_html), div({-id=>'track_page', -class=>'tabbody'}, $tracks_html), $uses_database?div({-id=>'community_tracks_page',-class=>'tabbody'}, $community_tracks_html) : "", div({-id=>'custom_tracks_page', -class=>'tabbody'}, $custom_tracks_html), div({-id=>'settings_page', -class=>'tabbody'}, $settings_html), + div({-id=>'snapshots_page', -class=>'tabbody'}, $snapshot_html), ); return $html; } @@ -156,7 +159,7 @@ my $settings = $self->state; my $source = '/'.$self->session->source.'/'; - + my $close = $self->translate('CLOSE'); my $searchform = join '',( start_form( -name => 'searchform', @@ -177,13 +180,15 @@ my $plugin_form = div({-id=>'plugin_form'},$self->plugin_form()); my $source_form = div({-id=>'source_form'},$self->source_form()); - + my $snapshot_form = div({-id=>'snapshot_form'},$self->snapshot_form()); my $sliderform = div({-id=>'slider_form'},$self->sliderform($segment)); my $sessionButton = div({-id=>'sessionbutton'},$self->render_select_saveSession()); +my $style = "position:absolute;right:20px;width:200px;height:45px;background-color:#B4CDCD;z-index:1; border-style:solid;display:none;"; +my $save_prompt = div({-id => 'save_snapshot',-style=>"$style"}, + $snapshot_form, + a({-href=>'#', -onClick=>"Controller.hide_snapshot_prompt()", -style=>"position:relative;top:2px"},$close) + ); -my $setSession = div({-id=>'sessionbutton'},$self->render_select_setSession()); -my $snapshotMenu = div({-id=>'snapshotMenu'},$self->render_select_snapshotsMenu()); - return $self->toggle('Search', div({-class=>'searchbody'}, table({-border=>0,-width=>'100%'}, @@ -195,16 +200,11 @@ $sliderform || ' ' ), td({-align=>'left'}, - $sessionButton || ' ' + $sessionButton || ' ', + $save_prompt, + ), - - td({-align=>'left'}, - $snapshotMenu || ' ' - ) -# -# td({-align=>'left'}, -# $setSession || ' ' -# ) + # ) ), @@ -212,7 +212,8 @@ ) ) . div( { -id => "plugin_configure_div"},''); - + + } # Plugin Form - Returns the HTML for the plugin form in the main navigation bar. @@ -246,6 +247,28 @@ ); } +sub snapshot_form { + my $self = shift; + + + div({ + -id=>'snapshot_form',}, + + + input({ + -type => "text", + -name => "snapshot_name", + -id => "snapshot_name", + -onKeyPress=>"Controller.submitWithEnter(event);", + -style => "width:180px", + -value => $self->translate('SNAPSHOT_FORM'), + + -onClick => "this.value='';" + }), + + + ); +} # Slider Form - Returns the HTML for the zooming controls with the "Flip" checkbox. sub sliderform { my $self = shift; @@ -463,7 +486,7 @@ my $plugin_onloads = join ';',map {eval{$_->body_onloads}} @plugin_list; my $other_actions = join ';',@other_initialization; - push @args,(-onLoad => "initialize_page(); Controller.addOptionArray('$snapshotsString'); $set_dragcolors; $set_units; $plugin_onloads; $other_actions"); + push @args,(-onLoad => "initialize_page(); $set_dragcolors; $set_units; $plugin_onloads; $other_actions"); return start_html(@args); } @@ -1473,29 +1496,14 @@ } -sub render_select_snapshotsMenu{ -my $self = shift; -my $snapshotForm = join '',( - start_form(-name=>'set_Session', - -id=>'set_session', - -onSubmit=>"Controller.setSession()"), - - popup_menu(-NAME=>'select_snapshot', - -values=>'Set Snapshot'), - end_form, - ), -} - - - - sub render_select_saveSession { my $self = shift; my $title = 'Save Session'; return button({-name=>$title, - -onClick => "Controller.saveSession()", + -onClick => "Effect.Appear('save_snapshot');", + # # "Controller.update_section('range');" }, @@ -1503,43 +1511,7 @@ ); } -sub render_select_setSession { -my $self = shift; -my $title = 'Set Session'; -my $settings = $self->state; -my @snapshotsArray; -# $settings->{snapshots} ={}; -my $snapshotSessions = $settings->{snapshots}; -# $settings->{snapshot_active}=0; -# warn "active = $settings->{snapshot_active}"; - - -my @snapshotNames = keys %$snapshotSessions; -my $snapshotsString = join(',',@snapshotNames); - - return button({-name=>$title, - -id=>'setsession', - -onClick => "Controller.setSession('$snapshotsString')", - -# "Controller.update_section('range');" - }, - - ); - - -# my %temp = %$snapshotSessions; -# while ( (my $key) = each %temp) -# { -# warn "$key" ; -# }; - - - -} - - - sub render_select_refresh_link { my $self = shift; my $style = shift || 'button'; @@ -1647,6 +1619,18 @@ return $html; } +# Render select snapshots. +sub render_saved_snapshots_section { + my $self = shift; + my $userdata = $self->user_tracks; + my $html = $self->is_admin? h2({-style=>'font-style:italic;background-color:yellow'}, $self->translate('ADMIN_MODE_WARNING')) : ""; + $html .= div({-id => "snapshots_page"}, $self->render_saved_snapshots_listing); + $html = div({-style => 'margin: 1em;'}, $html); + return $html; +} + + + # Render Custom Tracks Section - Returns the content of the "Custom Tracks" tab. sub render_custom_tracks_section { my $self = shift; @@ -1683,13 +1667,55 @@ },"[$from_file]")); $html .= div({-id=>'custom_list_start'},''); return $html; +} + +# Render saved snapshots listing +sub render_saved_snapshots_listing{ + my $self = shift; + my $settings = $self->state; + my $snapshots = $settings->{snapshots}; + my @snapshot_keys = keys %$snapshots; + my $timeStamp; + my $buttons = $self->data_source->globals->button_url; + my $deleteSnapshotPath = "$buttons/ex.png"; + + + + my $html = h1({-style => "position:relative;bottom:30px;display: inline-block; margin-right: 1em;"}, $self->translate('SNAPSHOT_SELECT')); + for my $keys(@snapshot_keys) { + $timeStamp = $snapshots->{$keys}->{session_time}; + + warn "time = $timeStamp"; + $html .= + + div({ + -id =>"snapshot_section", + -style=>"padding-left:3em;width:4px; background-color:#F0E68C;", + }, + div({-class=>"snapshot_name", + -id=>$keys, + -style=> "width:460px;border-style:solid;border-width:1px;border-color:#F0E68C; background-color:#FFF8DC"}, + span({-id=>"kill_${keys}"}, img({ -src => $deleteSnapshotPath, + -id => "kill", + -onClick => "Controller.killSession('${keys}')", + -style => 'cursor:pointer', + + }, + ) + ), + span({ -style=>"width:230px;"},a({-href=>"#"}, $keys)), + span({-style=>"width:230px;position:absolute;left:235px;"},$timeStamp) ), + + ) + } + + return $html; } - # Render Community Track Listing - Returns the HTML listing of public tracks available to a user. sub render_community_track_listing { my $self = shift; my $globals = $self->globals; - my $html = h1({-style => "display: inline-block; margin-right: 1em;"}, $self->translate('COMMUNITY_TRACKS')); + my $html = h1({-style => "display: inline-block; 62margin-right: 1em;"}, $self->translate('COMMUNITY_TRACKS')); my $search = $_[0] || ""; my $offset = $_[1] || 0; my $usertracks = $self->user_tracks; Modified: Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render.pm =================================================================== --- Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render.pm 2011-04-16 21:41:48 UTC (rev 24828) +++ Generic-Genome-Browser/branches/sonudev2/lib/Bio/Graphics/Browser2/Render.pm 2011-04-17 21:23:36 UTC (rev 24829) @@ -841,8 +841,9 @@ my $community = $self->user_tracks->database? $self->render_community_tracks_section : ""; my $custom = $self->render_custom_tracks_section; my $global_config = $self->render_global_config; + my $saved_snapshots = $self->render_saved_snapshots_section; - $output .= $self->render_tabbed_pages($main_page,$tracks,$community,$custom,$global_config); + $output .= $self->render_tabbed_pages($main_page,$tracks,$community,$custom,$global_config, $saved_snapshots); $output .= $self->login_manager->render_confirm; $output .= $self->render_bottom($features); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |