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> | </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 = ''