myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [3051] branches/versions: added UI for selecting


From: noreply
Subject: [myexperiment-hackers] [3051] branches/versions: added UI for selecting versions, showing versions and downloading versions
Date: Sat, 28 Jul 2012 07:05:02 +0000 (UTC)

Revision
3051
Author
dgc
Date
2012-07-28 07:05:02 +0000 (Sat, 28 Jul 2012)

Log Message

added UI for selecting versions, showing versions and downloading versions

Modified Paths

Added Paths

Diff

Modified: branches/versions/app/controllers/blobs_controller.rb (3050 => 3051)


--- branches/versions/app/controllers/blobs_controller.rb	2012-07-27 15:35:17 UTC (rev 3050)
+++ branches/versions/app/controllers/blobs_controller.rb	2012-07-28 07:05:02 UTC (rev 3051)
@@ -7,7 +7,7 @@
 
   include ApplicationHelper
 
-  before_filter :login_required, :except => [:index, :show, :download, :named_download, :statistics, :search]
+  before_filter :login_required, :except => [:index, :show, :download, :named_download, :named_download_with_version, :statistics, :search]
   
   before_filter :find_blob_auth, :except => [:search, :index, :new, :create]
   
@@ -21,7 +21,7 @@
   cache_sweeper :permission_sweeper, : [ :create, :update, :destroy ]
   cache_sweeper :bookmark_sweeper, : [ :destroy, :favourite, :favourite_delete ]
   cache_sweeper :tag_sweeper, : [ :create, :update, :tag, :destroy ]
-  cache_sweeper :download_viewing_sweeper, : [ :show, :download, :named_download ]
+  cache_sweeper :download_viewing_sweeper, : [ :show, :download, :named_download, :named_download_with_version ]
   cache_sweeper :comment_sweeper, : [ :comment, :comment_delete ]
   cache_sweeper :rating_sweeper, : [ :rate ]
   
@@ -36,7 +36,7 @@
       @download = Download.create(:contribution => @blob.contribution, :user => (logged_in? ? current_user : nil), :user_agent => request.env['HTTP_USER_AGENT'], :accessed_from_site => accessed_from_website?())
     end
     
-    send_data(@blob.content_blob.data, :filename => @blob.local_name, :type => @blob.content_type.mime_type)
+    send_data(@version.content_blob.data, :filename => @version.local_name, :type => @version.content_type.mime_type)
     
     #send_file("#{RAILS_ROOT}/#{controller_name}/address@hidden/address@hidden/address@hidden", :filename => @blob.local_name, :type => @blob.content_type.mime_type)
   end
@@ -52,6 +52,17 @@
     end
   end
 
+  # GET /files/:id/versions/:version/download/:name
+  def named_download_with_version
+
+    # check that we got the right filename for this workflow
+    if params[:name] == @version.local_name
+      download
+    else
+      render :nothing => true, :status => "404 Not Found"
+    end
+  end
+
   # GET /files
   def index
     respond_to do |format|
@@ -310,10 +321,11 @@
                             :host => base_host,
                             :id => @blob.id
 
-        @named_download_url = url_for :controller => 'files',
-                                      :action ="" 'named_download',
+        @named_download_url = url_for :controller => 'blobs',
+                                      :action ="" 'named_download_with_version',
                                       :id => @blob.id, 
-                                      :name => @blob.local_name
+                                      :version => @version.version, 
+                                      :name => @version.local_name
 
       else
         if logged_in? 

Modified: branches/versions/app/views/blobs/show.rhtml (3050 => 3051)


--- branches/versions/app/views/blobs/show.rhtml	2012-07-27 15:35:17 UTC (rev 3050)
+++ branches/versions/app/views/blobs/show.rhtml	2012-07-28 07:05:02 UTC (rev 3051)
@@ -44,20 +44,23 @@
 
 <div class="contribution_left_box">
 	<div class="contribution_version_box">
