Merge branch 'master' into org-name-in-conf
This commit is contained in:
commit
e652880dd1
120 changed files with 2844 additions and 408 deletions
|
|
@ -1,17 +1,32 @@
|
|||
|
||||
- if booth.transition_possible? :accept
|
||||
%li= link_to 'Accept booth',
|
||||
accept_admin_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch, id: "accept_booth_#{booth.id}"
|
||||
- if can? :accept, booth
|
||||
- if @conference.booth_limit > 0
|
||||
- confirm_message = ' You are able to accept '+ pluralize(@conference.booth_limit - (@conference.booths.accepted.count + @conference.booths.confirmed.count), 'more booth') + " (booth limit set to #{@conference.booth_limit}). Are you sure you want to accept this one?"
|
||||
- if @conference.email_settings.send_on_booths_acceptance
|
||||
- link = 'Accept with email'
|
||||
- confirm_message = "By accepting this booth, an email will be sent informing the submitter for the acceptance. You may change the state to \'To accept\' until you are completely sure." + confirm_message
|
||||
- else
|
||||
- link = 'Accept booth'
|
||||
%li= link_to link,
|
||||
accept_admin_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch ,id: "accept_booth_#{booth.id}",
|
||||
data: (confirm_message ? { confirm: confirm_message } : nil)
|
||||
|
||||
- if booth.transition_possible? :reject
|
||||
%li= link_to 'Reject booth',
|
||||
- if @conference.email_settings.send_on_booths_rejection
|
||||
- link = 'Reject with email'
|
||||
- else
|
||||
- link = 'Reject'
|
||||
%li= link_to link,
|
||||
reject_admin_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch, confirm: 'Are you sure?', id: "reject_booth_#{booth.id}"
|
||||
method: :patch, id: "reject_booth_#{booth.id}",
|
||||
data: (@conference.email_settings.send_on_booths_rejection ? { confirm: 'By rejecting this booth, an email will be sent informing the submitter about the rejection. You may change the state to \'To reject\' until you are completely sure.'} : nil)
|
||||
|
||||
- if booth.transition_possible? :to_reject
|
||||
%li= link_to 'To reject booth',
|
||||
to_reject_admin_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch, confirm: 'Are you sure?', id: "to_reject_booth_#{booth.id}"
|
||||
method: :patch, id: "to_reject_booth_#{booth.id}"
|
||||
|
||||
- if booth.transition_possible? :restart
|
||||
%li= link_to 'Start review',
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%title Request a Booth
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@booth, url: @booth.new_record? ? admin_conference_booths_path(@conference.short_title) : admin_conference_booth_path(@conference.short_title, @booth.id), html: { multipart: true }) do |f|
|
||||
= f.input :title, as: :string, required: true
|
||||
= f.input :description, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true,
|
||||
hint: 'This field becomes public upon request acceptance'
|
||||
= f.input :reasoning, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true,
|
||||
label: 'How it fits the conference'
|
||||
= f.input :submitter_relationship, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true,
|
||||
label: 'Submitter\'s relation',
|
||||
hint: 'e.g. employee, comunity manager, etc'
|
||||
= f.input :website_url
|
||||
= responsibles_selector_input f
|
||||
= image_tag f.object.picture.thumb.url if f.object.picture?
|
||||
= f.input :picture
|
||||
|
||||
%p.text-right
|
||||
- if @booth.new_record?
|
||||
= f.submit 'Create Booth Request', class: 'btn btn-success'
|
||||
- else
|
||||
= f.submit 'Update Booth Request', class: 'btn btn-success'
|
||||
|
||||
:javascript
|
||||
$(document).ready(function() {
|
||||
$('#booth_responsible_ids').selectize({
|
||||
plugins: ['remove_button'],
|
||||
minItems: 2
|
||||
} )
|
||||
});
|
||||
|
|
@ -2,4 +2,4 @@
|
|||
Editing
|
||||
= @booth.title
|
||||
|
||||
= render 'form'
|
||||
= render 'booths/form'
|
||||
|
|
|
|||
|
|
@ -9,51 +9,68 @@
|
|||
= link_to 'Add Booth', new_admin_conference_booth_path(@conference.short_title), class: 'button btn btn-primary'
|
||||
%p.text-muted
|
||||
All the booth requests
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
.margin-booth-table
|
||||
%table.table.table-striped.table-bordered.table-hover.datatable
|
||||
%thead
|
||||
%th
|
||||
%b ID
|
||||
%th
|
||||
%b Logo
|
||||
%th
|
||||
%b Title
|
||||
%th
|
||||
%b Submitter
|
||||
%th
|
||||
%b Responsibles
|
||||
%th
|
||||
%b State
|
||||
%th
|
||||
%b Actions
|
||||
- @booths.each do |booth|
|
||||
%tr
|
||||
%h4
|
||||
- if @conference.booth_limit == 0
|
||||
%p
|
||||
Set the
|
||||
= link_to 'Booth limit', edit_admin_conference_path(@conference.short_title)
|
||||
to make sure you are not accepting more booths than you can accommodate.
|
||||
- elsif !@conference.maximum_accepted_booths?
|
||||
%p
|
||||
You cannot accept more than
|
||||
%b
|
||||
= pluralize(@conference.booth_limit, 'booth')
|
||||
(
|
||||
= pluralize(@conference.booths.accepted.count + @conference.booths.confirmed.count, 'accepted booth')
|
||||
so far)
|
||||
- else
|
||||
%p
|
||||
You have reached the maximum number of accepted booths.
|
||||
(
|
||||
= link_to "#{@conference.booth_limit} booths", edit_admin_conference_path(@conference.short_title)
|
||||
)
|
||||
%table.table.table-striped.table-bordered.table-hover.datatable
|
||||
%thead
|
||||
%th
|
||||
%b ID
|
||||
%th
|
||||
%b Logo
|
||||
%th
|
||||
%b Title
|
||||
%th
|
||||
%b Submitter
|
||||
%th
|
||||
%b Responsibles
|
||||
%th
|
||||
%b State
|
||||
%th
|
||||
%b Actions
|
||||
- @booths.each do |booth|
|
||||
%tr
|
||||
%td
|
||||
= booth.id
|
||||
%td
|
||||
- if booth.logo_link
|
||||
= image_tag(booth.picture.thumb.url, width: '20%')
|
||||
%td
|
||||
= link_to booth.title, admin_conference_booth_path(@conference.short_title, booth)
|
||||
%td
|
||||
= link_to booth.submitter.name, admin_user_path(booth.submitter) if booth.submitter
|
||||
%td
|
||||
.responsibles
|
||||
- booth.responsibles.each_with_index do |responsible, i|
|
||||
= link_to responsible.name, admin_user_path(responsible)
|
||||
= ", " unless i == booth.responsibles.length - 1
|
||||
%td
|
||||
.btn-group
|
||||
%button{ type: 'button', class: 'btn btn-link dropdown-toggle', 'data-toggle' => 'dropdown' }
|
||||
= booth.state.humanize
|
||||
%span.caret
|
||||
%ul.dropdown-menu{ role: 'menu' }
|
||||
= render 'change_state_dropdown', booth: booth
|
||||
%td
|
||||
= booth.id
|
||||
%td
|
||||
- if booth.logo_link
|
||||
= image_tag(booth.picture.thumb.url, width: '20%')
|
||||
%td
|
||||
= link_to booth.title, admin_conference_booth_path(@conference.short_title, booth)
|
||||
%td
|
||||
= link_to booth.submitter.name, admin_user_path(booth.submitter) if booth.submitter
|
||||
%td
|
||||
.responsibles
|
||||
- booth.responsibles.each do |responsible|
|
||||
= link_to responsible.name, admin_user_path(responsible)
|
||||
%td
|
||||
.btn-group
|
||||
%button{ type: 'button', class: 'btn btn-link dropdown-toggle', 'data-toggle' => 'dropdown' }
|
||||
= booth.state.humanize
|
||||
%span.caret
|
||||
%ul.dropdown-menu{ role: 'menu' }
|
||||
= render 'change_state_dropdown', booth: booth
|
||||
%td
|
||||
.btn-group{ role: "group" }
|
||||
= link_to 'Edit', edit_admin_conference_booth_path(@conference.short_title, booth.id),
|
||||
class: 'btn btn-primary'
|
||||
= link_to 'Delete', admin_conference_booth_path(@conference.short_title, booth.id),
|
||||
method: :delete, class: 'btn btn-danger',
|
||||
data: {confirm: "Do you really want to delete this booth request?"}
|
||||
= link_to 'Edit', edit_admin_conference_booth_path(@conference.short_title, booth.id),
|
||||
class: 'btn btn-primary'
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
%h1 New booth
|
||||
|
||||
= render 'form'
|
||||
= render 'booths/form'
|
||||
|
|
|
|||
|
|
@ -39,12 +39,13 @@
|
|||
%td.col-md-2
|
||||
%b Responsibles
|
||||
%td
|
||||
- @booth.responsibles.each do |responsibles|
|
||||
- @booth.responsibles.each_with_index do |responsibles, i|
|
||||
.responsibles
|
||||
= link_to responsibles.name, admin_user_path(responsibles)
|
||||
(
|
||||
= responsibles.email
|
||||
)
|
||||
= " , " unless i == @booth.responsibles.length - 1
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Submitted on
|
||||
|
|
|
|||
12
app/views/admin/cfps/_tracks_cfp.html.haml
Normal file
12
app/views/admin/cfps/_tracks_cfp.html.haml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
%dt
|
||||
Start Date:
|
||||
%dd#start_date
|
||||
= @cfp.start_date.strftime('%A, %B %-d. %Y')
|
||||
%dt
|
||||
End Date:
|
||||
%dd#end_date
|
||||
= @cfp.end_date.strftime('%A, %B %-d. %Y')
|
||||
%dt
|
||||
Days Left:
|
||||
%dd
|
||||
= pluralize(@cfp.remaining_days, 'day')
|
||||
|
|
@ -26,4 +26,7 @@
|
|||
= f.input :end_hour, input_html: {size: 2, type: 'number', min: 1, max: 24}
|
||||
= f.inputs name: 'Registrations' do
|
||||
= f.input :registration_limit, as: :number, in: 0..9999, hint: 'Limit the number of registrations to the conference (0 no limit). Please note that the registration limit doesn\'t apply to speakers of confirmed events (they will still be able to register even if it has been reached). You currently have ' + pluralize(@conference.registrations.count, 'registration')
|
||||
= f.inputs name: 'Booths' do
|
||||
= f.input :booth_limit, as: :number, in: 0..9999,
|
||||
hint: 'Booth limit is the maximum number of booths that you can accept for this conference. By setting this number (0 no limit) you can be sure that you are not going to accept more booths than the conference can accommodate. You currently have ' + pluralize(@conference.booths.accepted.count, 'accepted booth') +'.'
|
||||
= f.action :submit, as: :button, button_html: {class: 'btn btn-primary'}
|
||||
|
|
|
|||
|
|
@ -55,4 +55,10 @@
|
|||
%tr
|
||||
%td {conference_splash_link}
|
||||
%td The link to conference splash page
|
||||
|
||||
- if @conference.booths
|
||||
%tr
|
||||
%td {submitter_name}
|
||||
%td Submitter's name
|
||||
%tr
|
||||
%td {booth_title}
|
||||
%td Booth's title
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
%a{ 'aria-controls' => 'notifications', 'data-toggle' => 'tab', href: '#notifications', role: 'tab' } Update Notifications
|
||||
%li{ role: 'presentation' }
|
||||
%a{ 'aria-controls' => 'cfp', 'data-toggle' => 'tab', href: '#cfp', role: 'tab' } Call for Papers
|
||||
%li{ role: 'presentation' }
|
||||
%a{ 'aria-controls' => 'booths', 'data-toggle' => 'tab', href: '#booth', role: 'tab' } Booth
|
||||
/ Tab panes
|
||||
.tab-content
|
||||
#onboarding.tab-pane.active{ role: 'tabpanel' }
|
||||
|
|
@ -100,6 +102,26 @@
|
|||
'data-body-text' => "Dear {name},\n\nThe Conference Call for Papers Details of {conference} has changed.\nNew Dates : {cfp_start_date} - {cfp_end_date}.\n Link to Schedule {schedule_link} \n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'updated_cfp_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_cfp_help', show_event_variables: false}
|
||||
#booth.tab-pane{ role: 'tabpanel' }
|
||||
= f.input :send_on_booths_acceptance
|
||||
= f.input :booths_acceptance_subject
|
||||
= f.input :booths_acceptance_body, input_html: { rows:10, cols: 20 }
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_booths_acceptance_subject',
|
||||
'data-subject-text' => 'Your booth has been accepted!',
|
||||
'data-body-input-id' => 'email_settings_booths_acceptance_body',
|
||||
'data-body-text' => "Dear {name},\n\nWe are pleased to inform you that your booth request {booth_title} has been accepted for the conference {conference}.\nPlease click the confirm button to let us know you can make it as soon as possible!\n\nFeel free to contact us with any questions or concerns.\n\nWe are looking forward to seeing you there.\n\nBest wishes\n\n{conference} Team"} Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'booth_acceptance_help' } Show help
|
||||
= render partial: 'help', locals: {id: 'booth_acceptance_help', show_event_variables: false}
|
||||
= f.input :send_on_booths_rejection
|
||||
= f.input :booths_rejection_subject
|
||||
= f.input :booths_rejection_body, input_html: { rows:10, cols:20 }
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_booths_rejection_subject',
|
||||
'data-subject-text' => 'Your booth request has been rejected',
|
||||
'data-body-input-id' => 'email_settings_booths_rejection_body',
|
||||
'data-body-text' => "Dear {name},\n\nThank you for your booth request {booth_title} for the conference {conference}.\n\nUnfortunately, we are sorry to inform you that your request has been rejected.\n\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'booth_rejection_help' } Show help
|
||||
= render partial: 'help', locals: {id: 'booth_rejection_help', show_event_variables: false}
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
|
|
|
|||
|
|
@ -32,12 +32,12 @@
|
|||
.btn-group
|
||||
= link_to 'Show',
|
||||
conference_physical_ticket_path(@conference.short_title,
|
||||
physical_ticket.id),
|
||||
physical_ticket.token),
|
||||
class: 'btn btn-primary'
|
||||
= link_to 'Generate PDF',
|
||||
conference_physical_ticket_path(@conference.short_title,
|
||||
physical_ticket.id,
|
||||
format: :pdf),
|
||||
physical_ticket.token,
|
||||
format: :pdf),
|
||||
class: 'button btn btn-default btn-info'
|
||||
- else
|
||||
%h5 No Tickets sold!
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
= f.input :include_tickets, label: 'Display tickets', input_html: { checked: params[:action] == 'new' || @splashpage.try(:include_tickets) }
|
||||
= f.input :include_lodgings, label: 'Display the lodgings', input_html: { checked: params[:action] == 'new' || @splashpage.try(:include_lodgings) }
|
||||
= f.input :include_sponsors, label: 'Display sponsors', input_html: { checked: params[:action] == 'new' || @splashpage.try(:include_sponsors) }
|
||||
= f.input :include_booths, label: 'Display confirmed booths', input_html: { checked: params[:action] == 'new' || @splashpage.try(:include_booths) }
|
||||
= f.input :include_social_media, label: 'Display social media', input_html: { checked: params[:action] == 'new' || @splashpage.try(:include_social_media) }
|
||||
= f.inputs name: 'Access' do
|
||||
= f.input :public, label: 'Make splash page public?'
|
||||
|
|
|
|||
|
|
@ -66,6 +66,13 @@
|
|||
Yes
|
||||
- else
|
||||
No
|
||||
%dt
|
||||
Include Booths
|
||||
%dd
|
||||
- if @splashpage.include_booths
|
||||
Yes
|
||||
- else
|
||||
No
|
||||
%dt
|
||||
Include Social Media:
|
||||
%dd
|
||||
|
|
|
|||
|
|
@ -13,5 +13,6 @@
|
|||
= f.input :description, input_html: { rows: 5, data: { provide: "markdown-editable" } }
|
||||
= f.input :price
|
||||
= f.input :price_currency, as: :select, class: 'form-control', collection: ['USD', 'EUR', 'GBP', 'INR', 'CNY'], include_blank: false
|
||||
= f.input :registration_ticket, hint: 'A registration ticket is with which user register for the conference.'
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
%th Price
|
||||
%th Sold
|
||||
%th Turnover
|
||||
%th Registration Ticket
|
||||
%th Actions
|
||||
%tbody
|
||||
- @conference.tickets.each do |ticket|
|
||||
|
|
@ -27,6 +28,8 @@
|
|||
= ticket.tickets_sold
|
||||
%td
|
||||
= humanized_money_with_symbol ticket.tickets_turnover
|
||||
%td
|
||||
= ticket.registration_ticket? ? 'Yes' : 'No'
|
||||
%td
|
||||
.btn-group
|
||||
= link_to 'Edit', edit_admin_conference_ticket_path(@conference.short_title, ticket.id),
|
||||
|
|
|
|||
34
app/views/admin/tracks/_change_state_dropdown.html.haml
Normal file
34
app/views/admin/tracks/_change_state_dropdown.html.haml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
- if track.transition_possible? :restart
|
||||
%li= link_to 'Start review',
|
||||
restart_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, id: "restart_track_#{track.id}"
|
||||
|
||||
- if track.transition_possible? :to_accept
|
||||
%li= link_to 'Mark as possible acceptance',
|
||||
to_accept_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, id: "to_accept_track_#{track.id}"
|
||||
|
||||
- if track.transition_possible? :accept
|
||||
%li= link_to 'Accept track request',
|
||||
accept_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, id: "accept_track_#{track.id}"
|
||||
|
||||
- if track.transition_possible? :confirm
|
||||
%li= link_to 'Confirm track',
|
||||
confirm_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, id: "confirm_track_#{track.id}"
|
||||
|
||||
- if track.transition_possible? :to_reject
|
||||
%li= link_to 'Mark as possible rejection',
|
||||
to_reject_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, id: "to_reject_track_#{track.id}"
|
||||
|
||||
- if track.transition_possible? :reject
|
||||
%li= link_to 'Reject track request',
|
||||
reject_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, confirm: 'Are you sure?', id: "reject_track_#{track.id}"
|
||||
|
||||
- if track.transition_possible? :cancel
|
||||
%li= link_to 'Cancel track request',
|
||||
cancel_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, id: "cancel_track_#{track.id}"
|
||||
|
|
@ -8,11 +8,21 @@
|
|||
Track
|
||||
.row
|
||||
.col-md-12
|
||||
= semantic_form_for(@track, url: (@track.new_record? ? admin_conference_program_tracks_path : admin_conference_program_track_path(@conference.short_title, @track))) do |f|
|
||||
= semantic_form_for(@track, url: (@track.new_record? ? admin_conference_program_tracks_path(@conference.short_title) : admin_conference_program_track_path(@conference.short_title, @track))) do |f|
|
||||
= f.input :name
|
||||
= f.input :short_name, hint: "A short and unique handle for the track, using only letters, numbers, underscores, and dashes. This will be used to identify the track in URLs etc. Example: 'my_awesome_track'", input_html: { required: 'required', pattern: '[a-zA-Z0-9_-]+', title: 'Only letters, numbers, underscores, and dashes.' }
|
||||
= f.input :color, input_html: {size: 6, type: 'color'}, required: true
|
||||
= f.input :start_date, as: :string, input_html: { id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date, readonly: 'readonly', required: @track.self_organized_and_accepted_or_confirmed? }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'registration-period-end-datepicker', readonly: 'readonly', required: @track.self_organized_and_accepted_or_confirmed? }
|
||||
- if @conference.venue.try(:rooms)
|
||||
= f.input :room, as: :select, collection: (@conference.venue.rooms).map {|room| ["#{room.name}", room.id]}, include_blank: true, label: 'Room', input_html: { class: 'select-help-toggle', required: @track.self_organized_and_accepted_or_confirmed? }
|
||||
- else
|
||||
%b
|
||||
Please add a
|
||||
= link_to 'venue', admin_conference_venue_path(@conference.short_title)
|
||||
with
|
||||
= link_to 'rooms', admin_conference_venue_rooms_path(@conference.short_title)
|
||||
, if you want to select a room for the track.
|
||||
= f.input :description, input_html: {rows: 2, data: { provide: 'markdown-editable' } }, hint: markdown_hint
|
||||
- if @track.self_organized?
|
||||
= f.input :cfp_active, label: 'Allow event submitters to select this track for their proposal'
|
||||
= f.input :cfp_active, label: 'Allow event submitters to select this track for their proposal'
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
.unobtrusive-flash-container
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
|
|
@ -6,59 +7,64 @@
|
|||
Categorize events in your conference
|
||||
.row
|
||||
.col-md-12
|
||||
%table.table.table-hover#tracks
|
||||
%table.table.table-hover.table-striped.table-bordered.datatable#tracks
|
||||
%thead
|
||||
%th ID
|
||||
%th Name
|
||||
%th Short name
|
||||
%th Description
|
||||
%th Room
|
||||
%th Start Date
|
||||
%th End Date
|
||||
%th Submitter
|
||||
%th Color
|
||||
%th Included in Cfp
|
||||
%th State
|
||||
%th Included in the Cfp
|
||||
%th Actions
|
||||
%tbody
|
||||
- @tracks.each do |track|
|
||||
%tr
|
||||
%td
|
||||
= link_to(admin_conference_program_track_path(@conference.short_title, track)) do
|
||||
= track.name
|
||||
%td
|
||||
= track.short_name
|
||||
= track.id
|
||||
%td{style: "padding: 15px 0px 0px 10px;"}
|
||||
= link_to admin_conference_program_track_path(@conference.short_title, track), class: 'btn' do
|
||||
%span.label{style: "background-color: #{track.color}; color: #{ contrast_color(track.color) }"}
|
||||
= track.name
|
||||
%td
|
||||
%p
|
||||
= truncate(track.description)
|
||||
= markdown(truncate(track.description))
|
||||
%td
|
||||
= track.room.try(:name)
|
||||
%td
|
||||
= track.start_date.strftime('%A, %B %-d. %Y') if track.start_date
|
||||
%td
|
||||
= track.end_date.strftime('%A, %B %-d. %Y') if track.end_date
|
||||
%td
|
||||
= link_to track.submitter.name, admin_user_path(track.submitter) if track.self_organized?
|
||||
%td.text-center{ 'id' => "cfp_switch_#{track.id}", 'data-order' => track.cfp_active.to_s }
|
||||
= check_box_tag "#{@conference.short_title}_#{track.short_name}", track.id, track.cfp_active,
|
||||
class: 'switch-checkbox', method: :patch,
|
||||
url: toggle_cfp_inclusion_admin_conference_program_track_path(@conference.short_title, id: track.short_name)+"?included=",
|
||||
data: { size: 'small',
|
||||
on_color: 'success',
|
||||
off_color: 'warning',
|
||||
on_text: 'Yes',
|
||||
off_text: 'No' }
|
||||
|
||||
%td.text-center
|
||||
- if track.self_organized?
|
||||
= link_to track.submitter.name, admin_user_path(track.submitter)
|
||||
.btn-group
|
||||
%button{ type: 'button', class: 'btn btn-link dropdown-toggle', 'data-toggle' => 'dropdown' }
|
||||
= track.state.humanize
|
||||
%span.caret
|
||||
%ul.dropdown-menu{ role: 'menu' }
|
||||
= render 'change_state_dropdown', track: track
|
||||
- else
|
||||
N/A
|
||||
%td
|
||||
%span.label{style: "background-color: #{track.color}; color: #{ contrast_color(track.color) }"}
|
||||
= track.color
|
||||
%td
|
||||
- if track.self_organized?
|
||||
= track.state
|
||||
- else
|
||||
N/A
|
||||
%td
|
||||
- if track.self_organized?
|
||||
= check_box_tag "#{@conference.short_title}_#{track.short_name}", track.id, track.cfp_active,
|
||||
class: 'switch-checkbox', method: :patch,
|
||||
url: toggle_cfp_inclusion_admin_conference_program_track_path(@conference.short_title, id: track.short_name)+"?included=",
|
||||
data: { size: 'small',
|
||||
on_color: 'success',
|
||||
off_color: 'warning',
|
||||
on_text: 'Yes',
|
||||
off_text: 'No' }
|
||||
- else
|
||||
%i.fa.fa-check
|
||||
= track.state.humanize
|
||||
%td
|
||||
.btn-group{role: "group"}
|
||||
= link_to 'Edit', edit_admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :get, class: 'btn btn-primary'
|
||||
- if can? :edit, track
|
||||
= link_to 'Edit', edit_admin_conference_program_track_path(@conference.short_title, track), class: 'btn btn-primary'
|
||||
- if can? :destroy, track
|
||||
= link_to 'Delete', admin_conference_program_track_path(@conference.short_title, track),
|
||||
method: :delete, class: 'btn btn-danger',
|
||||
= link_to 'Delete', admin_conference_program_track_path(@conference.short_title, track), method: :delete, class: 'btn btn-danger',
|
||||
data: { confirm: "Do you really want to delete #{track.name}? Attention: This track will be removed from all Events that have it set" }
|
||||
.row
|
||||
.col-md-12.text-right
|
||||
|
|
|
|||
|
|
@ -1,30 +1,124 @@
|
|||
.unobtrusive-flash-container
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
= @track.name
|
||||
Track
|
||||
%p.text-muted
|
||||
Events in this track
|
||||
.row
|
||||
.col-md-12
|
||||
%table.table.table-hover.datatable
|
||||
%thead
|
||||
%th Title
|
||||
%th Type
|
||||
%th Submitter
|
||||
%th State
|
||||
%th Time
|
||||
%tbody
|
||||
- @track.events.each_with_index do |event|
|
||||
%tr
|
||||
%td
|
||||
=link_to event.title, admin_conference_program_event_path(@conference.short_title, event)
|
||||
%td
|
||||
= event.event_type.title
|
||||
%td
|
||||
=link_to event.submitter.name, admin_user_path(event.submitter)
|
||||
%td
|
||||
= event.state
|
||||
%td
|
||||
= event.time
|
||||
|
||||
.tabbable
|
||||
%ul.nav.nav-tabs
|
||||
%li.active
|
||||
= link_to 'Details', '#details', 'data-toggle' => 'tab'
|
||||
%li
|
||||
= link_to 'Events', '#events', 'data-toggle' => 'tab'
|
||||
|
||||
.tab-content
|
||||
.tab-pane.active#details
|
||||
.row
|
||||
.col-md-12
|
||||
.btn-group.pull-right
|
||||
- if can? :edit, @track
|
||||
= link_to 'Edit', edit_admin_conference_program_track_path(@conference.short_title, @track),
|
||||
method: :get, class: 'btn btn-primary'
|
||||
- if can? :destroy, @track
|
||||
= link_to 'Delete', admin_conference_program_track_path(@conference.short_title, @track),
|
||||
method: :delete, class: 'btn btn-danger',
|
||||
data: { confirm: "Do you really want to delete #{@track.name}? Attention: This track will be removed from all Events that have it set" }
|
||||
.row
|
||||
.col-md-12
|
||||
%table.table
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Color
|
||||
%td
|
||||
%span.label{ style: "background-color: #{@track.color}; color: #{ contrast_color(@track.color) }" }
|
||||
= @track.color
|
||||
%tr
|
||||
%td
|
||||
%b Room
|
||||
%td
|
||||
= @track.room.try(:name)
|
||||
%tr
|
||||
%td
|
||||
%b Start date
|
||||
%td
|
||||
= @track.start_date.strftime('%A, %B %-d. %Y') if @track.start_date
|
||||
%tr
|
||||
%td
|
||||
%b End date
|
||||
%td
|
||||
= @track.end_date.strftime('%A, %B %-d. %Y') if @track.end_date
|
||||
- if @track.self_organized?
|
||||
%tr
|
||||
%td
|
||||
%b Submitter
|
||||
%td
|
||||
= link_to @track.submitter.name, admin_user_path(@track.submitter)
|
||||
- if @track.confirmed?
|
||||
%tr
|
||||
%td
|
||||
%b Organizers
|
||||
%td
|
||||
- Role.find_by(name: 'track_organizer', resource: @track).users.each do |organizer|
|
||||
%div
|
||||
= link_to organizer.name, admin_user_path(organizer)
|
||||
%tr
|
||||
%td
|
||||
%b Included in the Cfp?
|
||||
%td
|
||||
= check_box_tag "#{@conference.short_title}_#{@track.short_name}", @track.id, @track.cfp_active,
|
||||
class: 'switch-checkbox', method: :patch,
|
||||
url: toggle_cfp_inclusion_admin_conference_program_track_path(@conference.short_title, id: @track.short_name)+"?included=",
|
||||
data: { size: 'small',
|
||||
on_color: 'success',
|
||||
off_color: 'warning',
|
||||
on_text: 'Yes',
|
||||
off_text: 'No' }
|
||||
%tr
|
||||
%td
|
||||
%b State
|
||||
%td
|
||||
- if @track.self_organized?
|
||||
.btn-group
|
||||
%button{ type: 'button', class: 'btn btn-link dropdown-toggle', 'data-toggle' => 'dropdown' }
|
||||
= @track.state.humanize
|
||||
%span.caret
|
||||
%ul.dropdown-menu{ role: 'menu' }
|
||||
= render 'change_state_dropdown', track: @track
|
||||
- else
|
||||
= @track.state.humanize
|
||||
%tr
|
||||
%td
|
||||
%b Description
|
||||
%td
|
||||
= markdown(@track.description)
|
||||
- if @track.self_organized?
|
||||
%tr
|
||||
%td
|
||||
%b Relevance
|
||||
%td
|
||||
= markdown(@track.relevance)
|
||||
|
||||
.tab-pane#events
|
||||
.col-md-12
|
||||
%table.table.table-hover.datatable
|
||||
%thead
|
||||
%th Title
|
||||
%th Type
|
||||
%th Submitter
|
||||
%th State
|
||||
%th Time
|
||||
%tbody
|
||||
- @track.events.each_with_index do |event|
|
||||
%tr
|
||||
%td
|
||||
=link_to event.title, admin_conference_program_event_path(@conference.short_title, event)
|
||||
%td
|
||||
= event.event_type.title
|
||||
%td
|
||||
=link_to event.submitter.name, admin_user_path(event.submitter)
|
||||
%td
|
||||
= event.state
|
||||
%td
|
||||
= event.time
|
||||
|
|
|
|||
8
app/views/admin/tracks/toggle_cfp_inclusion.js.erb
Normal file
8
app/views/admin/tracks/toggle_cfp_inclusion.js.erb
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
$('.alert').remove();
|
||||
|
||||
track_id = <%= @track.id %>;
|
||||
track_cfp_td = $('#cfp_switch_' + track_id);
|
||||
track_cfp_value = <%= @track.cfp_active %>;
|
||||
|
||||
track_cfp_td.attr('data-order', track_cfp_value);
|
||||
$('#tracks').DataTable().cell(track_cfp_td).invalidate();
|
||||
30
app/views/booths/_form.html.haml
Normal file
30
app/views/booths/_form.html.haml
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@booth, url: @url, html: { multipart: true }) do |f|
|
||||
= f.input :title, as: :string, autofocus: true, required: true
|
||||
= f.input :description, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true,
|
||||
hint: 'This field becomes public upon request acceptance'
|
||||
= f.input :reasoning, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true,
|
||||
label: 'How it fits the conference'
|
||||
= f.input :submitter_relationship, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true,
|
||||
label: 'Submitter\'s relation',
|
||||
hint: 'e.g. employee, comunity manager, etc'
|
||||
= f.input :website_url
|
||||
= responsibles_selector_input f
|
||||
= image_tag f.object.picture.thumb.url if f.object.picture?
|
||||
= f.input :picture
|
||||
|
||||
%p.text-right
|
||||
- if @booth.new_record?
|
||||
= f.submit 'Create Booth Request', class: 'btn btn-success'
|
||||
- else
|
||||
= f.submit 'Update Booth Request', class: 'btn btn-success'
|
||||
|
||||
:javascript
|
||||
$(document).ready(function() {
|
||||
$('#booth_responsible_ids').selectize({
|
||||
plugins: ['remove_button'],
|
||||
minItems: 2
|
||||
} )
|
||||
});
|
||||
6
app/views/booths/edit.html.haml
Normal file
6
app/views/booths/edit.html.haml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
.container
|
||||
%h1
|
||||
Editing
|
||||
= @booth.title
|
||||
|
||||
= render 'form'
|
||||
51
app/views/booths/index.html.haml
Normal file
51
app/views/booths/index.html.haml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12.page-header
|
||||
%h1
|
||||
Your booth requests for
|
||||
= @conference.title
|
||||
.row
|
||||
.col-md-12
|
||||
.margin-booth-table
|
||||
%table.table.table-striped.table-hover
|
||||
%thead
|
||||
%th
|
||||
%b State
|
||||
%th
|
||||
%b Logo
|
||||
%th
|
||||
%b Title
|
||||
%th
|
||||
%b Actions
|
||||
- @booths.each do |booth|
|
||||
%tr
|
||||
%td{ style: "padding:20px 8px 20px 8px;" }
|
||||
- if (booth.state == 'to_accept' || booth.state == 'to_reject')
|
||||
- show_state = 'new'
|
||||
- else
|
||||
- show_state = booth.state
|
||||
%span{ title: show_state, class: "fa #{booth_status_icon(booth)}" }
|
||||
%td
|
||||
- if booth.logo_link
|
||||
= image_tag(booth.picture.thumb.url, width: '20%')
|
||||
%td
|
||||
= link_to booth.title, conference_booth_path(@conference.short_title, booth)
|
||||
%td
|
||||
-if can? :edit, booth
|
||||
= link_to 'Edit', edit_conference_booth_path(@conference.short_title, booth.id),
|
||||
class: 'btn btn-default'
|
||||
- if booth.transition_possible? :withdraw
|
||||
= link_to 'Withdraw',
|
||||
withdraw_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch, class: 'btn btn-mini btn-warning', id: "withdraw_booth_#{booth.id}",
|
||||
data: { confirm: 'Are you sure you really want to withdraw this request?' }
|
||||
- if booth.transition_possible? :confirm
|
||||
= link_to 'Confirm',
|
||||
confirm_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch, class: 'btn btn-mini btn-success', id: "confirm_booth_#{booth.id}"
|
||||
- if booth.transition_possible? :restart
|
||||
= link_to 'Re-submit',
|
||||
restart_conference_booth_path(@conference.short_title, booth),
|
||||
method: :patch, class: 'btn btn-mini btn-success', id: "restart_booth_#{booth.id}"
|
||||
.pull-right
|
||||
= link_to 'Add Booth', new_conference_booth_path(@conference.short_title), class: 'button btn btn-primary'
|
||||
4
app/views/booths/new.html.haml
Normal file
4
app/views/booths/new.html.haml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.container
|
||||
%h1 Request a booth
|
||||
|
||||
= render 'form'
|
||||
60
app/views/booths/show.html.haml
Normal file
60
app/views/booths/show.html.haml
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12
|
||||
%h3
|
||||
- if @booth.logo_link
|
||||
= image_tag(@booth.picture.thumb.url, size: '20%', alt: '')
|
||||
= @booth.title
|
||||
.btn-group.pull-right
|
||||
= link_to 'Edit', edit_admin_conference_booth_path(@conference.short_title, @booth), class: 'btn btn-mini btn-primary'
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
%table.table
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Description
|
||||
%td
|
||||
= markdown(@booth.description)
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Reasoning
|
||||
%td
|
||||
= markdown(@booth.reasoning)
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Website
|
||||
%td
|
||||
- if @booth.website_url.present?
|
||||
= link_to @booth.website_url, @booth.website_url
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Submitter
|
||||
%td
|
||||
= link_to @booth.submitter.name, user_path(@booth.submitter)
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Submitter's relationship
|
||||
%td
|
||||
= @booth.submitter_relationship
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Responsibles
|
||||
%td
|
||||
- @booth.responsibles.each_with_index do |responsibles, i|
|
||||
.responsibles
|
||||
= link_to responsibles.name, user_path(responsibles)
|
||||
(
|
||||
= responsibles.email
|
||||
)
|
||||
= ", " unless i == @booth.responsibles.length - 1
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Submitted on
|
||||
%td
|
||||
= @booth.created_at
|
||||
%tr
|
||||
%td.col-md-2
|
||||
%b Last updated on
|
||||
%td
|
||||
= @booth.updated_at
|
||||
24
app/views/conferences/_booths.html.haml
Normal file
24
app/views/conferences/_booths.html.haml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
= content_for :splash_nav do
|
||||
%li
|
||||
%a.smoothscroll{ href: '#booths' } Booths
|
||||
|
||||
.container
|
||||
.row
|
||||
.col-md-12.text-center
|
||||
%h2 Booths
|
||||
- @conference.booths.confirmed.each_slice(3).with_index do |slice, index_for_row|
|
||||
.row.row-centered
|
||||
- slice.each.with_index do |booth, index_for_column|
|
||||
.col-md-4.col-sm-4.col-xs-10.col-centered.col-top
|
||||
.thumbnail
|
||||
- if booth.logo_link
|
||||
= link_to booth.website_url, class: 'thumbnail' do
|
||||
= image_tag booth.picture.large.url
|
||||
.caption
|
||||
%h3.text-center
|
||||
= booth.title
|
||||
%p.text-center.text-muted
|
||||
= link_to "#show_descrition_#{index_for_row}_#{index_for_column}", "data-toggle"=>"collapse" do
|
||||
learn more
|
||||
.collapse{ id: "show_descrition_#{index_for_row}_#{index_for_column}" }
|
||||
= markdown(booth.description)
|
||||
30
app/views/conferences/_call_for_tracks.html.haml
Normal file
30
app/views/conferences/_call_for_tracks.html.haml
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
= content_for :splash_nav do
|
||||
%li
|
||||
%a.smoothscroll{ href: '#callfortracks' } Call For Tracks
|
||||
|
||||
.container
|
||||
.row
|
||||
.col-md-12.text-center
|
||||
%h2
|
||||
Call for Tracks
|
||||
%p.lead
|
||||
We are ready to accept requests for tracks!
|
||||
.row
|
||||
.col-md-6.col-md-offset-3.col-sm-10.col-sm-offset-1
|
||||
%p
|
||||
The submission period for track requests has begun
|
||||
%em.notranslate
|
||||
= @conference.program.cfps.for_tracks.start_date.strftime('%A, %B %-d. %Y')
|
||||
and closes
|
||||
%em.notranslate
|
||||
= @conference.program.cfps.for_tracks.end_date.strftime('%A, %B %-d. %Y.')
|
||||
- if @conference.program.cfps.for_tracks.try(:open?)
|
||||
That means you have only
|
||||
%b.notranslate= pluralize(@conference.program.cfps.for_tracks.remaining_days, 'day')
|
||||
left!
|
||||
- else
|
||||
The submission period for track requests is closed.
|
||||
.row
|
||||
.col-md-12.text-center
|
||||
%p.cta-button
|
||||
= link_to "Submit your request for track", conference_program_tracks_path(@conference.short_title), class: 'btn btn-success btn-lg text-center'
|
||||
|
|
@ -30,10 +30,18 @@
|
|||
= link_to "Register", new_conference_conference_registration_path(conference.short_title), class: "btn btn-default", disabled: cannot?(:new, Registration.new(conference_id: conference.id))
|
||||
- if cannot?(:new, Registration.new(conference_id: conference.id)) && conference.registration_limit_exceeded?
|
||||
Sorry, no places left
|
||||
- if !current_user.nil? && current_user.tracks.where(program: conference.program).length > 0
|
||||
= link_to "My Track Requests", conference_program_tracks_path(conference.short_title), class: 'btn btn-default'
|
||||
- elsif can? :new, conference.program.tracks.new
|
||||
= link_to "Submit Track Request", new_conference_program_track_path(conference.short_title), class: 'btn btn-default'
|
||||
- if !current_user.nil? && current_user.proposal_count(conference) > 0
|
||||
= link_to "My Proposals", conference_program_proposals_path(conference.short_title), class: 'btn btn-default'
|
||||
- elsif can? :new, conference.program.events.new
|
||||
= link_to "Submit Proposal", new_conference_program_proposal_path(conference.short_title), class: 'btn btn-default'
|
||||
- if current_user && current_user.booths.where(conference_id: conference.id).count > 0
|
||||
= link_to 'My Booth Requests', conference_booths_path(conference.short_title), class: 'btn btn-default'
|
||||
- elsif can? :new, conference.booths.new
|
||||
= link_to 'Request Booth', new_conference_booth_path(conference.short_title), class: 'btn btn-default'
|
||||
- if current_user.nil? || !current_user.subscribed?(conference)
|
||||
= link_to 'Subscribe', conference_subscriptions_path(conference.short_title), method: :post, class: 'btn btn-default'
|
||||
- else
|
||||
|
|
|
|||
|
|
@ -10,13 +10,22 @@
|
|||
- if @conference.splashpage and @conference.program.tracks.any? and @conference.splashpage.include_tracks
|
||||
See rock-star speakers cover the topics of
|
||||
- if @conference.splashpage and @conference.splashpage.include_tracks
|
||||
- @conference.program.tracks.each_slice(3) do |slice|
|
||||
- @conference.program.tracks.confirmed.cfp_active.each_slice(3) do |slice|
|
||||
.row.row-centered
|
||||
- slice.each do |track|
|
||||
.col-md-4.col-sm-4.col-centered.col-top.track
|
||||
%h4.text-center
|
||||
= track.name
|
||||
= markdown(track.description)
|
||||
- if track.start_date
|
||||
%br
|
||||
From: #{track.start_date.strftime('%A, %B %-d. %Y')}
|
||||
- if track.end_date
|
||||
%br
|
||||
To: #{track.end_date.strftime('%A, %B %-d. %Y')}
|
||||
- if track.room
|
||||
%br
|
||||
In: #{track.room.name}
|
||||
|
||||
- if @conference.program and @conference.program.schedule_public
|
||||
.row
|
||||
|
|
|
|||
|
|
@ -45,6 +45,10 @@
|
|||
%section#program
|
||||
= render 'schedule_splashpage'
|
||||
|
||||
- if @conference.program.cfps.for_tracks.try(:open?) && @conference.splashpage.include_cfp
|
||||
%section#callfortracks
|
||||
= render 'call_for_tracks'
|
||||
|
||||
- if @conference.program.cfp_open? and @conference.splashpage.include_cfp
|
||||
%section#callforpapers
|
||||
= render 'call_for_paper'
|
||||
|
|
@ -61,6 +65,10 @@
|
|||
%section#tickets
|
||||
= render 'tickets'
|
||||
|
||||
- if @conference.booths.confirmed.any? and @conference.splashpage.include_booths
|
||||
%section#booths
|
||||
= render 'booths'
|
||||
|
||||
- if @conference.sponsors.any? and @conference.splashpage.include_sponsors
|
||||
%section#sponsors
|
||||
= render 'sponsors'
|
||||
|
|
|
|||
|
|
@ -7,7 +7,10 @@
|
|||
%span.icon-bar
|
||||
%span.icon-bar
|
||||
%span.icon-bar
|
||||
= link_to (ENV['OSEM_NAME'] || 'OSEM'), root_path, class: 'navbar-brand', title: 'Open Source Event Manager'
|
||||
- if conference.nil? || conference.new_record?
|
||||
= link_to (ENV['OSEM_NAME'] || 'OSEM'), root_path, class: 'navbar-brand', title: 'Open Source Event Manager'
|
||||
- else
|
||||
= link_to conference.organization.name, organizations_path, class: 'navbar-brand', title: 'Open Source Event Manager'
|
||||
.collapse.navbar-collapse
|
||||
- if content_for :splash_nav
|
||||
%ul.nav.navbar-nav#splash-nav
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@
|
|||
= link_to(conference_program_proposals_path(@conference.short_title)) do
|
||||
%span.fa.fa-comment
|
||||
My Submissions
|
||||
%li
|
||||
= link_to(conference_program_tracks_path(@conference.short_title)) do
|
||||
%span.fa.fa-road
|
||||
My Tracks
|
||||
%li
|
||||
- if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
= link_to(destroy_user_ichain_session_path, method: 'delete') do
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
= yield(:head)
|
||||
%body
|
||||
= render 'layouts/navigation'
|
||||
= render 'layouts/navigation', conference: @conference
|
||||
-# Admin area
|
||||
- if controller.class.name.split("::").first=="Admin"
|
||||
= render 'layouts/admin'
|
||||
|
|
|
|||
8
app/views/mailbot/ticket_confirmation_template.text.erb
Normal file
8
app/views/mailbot/ticket_confirmation_template.text.erb
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
Dear <%= @user.name %>,
|
||||
|
||||
Thanks! You have successfully booked <%= @ticket_purchase.quantity %> <%= @ticket_purchase.ticket.title %> ticket(s) for the event <%= @conference.title %>. Your transaction id is <%= @ticket_purchase.id %>.
|
||||
|
||||
Please, find the ticket(s) pdf attached.
|
||||
|
||||
Best wishes,
|
||||
<%= @conference.title %> Team
|
||||
|
|
@ -24,11 +24,11 @@
|
|||
.btn-group
|
||||
= link_to 'Show',
|
||||
conference_physical_ticket_path(@conference.short_title,
|
||||
physical_ticket.id),
|
||||
physical_ticket.token),
|
||||
class: 'btn btn-primary'
|
||||
= link_to 'Generate PDF',
|
||||
conference_physical_ticket_path(@conference.short_title,
|
||||
physical_ticket.id,
|
||||
physical_ticket.token,
|
||||
format: :pdf),
|
||||
class: 'button btn btn-default btn-info'
|
||||
- else
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Ticket for
|
||||
= @conference.title
|
||||
%p.text-muted
|
||||
- if @conference.venue
|
||||
at
|
||||
%strong
|
||||
#{@conference.venue.name},
|
||||
#{@conference.venue.street},
|
||||
#{@conference.venue.city} / #{@conference.venue.country_name}.
|
||||
%small
|
||||
= date_string(@conference.start_date, @conference.end_date)
|
||||
.row
|
||||
.col-md-5.box.well
|
||||
%h3.text-center
|
||||
Ticket Holder
|
||||
%p.text-left
|
||||
%strong
|
||||
Name
|
||||
%br
|
||||
= @user.name
|
||||
%br
|
||||
%br
|
||||
%strong
|
||||
Email
|
||||
%br
|
||||
= @user.email
|
||||
.col-md-5.col-md-offset-2.box.well
|
||||
- if @conference.picture?
|
||||
- width = @conference.picture.image[:width]
|
||||
- height = @conference.picture.image[:height]
|
||||
- if 10 * width > 15 * height
|
||||
= image_tag(@conference.picture_url, width: '150')
|
||||
- else
|
||||
= image_tag(@conference.picture_url, height: '100')
|
||||
- else
|
||||
= image_tag('/img/osem-logo.png', class: 'img-responsive')
|
||||
%p.text-left
|
||||
%br
|
||||
%strong
|
||||
Organization
|
||||
%br
|
||||
= @conference.organization.name
|
||||
.col-md-5.box.well
|
||||
%p.text-left
|
||||
%strong
|
||||
Event
|
||||
%br
|
||||
= @conference.title
|
||||
%br
|
||||
= @conference.start_date.strftime('%B %d, %Y')
|
||||
%br
|
||||
%br
|
||||
%strong
|
||||
Ticket
|
||||
%br
|
||||
= @physical_ticket.ticket.title
|
||||
%br
|
||||
%br
|
||||
%strong
|
||||
Ticket Ref.
|
||||
%br
|
||||
= @physical_ticket.ticket_purchase.id
|
||||
%br
|
||||
.col-md-5.col-md-offset-2.box.well
|
||||
.row
|
||||
.col-md-12
|
||||
%p.text-left
|
||||
= link_to 'Generate PDF',
|
||||
conference_physical_ticket_path(@conference.short_title,
|
||||
@physical_ticket.token,
|
||||
format: :pdf),
|
||||
class: 'button btn btn-default btn-info'
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
= "#{event_types(@conference)}."
|
||||
- if @program.tracks.any?
|
||||
Proposals should fit in one of the
|
||||
= "#{pluralize(@program.tracks.count, 'track')}:"
|
||||
= "#{pluralize(@program.tracks.confirmed.cfp_active.count, 'track')}:"
|
||||
= "#{tracks(@conference)}."
|
||||
- if @program.cfp_open?
|
||||
The submission period has begun
|
||||
|
|
|
|||
|
|
@ -6,10 +6,7 @@
|
|||
|
||||
= speaker_selector_input f
|
||||
|
||||
- if @program.tracks.any?
|
||||
= f.input :track_id, as: :select,
|
||||
collection: @program.tracks.map {|track| ["#{track.name}", track.id] },
|
||||
include_blank: true
|
||||
= 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,
|
||||
|
|
|
|||
|
|
@ -9,9 +9,12 @@
|
|||
Track
|
||||
.row
|
||||
.col-md-12
|
||||
= semantic_form_for(@track, url: (@track.new_record? ? conference_program_tracks_path : conference_program_track_path(@conference.short_title, @track))) do |f|
|
||||
= semantic_form_for(@track, url: (@track.new_record? ? conference_program_tracks_path(@conference.short_title) : conference_program_track_path(@conference.short_title, @track))) do |f|
|
||||
= f.input :name
|
||||
= f.input :short_name, hint: "A short and unique handle for the track, using only letters, numbers, underscores, and dashes. This will be used to identify the track in URLs etc. Example: 'my_awesome_track'", input_html: { required: 'required', pattern: '[a-zA-Z0-9_-]+', title: 'Only letters, numbers, underscores, and dashes.' }
|
||||
= f.input :color, input_html: {size: 6, type: 'color'}, required: true
|
||||
= f.input :description, input_html: {rows: 2, data: { provide: 'markdown-editable' } }, required: true, hint: markdown_hint
|
||||
= f.input :start_date, as: :string, input_html: { id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date, readonly: 'readonly' }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'registration-period-end-datepicker', readonly: 'readonly' }
|
||||
= f.input :description, input_html: {rows: 2, data: { provide: 'markdown-editable' } }, required: true, hint: "This will be public #{markdown_hint}".html_safe
|
||||
= f.input :relevance, input_html: {rows: 5, data: { provide: 'markdown-editable' } }, required: true, hint: "Please explain here how this track relates to the conference, how you are related to it's content and why we should accept it. #{markdown_hint}".html_safe
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
|
|
|
|||
|
|
@ -6,38 +6,74 @@
|
|||
%span.notranslate
|
||||
= @conference.title
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
%p.text-right
|
||||
= link_to '#status-help', class: 'btn btn-default', "data-toggle"=>"collapse" do
|
||||
Help?
|
||||
.collapse#status-help
|
||||
%p
|
||||
%strong
|
||||
What happens next with my track request?
|
||||
%p
|
||||
If you submit a track request, the conference organizers will review it and either accept or reject it.
|
||||
%br
|
||||
If your track request is accepted, the conference organizers expect you to confirm that you will be able to hold it.
|
||||
Then you will gain the Track organizer role.
|
||||
%br
|
||||
If your track request is rejected, you can either live with that or adapt it and resubmit it for review again.
|
||||
%br
|
||||
If something changes and you can't organize the track any more, you should withdraw it.
|
||||
|
||||
- if @tracks.any?
|
||||
.row
|
||||
.col-md-12
|
||||
%table.table.table-hover#tracks
|
||||
%thead
|
||||
%th Name
|
||||
%th Short name
|
||||
%th Description
|
||||
%th Color
|
||||
%th State
|
||||
%th Actions
|
||||
%tbody
|
||||
- @tracks.each do |track|
|
||||
%tr
|
||||
%td
|
||||
= link_to(conference_program_track_path(@conference.short_title, track)) do
|
||||
= track.name
|
||||
%td
|
||||
= track.short_name
|
||||
%td
|
||||
%p
|
||||
= truncate(track.description)
|
||||
%td
|
||||
%table.table.table-striped#tracks
|
||||
- @tracks.each do |track|
|
||||
%tr
|
||||
%td{style: "padding:15px 0px 0px 8px;"}
|
||||
- if %w(new to_accept to_reject).include? track.state
|
||||
%span{ title: 'In review', class: 'fa fa-eye' }
|
||||
- elsif track.state == 'accepted'
|
||||
%span{ title: 'Accepted', class: 'fa fa-check text-muted' }
|
||||
- elsif track.state == 'confirmed'
|
||||
%spam{ title: 'Confirmed', class: 'fa fa-check text-success' }
|
||||
- elsif %w(rejected withdrawn canceled).include? track.state
|
||||
%span{ title: track.state.humanize, class: 'fa fa-ban'}
|
||||
%td{style: "padding: 15px 0px 0px 0px;"}
|
||||
= link_to conference_program_track_path(@conference.short_title, track), class: 'btn' do
|
||||
%span.label{style: "background-color: #{track.color}; color: #{ contrast_color(track.color) }"}
|
||||
= track.color
|
||||
%td
|
||||
= track.state
|
||||
%td
|
||||
= link_to 'Edit', edit_conference_program_track_path(@conference.short_title, track),
|
||||
method: :get, class: 'btn btn-primary'
|
||||
= track.name
|
||||
%td
|
||||
= markdown(truncate(track.description))
|
||||
%td
|
||||
- if track.start_date
|
||||
From:
|
||||
= track.start_date.strftime('%A, %B %-d. %Y')
|
||||
%td
|
||||
- if track.end_date
|
||||
To:
|
||||
= track.end_date.strftime('%A, %B %-d. %Y')
|
||||
%td
|
||||
- if track.room
|
||||
In:
|
||||
= track.room.name
|
||||
%td
|
||||
.pull-right
|
||||
- if track.transition_possible? :confirm
|
||||
= link_to 'Confirm', confirm_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, class: 'btn btn-mini btn-success', id: "confirm_track_#{track.id}"
|
||||
- if track.transition_possible? :withdraw
|
||||
= link_to 'Withdraw', withdraw_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, data: { confirm: 'Are you sure you want to withdraw this track request?' },
|
||||
class: 'btn btn-mini btn-warning', id: "withdraw_track_request_#{track.id}"
|
||||
- if track.transition_possible? :restart
|
||||
= link_to 'Re-Submit', restart_conference_program_track_path(@conference.short_title, track),
|
||||
method: :patch, class: 'btn btn-mini btn-success', id: "resubmit_track_request_#{track.id}"
|
||||
- if can? :edit, track
|
||||
= link_to 'Edit', edit_conference_program_track_path(@conference.short_title, track), class: 'btn btn-default'
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
- if can? :create, @track
|
||||
- if can? :new, @program.tracks.new
|
||||
= link_to "New Track request", new_conference_program_track_path(@conference.short_title), class: 'btn btn-success pull-right'
|
||||
|
|
|
|||
|
|
@ -2,9 +2,12 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
%h2
|
||||
= @track.name
|
||||
Track
|
||||
.btn-group.pull-right
|
||||
- if can? :edit, @track
|
||||
= link_to 'Edit Track request', edit_conference_program_track_path(@conference.short_title, @track), class: 'btn btn-primary'
|
||||
.row
|
||||
.col-md-8
|
||||
%dl.dl-horizontal
|
||||
|
|
@ -16,11 +19,27 @@
|
|||
%dt
|
||||
State:
|
||||
%dd
|
||||
= @track.state
|
||||
- if %w(new to_accept to_reject).include? @track.state
|
||||
New
|
||||
- else
|
||||
= @track.state.humanize
|
||||
%dt
|
||||
Start date:
|
||||
%dd
|
||||
= @track.start_date.strftime('%A, %B %-d. %Y') if @track.start_date
|
||||
%dt
|
||||
End date:
|
||||
%dd
|
||||
= @track.end_date.strftime('%A, %B %-d. %Y') if @track.end_date
|
||||
%dt
|
||||
Room:
|
||||
%dd
|
||||
= @track.room.try(:name)
|
||||
%dt
|
||||
Description
|
||||
%dd
|
||||
= @track.description
|
||||
.row
|
||||
.col-md-12.text-right
|
||||
= link_to 'Edit Track request', edit_conference_program_track_path(@conference.short_title, @track), class: 'btn btn-primary'
|
||||
= markdown(@track.description)
|
||||
%dt
|
||||
Relevance
|
||||
%dd
|
||||
= markdown(@track.relevance)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue