From aa254366dbe70f4d8d1ad016c04f4f256921528f Mon Sep 17 00:00:00 2001 From: yqbk Date: Mon, 15 Aug 2016 14:59:04 +0200 Subject: [PATCH] adjustments in file form --- app/assets/stylesheets/editor.css.scss | 3 +- app/views/exercises/_file_form.html.slim | 82 +++++++++++++----------- app/views/exercises/_form.html.slim | 17 +++-- 3 files changed, 57 insertions(+), 45 deletions(-) diff --git a/app/assets/stylesheets/editor.css.scss b/app/assets/stylesheets/editor.css.scss index 6cf2975c..8b68b6b2 100644 --- a/app/assets/stylesheets/editor.css.scss +++ b/app/assets/stylesheets/editor.css.scss @@ -4,7 +4,8 @@ button i.fa-spin { .editor { height: 100%; - width: 100%; + width: auto; + margin: 12px; } .frame { diff --git a/app/views/exercises/_file_form.html.slim b/app/views/exercises/_file_form.html.slim index 4b2055c0..50cd0631 100644 --- a/app/views/exercises/_file_form.html.slim +++ b/app/views/exercises/_file_form.html.slim @@ -1,40 +1,46 @@ -- id = f.object.id -li.panel.panel-default - .panel-heading role="tab" id="heading" - a.file-heading data-toggle="collapse" data-parent="#files" href="#collapse#{id}" - div.clearfix role="button" - span = f.object.name - .panel-collapse.collapse-in id="collapse#{id}" role="tabpanel" - .panel-body - .clearfix = link_to(t('shared.destroy'), '#', class:'btn btn-warning btn-sm discard-file pull-right') - .form-group - = f.label(:name, t('activerecord.attributes.file.name')) - = f.text_field(:name, class: 'form-control') - .form-group - = f.label(:path, t('activerecord.attributes.file.path')) - = f.text_field(:path, class: 'form-control') - .help-block = t('.hints.path') - .form-group - = f.label(:file_type_id, t('activerecord.attributes.file.file_type_id')) - = f.collection_select(:file_type_id, @file_types, :id, :name, {}, class: 'form-control') - .form-group - = f.label(:role, t('activerecord.attributes.file.role')) - = f.select(:role, CodeOcean::File::TEACHER_DEFINED_ROLES.map { |role| [t("files.roles.#{role}"), role] }, {include_blank: true}, class: 'form-control') - .checkbox - label - = f.check_box(:hidden) - = t('activerecord.attributes.file.hidden') - .checkbox - label - = f.check_box(:read_only) - = t('activerecord.attributes.file.read_only') - .test-related-fields style="display: #{f.object.teacher_defined_test? ? 'initial' : 'none'};" +//- id = f.object.id += form_for(file) do |f| + li.panel.panel-default + .panel-heading role="tab" id="heading" + a.file-heading data-toggle="collapse" data-parent="#files" href="#collapse#{file.id}" + div.clearfix role="button" + span = file.name + /.panel-collapse.collapse id="collapse#{file.id}" role="tabpanel" + .panel-body + .clearfix = link_to(t('shared.destroy'), '#', class:'btn btn-warning btn-sm discard-file pull-right') .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') + = f.label(:name, t('activerecord.attributes.file.name')) + = f.text_field(:name, class: 'form-control') .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')) - = render('ace', exercise: @exercise, file: @files.first) \ No newline at end of file + = f.label(:path, t('activerecord.attributes.file.path')) + = f.text_field(:path, class: 'form-control') + .help-block = t('.hints.path') + .form-group + = f.label(:file_type_id, t('activerecord.attributes.file.file_type_id')) + = f.collection_select(:file_type_id, @file_types, :id, :name, {}, class: 'form-control') + .form-group + = f.label(:role, t('activerecord.attributes.file.role')) + = f.select(:role, CodeOcean::File::TEACHER_DEFINED_ROLES.map { |role| [t("files.roles.#{role}"), role] }, {include_blank: true}, class: 'form-control') + .checkbox + label + = f.check_box(:hidden) + = t('activerecord.attributes.file.hidden') + .checkbox + label + = f.check_box(:read_only) + = t('activerecord.attributes.file.read_only') + .test-related-fields style="display: #{file.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 ace editor + - unless file.new_record? + = render partial: 'ace', locals: { exercise: @exercise, file: file } + + /Disabled blank text editor field + /= render('code_field', attribute: :content, form: f, label: t('activerecord.attributes.file.content')) diff --git a/app/views/exercises/_form.html.slim b/app/views/exercises/_form.html.slim index c284c0a3..f5adc068 100644 --- a/app/views/exercises/_form.html.slim +++ b/app/views/exercises/_form.html.slim @@ -30,15 +30,20 @@ = f.check_box(:allow_file_creation) = t('activerecord.attributes.exercise.allow_file_creation') h2 = t('activerecord.attributes.exercise.files') - /render ace editor for not hidden files - = render('ace', exercise: @exercise, file: @files.first) + /hidden editor -> to be deleted + .hidden = render('ace', exercise: @exercise, file: @files.first) + /after use $('.frame').show() in js console everything works fine, probably editors are hidden somewhere in editor.js because we get "display:none" on frames ul#files.list-unstyled.panel-group - = f.fields_for :files do |files_form| - = render('file_form', f: files_form, file: files_form.object, code: @files) + = @exercise.files.each do |file| + = render partial: 'file_form', locals: { file: file } + /= f.fields_for :files do |files_form| + / = render('file_form', f: files_form, file: files_form.object, code: @files) a#add-file.btn.btn-default.btn-sm.pull-right href='#' = t('.add_file') - ul#dummies.hidden = f.fields_for(:files, CodeOcean::File.new, child_index: 'index') do |files_form| - = render('file_form', f: files_form, file: nil) + ul#dummies.hidden + // = f.fields_for(:files, CodeOcean::File.new, child_index: 'index') do |files_form| + = render partial: 'file_form', locals: { file: CodeOcean::File.new } + //= render('file_form', f: files_form, file: nil) .actions = render('shared/submit_button', f: f, object: @exercise)