]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3529 Improve property sets
authorDavid Gageot <david@gageot.net>
Thu, 4 Oct 2012 15:11:52 +0000 (17:11 +0200)
committerDavid Gageot <david@gageot.net>
Thu, 4 Oct 2012 15:11:52 +0000 (17:11 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/PropertyField.java
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyFieldDefinition.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/settings_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/settings/_set_instance.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/settings/_type_PROPERTY_SET_DEFINITION.html.erb

index d0ca927ac2554fffb2f3f14a47c9fe563bb00914..ae15c3946024e33bf3c16c8779a68dd5996e6fca 100644 (file)
@@ -40,11 +40,6 @@ public @interface PropertyField {
    */
   String key();
 
-  /**
-   * The empty string "" is considered as null, so it's not possible to have empty strings for default values.
-   */
-  String defaultValue() default "";
-
   /**
    * This name will be displayed on the Settings page. This can be overridden/translated
    * by adding a a value for: <code>field.{key of parent property}.{key of this field}.name</code> in the language bundle.
index cc73824eb879106e4183c126859bc47f6c6649a6..dfa4171792a16437054f60d6217eb04c22f4a7ba 100644 (file)
@@ -32,7 +32,6 @@ import java.util.List;
  */
 public final class PropertyFieldDefinition {
   private final String key;
-  private final String defaultValue;
   private final String name;
   private final String description;
   private final int indicativeSize;
@@ -41,7 +40,6 @@ public final class PropertyFieldDefinition {
 
   private PropertyFieldDefinition(PropertyField annotation) {
     this.key = annotation.key();
-    this.defaultValue = annotation.defaultValue();
     this.name = annotation.name();
     this.description = annotation.description();
     this.indicativeSize = annotation.indicativeSize();
@@ -61,10 +59,6 @@ public final class PropertyFieldDefinition {
     return key;
   }
 
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
   public String getName() {
     return name;
   }
index c64c1f025a21d704d3f873b5370fc5035e2a3c28..a373a86c460283290409be5229a9203f4cc09027 100644 (file)
@@ -60,6 +60,10 @@ class SettingsController < ApplicationController
         # clear
         Property.with_key_prefix(key + '.').with_resource(resource_id).delete_all
 
+        if params[key][:auto_generate]
+          set_keys = Array.new(set_keys.size - 1) { |i| i.to_s }
+        end
+
         # set keys
         update_property(key, set_keys, resource_id)
         set_keys.each do |set_key|
index 25f871da34464eb0faecda2cdbb14fa003d0dd85..b2007ca090c5c8298f06dcacef721da0e556b3da 100644 (file)
@@ -5,7 +5,7 @@
   <% if key_field -%>
     <td><%= render "settings/type_#{key_field.type}", :property => key_field, :field => key_field, :value => set_key, :name => "property_sets[#{property.key}][]", :id => "input_#{h key_field.key}", :size => key_field.indicativeSize -%></td>
   <% else -%>
-    <%= hidden_field_tag "property_sets[#{property.key}][]", set_key -%>
+    <%= hidden_field_tag "property_sets[#{property.key}][]", 'auto-generated' -%>
   <% end -%>
 
   <% property.fields.reject { |field| field.key == 'key' }.each do |field| -%>
index 9a601b52a041e1e7e65ce83d5d66b9348bfbf4e2..ab21f5fc32225699c60b74dc6391b2fccf8685b0 100644 (file)
@@ -5,6 +5,8 @@
   <tr>
     <% if key_field(property) -%>
       <th><%= message('key') -%></th>
+    <% else %>
+      <%= hidden_field_tag "#{property.key}[auto_generate]", true -%>
     <% end -%>
     <% property.fields.reject { |field| field.key == 'key' }.each do |field| -%>
       <th>