Diff
Modified: trunk/app/controllers/workflows_controller.rb (2662 => 2663)
--- trunk/app/controllers/workflows_controller.rb 2011-08-02 14:48:52 UTC (rev 2662)
+++ trunk/app/controllers/workflows_controller.rb 2011-08-02 15:22:08 UTC (rev 2663)
@@ -233,8 +233,10 @@
w.contribution
end
- @similar_services_limit = 10
+ @wsdls_filter = { :filter => 'WSDL_ENDPOINT=(' + @workflow.unique_wsdls.map do |wsdl| '"' + wsdl.gsub(/"/, '\"') + '"' end.join(" OR ") + ')' }
+ @similar_services_limit = 2
+
respond_to do |format|
format.html {
Modified: trunk/app/models/workflow.rb (2662 => 2663)
--- trunk/app/models/workflow.rb 2011-08-02 14:48:52 UTC (rev 2662)
+++ trunk/app/models/workflow.rb 2011-08-02 15:22:08 UTC (rev 2663)
@@ -211,6 +211,11 @@
@display_data_format = (klass.nil? ? self.file_ext : klass.display_data_format)
end
+ def get_workflow_processor(version = current_version)
+ return nil unless (workflow_version = self.find_version(version))
+ return (self.processor_class.nil? ? nil : self.processor_class.new(workflow_version.content_blob.data))
+ end
+
def get_workflow_model_object(version)
return nil unless (workflow_version = self.find_version(version))
return (self.processor_class.nil? ? nil : self.processor_class.new(workflow_version.content_blob.data).get_workflow_model_object)
@@ -325,6 +330,10 @@
end
end
end
+
+ def unique_wsdls
+ WorkflowProcessor.find(:all, :conditions => ['workflow_id = ? AND wsdl IS NOT NULL', 16]).map do |wp| wp.wsdl end.uniq
+ end
def workflows_with_similar_services
Modified: trunk/app/views/workflows/show.rhtml (2662 => 2663)
--- trunk/app/views/workflows/show.rhtml 2011-08-02 14:48:52 UTC (rev 2662)
+++ trunk/app/views/workflows/show.rhtml 2011-08-02 15:22:08 UTC (rev 2663)
@@ -331,20 +331,6 @@
<div class="clearer"> </div>
-<!-- Other workflows that use a service this workflow users -->
-
-<h2>Other workflows that use services that this workflow uses</h2>
-
-<% if @contributions_with_similar_services.length > @similar_services_limit %>
- <p><i>Only the first <%= @similar_services_limit %> workflows that use similar services are shown.</i></p>
-<% end %>
-
-<% if @contributions_with_similar_services.length > 0 %>
- <%= render :partial => "contributions/list", :locals => { :collection => @address@hidden - 1], :table => true } %>
-<% else %>
- <p>There are no workflows in <%= Conf.sitename %> that use similar services to this Workflow.</p>
-<% end %>
-
<!-- BEGIN tabs -->
<br/>
@@ -408,6 +394,29 @@
<%= render :partial => "comments/comments", :locals => { :commentable => @workflow } %>
</div>
+<!-- Other workflows that use a service this workflow users -->
+
+<br />
+<br />
+
+<h2>
+ <%= icon "workflow", nil, nil, { :style => "vertical-align: middle;" }, "" -%>
+ <span style="vertical-align: middle;">Other workflows that use similar services</span>
+ <span class="count_text" style="vertical-align: middle;">(<%= @contributions_with_similar_services.length %>)</span>
+</h2>
+
+<% if @contributions_with_similar_services.length > @similar_services_limit %>
+ <p><i>Only the first <%= @similar_services_limit %> workflows that use similar services are shown</i>. <a href="" workflows_path(@wsdls_filter) -%>">View all workflows that use these services</a>.</p>
+ <br />
+<% end %>
+
+<% if @contributions_with_similar_services.length > 0 %>
+ <%= render :partial => "contributions/list", :locals => { :collection => @address@hidden - 1], :table => true } %>
+<% else %>
+ <p>There are no workflows in <%= Conf.sitename %> that use similar services to this Workflow.</p>
+<% end %>
+
+
<%= render :partial => "contributions/alternative_formats" %>
<!-- OpenURL context object -->