mirror of
https://github.com/openSUSE/osem.git
synced 2026-01-25 14:29:51 -05:00
Refactor proposal forms
This commit is contained in:
@@ -70,7 +70,6 @@ linters:
|
||||
UnnecessaryInterpolation:
|
||||
exclude:
|
||||
- "app/views/admin/conferences/_recent_submissions.html.haml"
|
||||
- "app/views/proposals/_proposal_form.html.haml"
|
||||
- "app/views/proposals/new.html.haml"
|
||||
|
||||
# Offense count: 262
|
||||
|
||||
@@ -1,11 +1,43 @@
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
-if @event.new_record?
|
||||
New
|
||||
= @event.title
|
||||
Event
|
||||
.row
|
||||
.col-md-12
|
||||
= render 'proposals/proposal_form'
|
||||
.container
|
||||
.row
|
||||
.col-md-12
|
||||
.tabbable
|
||||
%ul.nav.nav-tabs
|
||||
%li.active
|
||||
= link_to 'Proposal', '#proposal-content', 'data-toggle' => 'tab'
|
||||
%li
|
||||
= link_to 'Commercials', '#commercials-content', 'data-toggle' => 'tab'
|
||||
.tab-content
|
||||
.tab-pane.active#proposal-content
|
||||
= form_for(@event, url: @url) do |f|
|
||||
= render partial: 'proposals/form', locals: { f: f }
|
||||
= render partial: 'shared/user_selectize'
|
||||
.tab-pane#commercials-content
|
||||
%p.text-muted
|
||||
You can add commercials for your proposal. These commercials will be displayed on the
|
||||
= link_to 'public proposal page.', conference_program_proposal_path(@conference.short_title, @event)
|
||||
If you don't add a commercial, the conference commercial will be displayed!
|
||||
- if can? :create, @event.commercials.new
|
||||
.row
|
||||
.col-md-6
|
||||
#resource-content
|
||||
#resource-placeholder{ style: 'background-color:#d3d3d3; float: left; width: 400px; height: 250px; margin: 5px; border-width: 1px; border-style: solid; border-color: rgba(0,0,0,.2);' }
|
||||
.row
|
||||
.col-md-6
|
||||
= form_for(@event.commercials.new, url: conference_program_proposal_commercials_path(conference_id: @conference.short_title, proposal_id: @event)) do |f|
|
||||
= render partial: 'proposals/commercial_form_fields', locals: { f: f, commercial: @event.commercials.build }
|
||||
%hr
|
||||
- @event.commercials.each_slice(3) do |slice|
|
||||
.row
|
||||
- slice.each do |commercial|
|
||||
- if commercial.persisted?
|
||||
.col-md-4
|
||||
.thumbnail
|
||||
.flexvideo{ id: "resource-content-#{commercial.id}"}
|
||||
= render partial: 'shared/media_item', locals: { commercial: commercial }
|
||||
.caption
|
||||
- if can? :update, commercial
|
||||
= form_for(commercial, url: conference_program_proposal_commercial_path(conference_id: @conference.short_title, proposal_id: @event, id: commercial)) do |f|
|
||||
= render partial: 'proposals/commercial_form_fields', locals: { f: f, commercial: commercial }
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
= render 'proposals/form'
|
||||
= render 'form'
|
||||
|
||||
@@ -1,37 +1,87 @@
|
||||
.tabbable
|
||||
%ul.nav.nav-tabs
|
||||
%li.active
|
||||
= link_to 'Proposal', '#proposal-content', 'data-toggle' => 'tab'
|
||||
%li
|
||||
= link_to 'Commercials', '#commercials-content', 'data-toggle' => 'tab'
|
||||
.tab-content
|
||||
#proposal-content.tab-pane.active
|
||||
= render 'proposals/proposal_form'
|
||||
#commercials-content.tab-pane
|
||||
%p.text-muted
|
||||
You can add commercials for your proposal. These commercials will be displayed on the
|
||||
= link_to 'public proposal page.', conference_program_proposal_path(@conference.short_title, @event)
|
||||
If you don't add a commercial, the conference commercial will be displayed!
|
||||
- if can? :create, @event.commercials.new
|
||||
.row
|
||||
.col-md-6
|
||||
#resource-content
|
||||
#resource-placeholder{ style: 'background-color:#d3d3d3; float: left; width: 400px; height: 250px; margin: 5px; border-width: 1px; border-style: solid; border-color: rgba(0,0,0,.2);' }
|
||||
.row
|
||||
.col-md-6
|
||||
= form_for(@event.commercials.new, url: conference_program_proposal_commercials_path(conference_id: @conference.short_title, proposal_id: @event)) do |f|
|
||||
= render partial: 'proposals/commercial_form_fields', locals: { f: f, commercial: @event.commercials.build }
|
||||
%hr
|
||||
- @event.commercials.each_slice(3) do |slice|
|
||||
.row
|
||||
- slice.each do |commercial|
|
||||
- if commercial.persisted?
|
||||
.col-md-4
|
||||
.thumbnail
|
||||
.flexvideo{ id: "resource-content-#{commercial.id}"}
|
||||
= render partial: 'shared/media_item', locals: { commercial: commercial }
|
||||
.caption
|
||||
- if can? :update, commercial
|
||||
= form_for(commercial, url: conference_program_proposal_commercial_path(conference_id: @conference.short_title, proposal_id: @event, id: commercial)) do |f|
|
||||
= render partial: 'proposals/commercial_form_fields', locals: { f: f, commercial: commercial }
|
||||
- action_is_edit = @event.persisted?
|
||||
- display_registration = current_user&.is_admin? || @program.cfp&.enable_registrations?
|
||||
|
||||
%h4
|
||||
Proposal Information
|
||||
%hr
|
||||
.form-group
|
||||
= f.label :title
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :title, autofocus: true, required: true, class: 'form-control'
|
||||
- if action_is_edit
|
||||
.form-group
|
||||
= f.label :subtitle
|
||||
= f.text_field :subtitle, class: 'form-control'
|
||||
.form-group
|
||||
= f.select :speaker_ids, f.object.speakers.pluck(:username, :id), {}, { multiple: true, class: "form-control", id: "users_selectize", placeholder: "Speakers" }
|
||||
%span.help-block
|
||||
The people responsible for the event, beside you. You can only select existing users.
|
||||
- if @program.tracks.confirmed.cfp_active.any?
|
||||
.form-group
|
||||
= f.label :track_id, 'Track'
|
||||
= f.select :track_id, @program.tracks.confirmed.cfp_active.pluck(:name, :id), { include_blank: '(Please select)' }, { class: 'form-control' }
|
||||
.form-group
|
||||
= f.label :event_type_id, 'Type'
|
||||
= f.select :event_type_id, event_type_select_options(@conference.program.event_types), { include_blank: false }, { class: 'select-help-toggle form-control' }
|
||||
- if @program.languages.present?
|
||||
.form-group
|
||||
= f.label :language
|
||||
= f.select :language, @languages, { include_blank: false}, { class: 'select-help-toggle form-control' }
|
||||
- @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" }
|
||||
= event_type.description
|
||||
- if action_is_edit
|
||||
- if @conference.program.difficulty_levels.any?
|
||||
= f.label :difficulty_level
|
||||
= f.select :difficulty_level_id, @conference.program.difficulty_levels.map{|level| [level.title, level.id ] }, {include_blank: false}, { class: 'select-help-toggle form-control' }
|
||||
- @conference.program.difficulty_levels.each do |difficulty_level|
|
||||
%span{ class: 'help-block select-help-text collapse event_difficulty_level_id', id: "#{difficulty_level.id}-help" }
|
||||
= difficulty_level.description
|
||||
.form-group
|
||||
= f.label :abstract
|
||||
= f.text_area :abstract, required: true, rows: 5, data: { provide: 'markdown' }, class: 'form-control'
|
||||
%span.help-block
|
||||
= 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.
|
||||
- if display_registration && action_is_edit
|
||||
%h4
|
||||
Event Registration
|
||||
%hr
|
||||
- if display_registration
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :require_registration
|
||||
Require participants to register to your event
|
||||
- if display_registration && action_is_edit
|
||||
.form-group
|
||||
= f.number_field :max_attendees
|
||||
%span.help-block
|
||||
- message = @event.room ? "Value must be between 1 and #{@event.room.size}" : 'Check room capacity after scheduling.'
|
||||
= 'The maximum number of participants. ' + message
|
||||
- if action_is_edit && current_user.has_any_role?(:admin, { name: :organizer, resource: @conference }, { name: :cfp, resource: @conference })
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :is_highlight
|
||||
Is a highlight?
|
||||
%p.text-right
|
||||
= link_to '#description', 'data-toggle' => 'collapse' do
|
||||
Do you require something special for your event?
|
||||
#description{ class: "collapse #{ 'in' if @event.description.present? }" }
|
||||
.form-group
|
||||
= f.label :description, 'Requirements'
|
||||
= f.text_area :description, rows: 5
|
||||
%span.help-block
|
||||
Eg. Whiteboard, printer, or something like that.
|
||||
%p.text-right
|
||||
- submit_copy = action_is_edit ? 'Update Proposal' : 'Create Proposal'
|
||||
= f.submit submit_copy, class: 'btn btn-success'
|
||||
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
= form_for(@event, url: @url) do |f|
|
||||
%h4
|
||||
Proposal Information
|
||||
%hr
|
||||
.form-group
|
||||
= f.label :title
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :title, autofocus: true, required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :subtitle
|
||||
= f.text_field :subtitle, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :speaker_ids, 'Speakers'
|
||||
= f.select :speaker_ids, f.object.speakers.pluck(:username, :id), {}, { multiple: true, class: "form-control", id: "users_selectize", placeholder: "Speakers" }
|
||||
%span.help-block
|
||||
The people responsible for the event, beside you. You can only select existing users.
|
||||
- if @program.tracks.confirmed.cfp_active.any?
|
||||
.form-group
|
||||
= f.label :track_id, 'Track'
|
||||
= f.select :track_id, @program.tracks.confirmed.cfp_active.pluck(:name, :id), { include_blank: '(Please select)' }, { class: 'form-control' }
|
||||
.form-group
|
||||
= f.label :event_type_id, 'Type'
|
||||
= f.select :event_type_id, event_type_select_options(@conference.program.event_types), { include_blank: false }, { class: 'select-help-toggle form-control' }
|
||||
- if @program.languages.present?
|
||||
.form-group
|
||||
= f.label :language
|
||||
= f.select :language, @languages, { include_blank: false}, { class: 'select-help-toggle form-control' }
|
||||
- @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" }
|
||||
= event_type.description
|
||||
- if @conference.program.difficulty_levels.any?
|
||||
= f.label :difficulty_level
|
||||
= f.select :difficulty_level_id, @conference.program.difficulty_levels.map{|level| [level.title, level.id ] }, {include_blank: false}, { class: 'select-help-toggle form-control' }
|
||||
- @conference.program.difficulty_levels.each do |difficulty_level|
|
||||
%span{ class: 'help-block select-help-text collapse event_difficulty_level_id', id: "#{difficulty_level.id}-help" }
|
||||
= difficulty_level.description
|
||||
.form-group
|
||||
= f.label :abstract
|
||||
= f.text_area :abstract, required: true, rows: 5, data: { provide: 'markdown' }, class: 'form-control'
|
||||
%span.help-block
|
||||
= 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.
|
||||
- if current_user.is_admin? || @program.cfp&.enable_registrations?
|
||||
%h4
|
||||
Event Registration
|
||||
%hr
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :require_registration
|
||||
Require participants to register to your event
|
||||
.form-group
|
||||
= f.number_field :max_attendees
|
||||
%span.help-block
|
||||
- message = @event.room ? "Value must be between 1 and #{@event.room.size}" : 'Check room capacity after scheduling.'
|
||||
= 'The maximum number of participants. ' + message
|
||||
- if current_user.has_any_role?(:admin, { name: :organizer, resource: @conference }, { name: :cfp, resource: @conference })
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :is_highlight
|
||||
Is a highlight?
|
||||
%p.text-right
|
||||
= link_to '#description', 'data-toggle' => 'collapse' do
|
||||
Do you require something special for your event?
|
||||
#description{ class: "collapse #{ 'in' if @event.description.present? }" }
|
||||
.form-group
|
||||
= f.label :description, 'Requirements'
|
||||
= f.text_area :description, rows: 5
|
||||
%span.help-block
|
||||
Eg. Whiteboard, printer, or something like that.
|
||||
%p.text-right
|
||||
= f.submit 'Update Proposal', class: 'btn btn-success'
|
||||
|
||||
= render partial: 'shared/user_selectize'
|
||||
|
||||
@@ -1,4 +1 @@
|
||||
.container
|
||||
.row
|
||||
.col-md-12
|
||||
= render 'form'
|
||||
= render 'admin/events/form'
|
||||
|
||||
@@ -26,50 +26,6 @@
|
||||
.tab-pane.active{role: 'tabpanel', id: 'signup'}
|
||||
= form_for(@event, url: @url) do |f|
|
||||
= render partial: 'devise/registrations/new_embedded'
|
||||
%h4
|
||||
Proposal Information
|
||||
%hr
|
||||
.form-group
|
||||
= f.label :title
|
||||
= f.text_field :title, required: true, class: 'form-control'
|
||||
= f.label :event_type_id, 'Type'
|
||||
= f.select :event_type_id, @program.event_types.map {|type| ["#{type.title} - #{show_time(type.length)}", type.id] }, { include_blank: false }, { class: 'select-help-toggle form-control' }
|
||||
- if @program.languages.present?
|
||||
= f.label :language
|
||||
= f.select :language, @languages, include_blank: false, class: 'select-help-toggle form-control'
|
||||
- @program.event_types.each do |event_type|
|
||||
%span{ class: 'help-block event_event_type_id collapse', id: "#{event_type.id}-help" }
|
||||
= event_type.description
|
||||
.form-group
|
||||
= f.label :abstract
|
||||
= f.text_area :abstract, required: true, rows: 5, data: { provide: 'markdown' }, class: 'form-control'
|
||||
%span.help-block
|
||||
%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.
|
||||
= markdown_hint('[Tips to improve your presentations.](http://blog.hubspot.com/blog/tabid/6307/bid/5975/10-Rules-to-Instantly-Improve-Your-Presentations.aspx)')
|
||||
- if @program.cfp.enable_registrations?
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :require_registration
|
||||
Require participants to register to your event?
|
||||
%p.text-right
|
||||
= link_to '#description', 'data-toggle' => 'collapse', id: 'description_link' do
|
||||
Do you require something special for your event?
|
||||
.collapse#description
|
||||
.form-group
|
||||
= f.label :description, 'Requirements'
|
||||
= f.text_area :description, rows: 5, class: 'form-control'
|
||||
%span.help-block
|
||||
Tell us what you need for your event. A whiteboard, a printer or something like that.
|
||||
%p.text-right
|
||||
= f.submit 'Create Proposal', class: 'btn btn-success'
|
||||
= render partial: 'form', locals: { f: f }
|
||||
.tab-pane{role: 'tabpanel', id: 'signin'}
|
||||
= render partial: 'devise/sessions/new_embedded'
|
||||
|
||||
Reference in New Issue
Block a user