Diff
Modified: trunk/app/controllers/workflows_controller.rb (2623 => 2624)
--- trunk/app/controllers/workflows_controller.rb 2011-07-04 15:29:33 UTC (rev 2623)
+++ trunk/app/controllers/workflows_controller.rb 2011-07-04 16:07:58 UTC (rev 2624)
@@ -9,6 +9,7 @@
before_filter :login_required, :except => [:index, :show, :download, :named_download, :galaxy_tool, :galaxy_tool_download, :statistics, :launch, :search]
+ before_filter :store_callback, : [:index, :search]
before_filter :find_workflows_rss, : [:index]
before_filter :find_workflow_auth, :except => [:search, :index, :new, :create]
@@ -646,6 +647,26 @@
protected
+ def store_callback
+ if params[:callback]
+ session_object={ :url ="" URI.parse(params[:callback]), :label => 'Launch', :additional => 'externally', :format => 'xml' }
+ if params[:callback_contenttypes]
+ session_object[:types] =
+ params[:callback_contenttypes].split(',').map {|x| x.to_i }
+ end
+ if params[:callback_label]
+ session_object[:label] = params[:callback_label]
+ end
+ if params[:callback_additional]
+ session_object[:additional] = params[:callback_additional]
+ end
+ if params[:callback_format]
+ session_object[:format] = params[:callback_format]
+ end
+ session[:callback]=session_object
+ end
+ end
+
def find_workflows_rss
# Only carry out if request is for RSS
if params[:format] and params[:format].downcase == 'rss'
Modified: trunk/app/helpers/application_helper.rb (2623 => 2624)
--- trunk/app/helpers/application_helper.rb 2011-07-04 15:29:33 UTC (rev 2623)
+++ trunk/app/helpers/application_helper.rb 2011-07-04 16:07:58 UTC (rev 2624)
@@ -1557,4 +1557,22 @@
return "Your OpenID URL is: #{user.openid_url}" if user.openid_url
end
+ def callback_url(item)
+ item_url = nil
+ if session && session[:callback]:
+ case session[:callback][:format]
+ when 'uri'
+ item_url = rest_resource_uri(item)
+ when 'xml'
+ item_url = rest_access_uri(item)
+ else
+ return nil
+ end
+ end
+ if item_url
+ return session[:callback][:url].merge('?myexp_url='+URI.escape(item_url))
+ else
+ return nil
+ end
+ end
end
Modified: trunk/app/views/workflows/_table.rhtml (2623 => 2624)
--- trunk/app/views/workflows/_table.rhtml 2011-07-04 15:29:33 UTC (rev 2623)
+++ trunk/app/views/workflows/_table.rhtml 2011-07-04 16:07:58 UTC (rev 2624)
@@ -120,7 +120,12 @@
<% end -%>
<td class="actions" style="width: 120px;">
<%= icon "show", workflow_path(workflow), nil, nil, "View" %>
- <% if Authorization.is_authorized?("download", nil, workflow, current_user) %><%= icon "download", download_workflow_path(workflow), nil, nil, "Download (v#{workflow.versions.count})" %><% end %>
+ <% if Authorization.is_authorized?("download", nil, workflow, current_user) -%>
+ <%= icon "download", download_workflow_path(workflow), nil, nil, "Download (v#{workflow.versions.count})" %>
+ <% if ( session[:callback] && (session[:callback][:types].include?(workflow.content_type_id))) -%>
+ <%= icon "download", callback_url(workflow).to_s, nil, {:rel => 'nofollow'}, session[:callback][:label] -%>
+ <% end %>
+ <% end %>
<% if mine?(workflow) %><%= icon "manage", edit_workflow_path(workflow), nil, nil, "Manage" %><% end %>
<br/><br/>
Modified: trunk/app/views/workflows/show.rhtml (2623 => 2624)
--- trunk/app/views/workflows/show.rhtml 2011-07-04 15:29:33 UTC (rev 2623)
+++ trunk/app/views/workflows/show.rhtml 2011-07-04 16:07:58 UTC (rev 2624)
@@ -224,7 +224,13 @@
<ul class="sectionIcons">
<li style="margin-left: 0;"><%= icon('workflow', @named_download_url, "Download Workflow file/package (for version address@hidden)", nil, "Download Workflow File/Package (address@hidden)") -%></li>
</ul>
-
+ <% if session[:callback] &&
+ session[:callback][:types].include?(@workflow.content_type_id) -%>
+ <br />
+ <ul class="sectionIcons">
+ <li style="margin-left: 0;"><%= icon('workflow', callback_url(@workflow).to_s, "#{session[:callback][:label]} Workflow file/package (for version address@hidden)", {:rel => 'nofollow'}, "#{session[:callback][:label]} Workflow #{session[:callback][:additional]}") -%></li>
+ </ul>
+ <% end %>
<% if @workflow.content_type.title == "Taverna 2" %>
<br />