Refactor the new/edit submission forms
This commit is contained in:
parent
c55eff4eec
commit
ed20ff3b51
5 changed files with 101 additions and 115 deletions
|
|
@ -199,7 +199,7 @@ $( document ).ready(function() {
|
||||||
let affirm = confirm($this.data('confirm'));
|
let affirm = confirm($this.data('confirm'));
|
||||||
if (affirm) {
|
if (affirm) {
|
||||||
let sub_text = $('#event_submission_text');
|
let sub_text = $('#event_submission_text');
|
||||||
sub_text.val($selected.data('help'));
|
sub_text.val($selected.data('instructions'));
|
||||||
sub_text.trigger('change');
|
sub_text.trigger('change');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,19 @@ module EventsHelper
|
||||||
"#{event.average_rating}/#{max_rating}, #{pluralize(event.voters.length, 'vote')}"
|
"#{event.average_rating}/#{max_rating}, #{pluralize(event.voters.length, 'vote')}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def event_type_options(event_types)
|
||||||
|
event_types.map do |type|
|
||||||
|
[
|
||||||
|
"#{type.title} - #{show_time(type.length)}",
|
||||||
|
type.id,
|
||||||
|
data: {
|
||||||
|
min_words: type.minimum_abstract_length,
|
||||||
|
max_words: type.maximum_abstract_length,
|
||||||
|
help: type.submission_instructions
|
||||||
|
}
|
||||||
|
]
|
||||||
|
end
|
||||||
|
end
|
||||||
def event_type_dropdown(event, event_types, conference_id)
|
def event_type_dropdown(event, event_types, conference_id)
|
||||||
selection = event.event_type.try(:title) || 'Event Type'
|
selection = event.event_type.try(:title) || 'Event Type'
|
||||||
options = event_types.collect do |event_type|
|
options = event_types.collect do |event_type|
|
||||||
|
|
|
||||||
|
|
@ -11,85 +11,43 @@
|
||||||
|
|
||||||
= track_selector_input f
|
= track_selector_input f
|
||||||
|
|
||||||
= f.input :event_type_id, as: :select,
|
|
||||||
collection: @conference.program.event_types.map {|type| ["#{type.title} - #{show_time(type.length)}", type.id,
|
|
||||||
data: { min_words: type.minimum_abstract_length, max_words: type.maximum_abstract_length, help: type.description }]},
|
|
||||||
include_blank: false, label: 'Type', input_html: { class: 'select-help-toggle' }
|
|
||||||
|
|
||||||
- if @program.languages.present?
|
- if @program.languages.present?
|
||||||
= f.input :language, as: :select,
|
= f.input :language, as: :select,
|
||||||
collection: @languages,
|
collection: @languages,
|
||||||
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
||||||
|
|
||||||
- @conference.program.event_types.each do |event_type|
|
- if @program.difficulty_levels.present?
|
||||||
%span{ class: 'help-block select-help-text event_event_type_id collapse', id: "#{event_type.id}-help" }
|
= f.input :difficulty_level, as: :select, collection: @program.difficulty_levels,
|
||||||
= event_type.description
|
input_html: { class: 'select-help-toggle' },
|
||||||
|
include_blank: '(Please select)' if @conference.program.difficulty_levels.any?
|
||||||
|
|
||||||
= f.input :difficulty_level, as: :select, collection: @conference.program.difficulty_levels, input_html: { class: 'select-help-toggle' },
|
- @program.difficulty_levels.each do |difficulty_level|
|
||||||
include_blank: '(Please select)' if @conference.program.difficulty_levels.any?
|
%span{ class: 'help-block select-help-text collapse event_difficulty_level_id', id: "#{difficulty_level.id}-help" }
|
||||||
|
= difficulty_level.description
|
||||||
|
|
||||||
- @conference.program.difficulty_levels.each do |difficulty_level|
|
= render 'submission_type_content_form', f: f, program: @program
|
||||||
%span{ class: 'help-block select-help-text collapse event_difficulty_level_id', id: "#{difficulty_level.id}-help" }
|
|
||||||
= difficulty_level.description
|
|
||||||
|
|
||||||
= f.input :abstract, required: true, input_html: { rows: 5, data: { provide: 'markdown' } },
|
- if @program.cfp&.enable_registrations?
|
||||||
hint: markdown_hint('[Tips to improve your presentations.](http://blog.hubspot.com/blog/tabid/6307/bid/5975/10-Rules-to-Instantly-Improve-Your-Presentations.aspx)')
|
|
||||||
|
|
||||||
%p
|
|
||||||
You have used
|
|
||||||
%span#abstract-count #{@event.abstract_word_count}
|
|
||||||
words. Abstracts must be between
|
|
||||||
%span#abstract-minimum-word-count
|
|
||||||
0
|
|
||||||
and
|
|
||||||
%span#abstract-maximum-word-count
|
|
||||||
250
|
|
||||||
words.
|
|
||||||
|
|
||||||
%br
|
|
||||||
- @conference.program.event_types.each do |event_type|
|
|
||||||
%span{ class: 'help-block select-help-text event_event_type_id collapse', id: "#{event_type.id}-help" }
|
|
||||||
%h3
|
|
||||||
= event_type.name
|
|
||||||
Instructions
|
|
||||||
= markdown(event_type.submission_instructions)
|
|
||||||
|
|
||||||
= f.input :submission_text, input_html: { rows: 5, data: { provide: 'markdown' }, placeholder: '' },
|
|
||||||
hint: markdown_hint('Only conference organizers will read this.')
|
|
||||||
%button.btn.btn-primary.primary-button{ type: 'button', id: 'sub_text_reset', data: { confirm: 'Do you really want to reset your submission text to the provided template?' } } Reset to Template
|
|
||||||
|
|
||||||
%p
|
|
||||||
You have used
|
|
||||||
%span#submission-count #{@event.submission_word_count}
|
|
||||||
words. Submission descriptions must be between
|
|
||||||
%span#submission-minimum-word-count
|
|
||||||
0
|
|
||||||
and
|
|
||||||
%span#submission-maximum-word-count
|
|
||||||
250
|
|
||||||
words.
|
|
||||||
|
|
||||||
- if current_user.is_admin? or @program.cfp&.enable_registrations?
|
|
||||||
= f.inputs 'Enable pre-registration' do
|
= f.inputs 'Enable pre-registration' do
|
||||||
= f.input :require_registration, label: 'Require participants to register to your event'
|
= f.input :require_registration, label: 'Require participants to register to your event'
|
||||||
- message = @event.room ? "Value must be between 1 and #{@event.room.size}" : 'Check room capacity after scheduling.'
|
- message = @event.room ? "Value must be between 1 and #{@event.room.size}" : 'Check room capacity after scheduling.'
|
||||||
= f.input :max_attendees, hint: 'The maximum number of participants. ' + message
|
= f.input :max_attendees, hint: 'The maximum number of participants. ' + message
|
||||||
|
|
||||||
- if current_user.has_any_role? :admin, { name: :organizer, resource: @conference }, { name: :cfp, resource: @conference }
|
|
||||||
= f.input :is_highlight
|
|
||||||
|
|
||||||
%p.text-right
|
%p.text-right
|
||||||
= link_to '#description', 'data-toggle' => 'collapse' do
|
= link_to '#description', 'data-toggle' => 'collapse' do
|
||||||
Do you require something special?
|
Do you require something special?
|
||||||
#description{ class: "collapse #{ 'in' if @event.description.present? }" }
|
#description{ class: "collapse #{ 'in' if @event.description.present? }" }
|
||||||
= f.input :description, input_html: { rows: 5 }, label: 'Requirements', placeholder: 'Eg. Whiteboard, printer, or something like that.'
|
= f.input :description, input_html: { rows: 5 }, label: 'Requirements', placeholder: 'Eg. Whiteboard, printer, or something like that.'
|
||||||
|
|
||||||
|
- if current_user.has_any_role? :admin, { name: :organizer, resource: @conference }, { name: :cfp, resource: @conference }
|
||||||
|
%p (Admin Only)
|
||||||
|
= f.input :is_highlight
|
||||||
|
|
||||||
%p.text-right
|
%p.text-right
|
||||||
- if @event.new_record?
|
- if @event.new_record?
|
||||||
= f.submit 'Submit Proposal', class: 'btn btn-success'
|
= f.submit 'Submit Proposal', class: 'btn btn-success'
|
||||||
- else
|
- else
|
||||||
= f.submit 'Update Proposal', class: 'btn btn-success'
|
= f.submit 'Update Proposal', class: 'btn btn-primary'
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
|
||||||
66
app/views/proposals/_submission_type_content_form.haml
Normal file
66
app/views/proposals/_submission_type_content_form.haml
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
-# PARTIAL FOR EVENT/PROPOSAL FORM
|
||||||
|
-# `f` a current from helper.
|
||||||
|
|
||||||
|
= f.input :event_type_id, as: :select, include_blank: false, label: 'Type',
|
||||||
|
input_html: { class: 'select-help-toggle' },
|
||||||
|
collection: event_type_options(program.event_types)
|
||||||
|
|
||||||
|
|
||||||
|
- program.event_types.each do |event_type|
|
||||||
|
.help-block.event_event_type_id.collapse{ id: "#{event_type.id}-help" }
|
||||||
|
%strong Description
|
||||||
|
%div
|
||||||
|
= markdown(event_type.description)
|
||||||
|
|
||||||
|
%h3 Submission Abstract
|
||||||
|
%p
|
||||||
|
The abstract is reviewed by the committee and included in the conference program.
|
||||||
|
You are encouraged to include links or other references as appropriate.
|
||||||
|
|
||||||
|
= f.label :abstract, class: 'sr-only'
|
||||||
|
= f.input :abstract, required: true, label: false,
|
||||||
|
input_html: { rows: 5, data: { provide: 'markdown' } },
|
||||||
|
hint: markdown_hint
|
||||||
|
|
||||||
|
%p
|
||||||
|
You have used
|
||||||
|
%span#abstract-count #{@event.abstract_word_count}
|
||||||
|
words. Abstracts must be between
|
||||||
|
%span#abstract-minimum-word-count 0
|
||||||
|
and
|
||||||
|
%span#abstract-maximum-word-count 250
|
||||||
|
words.
|
||||||
|
|
||||||
|
%hr
|
||||||
|
%h3 Submission Details
|
||||||
|
%p
|
||||||
|
This part of the submission is intended only for the conference committee.
|
||||||
|
|
||||||
|
- program.event_types.each do |event_type|
|
||||||
|
.help-block.select-help-text.event_event_type_id.collapse{ id: "#{event_type.id}-instructions" }
|
||||||
|
- if event_type.submission_instructions.blank?
|
||||||
|
%p
|
||||||
|
Use this space to include any additional inforrmation that is helpful in reviewing your
|
||||||
|
submission. If you have any co-presenters, please include them
|
||||||
|
below. After submission, you will have the opportunity to add them to the
|
||||||
|
speakers list. (However, they must have an active #{ENV['OSEM_NAME']} account.)
|
||||||
|
- else
|
||||||
|
%p
|
||||||
|
Please use the following as the template for your submission. This will help the conference committee review your submission with all the details they need. If you have any co-presenters, please include them below. After
|
||||||
|
submission, you will have the opportunity to add them to the speakers
|
||||||
|
list. (However, they must have an active #{ENV['OSEM_NAME']} account.)
|
||||||
|
.panel.panel-primary
|
||||||
|
.panel-heading
|
||||||
|
= event_type.name
|
||||||
|
Template
|
||||||
|
.panel-body
|
||||||
|
= markdown(event_type.submission_instructions)
|
||||||
|
.panel-footer
|
||||||
|
%button.btn.btn-warning.btn-xs{ type: 'button', id: 'sub_text_reset', data: { confirm: 'Do you really want to reset your submission text to the provided template?' } }
|
||||||
|
Reset Submission to Template
|
||||||
|
%span.small You may want to use this if you have changed the submission type.
|
||||||
|
|
||||||
|
= f.label :submission_text, class: 'sr-only'
|
||||||
|
= f.input :submission_text, label: false,
|
||||||
|
input_html: { rows: 10, data: { provide: 'markdown' } },
|
||||||
|
hint: markdown_hint
|
||||||
|
|
@ -38,67 +38,16 @@
|
||||||
collection: @languages,
|
collection: @languages,
|
||||||
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
||||||
|
|
||||||
= f.input :event_type_id, as: :select,
|
- if @program.difficulty_levels.present?
|
||||||
collection: @program.event_types.map {|type| ["#{type.title} - #{show_time(type.length)}", type.id,
|
= f.input :difficulty_level, as: :select, collection: @program.difficulty_levels,
|
||||||
data: { min_words: type.minimum_abstract_length, max_words: type.maximum_abstract_length, instructions: type.submission_instructions }]},
|
input_html: { class: 'select-help-toggle' },
|
||||||
include_blank: false, label: 'Type', input_html: { class: 'select-help-toggle' }
|
include_blank: '(Please select)' if @conference.program.difficulty_levels.any?
|
||||||
|
|
||||||
- @program.event_types.each do |event_type|
|
- @program.difficulty_levels.each do |difficulty_level|
|
||||||
.help-block.event_event_type_id.collapse{ id: "#{event_type.id}-help" }
|
%span.help-block.select-help-text.collapse.event_difficulty_level_id{ id: "#{difficulty_level.id}-help" }
|
||||||
%strong Description
|
= difficulty_level.description
|
||||||
%div
|
|
||||||
= markdown(event_type.description)
|
|
||||||
|
|
||||||
%h3 Submission Abstract
|
= render 'submission_type_content_form', f: f, program: @program
|
||||||
%p
|
|
||||||
The abstract is reviewed by the committee and included in the conference program.
|
|
||||||
You are encouraged to include links or other references as appropriate.
|
|
||||||
|
|
||||||
= f.label :abstract, class: 'sr-only'
|
|
||||||
= f.input :abstract, required: true, label: false,
|
|
||||||
input_html: { rows: 5, data: { provide: 'markdown' } },
|
|
||||||
hint: markdown_hint
|
|
||||||
%p
|
|
||||||
You have used
|
|
||||||
%span#abstract-count #{@event.abstract_word_count}
|
|
||||||
words. Abstracts must be between
|
|
||||||
%span#abstract-minimum-word-count 0
|
|
||||||
and
|
|
||||||
%span#abstract-maximum-word-count 250
|
|
||||||
words.
|
|
||||||
|
|
||||||
%hr
|
|
||||||
%h3
|
|
||||||
Submission Details
|
|
||||||
%p
|
|
||||||
This part of the submission is intended only for the conference committee.
|
|
||||||
|
|
||||||
- @conference.program.event_types.each do |event_type|
|
|
||||||
.help-block.select-help-text.event_event_type_id.collapse{ id: "#{event_type.id}-instructions" }
|
|
||||||
- if event_type.submission_instructions.blank?
|
|
||||||
Use this space to include any additional inforrmation that is helpful in reviewing your submission. If you have any co-presenters, please include them
|
|
||||||
below. After submission, you will have the opportunity to add them to the
|
|
||||||
speakers list. (However, they must have an active #{ENV['OSEM_NAME']} account.)
|
|
||||||
- else
|
|
||||||
%p
|
|
||||||
Please use the following as the template for your submission. This will help the conference committee review your submission with all the details they need. If you have any co-presenters, please include them below. After
|
|
||||||
submission, you will have the opportunity to add them to the speakers
|
|
||||||
list. (However, they must have an active #{ENV['OSEM_NAME']} account.)
|
|
||||||
.panel.panel-primary
|
|
||||||
.panel-heading
|
|
||||||
= event_type.name
|
|
||||||
Template
|
|
||||||
.panel-body
|
|
||||||
= markdown(event_type.submission_instructions)
|
|
||||||
.panel-footer
|
|
||||||
%button.btn.btn-warning.btn-xs{ type: 'button', id: 'sub_text_reset', data: { confirm: 'Do you really want to reset your submission text to the provided template?' } } Reset Submission to Template
|
|
||||||
%span.small
|
|
||||||
You may want to use this if you have changed the submission type.
|
|
||||||
|
|
||||||
= f.label :submission_text, class: 'sr-only'
|
|
||||||
= f.input :submission_text, label: false,
|
|
||||||
input_html: { rows: 10, data: { provide: 'markdown' } },
|
|
||||||
hint: markdown_hint
|
|
||||||
|
|
||||||
- if @program.cfp.enable_registrations?
|
- if @program.cfp.enable_registrations?
|
||||||
= f.input :require_registration, label: 'Require participants to register to your event'
|
= f.input :require_registration, label: 'Require participants to register to your event'
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue