hide fields from the file form if not matching the file's role
This commit is contained in:
@ -103,8 +103,14 @@ $(function() {
|
||||
$(document).on('change', 'select[name$="[role]"]', function() {
|
||||
var is_test_file = $(this).val() === 'teacher_defined_test';
|
||||
var parent = $(this).parents('.panel');
|
||||
parent.find('[name$="[feedback_message]"]').attr('disabled', !is_test_file);
|
||||
parent.find('[name$="[weight]"]').attr('disabled', !is_test_file);
|
||||
var fields = parent.find('.test-related-fields');
|
||||
if (is_test_file) {
|
||||
fields.slideDown();
|
||||
} else {
|
||||
fields.slideUp();
|
||||
parent.find('[name$="[feedback_message]"]').val('');
|
||||
parent.find('[name$="[weight]"]').val(1);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -9,8 +9,9 @@ module CodeOcean
|
||||
TEACHER_DEFINED_ROLES = ROLES - %w(user_defined_file)
|
||||
|
||||
after_initialize :set_default_values
|
||||
before_validation :set_ancestor_values, if: :incomplete_descendent?
|
||||
before_validation :clear_weight, unless: :teacher_defined_test?
|
||||
before_validation :hash_content, if: :content_present?
|
||||
before_validation :set_ancestor_values, if: :incomplete_descendent?
|
||||
|
||||
belongs_to :context, polymorphic: true
|
||||
belongs_to :execution_environment
|
||||
@ -49,6 +50,11 @@ module CodeOcean
|
||||
file_id || id
|
||||
end
|
||||
|
||||
def clear_weight
|
||||
self.weight = nil
|
||||
end
|
||||
private :clear_weight
|
||||
|
||||
def content_present?
|
||||
content? || native_file?
|
||||
end
|
||||
|
@ -22,11 +22,12 @@ li.panel.panel-default
|
||||
label
|
||||
= f.check_box(:read_only)
|
||||
= t('activerecord.attributes.file.read_only')
|
||||
.form-group
|
||||
= f.label(:name, t('activerecord.attributes.file.feedback_message'))
|
||||
= f.text_area(:feedback_message, class: 'form-control', disabled: !f.object.teacher_defined_test?, maxlength: 255)
|
||||
.help-block = t('.hints.feedback_message')
|
||||
.form-group
|
||||
= f.label(:role, t('activerecord.attributes.file.weight'))
|
||||
= f.number_field(:weight, class: 'form-control', disabled: !f.object.teacher_defined_test?, min: 1, step: 'any')
|
||||
.test-related-fields style="display: #{f.object.teacher_defined_test? ? 'initial' : 'none'};"
|
||||
.form-group
|
||||
= f.label(:name, t('activerecord.attributes.file.feedback_message'))
|
||||
= f.text_area(:feedback_message, class: 'form-control', maxlength: 255)
|
||||
.help-block = t('.hints.feedback_message')
|
||||
.form-group
|
||||
= f.label(:role, t('activerecord.attributes.file.weight'))
|
||||
= f.number_field(:weight, class: 'form-control', min: 1, step: 'any')
|
||||
= render('code_field', attribute: :content, form: f, label: t('activerecord.attributes.file.content'))
|
||||
|
Reference in New Issue
Block a user