-		<div class="contribution_version_inner_box">
+
+    <%= render(:partial => "contributions/version_selector", :locals => { :resource => @blob, :version => @version, :path => :blob_version_path }) %>
+
+    <div class="contribution_version_inner_box">
 			<p>
 			    <b>Title:</b>
-			    <span class="title"><%=h @blob.title %></span>
+			    <span class="title"><%=h @version.title %></span>
 			</p>
 			
 			<p>
 			    <b>File name:</b>
-			    <%=h @blob.local_name %>
+			    <%=h @version.local_name %>
 			</p>
 			
 			<p>
 			    <b>File type:</b>
-			    <%=h @blob.content_type.title %>
+			    <%=h @version.content_type.title %>
 			</p>
 			
 			<br/>
@@ -67,9 +70,9 @@
 				Description
 			</h3>
 			
-			<% unless @blob.body.blank? %>
+			<% unless @version.body.blank? %>
 				<div class="contribution_description">
-					<%= @blob.body_html %>
+					<%= @version.body_html %>
 				</div>
 			<% else %>
 				<p class="none_text">

Added: branches/versions/app/views/contributions/_version_selector.rhtml (0 => 3051)


--- branches/versions/app/views/contributions/_version_selector.rhtml	                        (rev 0)
+++ branches/versions/app/views/contributions/_version_selector.rhtml	2012-07-28 07:05:02 UTC (rev 3051)
@@ -0,0 +1,62 @@
+<script type="text/_javascript_">
+  function showVersion(form) {
+    var url = ""
+		location.href = ""
+		form.submit
+  }
+</script>
+
+<div class="contribution_version_selector_box">
+
+  <table>
+    <tbody>
+      <tr>
+        <td class="heading" style="vertical-align: top;">
+          <%= info_icon_with_tooltip("This box shows version #{version.version.to_s} for this entry") -%>
+          <span><%= "Version #{version.version.to_s} #{resource.describe_version(version.version)}" -%></span>
+          <span class="count_text">(of <%= resource.versions.length -%>)</span>
+          <a name="versions"></a>
+        </td>
+        <td>
+          <% if resource.versions.length > 1 %>
+             <form  return false;" style="text-align: right;">
+              <b>View version: </b>
+              <select id="resource_versions" 
+                <% resource.versions.reverse.each do |v| %>
+                  <option value="<%= send(path, resource, v.version.to_s) %>" <%= "selected" if v.version == version.version -%>>
+                      <%= "#{v.version.to_s} #{resource.describe_version(v.version)}" %>
+                  </option>
+                <% end %>
+              </select>
+            </form>
+          <% end %>
+        </td>
+      </tr>
+    </tbody>
+  </table>
+      
+  <div id="version_info_box" style="color: #666666;  font-size: 85%; margin: 0.6em 0.5em 0.2em 0.5em; border-top: 1px solid #DDDDDD; padding-top: 0.4em;">
+    <p style="text-align: center;">
+      <b>Version created on:</b>
+      <span><%= datetime version.created_at, false %></span>
+      <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
+      <span><%= link_to_function "Revision comments " + expand_image, visual_effect(:toggle_blind, "version_info_box_comments", :duration => 0.3) %></span>
+    </p>
+    
+    <% unless version.created_at == version.updated_at %>
+      <p style="text-align: center;">
+        <b>Last edited on:</b>
+        <span><%= datetime version.updated_at, false %></span>
+      </p>
+    <% end %>
+  </div>
+  
+  <div id="version_info_box_comments" style="display: none; border: 1px dotted #CCCCCC; padding: 0.3em 0.5em;">
+    <% unless version.revision_comments.blank? -%>
+      <%= white_list version.revision_comments %>
+    <% else %>
+      <p><i>None</i></p>
+    <% end %>
+  </div>
+</div>
+

Modified: branches/versions/config/routes.rb (3050 => 3051)


