Merge master tidy routes
This commit is contained in:
commit
de8b06c4b3
120 changed files with 1321 additions and 1293 deletions
|
|
@ -1,13 +1,14 @@
|
|||
.list-group
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)}" }
|
||||
%ul.list-group
|
||||
.list-group-item
|
||||
%h4
|
||||
Conference progress
|
||||
.progress
|
||||
.progress-bar{ 'role' => 'progressbar', 'aria-valuenow' => "#{conference_progress['process']}", 'aria-valuemin' => '0',
|
||||
'aria-valuemax' => '100', 'style' => "width: #{conference_progress['process']}%;" }
|
||||
.progress-bar{ role: 'progressbar', 'aria-valuenow': conference_progress['process'],
|
||||
'aria-valuemin': 0, 'aria-valuemax': 100,
|
||||
style: "width: #{conference_progress['process']}%;" }
|
||||
= conference_progress['process'] + '%'
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['registration'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['registration']) }
|
||||
%li.list-group-item{ class: class_for_todo(conference_progress['registration']) }
|
||||
%span{ class: icon_for_todo(conference_progress['registration']) }
|
||||
- if can? :update, @conference
|
||||
- if conference.registration_period
|
||||
= link_to 'Set up registration period', edit_admin_conference_registration_period_path(conference_progress['short_title'])
|
||||
|
|
@ -15,14 +16,14 @@
|
|||
= link_to 'Set up registration period', new_admin_conference_registration_period_path(conference_progress['short_title'])
|
||||
- else
|
||||
Set up registration period
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['cfp'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['cfp']) }
|
||||
%li.list-group-item{ class: class_for_todo(conference_progress['cfp']) }
|
||||
%span{ class: icon_for_todo(conference_progress['cfp']) }
|
||||
- if can? :update, Cfp.new(program_id: @program.id)
|
||||
= link_to 'Set up call for papers', admin_conference_program_cfps_path(conference_progress['short_title'])
|
||||
- else
|
||||
Set up call for papers
|
||||
%li{'class'=>"list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['venue'])}"}
|
||||
%span{'class'=>icon_for_todo(conference_progress['venue'])}
|
||||
%li.list-group-item{ class: class_for_todo(conference_progress['venue']) }
|
||||
%span{ class: icon_for_todo(conference_progress['venue'])}
|
||||
- if can? :update, Venue.new(conference: @conference)
|
||||
- @conference.reload
|
||||
- if conference.venue
|
||||
|
|
@ -32,32 +33,32 @@
|
|||
- else
|
||||
- @conference.reload
|
||||
Add venue
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['rooms'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['rooms']) }
|
||||
%li.list-group-item{ class: class_for_todo(conference_progress['rooms']) }
|
||||
%span{ class: icon_for_todo(conference_progress['rooms']) }
|
||||
- if @conference.venue && (can? :update, @conference.venue.rooms.build)
|
||||
= link_to 'Add rooms', admin_conference_venue_rooms_path(conference_progress['short_title'])
|
||||
- else
|
||||
Add rooms
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['tracks'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['tracks']) }
|
||||
%li.list-group-item{ class: class_for_todo(conference_progress['tracks']) }
|
||||
%span{ class: icon_for_todo(conference_progress['tracks']) }
|
||||
- if can? :update, @conference.program.tracks.build
|
||||
= link_to 'Add tracks', admin_conference_program_tracks_path(conference_progress['short_title'])
|
||||
- else
|
||||
Add tracks
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['event_types'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['event_types']) }
|
||||
%li{ class: "list-group-item #{class_for_todo(conference_progress['event_types'])}" }
|
||||
%span{ class: icon_for_todo(conference_progress['event_types']) }
|
||||
- if can? :update, @conference.program.event_types.build
|
||||
= link_to 'Add event types', admin_conference_program_event_types_path(conference_progress['short_title'])
|
||||
- else
|
||||
Add event types
|
||||
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['difficulty_levels'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['difficulty_levels']) }
|
||||
%li{ class: "list-group-item #{class_for_todo(conference_progress['difficulty_levels'])}" }
|
||||
%span{ class: icon_for_todo(conference_progress['difficulty_levels']) }
|
||||
- if can? :update, @conference.program.difficulty_levels.build
|
||||
= link_to 'Add difficulty levels', admin_conference_program_difficulty_levels_path(conference_progress['short_title'])
|
||||
- else
|
||||
Add difficulty levels
|
||||
%li{ class: "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['splashpage'])}" }
|
||||
%span{ 'class' => icon_for_todo(conference_progress['splashpage']) }
|
||||
%li.list-group-item{ class: "#{class_for_todo(conference_progress['splashpage'])}" }
|
||||
%span{ class: icon_for_todo(conference_progress['splashpage']) }
|
||||
- if can? :update, @conference
|
||||
= link_to 'Set up a Splashpage', admin_conference_splashpage_path(conference_progress['short_title'])
|
||||
- else
|
||||
|
|
|
|||
|
|
@ -9,24 +9,27 @@
|
|||
= semantic_form_for(@conference, url: admin_conference_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
= f.input :title, hint: "The full title of the conference, e.g. 'openSUSE Conference 2014'"
|
||||
= f.input :short_title, hint: "A short title, e.g. 'oSC14', to be used in URLs"
|
||||
= f.input :description, hint: markdown_hint('A description of the conference.'), input_html: { rows: 5, data: { provide: 'markdown' } }
|
||||
= f.input :color, hint: 'The color will be used eg for the dashboard.', input_html: {size: 6, type: 'color'}
|
||||
= f.label 'Conference Logo'
|
||||
= f.input :description,
|
||||
hint: markdown_hint('A description of the conference. (Supports unsafe HTML.)'),
|
||||
input_html: { rows: 5, data: { provide: 'markdown' } }
|
||||
= f.input :color, hint: 'The will be used in emails.',
|
||||
input_html: {size: 6, type: 'color'}
|
||||
= f.label 'Conference Logo', for: 'conference_picture'
|
||||
%br
|
||||
- if @conference.picture?
|
||||
= image_tag @conference.picture.thumb.url
|
||||
= f.input :picture, label: false, hint: 'This will be displayed on the front page.'
|
||||
= f.input :picture, label: false, hint: 'This will be shown in the navigation bar and emails.'
|
||||
= f.hidden_field :picture_cache
|
||||
|
||||
= f.input :custom_css,
|
||||
hint: "Add Custon CSS to the main page. You might find the class '.conference-#{@conference.short_title}' useful.",
|
||||
input_html: { rows: 5 }
|
||||
hint: "Add custon CSS to all pages within the conference. The class <code>.conference-#{@conference.short_title}</code> is included on the body element.".html_safe,
|
||||
input_html: { rows: 10, style: 'font-family: monospace' }
|
||||
|
||||
= f.input :ticket_layout, as: :select, collection: Conference.ticket_layouts.keys, hint: "Layout type for tickets of the conference."
|
||||
= f.inputs name: 'Scheduling' do
|
||||
= f.input :timezone, as: :time_zone, hint: 'The conference time zone'
|
||||
= f.input :start_date, as: :string, input_html: { id: 'conference-start-datepicker', readonly: 'readonly' }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'conference-end-datepicker', readonly: 'readonly' }
|
||||
= f.input :start_date, as: :string, input_html: { id: 'conference-start-datepicker' }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'conference-end-datepicker' }
|
||||
= f.input :start_hour, input_html: {size: 2, type: 'number', min: 0, max: 23}, hint: rescheduling_hint(@affected_event_count)
|
||||
= f.input :end_hour, input_html: {size: 2, type: 'number', min: 1, max: 24}, hint: rescheduling_hint(@affected_event_count)
|
||||
= f.inputs name: 'Registrations' do
|
||||
|
|
|
|||
|
|
@ -3,16 +3,16 @@
|
|||
Dashboard for #{@conference.title}
|
||||
%hr
|
||||
.row
|
||||
.col-sm-3.col-xs-3
|
||||
.col-sm-3.col-xs-6
|
||||
= render "big_statistic",
|
||||
icon: "user", subtitle: "Registration", value: @total_reg, delta: @new_reg
|
||||
.col-sm-3.col-xs-3
|
||||
.col-sm-3.col-xs-6
|
||||
= render "big_statistic",
|
||||
icon: "check-square", subtitle: "Submission", value: @total_submissions, delta: @new_submissions
|
||||
.col-sm-3.col-xs-3
|
||||
.col-sm-3.col-xs-6
|
||||
= render "big_statistic",
|
||||
icon: "file-text", subtitle: "Hour", value: @program_length, delta: @new_program_length
|
||||
.col-sm-3.col-xs-3
|
||||
.col-sm-3.col-xs-6
|
||||
= render "big_statistic",
|
||||
icon: "archive", subtitle: "Withdrawn", value: @total_withdrawn, delta: @new_withdrawn
|
||||
|
||||
|
|
@ -29,8 +29,20 @@
|
|||
= render 'line_chart',
|
||||
title: 'Submissions per week', data: @submissions
|
||||
.col-md-4
|
||||
-# = render 'todo_list',
|
||||
-# conference_progress: @conference_progress, conference: @conference
|
||||
- unless @conference.ended?
|
||||
= render 'todo_list',
|
||||
conference_progress: @conference_todo_list, conference: @conference
|
||||
- else
|
||||
.list-group
|
||||
.list-group-item
|
||||
%h4
|
||||
Conference Progress
|
||||
.progress
|
||||
.progress-bar{ role: 'progressbar', 'aria-valuenow': 100,
|
||||
'aria-valuemin': 0, 'aria-valuemax': 100,
|
||||
style: 'width: 100%;' }
|
||||
Conference Complete!
|
||||
|
||||
.row#tickets
|
||||
.col-md-8
|
||||
= render 'line_chart',
|
||||
|
|
@ -43,14 +55,15 @@
|
|||
%a{ href: '#distribution_all', 'data-toggle' => 'tab' }
|
||||
%span.fa.fa-star
|
||||
All
|
||||
%li
|
||||
%a{ href: '#distribution_confirmed', 'data-toggle' => 'tab' }
|
||||
%span.fa.fa-comment
|
||||
Confirmed
|
||||
%li
|
||||
%a{ href: '#distribution_withdrawn', 'data-toggle' => 'tab' }
|
||||
%span.fa.fa-archive
|
||||
Withdrawn
|
||||
-# TODO-SNAP: Disabled for Snap!Con
|
||||
%li
|
||||
%a{ href: '#distribution_confirmed', 'data-toggle' => 'tab' }
|
||||
%span.fa.fa-comment
|
||||
Confirmed
|
||||
%li
|
||||
%a{ href: '#distribution_withdrawn', 'data-toggle' => 'tab' }
|
||||
%span.fa.fa-archive
|
||||
Withdrawn
|
||||
.tab-content
|
||||
.tab-pane.active#distribution_all
|
||||
.row
|
||||
|
|
@ -58,33 +71,33 @@
|
|||
= render 'donut_chart', title: 'Event types',
|
||||
combined_data: @event_type_distribution
|
||||
.col-md-4
|
||||
-# = render 'donut_chart', title: 'Difficulty levels',
|
||||
-# combined_data: @difficulty_levels_distribution
|
||||
= render 'donut_chart', title: 'Difficulty levels',
|
||||
combined_data: @difficulty_levels_distribution
|
||||
.col-md-4
|
||||
-# = render 'donut_chart', title: 'Tracks',
|
||||
-# combined_data: @tracks_distribution
|
||||
.tab-pane#distribution_confirmed
|
||||
.row
|
||||
.col-md-4
|
||||
-# = render 'donut_chart', title: 'Event types',
|
||||
-# combined_data: @event_type_distribution_confirmed
|
||||
.col-md-4
|
||||
-# = render 'donut_chart', title: 'Difficulty levels',
|
||||
-# combined_data: @difficulty_levels_distribution_confirmed
|
||||
.col-md-4
|
||||
-# = render 'donut_chart', title: 'Tracks',
|
||||
-# combined_data: @tracks_distribution_confirmed
|
||||
.tab-pane#distribution_withdrawn
|
||||
= render 'donut_chart', title: 'Tracks',
|
||||
combined_data: @tracks_distribution
|
||||
-# .tab-pane#distribution_withdrawn
|
||||
.row
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Event types',
|
||||
combined_data: @event_type_distribution_withdrawn
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Difficulty levels',
|
||||
combined_data: @difficulty_levels_distribution_withdrawn
|
||||
combined_data: @difficulty_levels_distribution
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Tracks',
|
||||
combined_data: @tracks_distribution_withdrawn
|
||||
combined_data: @tracks_distribution
|
||||
-# .tab-pane#distribution_confirmed
|
||||
.row
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Event types',
|
||||
combined_data: @event_type_distribution_confirmed
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Difficulty levels',
|
||||
combined_data: @difficulty_levels_distribution_confirmed
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Tracks',
|
||||
combined_data: @tracks_distribution_confirmed
|
||||
|
||||
.row
|
||||
.col-md-8
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
= f.input :description, as: :text, hint: markdown_hint, input_html: { rows: 5, data: { provide: 'markdown-editable' } }
|
||||
= f.input :minimum_abstract_length, input_html: {size: 3}
|
||||
= f.input :maximum_abstract_length, input_html: {size: 3}
|
||||
= f.input :submission_instructions, as: :text, hint: markdown_hint, input_html: { rows: 5, data: { provide: 'markdown-editable' } }
|
||||
= f.input :color, input_html: { size: 6, type: 'color' }
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
%thead
|
||||
%th Title
|
||||
%th Description
|
||||
%th Instructions
|
||||
%th Length
|
||||
%th Abstract Length
|
||||
%th Color
|
||||
|
|
@ -21,6 +22,8 @@
|
|||
= event_type.title
|
||||
%td
|
||||
= markdown(event_type.description)
|
||||
%td
|
||||
= markdown(event_type.submission_instructions)
|
||||
%td
|
||||
= event_type.length
|
||||
Minutes
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
.row
|
||||
.col-md-12
|
||||
= f.input :title
|
||||
= f.input :title, input_html: { autofocus: true }
|
||||
= f.input :mandatory
|
||||
.survey-possible-answers{ class: @survey_question.choice? ? '' : 'hidden' }
|
||||
= f.input :possible_answers, hint: 'Comma separated', input_html: { rows: 3 }
|
||||
|
|
|
|||
|
|
@ -7,4 +7,4 @@
|
|||
.panel-body
|
||||
- question_replies = survey_question.survey_replies
|
||||
- if question_replies.any?
|
||||
= pie_chart question_replies.group(:text).count, library: { legend: 'bottom', plotOptions: { pie: { dataLabels: { enabled: false }, showInLegend: true } } }
|
||||
= pie_chart question_replies.group(:text).count, library: { legend: { position: 'bottom' }, plotOptions: { pie: { dataLabels: { enabled: false }, showInLegend: true } } }
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
%th{ width: '0' } Conferences Attended
|
||||
%th{ width: '50%' } Roles
|
||||
%th{ width: '0' } Actions
|
||||
%th{ style: 'display: none' } Confirmed?
|
||||
%tbody
|
||||
|
||||
:javascript
|
||||
|
|
@ -37,6 +38,7 @@
|
|||
{
|
||||
"data": "confirmed_at",
|
||||
"render": function (data, type, row, meta) {
|
||||
console.log(meta)
|
||||
return '<input type="checkbox" class="switch-checkbox" '+
|
||||
'id="user_'+row.id+'_confirmed" '+
|
||||
'name="user_'+row.id+'_confirmed" '+
|
||||
|
|
@ -73,6 +75,11 @@
|
|||
'<a class="btn-primary" href="'+data.edit_url+'">Edit</a>'+
|
||||
'</div>';
|
||||
}
|
||||
},
|
||||
{
|
||||
"data": "confirmed",
|
||||
"className": 'hidden',
|
||||
"render": false
|
||||
}
|
||||
]
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,8 +12,10 @@
|
|||
.tab-content
|
||||
#user-info-content.tab-pane{class: "#{'active' unless params[:tab] == 'submissions-content'}"}
|
||||
- if can? :edit, @user
|
||||
.pull-right
|
||||
.pull-right.btn-group
|
||||
= link_to 'Edit', edit_admin_user_path(@user), class: 'btn btn-primary'
|
||||
= link_to 'Delete', admin_user_path(@user),method: :delete, class: 'btn btn-danger',
|
||||
data: {confirm: "Are you sure?"}
|
||||
%table.table
|
||||
- @show_attributes.each do |attr|
|
||||
%tr
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
- reverse ||= false
|
||||
- variant = variant_from_delta(delta, reverse: reverse)
|
||||
.dashbox.text-center
|
||||
%span.fa
|
||||
= fa_icon(icon)
|
||||
= value
|
||||
%p.text-nowrap
|
||||
%small
|
||||
.dashbox.panel.panel-primary
|
||||
.paenl-body.text-center
|
||||
%span.fa
|
||||
= fa_icon(icon)
|
||||
= value
|
||||
%p
|
||||
= subtitle.pluralize(value)
|
||||
%span.label{ class: "label-#{variant}" }
|
||||
= delta
|
||||
since you last logged in
|
||||
|
||||
.label{ class: "label-#{variant}" }
|
||||
= delta || 0
|
||||
since last log in
|
||||
|
|
|
|||
|
|
@ -1,33 +1,39 @@
|
|||
.panel.panel-default{class: ("panel-success" if event.registrations.include?(@registration)) }
|
||||
.panel.panel-default{ class: ('panel-success' if event.registrations.include?(registration)) }
|
||||
.panel-heading
|
||||
%label{for: "registration_event_ids_#{event.id}"}
|
||||
%h3{style: 'margin: 0 auto;'}
|
||||
= hidden_field_tag "registration[event_ids][]", nil
|
||||
= check_box_tag "registration[event_ids][]", event.id, event.registrations.include?(@registration), id: "registration_event_ids_#{event.id}"
|
||||
%label{ for: "registration_event_ids_#{event.id}" }
|
||||
%h3{ style: 'margin: 0 auto;' }
|
||||
= hidden_field_tag 'registration[event_ids][]', nil
|
||||
= check_box_tag 'registration[event_ids][]', event.id, event.registrations.include?(registration), id: "registration_event_ids_#{event.id}"
|
||||
= event.title
|
||||
%small
|
||||
= event.subtitle
|
||||
.text-muted
|
||||
= registered_text(event)
|
||||
- if event.scheduled?
|
||||
(Scheduled on: #{event.time.to_date})
|
||||
|
||||
.panel-body
|
||||
-# %p
|
||||
-# = canceled_replacement_event_label(event, event_schedule)
|
||||
-# = replacement_event_notice(event_schedule)
|
||||
-#
|
||||
%p
|
||||
= canceled_replacement_event_label(event, event_schedule)
|
||||
= replacement_event_notice(event_schedule)
|
||||
%p
|
||||
- if event.speakers.any?
|
||||
presented by #{event.speaker_names}
|
||||
- if event_schedule.present?
|
||||
.h4.track
|
||||
%span.fa.fa-clock-o
|
||||
%span.label{ style: "background-color: grey" }
|
||||
%span.label{ style: 'background-color: grey' }
|
||||
= event_schedule.start_time.strftime('%A, %B %-d %H:%M')
|
||||
\-
|
||||
= event_schedule.end_time.strftime('%H:%M')
|
||||
%p
|
||||
= markdown(truncate(event.abstract, length: 250))
|
||||
-# TODO: More informative text or aria-label.
|
||||
= link_to 'more', conference_program_proposal_path(@conference.short_title, event.id), target: '_blank'
|
||||
= link_to 'more', conference_program_proposal_path(conference.short_title, event.id), target: '_blank'
|
||||
|
||||
- if event.track
|
||||
%span.track
|
||||
%span.fa.fa-road
|
||||
%span.label{ style: "background-color: #{event.track.color}; color: #{ contrast_color(event.track.color) }" }
|
||||
%span.label{ style: "background-color: #{event.track.color}; color: #{contrast_color(event.track.color)}" }
|
||||
= event.track.name
|
||||
|
|
|
|||
|
|
@ -18,6 +18,6 @@
|
|||
You are registered for #{pluralize(@registration.events.count, 'event')}.
|
||||
They are at the end of this list.
|
||||
- @registration.events_ordered.each do |event|
|
||||
= render 'conference_registrations/event', event: event, event_schedule: event.event_schedules.first
|
||||
= render 'conference_registrations/event', event: event, event_schedule: event.event_schedules.first, conference: @conference, registration: @registration
|
||||
|
||||
= render 'conferences/code_of_conduct', organization: @conference.organization
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@
|
|||
-if @conference.venue
|
||||
at
|
||||
%strong
|
||||
= "#{@conference.venue.name},"
|
||||
= "#{@conference.venue.street},"
|
||||
= "#{@conference.venue.city} / #{@conference.venue.country_name}."
|
||||
= "#{@conference.venue_name},"
|
||||
= "#{@conference.venue_street},"
|
||||
= "#{@conference.city} / #{@conference.country_name}."
|
||||
%small
|
||||
= date_string(@conference.start_date, @conference.end_date)
|
||||
- unless @conference.code_of_conduct.blank?
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
= date_string(conference.start_date, conference.end_date)
|
||||
- if conference.venue
|
||||
%p
|
||||
= "#{conference.venue.city}/#{conference.venue.country_name}"
|
||||
= "#{conference.city}/#{conference.country_name}"
|
||||
- unless conference.description.blank?
|
||||
%p
|
||||
= markdown(conference.description, escape_html=false)
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
-# .scroll-top-wrapper
|
||||
-# = link_to "#banner", class: "smoothscroll" do
|
||||
-# %i.fa.fa-2x.fa-arrow-circle-up
|
||||
-#
|
||||
scroll-top-wrapper
|
||||
= link_to "#banner", class: "smoothscroll" do
|
||||
%i.fa.fa-2x.fa-arrow-circle-up
|
||||
|
||||
-# :javascript
|
||||
-# $(function(){
|
||||
-# $(document).on( 'scroll', function(){
|
||||
-# if ($(window).scrollTop() > 100) {
|
||||
-# $('.scroll-top-wrapper').addClass('show');
|
||||
-# } else {
|
||||
-# $('.scroll-top-wrapper').removeClass('show');
|
||||
-# }
|
||||
-# });
|
||||
-# });
|
||||
:javascript
|
||||
$(function(){
|
||||
$(document).on( 'scroll', function(){
|
||||
if ($(window).scrollTop() > 100) {
|
||||
$('.scroll-top-wrapper').addClass('show');
|
||||
} else {
|
||||
$('.scroll-top-wrapper').removeClass('show');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,13 +2,14 @@
|
|||
#banner{ style: ("background-image: url(#{conference.picture_url})" if conference.picture_url) }
|
||||
.container
|
||||
.row
|
||||
.col-md-6.col-md-offset-3{id: (conference.picture? ? "header-image" : "header-no-image")}
|
||||
.col-md-6.col-md-offset-3{ id: (conference.picture? ? "header-image" : "header-no-image") }
|
||||
.row
|
||||
-# - if conference.picture?
|
||||
-# .col-md-4
|
||||
-# = image_tag(conference.picture_url,
|
||||
-# class: 'img-responsive img-center',
|
||||
-# id: 'splash-logo')
|
||||
-#
|
||||
- if conference.picture?
|
||||
.col-md-4
|
||||
= image_tag(conference.picture_url,
|
||||
class: 'img-responsive img-center',
|
||||
id: 'splash-logo')
|
||||
.col-md-8
|
||||
%h1
|
||||
= conference.title.html_safe
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
%li
|
||||
%a.smoothscroll{ href: '#program' } Program
|
||||
%li
|
||||
= link_to('Schedule', events_conference_schedule_path(@conference))
|
||||
= link_to('Schedule', events_conference_schedule_path(conference))
|
||||
|
||||
- cache [conference, highlights, tracks, booths, '#splash#program'] do
|
||||
%section#program
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
.row
|
||||
.col-md-12
|
||||
%h3.text-center
|
||||
= "Interested in sponsoring #{conference.title}?"
|
||||
Interested in sponsoring #{conference.title}?
|
||||
= link_to(sponsorship_mailto(conference)) do
|
||||
Please, contact us!
|
||||
.trapezoid
|
||||
|
|
|
|||
|
|
@ -22,6 +22,6 @@
|
|||
.word_break
|
||||
= short_ticket_description(ticket)
|
||||
%button.btn-block.btn.btn-lg.btn-success
|
||||
%i.fa.fa-ticket.fa-fw{"aria-hidden": true}
|
||||
%i.fa.fa-ticket.fa-fw{ "aria-hidden": true }
|
||||
= humanized_money_with_symbol(ticket.price)
|
||||
.trapezoid
|
||||
|
|
|
|||
|
|
@ -18,8 +18,11 @@
|
|||
#antiquated
|
||||
- @antiquated.each do |conference|
|
||||
= render '/conferences/conference_details', conference: conference
|
||||
- if @antiquated.empty? && @current.empty? && User.empty?
|
||||
= render partial: 'new_install'
|
||||
%p
|
||||
Add the events to your calendar:
|
||||
%span.btn-group
|
||||
= link_to("Days only", calendar_url(protocol: 'webcal', format: 'ics'), class: 'btn btn-default')
|
||||
= link_to("Detailed", calendar_url(protocol: 'webcal', format: 'ics', full: true), class: 'btn btn-default')
|
||||
|
||||
-content_for :script_body do
|
||||
:javascript
|
||||
|
|
|
|||
|
|
@ -17,5 +17,5 @@
|
|||
will the be administrator of it.
|
||||
%p
|
||||
We hope you enjoy using OSEM, if you have any question don't hesitate to
|
||||
= link_to('http://osem.io/#contact') do
|
||||
= link_to('https://osem.io/#contact') do
|
||||
contact us!
|
||||
|
|
@ -20,24 +20,22 @@
|
|||
- if @unpaid_tickets
|
||||
.row
|
||||
.col-md-12
|
||||
.alert.alert-dismissable.alert-info.text-center#unpaid-tickets{role: 'alert'}
|
||||
%button.button.close{"data-dismiss" => "alert", "aria-label"=>"close"}
|
||||
.alert.alert-dismissable.alert-info.text-center#unpaid-tickets{ role: 'alert' }
|
||||
%button.button.close{ "data-dismiss" => "alert", "aria-label"=>"close" }
|
||||
×
|
||||
%p
|
||||
You have unpaid tickets. Please complete your purchase.
|
||||
= link_to('Purchase Tickets', new_conference_payment_path(@conference), class: 'btn btn-success btn-lg')
|
||||
|
||||
|
||||
- if @user_needs_to_register
|
||||
.row
|
||||
.col-md-12
|
||||
.alert.alert-dismissable.alert-warning.text-center#flash{role: 'alert'}
|
||||
%button.button.close{"data-dismiss" => "alert", 'aria-label': 'close'}
|
||||
×
|
||||
%p
|
||||
You still need to complete your registration for #{@conference.title}.
|
||||
= link_to('Complete Registration', new_conference_conference_registration_path(@conference), class: 'btn btn-success btn-lg')
|
||||
|
||||
.col-md-12
|
||||
.alert.alert-dismissable.alert-warning.text-center#flash{ role: 'alert' }
|
||||
%button.button.close{ "data-dismiss" => "alert", 'aria-label': 'close' }
|
||||
×
|
||||
%p
|
||||
You still need to complete your registration for #{@conference.title}.
|
||||
= link_to('Complete Registration', new_conference_conference_registration_path(@conference), class: 'btn btn-success btn-lg')
|
||||
|
||||
#splash
|
||||
- if @conference.code_of_conduct.present?
|
||||
|
|
@ -79,29 +77,8 @@
|
|||
sponsorship_levels: @sponsorship_levels,
|
||||
sponsors: @sponsors
|
||||
|
||||
|
||||
-# footer
|
||||
- if @conference.splashpage.include_social_media
|
||||
- if @conference.contact.has_social_media?
|
||||
= render 'social_media', contact: @conference.contact
|
||||
= render 'footer'
|
||||
|
||||
|
||||
-# - content_for :script_head do
|
||||
-# :javascript
|
||||
-# var triangle_tcs = tinycolor("#{h(@conference.color)}").monochromatic();
|
||||
-# var triangle_colors = triangle_tcs.map(function(t) {
|
||||
-# return t.toHexString();
|
||||
-# });
|
||||
-# $(function () {
|
||||
-# $(document).ready(function() {
|
||||
-# var triangle_width = document.body.clientWidth;
|
||||
-# var triangle_height = ($( "#banner" ).height() + 200 );
|
||||
-# var pattern = Trianglify({ width: triangle_width,
|
||||
-# height: triangle_height,
|
||||
-# cell_size: 100,
|
||||
-# x_colors: triangle_colors
|
||||
-# });
|
||||
-# $('#banner').css('background-image', 'url(' + 0 + ')');
|
||||
-# });
|
||||
-# });
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
= f.input :password
|
||||
- if devise_mapping.rememberable?
|
||||
%p.text-right.small
|
||||
= f.label 'Remember me'
|
||||
= f.label 'Remember me', for: 'user_remember_me'
|
||||
= f.check_box :remember_me
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, label: 'Sign In', button_html: {class: 'btn btn-success'}
|
||||
|
|
|
|||
12
app/views/layouts/_mailbot_footer.html.erb
Normal file
12
app/views/layouts/_mailbot_footer.html.erb
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<meta content="Snap!Con -- A conference all about Snap!, a programing language from UC Berkeley." name="description"/>
|
||||
<meta content="Michael Ball, Brian Harvey, Jens Moenig, Bernat Romagosa, Dan Garcia, Lauren Mock" name="author"/>
|
||||
<%= stylesheet_link_tag "mailbot" %>
|
||||
</head>
|
||||
<body>
|
||||
<div id="border" style="background-color: <%= conference_color(@conference) %>"></div>
|
||||
</body>
|
||||
</html>
|
||||
25
app/views/layouts/_mailbot_header.html.erb
Normal file
25
app/views/layouts/_mailbot_header.html.erb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<title>
|
||||
<%= 'Email' %>
|
||||
</title>
|
||||
<meta content="Snap!Con -- A conference all about Snap!, a programing language from UC Berkeley." name="description"/>
|
||||
<meta content="Michael Ball, Brian Harvey, Jens Moenig, Bernat Romagosa, Dan Garcia, Lauren Mock" name="author"/>
|
||||
<%= stylesheet_link_tag "mailbot" %>
|
||||
</head>
|
||||
<body>
|
||||
<div id="border" style="background-color: <%= conference_color(@conference) %>">
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<% if @conference.present? %>
|
||||
<%= image_tag(conference_logo_url(@conference), style: "display:block;height:70px;width:auto;", alt: @conference.title + ' logo') %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
||||
|
||||
|
|
@ -51,37 +51,38 @@
|
|||
= link_to(sign_in_path) do
|
||||
%span.fa.fa-user
|
||||
Sign In
|
||||
-# %li.dropdown.visible-desktop
|
||||
-# %a.dropdown-toggle{"data-toggle" => "dropdown", href: '#'}
|
||||
-# %span.fa.fa-user
|
||||
-# Sign In
|
||||
-# %span.caret
|
||||
-# .dropdown-menu
|
||||
-# - if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
-# = form_tag User.ichain_login_url do
|
||||
-# = text_field_tag 'username', nil, id: 'user_ichain_email_dd', class: 'form-control', placeholder: 'Username'
|
||||
-# = password_field_tag 'password', nil, id: 'user_ichain_password_dd', class: 'form-control', placeholder: 'Password'
|
||||
-# %button.btn.btn-success.btn-block Sign in
|
||||
-# - else
|
||||
-# %div{style: "padding: 6px"}
|
||||
-# = form_tag new_user_session_path, class: 'form-group' do
|
||||
-# = text_field_tag 'user[login]', nil, id: 'user_login_dd', class: 'form-control', placeholder: 'Username / E-Mail'
|
||||
-# = password_field_tag 'user[password]', nil, id: 'user_password_dd', class: 'form-control', placeholder: 'Password'
|
||||
-# %p.text-right
|
||||
-# %small
|
||||
-# %label{for: 'user_remember_me'} Remember me
|
||||
-# = check_box_tag 'user[remember_me]'
|
||||
-# %br
|
||||
-# %button.btn.btn-success.btn-block Sign in
|
||||
-# - unless omniauth_configured.empty?
|
||||
-# .divider
|
||||
-# %h6.text-center
|
||||
-# or
|
||||
-# = render 'devise/shared/openid_links'
|
||||
-# %p.text-right
|
||||
-# %br
|
||||
-# %a.small.btn.btn-xs.btn-default{"data-toggle" => "collapse", "data-target" => "#navbar-devise-help"}
|
||||
-# Need Help?
|
||||
-# #navbar-devise-help.collapse
|
||||
-# = render 'devise/shared/links'
|
||||
-#
|
||||
%li.dropdown.visible-desktop
|
||||
%a.dropdown-toggle{"data-toggle" => "dropdown", href: '#'}
|
||||
%span.fa.fa-user
|
||||
Sign In
|
||||
%span.caret
|
||||
.dropdown-menu
|
||||
- if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
= form_tag User.ichain_login_url do
|
||||
= text_field_tag 'username', nil, id: 'user_ichain_email_dd', class: 'form-control', placeholder: 'Username'
|
||||
= password_field_tag 'password', nil, id: 'user_ichain_password_dd', class: 'form-control', placeholder: 'Password'
|
||||
%button.btn.btn-success.btn-block Sign in
|
||||
- else
|
||||
%div{style: "padding: 6px"}
|
||||
= form_tag new_user_session_path, class: 'form-group' do
|
||||
= text_field_tag 'user[login]', nil, id: 'user_login_dd', class: 'form-control', placeholder: 'Username / E-Mail'
|
||||
= password_field_tag 'user[password]', nil, id: 'user_password_dd', class: 'form-control', placeholder: 'Password'
|
||||
%p.text-right
|
||||
%small
|
||||
%label{for: 'user_remember_me'} Remember me
|
||||
= check_box_tag 'user[remember_me]'
|
||||
%br
|
||||
%button.btn.btn-success.btn-block Sign in
|
||||
- unless omniauth_configured.empty?
|
||||
.divider
|
||||
%h6.text-center
|
||||
or
|
||||
= render 'devise/shared/openid_links'
|
||||
%p.text-right
|
||||
%br
|
||||
%a.small.btn.btn-xs.btn-default{"data-toggle" => "collapse", "data-target" => "#navbar-devise-help"}
|
||||
Need Help?
|
||||
#navbar-devise-help.collapse
|
||||
= render 'devise/shared/links'
|
||||
.trapezoid
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@
|
|||
%li
|
||||
= link_to(conference_conference_registration_path(@conference)) do
|
||||
%span.fa.fa-id-badge
|
||||
= @conference.short_title
|
||||
registration
|
||||
= @conference.short_title
|
||||
registration
|
||||
-if @conference && @conference.program
|
||||
%li
|
||||
= link_to(conference_program_proposals_path(@conference.short_title)) do
|
||||
|
|
|
|||
16
app/views/mailbot/comment_template.html.erb
Normal file
16
app/views/mailbot/comment_template.html.erb
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<%= render partial: "layouts/mailbot_header" %>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
Dear <%= @user.name %>,
|
||||
|
||||
User <%= @comment.user.name %> posted a new comment for event <%= @event.title %> of <%= @conference.short_title %> .
|
||||
|
||||
"<%= @comment.body %>"
|
||||
|
||||
To reply to this comment, please go to <%= h(admin_conference_program_event_url(@conference.short_title, @event, only_path: false)) %>
|
||||
|
||||
Best wishes,
|
||||
<%= @conference.title %> Team
|
||||
</span>
|
||||
</div>
|
||||
<%= render partial: "layouts/mailbot_footer" %>
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="main.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
|
||||
<link href="https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500,600,700,800" rel="stylesheet">
|
||||
<style>
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.06);
|
||||
color: #000;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 400;
|
||||
line-height: 1.3;
|
||||
}
|
||||
p {
|
||||
color: #0B3559;
|
||||
font-weight: 400;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
#border {
|
||||
background-color: #0B3559;
|
||||
padding: 25px;
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
#content {
|
||||
background-color: #fff;
|
||||
padding: 100px;
|
||||
color: #0B3559;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Page Title -->
|
||||
<title>Email</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="border">
|
||||
<div class="row">
|
||||
<!-- Uncomment below to get logo -->
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
<div class="col-md-10"><h1></h1></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
Dear <%= @user.name %>,
|
||||
|
||||
User <%= @comment.user.name %> posted a new comment for event <%= @event.title %> of <%= @conference.short_title %> .
|
||||
|
||||
"<%= @comment.body %>"
|
||||
|
||||
To reply to this comment, please go to <%= h(admin_conference_program_event_url(@conference.short_title, @event, only_path: false)) %>
|
||||
|
||||
Best wishes,
|
||||
<%= @conference.title %> Team
|
||||
</span>
|
||||
</div>
|
||||
<div id="border">
|
||||
<h1></h1>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="main.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
|
||||
<link href="https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500,600,700,800" rel="stylesheet">
|
||||
<style>
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.06);
|
||||
color: #000;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 400;
|
||||
line-height: 1.3;
|
||||
}
|
||||
p {
|
||||
color: #0B3559;
|
||||
font-weight: 400;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
#border {
|
||||
background-color: #0B3559;
|
||||
padding: 25px;
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
#content {
|
||||
background-color: #fff;
|
||||
padding: 100px;
|
||||
color: #0B3559;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Page Title -->
|
||||
<title>Email</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="border">
|
||||
<div class="row">
|
||||
<!-- Uncomment below to get logo -->
|
||||
<div class="col-md-2">
|
||||
<% if !@logo.nil? %>
|
||||
<%= image_tag(@logo, style: "display:block") %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="col-md-10"><h1></h1></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
<%= @email_body %>
|
||||
</span>
|
||||
</div>
|
||||
<div id="border">
|
||||
<h1></h1>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
7
app/views/mailbot/email_template.html.erb
Normal file
7
app/views/mailbot/email_template.html.erb
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<%= render partial: "layouts/mailbot_header" %>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
<%= @email_body %>
|
||||
</span>
|
||||
</div>
|
||||
<%= render partial: "layouts/mailbot_footer" %>
|
||||
14
app/views/mailbot/ticket_confirmation_template.html.erb
Normal file
14
app/views/mailbot/ticket_confirmation_template.html.erb
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<%= render partial: "layouts/mailbot_header" %>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
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
|
||||
</span>
|
||||
</div>
|
||||
<%= render partial: "layouts/mailbot_footer" %>
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="main.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
|
||||
<link href="https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500,600,700,800" rel="stylesheet">
|
||||
<style>
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.06);
|
||||
color: #000;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 400;
|
||||
line-height: 1.3;
|
||||
}
|
||||
p {
|
||||
color: #0B3559;
|
||||
font-weight: 400;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
#border {
|
||||
background-color: #0B3559;
|
||||
padding: 25px;
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
#content {
|
||||
background-color: #fff;
|
||||
padding: 100px;
|
||||
color: #0B3559;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Page Title -->
|
||||
<title>Email</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="border">
|
||||
<div class="row">
|
||||
<!-- Uncomment below to get logo -->
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
<div class="col-md-10"><h1></h1></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
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
|
||||
</span>
|
||||
</div>
|
||||
<div id="border">
|
||||
<h1></h1>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<%= render partial: "layouts/mailbot_header" %>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
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.
|
||||
|
||||
The SAP Young Thinkers team will reach out to you with information on how to participate in the event soon. In the meantime, you can check the event page (https://events.sap.com/yt-learning-festival-at-snapcon-2020/en/home) or send an email with your questions to youngthinkers@sap.com.
|
||||
|
||||
Best wishes,
|
||||
<%= @conference.title %> Team
|
||||
</span>
|
||||
</div>
|
||||
<%= render partial: "layouts/mailbot_footer" %>
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="main.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
|
||||
<link href="https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500,600,700,800" rel="stylesheet">
|
||||
<style>
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #fff;
|
||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.06);
|
||||
color: #000;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
h1,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 400;
|
||||
line-height: 1.3;
|
||||
}
|
||||
p {
|
||||
color: #0B3559;
|
||||
font-weight: 400;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
#border {
|
||||
background-color: #0B3559;
|
||||
padding: 25px;
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
#content {
|
||||
background-color: #fff;
|
||||
padding: 100px;
|
||||
color: #0B3559;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Page Title -->
|
||||
<title>Email</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="border">
|
||||
<div class="row">
|
||||
<!-- Uncomment below to get logo -->
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
<div class="col-md-10"><h1></h1></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content">
|
||||
<span style="white-space: pre-line">
|
||||
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.
|
||||
|
||||
The SAP Young Thinkers team will reach out to you with information on how to participate in the event soon. In the meantime, you can check the event page (https://events.sap.com/yt-learning-festival-at-snapcon-2020/en/home) or send an email with your questions to youngthinkers@sap.com.
|
||||
|
||||
Best wishes,
|
||||
<%= @conference.title %> Team
|
||||
</span>
|
||||
</div>
|
||||
<div id="border">
|
||||
<h1></h1>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
%td
|
||||
= humanized_money_with_symbol ticket.quantity * ticket.price
|
||||
|
||||
= form_tag conference_payments_path do
|
||||
= form_tag conference_payments_path(@conference.short_title, :has_registration_ticket => @has_registration_ticket) do
|
||||
%script.stripe-button{'src': "https://checkout.stripe.com/checkout.js",
|
||||
'data': {amount: @total_amount_to_pay.cents,
|
||||
label: "Pay #{humanized_money_with_symbol @total_amount_to_pay}",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
-# TODO: And if they have a registration ticket?
|
||||
- if !@conference.user_registered?(@user) && @has_registration_ticket
|
||||
.col-md-12
|
||||
.alert.alert-success{role: 'alert'}
|
||||
.alert.alert-success{ role: 'alert' }
|
||||
= link_to 'Complete Registration',
|
||||
new_conference_conference_registration_path(@conference),
|
||||
class: 'btn btn-info pull-right btn-lg'
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@
|
|||
- if @conference.venue
|
||||
at
|
||||
%strong
|
||||
#{@conference.venue.name},
|
||||
#{@conference.venue.street},
|
||||
#{@conference.venue.city} / #{@conference.venue.country_name}.
|
||||
#{@conference.venue_name},
|
||||
#{@conference.venue_street},
|
||||
#{@conference.city} / #{@conference.country_name}.
|
||||
%small
|
||||
= date_string(@conference.start_date, @conference.end_date)
|
||||
.row
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@
|
|||
That means you have
|
||||
%b.notranslate= pluralize(@program.cfp.remaining_days, 'day')
|
||||
left!
|
||||
%span.notranslate #{@conference.title}
|
||||
will only be as good as the content you present. Submit early, submit often!
|
||||
%span.notranslate= @conference.title
|
||||
will only be as good as the content you present.
|
||||
%br Submit early, submit often!
|
||||
- else
|
||||
The submission period is closed now.
|
||||
|
|
|
|||
|
|
@ -11,83 +11,49 @@
|
|||
|
||||
= 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?
|
||||
= f.input :language, as: :select,
|
||||
collection: @languages,
|
||||
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
- @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 @program.difficulty_levels.present?
|
||||
= f.input :difficulty_level, as: :select, collection: @program.difficulty_levels,
|
||||
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' },
|
||||
include_blank: '(Please select)' if @conference.program.difficulty_levels.any?
|
||||
- @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
|
||||
|
||||
- @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
|
||||
|
||||
= f.input :abstract, required: true, input_html: { rows: 5, data: { provide: 'markdown' } },
|
||||
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
|
||||
|
||||
= f.input :submission_text, input_html: { rows: 5, data: { provide: 'markdown' }, placeholder: '' },
|
||||
hint: markdown_hint('Only conference organizers will read this.')
|
||||
|
||||
%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.
|
||||
= render 'proposals/submission_type_content_form', f: f, program: @program
|
||||
|
||||
-# TODO-SNAPCON: Extract this to be a `conference_committee_role?`
|
||||
- if current_user.has_any_role? :admin, { name: :organizer, resource: @conference }, { name: :cfp, resource: @conference }
|
||||
%br
|
||||
= f.input :committee_review, input_html: { rows: 5, data: { provide: 'markdown' }, placeholder: '' },
|
||||
hint: markdown_hint('This field is shared with the submission authors.')
|
||||
= f.input :committee_review, input_html: { rows: 5, data: { provide: 'markdown' } },
|
||||
hint: markdown_hint('This field is shared with the submission authors.')
|
||||
|
||||
- if current_user.is_admin? or @program.cfp.enable_registrations?
|
||||
- if @program.cfp&.enable_registrations?
|
||||
= f.inputs 'Enable pre-registration' do
|
||||
= 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.'
|
||||
= 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
|
||||
= link_to '#description', 'data-toggle' => 'collapse' do
|
||||
Do you require something special?
|
||||
#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.'
|
||||
|
||||
- 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
|
||||
- if @event.new_record?
|
||||
= f.submit 'Submit Proposal', class: 'btn btn-success'
|
||||
- else
|
||||
= f.submit 'Update Proposal', class: 'btn btn-success'
|
||||
= f.submit 'Update Proposal', class: 'btn btn-primary'
|
||||
|
||||
:javascript
|
||||
$(document).ready(function() {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
.speakerinfo
|
||||
.row
|
||||
.col-md-4
|
||||
= image_tag speaker.profile_picture(:size => 120), class: 'img-responsive img-rounded'
|
||||
= image_tag speaker.profile_picture(size: 120), class: 'img-responsive img-rounded'
|
||||
.col-md-8
|
||||
%h4
|
||||
= link_to speaker.name, user_path(speaker.id)
|
||||
%br
|
||||
- if speaker.email_public?
|
||||
= mail_to "#{ speaker.email }" do
|
||||
= mail_to speaker.email.to_s do
|
||||
%i.fa.fa-envelope-o.fa-2x
|
||||
- if speaker.affiliation?
|
||||
.text-muted
|
||||
|
|
|
|||
68
app/views/proposals/_submission_type_content_form.haml
Normal file
68
app/views/proposals/_submission_type_content_form.haml
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
-# PARTIAL FOR EVENT/PROPOSAL FORM
|
||||
|
||||
= 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 0
|
||||
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.js-resetSubmissionText{ type: 'button',
|
||||
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
|
||||
|
|
@ -1,30 +1,31 @@
|
|||
- progress_status = event.progress_status
|
||||
%ul.list-unstyled
|
||||
- if can? :create, @conference.registrations.new
|
||||
%li{'class'=>class_for_todo(progress_status['registered'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['registered'])}
|
||||
- if progress_status['registered']
|
||||
%li{class: class_for_todo(progress_status[:registered])}
|
||||
%span{class: icon_for_todo(progress_status[:registered])}
|
||||
- if progress_status[:registered]
|
||||
Speaker(s) registered to the conference
|
||||
- else
|
||||
= link_to 'Speaker(s) not registered to the conference', new_conference_conference_registration_path(event.program.conference.short_title)
|
||||
%li{'class'=>class_for_todo(progress_status['biographies'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['biographies'])}
|
||||
- if progress_status['biographies']
|
||||
%li{class: class_for_todo(progress_status[:biographies])}
|
||||
%span{class: icon_for_todo(progress_status[:biographies])}
|
||||
- if progress_status[:biographies]
|
||||
Speakers have filled out their biographies
|
||||
- elsif current_user.biography.blank? && event.speakers.include?(current_user)
|
||||
= link_to 'Fill out your biography', edit_user_path(current_user)
|
||||
- else
|
||||
Speakers' biographies missing
|
||||
%li{'class'=>class_for_todo(progress_status['subtitle'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['subtitle'])}
|
||||
%li{class: class_for_todo(progress_status[:subtitle])}
|
||||
%span{class: icon_for_todo(progress_status[:subtitle])}
|
||||
= link_to 'Add a subtitle', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
%li{'class'=>class_for_todo(progress_status['commercials'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['commercials'])}
|
||||
%li{class: class_for_todo(progress_status[:commercials])}
|
||||
%span{class: icon_for_todo(progress_status[:commercials])}
|
||||
= link_to 'Add materials', edit_conference_program_proposal_path(event.program.conference.short_title, event, anchor: 'commercials-content')
|
||||
- unless progress_status['track'].nil?
|
||||
%li{'class'=>class_for_todo(progress_status['track'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['track'])}
|
||||
- unless progress_status[:track].nil?
|
||||
%li{class: class_for_todo(progress_status[:track])}
|
||||
%span{class: icon_for_todo(progress_status[:track])}
|
||||
= link_to 'Add a track', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
%li{'class'=>class_for_todo(progress_status['difficulty_level'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['difficulty_level'])}
|
||||
= link_to 'Add a difficulty level', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
- unless progress_status[:difficulty_level].nil?
|
||||
%li{class: class_for_todo(progress_status[:difficulty_level])}
|
||||
%span{class: icon_for_todo(progress_status[:difficulty_level])}
|
||||
= link_to 'Add a difficulty level', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
.speakerinfo
|
||||
.row
|
||||
.col-md-4
|
||||
= image_tag speaker.profile_picture(:size => 120), class: 'img-responsive img-rounded'
|
||||
= image_tag speaker.profile_picture(size: 120), class: 'img-responsive img-rounded'
|
||||
.col-md-8
|
||||
%h4
|
||||
= link_to speaker.name, user_path(speaker.id)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
%table.table.table-striped#events
|
||||
- events.each do |event|
|
||||
%tr
|
||||
%td.col-md-7{style: "padding:20px 8px 20px 8px;"}
|
||||
= link_to event.title, conference_program_proposal_path(@conference.short_title, event.id)
|
||||
%td.col-md-7{ style: 'padding:20px 8px 20px 8px;' }
|
||||
= link_to event.title, conference_program_proposal_path(conference.short_title, event.id)
|
||||
%br
|
||||
%small.text-muted
|
||||
= event.event_type.title
|
||||
|
|
@ -10,10 +10,11 @@
|
|||
= "in #{event.track.name}" if event.track
|
||||
- if event.require_registration
|
||||
%br
|
||||
= link_to registered_text(event), registrations_conference_program_proposal_path(@conference.short_title, event), class: 'btn btn-xs btn-danger'
|
||||
= link_to registered_text(event), registrations_conference_program_proposal_path(conference.short_title, event),
|
||||
class: 'btn btn-xs btn-danger'
|
||||
|
||||
%td.col-md-2{style: "padding:20px 8px 20px 8px;"}
|
||||
- event_schedule = event.event_schedules.find_by(schedule_id: @program.selected_schedule_id)
|
||||
%td.col-md-2{ style: 'padding:20px 8px 20px 8px;' }
|
||||
- event_schedule = event.event_schedules.find_by(schedule_id: program.selected_schedule_id)
|
||||
- if event_schedule.present?
|
||||
= inyourtz(event_schedule.start_time, @conference.timezone) do
|
||||
= event_schedule.start_time.strftime("%Y %B %e - %H:%M")
|
||||
= inyourtz(event_schedule.start_time, conference.timezone) do
|
||||
= event_schedule.start_time.strftime('%Y %B %e - %H:%M')
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@
|
|||
Volunteer Duties
|
||||
%small
|
||||
Thanks for being a host at #{@conference.title}
|
||||
= render 'volunteers_table', events: @volunteer_events
|
||||
= render 'volunteers_table', events: @volunteer_events, conference: @conference, program: @program
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
%h1 New #{@conference.title} Proposal
|
||||
- if @program.cfp_open?
|
||||
- if @program.cfp.description.present?
|
||||
%h2 Call for Proposals
|
||||
.row
|
||||
.col-md-12
|
||||
= markdown(@program.cfp.description, escape_html=false)
|
||||
|
|
@ -31,51 +32,22 @@
|
|||
|
||||
= f.inputs name: 'Proposal Information' do
|
||||
= f.input :title, as: :string, required: true, input_html: { required: true }
|
||||
= f.input :event_type_id, as: :select,
|
||||
collection: @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 }]},
|
||||
include_blank: false, label: 'Type', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
- @program.event_types.each do |event_type|
|
||||
%div{ class: 'help-block event_event_type_id collapse', id: "#{event_type.id}-help"}
|
||||
%strong Directions
|
||||
%div
|
||||
= markdown(event_type.description)
|
||||
|
||||
- if @program.languages.present?
|
||||
= f.input :language, as: :select,
|
||||
collection: @languages,
|
||||
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
= f.input :abstract, required: true, 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.
|
||||
|
||||
= f.input :submission_text, input_html: { rows: 5, data: { provide: 'markdown' } },
|
||||
hint: markdown_hint
|
||||
|
||||
%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 @program.difficulty_levels.present?
|
||||
= f.input :difficulty_level, as: :select, collection: @program.difficulty_levels,
|
||||
input_html: { class: 'select-help-toggle' },
|
||||
include_blank: '(Please select)' if @conference.program.difficulty_levels.any?
|
||||
|
||||
- @program.difficulty_levels.each do |difficulty_level|
|
||||
%span.help-block.select-help-text.collapse.event_difficulty_level_id{ id: "#{difficulty_level.id}-help" }
|
||||
= difficulty_level.description
|
||||
|
||||
= render 'submission_type_content_form', f: f, program: @program
|
||||
|
||||
- if @program.cfp.enable_registrations?
|
||||
= f.input :require_registration, label: 'Require participants to register to your event'
|
||||
|
|
@ -88,7 +60,7 @@
|
|||
= f.input :description, input_html: { rows: 5 }, label: 'Requirements', placeholder: 'Eg. Whiteboard, printer, or something like that.'
|
||||
|
||||
%p.text-right
|
||||
= f.submit 'Submit Proposal', class: 'btn btn-success'
|
||||
= f.submit 'Submit Proposal', class: 'btn btn-success btn-lg'
|
||||
|
||||
.tab-pane{role: 'tabpanel', id: 'signin'}
|
||||
= render partial: 'devise/shared/sign_in_form_embedded'
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
.panel.panel-default.event-panel{ onClick: 'eventClicked(event, this);', "data-url" => "#{url_for(conference_program_proposal_path(@conference.short_title, event.id))}" }
|
||||
.panel.panel-default.event-panel{ onClick: 'eventClicked(event, this);', 'data-url' => "#{url_for(conference_program_proposal_path(@conference.short_title, event.id))}" }
|
||||
- header_color = event.event_type&.color || '#f5f5f5'
|
||||
.trapezoid{style: "color: white; top: 12px; z-index: 100;"}
|
||||
.trapezoid{ style: 'color: white; top: 12px; z-index: 100;' }
|
||||
.panel-heading{ style: "background-color: #{header_color}; color: #{ contrast_color(header_color) }; border-radius: 4px" }
|
||||
- event.speakers_ordered.each do |speaker|
|
||||
= image_tag speaker.profile_picture, class: "img-circle pull-right", alt: speaker.name, style: "padding: 2px;"
|
||||
= image_tag speaker.profile_picture, class: 'img-circle pull-right', alt: speaker.name, style: 'padding: 2px;'
|
||||
|
||||
%p
|
||||
= canceled_replacement_event_label(event, event_schedule)
|
||||
= replacement_event_notice(event_schedule)
|
||||
|
||||
%span.h3{style: "margin-bottom: 14px"}
|
||||
%span.h3{ style: 'margin-bottom: 14px' }
|
||||
= event.title
|
||||
%br
|
||||
%small{style: "color: #{contrast_color(header_color)}"}
|
||||
%small{ style: "color: #{contrast_color(header_color)}" }
|
||||
= event.subtitle
|
||||
.trapezoid{style: "color: #{header_color}; top: 12px;"}
|
||||
.trapezoid{ style: "color: #{header_color}; top: 12px;" }
|
||||
|
||||
.panel-body
|
||||
%h4
|
||||
|
|
@ -30,13 +30,13 @@
|
|||
= inyourtz(event_schedule.start_time) do
|
||||
%span.track
|
||||
%span.fa.fa-clock-o
|
||||
%span.label{ style: "background-color: grey" }
|
||||
%span.label{ style: 'background-color: grey' }
|
||||
= event_schedule.start_time.strftime('%l:%M %P')
|
||||
\-
|
||||
= event_schedule.end_time.strftime('%l:%M %P')
|
||||
%span.track
|
||||
%span.fa.fa-map-marker
|
||||
%span.label{ style: "background-color: grey" }
|
||||
%span.label{ style: 'background-color: grey' }
|
||||
= event_schedule.room.name
|
||||
- if event.track
|
||||
%span.track
|
||||
|
|
|
|||
|
|
@ -9,26 +9,30 @@
|
|||
.col-md-12
|
||||
%h2
|
||||
#{pluralize(@events_schedules.count, 'Event')} Occurring Within The Next 30 minutes.
|
||||
%h3
|
||||
This page was loaded at
|
||||
= inyourtz(Time.now) do
|
||||
#{Time.now.strftime('%a %b %d at %I:%M %P (%z)')}
|
||||
%br
|
||||
%small
|
||||
This page was loaded at
|
||||
= inyourtz(Time.now) do
|
||||
= Time.now.strftime('%a %b %d at %I:%M %P (%z)')
|
||||
\.
|
||||
|
||||
.row
|
||||
/ TODO: Clean this up, merge with all events page.
|
||||
/ scheduled events
|
||||
- date = nil
|
||||
- time = nil
|
||||
- @events_schedules.each do |event_schedule|
|
||||
- unless event_schedule.start_time.strftime('%Y-%m-%d').eql?(date)
|
||||
.col-xs-12.col-md-12
|
||||
.date-content
|
||||
%span{ class: 'date-title', id: "#{ event_schedule.start_time.strftime('%Y-%m-%d') }" }
|
||||
%span.date-title{ id: event_schedule.start_time.strftime('%Y-%m-%d').to_s }
|
||||
= inyourtz(event_schedule.start_time, @conference.timezone) do
|
||||
= date = event_schedule.start_time.strftime('%Y-%m-%d')
|
||||
%a{ title: "Go up", class: "pull-right", href: "#program" }
|
||||
%i{ class: "fa fa-angle-double-up fa-lg", 'aria-hidden' => true }
|
||||
- unless event_schedule.start_time.strftime('%H:%M').eql?(time)
|
||||
%a.pull-right{ title: 'Go up', href: '#program' }
|
||||
%i.fa.fa-angle-double-up.fa-lg{ 'aria-hidden' => true }
|
||||
- if event_schedule.start_time.strftime('%H:%M').eql?(time)
|
||||
.col-xs-12.col-md-11.col-md-offset-1
|
||||
= render 'event', event: event_schedule.event, event_schedule: event_schedule
|
||||
- else
|
||||
.col-xs-12.col-md-1
|
||||
.start-time
|
||||
= inyourtz(event_schedule.start_time, @conference.timezone) do
|
||||
|
|
@ -36,9 +40,6 @@
|
|||
.col-xs-12.col-md-11
|
||||
.new-time-event
|
||||
= render 'event', event: event_schedule.event, event_schedule: event_schedule
|
||||
- else
|
||||
.col-xs-12.col-md-11.col-md-offset-1
|
||||
= render 'event', event: event_schedule.event, event_schedule: event_schedule
|
||||
|
||||
:javascript
|
||||
// Refresh the page every 5 minutes.
|
||||
|
|
|
|||
|
|
@ -26,9 +26,13 @@
|
|||
|
||||
.visible-md-inline.visible-lg-inline
|
||||
= render partial: 'carousel', locals: { date: date, hrs_per_slide: 3 }
|
||||
%p.pull-right
|
||||
= link_to app_conference_schedule_path do
|
||||
Get the mobile app!
|
||||
%p
|
||||
%span
|
||||
= link_to conference_schedule_url(protocol: 'webcal', format: 'ics') do
|
||||
Add the schedule to your calendar
|
||||
%span.pull-right
|
||||
= link_to app_conference_schedule_path do
|
||||
Get the mobile app!
|
||||
|
||||
:javascript
|
||||
// change of active tab and the button title when a date is clicked
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue