Revision b3424682
Added by Tom Caspy about 9 years ago
app/assets/stylesheets/application.scss | ||
---|---|---|
text-decoration: line-through;
|
||
}
|
||
|
||
#title_action {
|
||
tr.override-param{
|
||
text-decoration: none;
|
||
span.col-md-2, textarea {
|
||
text-decoration: line-through;
|
||
}
|
||
a, i {
|
||
text-decoration: none;
|
||
}
|
||
}
|
||
|
||
#title_action{
|
||
padding-bottom: 12px;
|
||
}
|
||
|
app/helpers/lookup_keys_helper.rb | ||
---|---|---|
end
|
||
end
|
||
|
||
text_area_class = ['col-md-5']
|
||
text_area_class << "override-param" if key.overridden?(host)
|
||
content_tag :div, :class => ['form-group', 'condensed'] + diagnostic_class do
|
||
row_count = original_value.to_s.lines.count rescue 1
|
||
text_area_tag("value_#{key.key}", original_value, :rows => row_count == 0 ? 1 : row_count,
|
||
:class => ['col-md-5'], :'data-property' => 'value', :disabled => true) +
|
||
content_tag(:span, :class => "help-block") { diagnostic_helper }
|
||
text_area_tag("value_#{key.key}", original_value, :rows => (row_count == 0 ? 1 : row_count),
|
||
:class => text_area_class, :'data-property' => 'value', :disabled => true) +
|
||
content_tag(:span, :class => "help-block") { diagnostic_helper }
|
||
end
|
||
end
|
||
end
|
app/models/concerns/nested_ancestry_common.rb | ||
---|---|---|
|
||
def get_title
|
||
return name if ancestry.empty?
|
||
ancestors.map { |a| a.name + '/' }.join + name
|
||
ancestors.map { |a| a.name + '/' }.join + name.to_s
|
||
end
|
||
|
||
alias_method :get_label, :get_title
|
app/models/lookup_key.rb | ||
---|---|---|
value =~ /<%.*%>/
|
||
end
|
||
|
||
def overridden?(host)
|
||
return false unless host.is_a?(Host::Base) || host.is_a?(Hostgroup)
|
||
lookup_values.find_by_match(host.send(:lookup_value_match)).present?
|
||
end
|
||
|
||
private
|
||
|
||
# Generate possible lookup values type matches to a given host
|
app/views/common_parameters/_inherited_parameters.html.erb | ||
---|---|---|
<tbody>
|
||
<% keys = inherited_parameters.keys.sort %>
|
||
<% keys.each do |name| %>
|
||
<tr>
|
||
<tr class="<%="override-param" if @host.host_parameters.map(&:name).include?(name)%>">
|
||
<%= "<td class='col-md-3' rowspan='#{keys.size}'>#{_('Global')}</td>".html_safe if name == keys.first %>
|
||
<td class='col-md-2'><%= content_tag :span, name, :id => "name_#{name}", :class => "col-md-2" %></td>
|
||
<td class='col-md-2'><%= content_tag :span, name, :id => "name_#{name}", :class => "col-md-2" %>
|
||
</td>
|
||
<td class='col-md-7'><%= parameter_value_field inherited_parameters[name] %></td>
|
||
<td>
|
||
<%= link_to_function(_("override"), "override_param(this)", :title => _("Override this value"),
|
||
:'data-tag' => 'override', :class => "btn btn-default") if authorized_via_my_scope("host_editing", "create_params") %>
|
||
:'data-tag' => 'override', :class => "btn btn-default") if authorized_via_my_scope("host_editing", "create_params") && !@host.host_parameters.map(&:name).include?(name) %>
|
||
</td>
|
||
</tr>
|
||
<% end %>
|
app/views/puppetclasses/_class_parameters.html.erb | ||
---|---|---|
# Plus, we make the class name available from javascript without having to look at any previous row.
|
||
content_tag :span, puppetclass.name, :'data-property' => 'class'
|
||
end %>
|
||
<td><%= content_tag :span, key.key, :class => "col-md-2", :'data-property' => 'name' %></td>
|
||
<td>
|
||
<%= content_tag :span, key.key, :class => "col-md-2 #{"override-param" if key.overridden?(obj)}", :'data-property' => 'name' %></td>
|
||
<td><%= obj.class.model_name == "Host" ? host_key_with_diagnostic(obj, value_hash, key) : hostgroup_key_with_diagnostic(obj, key)%></td>
|
||
<td>
|
||
<%= link_to_function(_("override"), "override_class_param(this)", :title => _("Override this value"),
|
||
:'data-tag' => 'override', :class =>"btn btn-default") if authorized_via_my_scope("host_editing", "create_params") %>
|
||
:'data-tag' => 'override', :class =>"btn btn-default") if authorized_via_my_scope("host_editing", "create_params") && !key.overridden?(obj) %>
|
||
</td>
|
||
</tr>
|
||
<% end %>
|
test/unit/lookup_key_test.rb | ||
---|---|---|
key = LookupKey.create!(:key => "dns", :path => "environment,hostgroup \n hostgroup", :puppetclass => puppetclass, :default_value => default, :override=>true)
|
||
value1 = LookupValue.create!(:value => "v1", :match => "environment=testing,hostgroup=Common", :lookup_key => key)
|
||
value2 = LookupValue.create!(:value => "v2", :match => "hostgroup=Unusual", :lookup_key => key)
|
||
|
||
LookupValue.create!(:value => "v22", :match => "fqdn=#{@host2.fqdn}", :lookup_key => key)
|
||
EnvironmentClass.create!(:puppetclass => puppetclass, :environment => environments(:testing), :lookup_key => key)
|
||
HostClass.create!(:host => @host1,:puppetclass=>puppetclass)
|
||
HostClass.create!(:host => @host2,:puppetclass=>puppetclass)
|
||
... | ... | |
assert_equal value1.value, Classification::ClassParam.new(:host=>@host1).enc['apache']['dns']
|
||
assert_equal value2.value, Classification::ClassParam.new(:host=>@host2).enc['apache']['dns']
|
||
assert_equal default, Classification::ClassParam.new(:host=>@host3).enc['apache']['dns']
|
||
assert key.overridden?(@host2)
|
||
refute key.overridden?(@host1)
|
||
end
|
||
|
||
def test_parameters_multiple_paths
|
Also available in: Unified diff
fixes #4424 - overriden attributes get overridden in the UI
(cherry picked from commit 0575b5b0a07c59c443bf2be663cb67d6a5e40f19)