]> source.dussan.org Git - sonarqube.git/commitdiff
fix edition of dashboard properties
authorsimonbrandhof <simon.brandhof@gmail.com>
Fri, 5 Nov 2010 14:12:34 +0000 (14:12 +0000)
committersimonbrandhof <simon.brandhof@gmail.com>
Fri, 5 Nov 2010 14:12:34 +0000 (14:12 +0000)
sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboard_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_configure_widget.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb [new file with mode: 0644]

index 289bb1b7138cc47a2296f693cd2e1a0b8ca80e8e..16ce6551bacf9d4943bad7a9df8b685117b9fd6e 100644 (file)
@@ -135,7 +135,7 @@ class DashboardController < ApplicationController
       widget.configured=false
       widget.save
       render :update do |page|
-        page.alert('errors ' + errors_by_property_key.inspect)
+        page.replace_html "widget_props_#{widget.id}", :partial => 'dashboard/widget_properties', :locals => {:widget => widget, :definition => definition, :errors_by_property_key => errors_by_property_key}
       end
     end
   end
index 86472f3de6b67c0a78be2ebea197cdf8e28f0d70..0a26417284d3538b6ed7814a2ca91b5cc27d7122 100644 (file)
@@ -1,73 +1,48 @@
-<%
-  begin
-    widget_body=render :inline => definition.getTarget().getTemplate(), :locals => {:widget_properties => widget.properties_as_hash, :widget => widget, :dashboard => @dashboard}
-  rescue => error
-     logger.error("Can not render widget #{definition.getId()}: " + error)
-     logger.error(error.backtrace.join("\n"))
-     widget_body=""
-  end
-%>
+ <%
+   begin
+     widget_body=render :inline => definition.getTarget().getTemplate(), :locals => {:widget_properties => widget.properties_as_hash, :widget => widget, :dashboard => @dashboard}
+   rescue => error
+      logger.error("Can not render widget #{definition.getId()}: " + error)
+      logger.error(error.backtrace.join("\n"))
+      widget_body=""
+   end
+ %>
 
-<div class="handle" style="//overflow:hidden;//zoom:1;">
-  <%= definition.getTitle() -%>
-  <a class="block-remove"  onclick="portal.deleteWidget(this);return false;">Delete</a>
-  <% if definition.isEditable() %>
-    <a class="block-view-toggle" onclick="portal.editWidget(<%= widget.id -%>);return false;">Edit</a>
-  <% end %>
-</div>
+ <div class="handle" style="//overflow:hidden;//zoom:1;">
+   <%= definition.getTitle() -%>
+   <a class="block-remove"  onclick="portal.deleteWidget(this);return false;">Delete</a>
+   <% if definition.isEditable() %>
+     <a class="block-view-toggle" onclick="portal.editWidget(<%= widget.id -%>);return false;">Edit</a>
+   <% end %>
+ </div>
 
 
-<div class="widget_props" id="widget_props_<%= widget.id -%>" style="<%= 'display:none' if widget.configured -%>">
-  <% form_remote_tag :url => {:action => 'save_widget', :wid => widget.id, :id => params[:id]}, :method => :post do -%>
-    <table class="form">
-      <tbody>
-      <% definition.getWidgetProperties().each do |property_def|
-          value=widget.property_value(property_def.key(), property_def.defaultValue())
-      %>
-          <tr>
-            <td valign="top" nowrap><b><%= property_def.key() -%></b><%= "*" unless property_def.optional()==true -%>: </td>
-            <td id="row_<%= property_def.key() -%>">
-              <%= property_value_field(property_def, value) -%>
-              <span class="note"><%= property_def.description() -%></span>
-            </td>
-          </tr>
-      <% end %>
-      <tr>
-        <td colspan="2">
-          <%= submit_tag 'Save' %>
-          <% if widget.configured %>
-            <a href="#" onClick="portal.cancelEditWidget(<%= widget.id -%>);return false;">Cancel</a>
-          <% end %>
-        </td>
-      </tr>
-      </tbody>
-    </table>
-    <%= hidden_field_tag "widgetid", "", :class => "widgetid" %>
-<% end -%>
-</div>
+ <div class="widget_props" id="widget_props_<%= widget.id -%>" style="<%= 'display:none' if widget.configured -%>">
+   <%= render :partial => 'dashboard/widget_properties', :locals => {:widget => widget, :definition => definition} -%>
+ </div>
 
 
-<div id="widget_<%= widget.id -%>" class="configure_widget <%= definition.getId() -%>" style="height:100%;<%= 'display:none;' if !widget.configured -%>">
-  <!--[if lte IE 6]>
-  <style type="text/css">
-    #dashboard .block .content .transparent {
-        display: none;
-    }
-  </style>
-  <![endif]-->
-<div class="transparent"></div>
-  <% if widget_body.include? '<' %>
-    <%
-      default_layout=(definition.getWidgetLayout().name()=='DEFAULT')
-      if default_layout
-    %>
-      <div class="widget">
-    <% end %>
-    <%= widget_body -%>
-    <% if default_layout %><div class="clear"> </div></div><% end %>
-  <% else %>
-  <div class="widget"><p>No data</p></div>
-  <% end %>
-<div style="clear: both;"></div>
-</div>
+ <div id="widget_<%= widget.id -%>" class="configure_widget <%= definition.getId() -%>" style="height:100%;<%= 'display:none;' if !widget.configured -%>">
+   <!--[if lte IE 6]>
+   <style type="text/css">
+     #dashboard .block .content .transparent {
+         display: none;
+     }
+   </style>
+   <![endif]-->
+ <div class="transparent"></div>
+   <% if widget_body.include? '<' %>
+     <%
+       default_layout=(definition.getWidgetLayout().name()=='DEFAULT')
+       if default_layout
+     %>
+       <div class="widget">
+     <% end %>
+     <%= widget_body -%>
+     <% if default_layout %><div class="clear"> </div></div><% end %>
+   <% else %>
+   <div class="widget"><p>No data</p></div>
+   <% end %>
+ <div style="clear: both;"></div>
+ </div>
 
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb
new file mode 100644 (file)
index 0000000..a1a5d8a
--- /dev/null
@@ -0,0 +1,33 @@
+<% form_remote_tag :url => {:action => 'save_widget', :wid => widget.id, :id => params[:id]}, :method => :post do -%>
+  <% if defined?(errors_by_property_key) && errors_by_property_key %>
+    <ul>
+       <% errors_by_property_key.each_pair do |property_key, error| %>
+         <li class="error"><%= property_key -%>: <%= h(error)-%></li>
+       </ul>
+       <% end %>
+  <% end %>
+    <table class="form width100">
+         <tbody>
+      <% definition.getWidgetProperties().each do |property_def|
+          value=widget.property_value(property_def.key(), property_def.defaultValue())
+      %>
+          <tr>
+            <td valign="top" class="thin nowrap"><b><%= property_def.key() -%></b><%= "*" unless property_def.optional()==true -%>: </td>
+            <td id="row_<%= property_def.key() -%>">
+              <%= property_value_field(property_def, value) -%>
+              <span class="note"><%= property_def.description() -%></span>
+            </td>
+          </tr>
+      <% end %>
+      <tr>
+        <td colspan="2">
+          <%= submit_tag 'Save' %>
+          <% if widget.configured %>
+            <a href="#" onClick="portal.cancelEditWidget(<%= widget.id -%>);return false;">Cancel</a>
+          <% end %>
+        </td>
+      </tr>
+      </tbody>
+    </table>
+    <%= hidden_field_tag "widgetid", "", :class => "widgetid" %>
+<% end -%>
\ No newline at end of file