--- branches/versions/config/routes.rb	2012-07-27 15:35:17 UTC (rev 3050)
+++ branches/versions/config/routes.rb	2012-07-28 07:05:02 UTC (rev 3051)
@@ -132,6 +132,10 @@
   map.workflow_version           '/workflows/:id/versions/:version',         :conditions => { :method => :get }, :controller => 'workflows', :action ="" 'show'
   map.formatted_workflow_version '/workflows/:id/versions/:version.:format', :conditions => { :method => :get }, :controller => 'workflows', :action ="" 'show'
 
+  # blob redirect for linked data model
+  map.blob_version           '/blobs/:id/versions/:version',         :conditions => { :method => :get }, :controller => 'blobs', :action ="" 'show'
+  map.formatted_blob_version '/blobs/:id/versions/:version.:format', :conditions => { :method => :get }, :controller => 'blobs', :action ="" 'show'
+
   # versioned preview images
   ['workflow'].each do |x|
 
@@ -273,6 +277,7 @@
   map.connect ':controller/:id/download/:name', :action ="" 'named_download', :requirements => { :name => /.*/ }
   
   map.connect 'files/:id/download/:name', :controller => 'blobs', :action ="" 'named_download', :requirements => { :name => /.*/ }
+  map.connect 'files/:id/versions/:version/download/:name', :controller => 'blobs', :action ="" 'named_download_with_version', :requirements => { :name => /.*/ }
 
   # map.connect 'topics', :controller => 'topics', :action ="" 'index'
   map.connect 'topics/tag_feedback', :controller => 'topics', :action ="" 'tag_feedback'

Modified: branches/versions/db/migrate/096_create_blob_versions.rb (3050 => 3051)


--- branches/versions/db/migrate/096_create_blob_versions.rb	2012-07-27 15:35:17 UTC (rev 3050)
+++ branches/versions/db/migrate/096_create_blob_versions.rb	2012-07-28 07:05:02 UTC (rev 3051)
@@ -9,6 +9,7 @@
     create_table :blob_versions do |t|
       t.integer  "blob_id"
       t.integer  "version"
+      t.text     "revision_comments"
       t.string   "title"
       t.text     "body"
       t.text     "body_html"

Modified: branches/versions/db/schema.rb (3050 => 3051)


--- branches/versions/db/schema.rb	2012-07-27 15:35:17 UTC (rev 3050)
+++ branches/versions/db/schema.rb	2012-07-28 07:05:02 UTC (rev 3051)
@@ -48,6 +48,7 @@
   create_table "blob_versions", :force => true do |t|
     t.integer  "blob_id"
     t.integer  "version"
+    t.text     "revision_comments"
     t.string   "title"
     t.text     "body"
     t.text     "body_html"

Modified: branches/versions/lib/authorization.rb (3050 => 3051)


--- branches/versions/lib/authorization.rb	2012-07-27 15:35:17 UTC (rev 3050)
+++ branches/versions/lib/authorization.rb	2012-07-28 07:05:02 UTC (rev 3051)
@@ -606,7 +606,7 @@
         action = ''
       when 'edit', 'new', 'create', 'update', 'new_version', 'create_version', 'destroy_version', 'edit_version', 'update_version', 'new_item', 'create_item', 'edit_item', 'update_item', 'quick_add', 'resolve_link', 'process_tag_suggestions', 'process_extra_metadata', 'edit_relationships'
         action = ''
-      when 'download', 'named_download', 'launch', 'submit_job', 'save_inputs', 'refresh_status', 'rerun', 'refresh_outputs', 'render_output', 'outputs_xml', 'outputs_package', 'galaxy_tool', 'galaxy_tool_download'
+      when 'download', 'named_download', 'named_download_with_version', 'launch', 'submit_job', 'save_inputs', 'refresh_status', 'rerun', 'refresh_outputs', 'render_output', 'outputs_xml', 'outputs_package', 'galaxy_tool', 'galaxy_tool_download'
         action = ''
       when 'destroy', 'delete', 'destroy_item'
         action = ''

reply via email to

[Prev in Thread] Current Thread [Next in Thread]