implement manual event management and support for multiple speakers per event
This commit is contained in:
parent
46a6a59622
commit
790e2fd3a2
24 changed files with 180 additions and 89 deletions
11
app/views/admin/events/_form.html.haml
Normal file
11
app/views/admin/events/_form.html.haml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
-if @event.new_record?
|
||||
New
|
||||
= @event.title
|
||||
Event
|
||||
.row
|
||||
.col-md-12
|
||||
= render 'proposals/proposal_form'
|
||||
|
|
@ -131,9 +131,26 @@
|
|||
%i Hidden
|
||||
%tr
|
||||
%td
|
||||
%b Biography
|
||||
%b Speakers
|
||||
%td
|
||||
= markdown(@event.submitter.biography)
|
||||
- if @program.show_voting?
|
||||
- @event.speakers.each do |speaker|
|
||||
%div
|
||||
= link_to speaker.name, admin_user_path(speaker)
|
||||
(
|
||||
= link_to speaker.email, "mailto: #{speaker.email}"
|
||||
)
|
||||
- else
|
||||
%i Hidden
|
||||
%tr
|
||||
%td
|
||||
%b Biographies
|
||||
%td
|
||||
- @event.speakers.each do |speaker|
|
||||
- unless speaker.biography.blank?
|
||||
%b
|
||||
= speaker.name
|
||||
= markdown(speaker.biography)
|
||||
%tr
|
||||
%td
|
||||
%b Submitted on
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
%h1
|
||||
Events
|
||||
= "(#{@events.length})" if @events.any?
|
||||
.btn-group.pull-right
|
||||
.pull-right
|
||||
- if can? :create, Event
|
||||
=link_to 'Add Event', new_admin_conference_program_event_path(@conference.short_title), class: 'button btn btn-default btn-info'
|
||||
- if can? :read, Event
|
||||
.btn-group
|
||||
%button.btn.btn-default.dropdown-toggle{ 'data-toggle' => 'dropdown', type: 'button', class: 'btn btn-success' }
|
||||
|
|
@ -54,8 +56,8 @@
|
|||
%th
|
||||
%b Submitter
|
||||
%th
|
||||
%b Speaker
|
||||
- if @program.languages.present?
|
||||
%b Speakers
|
||||
-if @program.languages.present?
|
||||
%th
|
||||
%b Language
|
||||
%th
|
||||
|
|
@ -99,10 +101,9 @@
|
|||
%i Hidden
|
||||
%td
|
||||
- if @program.show_voting?
|
||||
- if speaker = event.speakers.first
|
||||
= link_to speaker.name, admin_user_path(speaker)
|
||||
- else
|
||||
Unknown speaker
|
||||
- event.speakers_ordered.each do |speaker|
|
||||
.speaker
|
||||
= link_to speaker.name, admin_user_path(speaker)
|
||||
- else
|
||||
%i Hidden
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@
|
|||
|
||||
= f.input :subtitle, as: :string
|
||||
|
||||
= f.input :speakers, as: :select,
|
||||
collection: options_for_select(@users.map {|user| ["#{user.name} (#{user.email})", user.id]}, @event.speakers.map(&:id)),
|
||||
include_blank: false, label: 'Speakers', input_html: { class: 'select-help-toggle', multiple: 'true' }
|
||||
|
||||
- if @program.tracks.any?
|
||||
= f.input :track_id, as: :select,
|
||||
collection: @program.tracks.map {|track| ["#{track.name}", track.id] },
|
||||
|
|
@ -60,4 +64,15 @@
|
|||
|
||||
|
||||
%p.text-right
|
||||
= f.submit 'Update Proposal', class: 'btn btn-success'
|
||||
- if @event.new_record?
|
||||
= f.submit 'Create Proposal', class: 'btn btn-success'
|
||||
- else
|
||||
= f.submit 'Update Proposal', class: 'btn btn-success'
|
||||
|
||||
:javascript
|
||||
$(document).ready(function() {
|
||||
$('#event_speaker_ids').selectize({
|
||||
plugins: ['remove_button'],
|
||||
maxItems: 5
|
||||
} )
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@
|
|||
%meta{ property: "og:url", content: conference_program_proposal_url(@conference.short_title, @event) }
|
||||
%meta{ property: "og:description", content: @event.abstract }
|
||||
%meta{ property: "og:site_name", content: (ENV['OSEM_NAME'] || 'OSEM') }
|
||||
%meta{ property: "og:image", content: @speaker.gravatar_url }
|
||||
%meta{ property: "og:image:secure_url", content: @speaker.gravatar_url }
|
||||
- if @speakers_ordered.any?
|
||||
%meta{ property: "og:image", content: @speakers_ordered.first.gravatar_url }
|
||||
%meta{ property: "og:image:secure_url", content: @speakers_ordered.first.gravatar_url }
|
||||
|
||||
.container
|
||||
.row
|
||||
|
|
@ -25,21 +26,25 @@
|
|||
|
||||
.row
|
||||
.col-md-3
|
||||
.speakerinfo
|
||||
.col-md-12
|
||||
= image_tag @speaker.gravatar_url(size: 200), class: 'img-responsive img-rounded'
|
||||
.col-md-12
|
||||
%h3
|
||||
by
|
||||
= link_to @speaker.name, user_path(@speaker.id)
|
||||
= "(#{@speaker.email})" if @speaker.email_public
|
||||
- if @speaker.affiliation?
|
||||
%br
|
||||
%span.muted
|
||||
from
|
||||
= @speaker.affiliation
|
||||
-if @speaker.biography?
|
||||
= markdown(@speaker.biography)
|
||||
%h3
|
||||
Presented by:
|
||||
- @speakers_ordered.each do |speaker|
|
||||
.speakerinfo
|
||||
.row
|
||||
.col-md-4
|
||||
= image_tag speaker.gravatar_url(:size => 120), class: 'img-responsive img-rounded'
|
||||
.col-md-8
|
||||
%h4
|
||||
= link_to speaker.name, user_path(speaker.id)
|
||||
= "(#{speaker.email})"
|
||||
- if speaker.affiliation?
|
||||
.text-muted
|
||||
from
|
||||
= speaker.affiliation
|
||||
-if speaker.biography?
|
||||
.row.speakerbio
|
||||
.col-md-12
|
||||
= markdown(speaker.biography)
|
||||
.col-md-9
|
||||
.row
|
||||
.col-md-12
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
.panel.panel-default.event-panel{ onClick: 'eventClicked(event, this);', "data-url" => "#{url_for(conference_program_proposal_path(@conference.short_title, event.id))}" }
|
||||
.panel-body
|
||||
- if speaker = event.speakers.first
|
||||
= image_tag speaker.gravatar_url, class: "img-circle pull-right all-speaker-pic", |
|
||||
alt: speaker.name, |
|
||||
title: speaker.name |
|
||||
- event.speakers_ordered.each do |speaker|
|
||||
= image_tag speaker.gravatar_url, :class => "img-circle pull-right all-speaker-pic", |
|
||||
:alt => speaker.name, |
|
||||
:title => speaker.name |
|
||||
|
||||
%p
|
||||
= canceled_replacement_event_label(event, event_schedule)
|
||||
|
|
|
|||
|
|
@ -14,3 +14,9 @@
|
|||
alt: speaker.name, |
|
||||
title: speaker.name, |
|
||||
style: "height: #{ speaker_height(@rooms) }px; width: #{ speaker_width(@rooms) }px;"
|
||||
- event.speakers_ordered.each do |speaker|
|
||||
= image_tag speaker.gravatar_url, :class => "img-circle pull-right speaker-pic", |
|
||||
:alt => speaker.name, |
|
||||
:title => speaker.name, |
|
||||
:style => "height: #{ speaker_height(@rooms) }px; width: #{ speaker_width(@rooms) }px;"
|
||||
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@
|
|||
= markdown(@user.biography)
|
||||
.row
|
||||
.col-md-12
|
||||
- if @user.events.confirmed.any?
|
||||
- if @user.presented_events.confirmed.any?
|
||||
%h3
|
||||
= "#{@user.name} presents #{pluralize(@user.events.confirmed.count, 'Event')}:"
|
||||
= "#{@user.name} presents #{pluralize(@user.presented_events.confirmed.count, 'Event')}:"
|
||||
%ul.list-unstyled
|
||||
- @user.events.confirmed.each do |event|
|
||||
- @user.presented_events.confirmed.each do |event|
|
||||
%li
|
||||
%h4
|
||||
= link_to event.title, conference_program_proposal_path(event.program.conference.short_title, event.id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue