]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5306 Create a WS to return component viewer extension
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 2 Jun 2014 09:50:52 +0000 (11:50 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 2 Jun 2014 11:46:31 +0000 (13:46 +0200)
sonar-server/src/main/webapp/WEB-INF/app/controllers/resource_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/resource/_extension.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/resource/_extension_with_tabs.html.erb [new file with mode: 0644]

index 2174b89015d4d541b6710a44aa5941220de5ee86..62dadb3a84bb2556eed696bf66d230e88f73f88e 100644 (file)
@@ -80,6 +80,22 @@ class ResourceController < ApplicationController
                        :group_index => params[:group_index], :external => (resource.root_id != original_resource.root_id)}
   end
 
+  # Call by new component viewer to display plugin extension
+  def extension
+    @resource = Project.by_key(params[:id])
+    not_found('Resource not found') unless @resource
+    @resource = @resource.permanent_resource
+    access_denied unless has_role?(:user, @resource)
+
+    @snapshot = @resource.last_snapshot
+    load_extensions() if @snapshot
+    if @extension
+      render :partial => 'extension'
+    else
+      not_found('Extension not found')
+    end
+  end
+
   private
 
   def render_partial_index
@@ -367,7 +383,7 @@ class ResourceController < ApplicationController
   end
 
   def render_extension()
-    render :partial => 'extension'
+    render :partial => 'extension_with_tabs'
   end
 
   def render_nothing()
index 1e6e47622455a788698786c8c609b7d423e40d04..cfee6afffcc7405c04b02285761dc92a2a79e91b 100644 (file)
@@ -1,16 +1,9 @@
-<div>
-  <div class="accordion-item-header">
-    <%= render :partial => 'tabs' -%>
-  </div>
-  <div class="accordion-item-body">
-    <% if @extension.isGwt() %>
-      <div id="gwtpage"> </div>
-      <script>
-        loadGWT('<%= @extension.getId() -%>', <%= @resource.id -%>,'<%= escape_javascript(@resource.key) -%>', '<%= escape_javascript(@resource.name) -%>',
-            '<%= @resource.scope -%>', '<%= @resource.qualifier -%>', '<%= escape_javascript(@resource.language) -%>');
-      </script>
-    <% elsif @extension.getTarget() # ruby on rails page %>
-      <%= render :inline => @extension.getTarget().getTemplate() -%>
-    <% end %>
-  </div>
-</div>
+<% if @extension.isGwt() %>
+  <div id="gwtpage"> </div>
+  <script>
+    loadGWT('<%= @extension.getId() -%>', <%= @resource.id -%>,'<%= escape_javascript(@resource.key) -%>', '<%= escape_javascript(@resource.name) -%>',
+        '<%= @resource.scope -%>', '<%= @resource.qualifier -%>', '<%= escape_javascript(@resource.language) -%>');
+  </script>
+<% elsif @extension.getTarget() # ruby on rails page %>
+  <%= render :inline => @extension.getTarget().getTemplate() -%>
+<% end %>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_extension_with_tabs.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_extension_with_tabs.html.erb
new file mode 100644 (file)
index 0000000..ab58d15
--- /dev/null
@@ -0,0 +1,8 @@
+<div>
+  <div class="accordion-item-header">
+    <%= render :partial => 'tabs' -%>
+  </div>
+  <div class="accordion-item-body">
+    <%= render :partial => 'extension' -%>
+  </div>
+</div>