Project

General

Profile

« Previous | Next » 

Revision f92e7cc9

Added by Walden Raines over 8 years ago

Fixes #11689: hide editor container when hidden value.

http://projects.theforeman.org/issues/11689

View differences:

app/assets/javascripts/hidden_values.js
function turn_textarea_switch(checkbox) {
var id = checkbox.id.replace(/hidden_value$/,"value");
var target, session;
var id = checkbox.id.replace(/hidden_value$/, "value");
var source = document.getElementById(id);
var $editorContainer = $('.editor-container');
if (checkbox.checked) {
var target = '<input class="form-control" type="password" id="' + id + '" name="' + source.name + '" value ="' + source.value + '"></input>'
target = '<input class="form-control" type="password" id="' + id + '" name="' + source.name + '" value ="' + source.value + '"></input>'
$editorContainer.find('.navbar').hide();
$editorContainer.find('.ace_editor').remove();
$(source).replaceWith(target);
} else {
var target = '<textarea class="form-control" id="' + id + '" name="' + source.name + '" placeholder="Value" rows="1">' + source.value + '</textarea>'
target = '<textarea class="form-control editor_source hide" id="' + id + '" name="' + source.name + '" placeholder="Value" rows="1">' + source.value + '</textarea>'
$editorContainer.find('.navbar').show();
$(source).replaceWith(target);
onEditorLoad();
session = Editor.getSession();
session.setValue($(source).val());
}
$(source).replaceWith(target);
}
function hidden_value_control(){
$(".toggle-hidden-value a").click(function(event){
event.preventDefault();
app/helpers/layout_helper.rb
error = f.object.errors[attr] if f && f.object.respond_to?(:errors)
help_inline = help_inline(options.delete(:help_inline), error)
size_class = options.delete(:size) || "col-md-4"
label = add_label(options, f, attr)
wrapper_class = options.delete(:wrapper_class) || "form-group"
label = options[:no_label] ? "" : add_label(options, f, attr)
if table_field
add_help_to_label(size_class, label, help_inline) do
......
help_block = content_tag(:span, options.delete(:help_block), :class => "help-block")
content_tag(:div, :class => "clearfix") do
content_tag :div, :class => "form-group #{error.empty? ? "" : 'has-error'}",
content_tag :div, :class => "#{wrapper_class} #{error.empty? ? "" : 'has-error'}",
:id => options.delete(:control_group_id) do
input = if options[:fullscreen]
content_tag(:div, yield.html_safe + fullscreen_input, :class => "input-group")
app/views/common_parameters/_form.html.erb
<%= form_for @common_parameter, :html => { :onsubmit => 'submit_code();' } do |f| %>
<%= base_errors_for @common_parameter %>
<%= text_f f, :name %>
<% if @common_parameter.hidden_value? %>
<%= password_f f, :value, :size => "col-md-8", :value => @common_parameter.value %>
<% else %>
<%= base_errors_for @common_parameter %>
<%= text_f f, :name %>
<div class='form-group'>
<label class="control-label col-md-2" for="common_parameter_value"><%= _("Value") %></label>
<div class="col-md-9">
<div class="editor-container">
<%= render :partial => 'editor/toolbar', :locals => {:show_preview => false} %>
<%= f.text_area(:value,
:class => "form-control value editor_source",
:rows => line_count(f, :value),
:placeholder => _("Value")) %>
<% if @common_parameter.hidden_value? %>
<%= password_f f, :value, :size => "", :no_label => true, :wrapper_class => "", :value => @common_parameter.value %>
<% else %>
<%= f.text_area(:value,
:class => "form-control value editor_source",
:rows => line_count(f, :value),
:placeholder => _("Value")) %>
<% end %>
</div>
</div>
</div>
<% end %>
<%= checkbox_f f, :hidden_value, :class => 'hidden_value_textarea_switch', :onchange => 'turn_textarea_switch(this)', :checked => f.object.hidden_value? %>
<%= submit_or_cancel f %>
<%= checkbox_f f, :hidden_value, :class => 'hidden_value_textarea_switch', :onchange => 'turn_textarea_switch(this)', :checked => f.object.hidden_value? %>
<%= submit_or_cancel f %>
<input type="hidden" id="old" value="<%= @common_parameter.value %>" />
<input type="hidden" id="new" value="<%= @common_parameter.value %>" />
<input type="hidden" id="old" value="<%= @common_parameter.value %>" />
<input type="hidden" id="new" value="<%= @common_parameter.value %>" />
<% end %>
<% if @common_parameter.hidden_value? %>
<script type="text/javascript">
$('.editor-container').find('.navbar').hide();
</script>
<% end %>
test/integration/common_parameter_test.rb
assert_submit_button(common_parameters_path)
assert page.has_content? 'mynewvalue'
end
test "does not display editor on hidden value" do
visit common_parameters_path
click_link "test"
check "common_parameter_hidden_value"
page.assert_no_selector 'editor_source'
end
end

Also available in: Unified diff