diff --git a/app/assets/javascripts/osem-switch.js b/app/assets/javascripts/osem-switch.js
index 314f9e3f..35393625 100644
--- a/app/assets/javascripts/osem-switch.js
+++ b/app/assets/javascripts/osem-switch.js
@@ -1,16 +1,14 @@
$(function () {
- $(document).ready(function() {
- $("[class='switch-checkbox']").bootstrapSwitch();
+ $("[class='switch-checkbox']").bootstrapSwitch();
- $('input[class="switch-checkbox"]').on('switchChange.bootstrapSwitch', function(event, state) {
- url = "/admin/conference/" + this.name + "/events/" + this.value
+ $('input[class="switch-checkbox"]').on('switchChange.bootstrapSwitch', function(event, state) {
+ var url = $(this).attr('url') + state;
+ var method = $(this).attr('method');
- $.ajax({
- url: url,
- type: 'PATCH',
- data: { event: { is_highlight: state } },
- dataType: 'script'
- });
+ $.ajax({
+ url: url,
+ type: method,
+ dataType: 'script'
});
});
});
diff --git a/app/views/admin/events/_proposal.html.haml b/app/views/admin/events/_proposal.html.haml
index d6349ab1..a29282a4 100644
--- a/app/views/admin/events/_proposal.html.haml
+++ b/app/views/admin/events/_proposal.html.haml
@@ -5,7 +5,7 @@
%br
%small
= @event.subtitle
- = link_to "Edit", edit_admin_conference_event_path(@conference.short_title, @event), :class => "btn btn-mini btn-default pull-right"
+ = link_to 'Edit', edit_admin_conference_event_path(@conference.short_title, @event), class: 'btn btn-mini btn-primary pull-right'
.row
.col-md-12
@@ -15,12 +15,12 @@
%b Type
%td
.dropdown
- = link_to "#", :class => "dropdown-toggle", :id => "type-dropdown" do
+ = link_to '#', class: 'dropdown-toggle', id: 'type-dropdown' do
- if @event.event_type.nil?
Event Type
- else
= @event.event_type.title
-
+
%ul.dropdown-menu
- @event_types.each do |type|
%li= link_to type.title,
@@ -32,20 +32,21 @@
%td
%b Highlight
%td
- = check_box_tag @conference.short_title, @event.id, @event.is_highlight, class: 'switch-checkbox',
- data: { size: "small",
- off_color: 'warning',
- on_text: 'Yes',
- off_text: 'No' }
+ = check_box_tag @conference.short_title, @event.id, @event.is_highlight,
+ method: :patch, url: "/admin/conference/#{@conference.short_title}/events/#{@event.id}?event[is_highlight]=",
+ class: 'switch-checkbox', data: { size: 'small',
+ off_color: 'warning',
+ on_text: 'Yes',
+ off_text: 'No' }
%tr
%td
%b State
%td
.dropdown
- = link_to "#", :class => "dropdown-toggle" do
+ = link_to '#', class: 'dropdown-toggle' do
= @event.state.humanize
-
+
%ul.dropdown-menu
= render 'change_state_dropdown', event: @event
%tr
@@ -53,7 +54,7 @@
%b Track
%td
.dropdown
- = link_to "#", :class => "dropdown-toggle", :id => "track-dropdown" do
+ = link_to '#', class: 'dropdown-toggle', id: 'track-dropdown' do
- if @event.track.nil?
Track
- else
@@ -71,7 +72,7 @@
%b Difficulty
%td
.dropdown
- = link_to "#", :class => "dropdown-toggle", :id => "difficulty-dropdown" do
+ = link_to '#', class: 'dropdown-toggle', id: 'difficulty-dropdown' do
- if @event.difficulty_level.nil?
Difficulty Level
- else
@@ -83,6 +84,17 @@
@event,
event: { difficulty_level_id: difficulty.id }),
method: :patch
+ %tr
+ %td
+ %b Requires Registration
+ %td
+ = check_box_tag @conference.short_title, @event.id, @event.require_registration,
+ method: :patch, url: "/admin/conference/#{@conference.short_title}/events/#{@event.id}?event[require_registration]=",
+ class: 'switch-checkbox', data: { size: 'small',
+ off_color: 'warning',
+ on_text: 'Yes',
+ off_text: 'No' }
+
- if !@event.room.nil?
%tr
%td
@@ -126,18 +138,18 @@
%td= simple_format(@event.description)
- if @conference.call_for_paper && @conference.call_for_paper.rating && @conference.call_for_paper.rating > 0
- = render :partial => "voting"
+ = render partial: 'voting'
.row
- = link_to "Comments (#{@comment_count})", "#", :id => "event-comment-link"
+ = link_to "Comments (#{@comment_count})", '#', id: 'event-comment-link'
#comments-div
%hr
%ul.media
%div
.row-fluid
- = form_tag(comment_admin_conference_event_path(@conference.short_title, @event.id), :method => :post) do
- = text_area_tag(:comment, "")
- = submit_tag "Add Comment", :class => "btn btn-primary pull-right"
+ = form_tag(comment_admin_conference_event_path(@conference.short_title, @event.id), method: :post) do
+ = text_area_tag(:comment, '')
+ = submit_tag 'Add Comment', class: 'btn btn-primary pull-right'
%br
- @comments.each do |comment|
%div
diff --git a/app/views/admin/events/index.html.haml b/app/views/admin/events/index.html.haml
index 137d5a15..b796da61 100644
--- a/app/views/admin/events/index.html.haml
+++ b/app/views/admin/events/index.html.haml
@@ -22,6 +22,8 @@
%b Submitter
%th
%b Speaker
+ %th
+ %b Pre-registration
%th
%b Highlight
%th
@@ -72,12 +74,22 @@
= link_to speaker.name, admin_user_path(speaker)
- else
Unknown speaker
+
+ %td{'data-order' => "#{event.require_registration}"}
+ = check_box_tag @conference.short_title, event.id, event.require_registration,
+ method: :patch, url: "/admin/conference/#{@conference.short_title}/events/#{event.id}?event[require_registration]=",
+ class: 'switch-checkbox', data: { size: 'small',
+ off_color: 'warning',
+ on_text: 'Yes',
+ off_text: 'No' }
+
%td{'data-order' => "#{event.is_highlight}"}
- = check_box_tag @conference.short_title, event.id, event.is_highlight, class: 'switch-checkbox',
- data: { size: "small",
- off_color: 'warning',
- on_text: 'Yes',
- off_text: 'No' }
+ = check_box_tag @conference.short_title, event.id, event.is_highlight,
+ method: :patch, url: "/admin/conference/#{@conference.short_title}/events/#{event.id}?event[is_highlight]=",
+ class: 'switch-checkbox', data: { size: 'small',
+ off_color: 'warning',
+ on_text: 'Yes',
+ off_text: 'No' }
%td
.btn-group
diff --git a/spec/views/admin/events/index.html.haml_spec.rb b/spec/views/admin/events/index.html.haml_spec.rb
new file mode 100644
index 00000000..f9e06dad
--- /dev/null
+++ b/spec/views/admin/events/index.html.haml_spec.rb
@@ -0,0 +1,35 @@
+require 'spec_helper'
+
+describe 'admin/events/index' do
+ let!(:conference) { create(:conference) }
+ let!(:event1) { create(:event, conference: conference, title: 'event1') }
+ let!(:event2) { create(:event, conference: conference, title: 'event2') }
+
+ it 'renders all conference events' do
+ assign(:conference, conference)
+ assign(:events, [ event1, event2 ])
+ assign(:event_types, [ create(:event_type, conference: conference), create(:event_type, conference: conference) ])
+ assign(:tracks, [ create(:track, conference: conference), create(:track, conference: conference) ])
+ assign(:difficulty_levels, [ create(:difficulty_level, conference: conference), create(:difficulty_level, conference: conference) ])
+
+ render
+
+ expect(rendered).to have_selector('table thead th:nth-of-type(1)', text: 'ID')
+ expect(rendered).to have_selector('table thead th:nth-of-type(2)', text: 'Title')
+ expect(rendered).to have_selector('table thead th:nth-of-type(3)', text: 'Submitter')
+ expect(rendered).to have_selector('table thead th:nth-of-type(4)', text: 'Speaker')
+ expect(rendered).to have_selector('table thead th:nth-of-type(5)', text: 'Pre-registration')
+ expect(rendered).to have_selector('table thead th:nth-of-type(6)', text: 'Highlight')
+ expect(rendered).to have_selector('table thead th:nth-of-type(7)', text: 'Type')
+ expect(rendered).to have_selector('table thead th:nth-of-type(8)', text: 'Track')
+ expect(rendered).to have_selector('table thead th:nth-of-type(9)', text: 'Difficulty')
+ expect(rendered).to have_selector('table thead th:nth-of-type(10)', text: 'State')
+
+ expect(conference.events.count).to eq 2
+ expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(1)', text: event1.id)
+ expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(2)', text: 'event1')
+
+ expect(rendered).to have_selector('table tr:nth-of-type(2) td:nth-of-type(1)', text: event2.id)
+ expect(rendered).to have_selector('table tr:nth-of-type(2) td:nth-of-type(2)', text: 'event2')
+ end
+end