improvements for togglable form inputs

This commit is contained in:
Hauke Klement
2015-03-12 17:57:15 +01:00
parent ad7d96b1b0
commit 612d226588
5 changed files with 18 additions and 11 deletions

View File

@ -7,16 +7,21 @@ $(function() {
$('form').on('click', '.toggle-input', function(event) {
event.preventDefault();
if (!$(this).hasClass('disabled')) {
$(this).hide();
var parent = $(this).parents('.form-group');
var original_input = parent.find('input:not(disabled), select:not(disabled), textarea:not(disabled), .chosen-container');
original_input.attr('disabled', true);
original_input.hide();
var original_input = parent.find('.original-input');
var alternative_input = parent.find('.alternative-input');
alternative_input.attr('disabled', false);
alternative_input.show();
alternative_input.trigger('click');
if (alternative_input.attr('disabled')) {
$(this).text($(this).data('text-toggled'));
original_input.attr('disabled', true).hide();
alternative_input.attr('disabled', false).show();
} else {
$(this).text($(this).data('text-initial'));
alternative_input.attr('disabled', true).hide();
original_input.attr('disabled', false).show();
}
}
});

View File

@ -9,8 +9,8 @@
.form-group
= f.label(:docker_image)
|  
a.toggle-input href='#' = t('shared.new')
= f.select(:docker_image, @docker_images, {}, class: 'form-control')
a.toggle-input data={text_initial: t('shared.new'), text_toggled: t('shared.back')} href='#' = t('shared.new')
.original-input = f.select(:docker_image, @docker_images, {}, class: 'form-control')
= f.text_field(:docker_image, class: 'alternative-input form-control', disabled: true)
.help-block == t('.hints.docker_image')
.form-group

View File

@ -1,6 +1,6 @@
.form-group class="form-group-#{attribute.to_s.gsub('_', '-')}"
= form.label(attribute, label)
|  
a.toggle-input href='#' = t('shared.upload_file')
= form.text_area(attribute, class: 'code-field form-control', rows: 16)
a.toggle-input data={text_initial: t('shared.upload_file'), text_toggled: t('shared.back')} href='#' = t('shared.upload_file')
= form.text_area(attribute, class: 'code-field form-control original-input', rows: 16)
= form.file_field(attribute, class: 'alternative-input form-control', disabled: true)