From 059b5cbf84e7bfe1138a3e1051dc5cbe5d98822c Mon Sep 17 00:00:00 2001 From: Ana Date: Sat, 13 Aug 2016 02:26:02 +0200 Subject: [PATCH] Show the individual User schedule Show the current user favourites events for both schedule and all events. Unsed css removed. --- app/assets/javascripts/osem-schedule.js | 3 --- app/assets/stylesheets/osem-schedule.scss | 16 +--------------- app/controllers/schedules_controller.rb | 17 +++++++++++++++-- app/views/schedules/_carousel.html.haml | 3 ++- app/views/schedules/_schedule_item.html.haml | 6 ++++++ app/views/schedules/_schedule_tabs.html.haml | 4 ++-- app/views/schedules/events.html.haml | 7 +++++++ app/views/schedules/show.html.haml | 7 +++++++ 8 files changed, 40 insertions(+), 23 deletions(-) diff --git a/app/assets/javascripts/osem-schedule.js b/app/assets/javascripts/osem-schedule.js index 1582ba1b..155b9ef7 100644 --- a/app/assets/javascripts/osem-schedule.js +++ b/app/assets/javascripts/osem-schedule.js @@ -131,9 +131,6 @@ function starClicked(e){ } var params = { favourite_user_id: $(e.target).data('user') }; - if($(e.target).hasClass('fa-star-o')){ - params['add'] = true; - } $.ajax({ url: $(e.target).data('url'), diff --git a/app/assets/stylesheets/osem-schedule.scss b/app/assets/stylesheets/osem-schedule.scss index 3c4bb4b2..87849148 100644 --- a/app/assets/stylesheets/osem-schedule.scss +++ b/app/assets/stylesheets/osem-schedule.scss @@ -114,7 +114,7 @@ a.unstyled-link { .program-dropdown, .schedule-dropdown{ margin-left: 20%; margin-right: 20%; - margin-top: 40px; + margin-top: 10px; margin-bottom: 20px; } @@ -221,20 +221,6 @@ td.no-padding{ cursor: pointer; } -.program-dropdown{ - margin-left: 20%; - margin-right: 20%; - margin-top: 40px; -} - -.program-dropdown > button{ - width: 100%; -} - -.program-dropdown > .dropdown-menu{ - width: 100%; -} - .no-events-day{ color: #D8D8D8 !important; } diff --git a/app/controllers/schedules_controller.rb b/app/controllers/schedules_controller.rb index 5f68c27c..5935322d 100644 --- a/app/controllers/schedules_controller.rb +++ b/app/controllers/schedules_controller.rb @@ -3,6 +3,7 @@ class SchedulesController < ApplicationController load_and_authorize_resource before_action :respond_to_options + before_action :favourites load_resource :conference, find_by: :short_title load_resource :program, through: :conference, singleton: true, except: :index before_action :load_withdrawn_event_schedules, only: [:show, :events] @@ -58,9 +59,17 @@ class SchedulesController < ApplicationController @events_schedules = @program.selected_event_schedules( includes: [:room, { event: %i[track event_type speakers submitter] }] ) - @events_schedules = [] unless @events_schedules - @unscheduled_events = @program.events.confirmed - @events_schedules.map(&:event) + @events_schedules = @events_schedules.select{ |e| e.event.favourite_users.exists?(current_user.id) } if @events_schedules && current_user && @favourites + @events_schedules = [] unless @events_schedules + @favourites = params[:favourites] == 'true' + + @unscheduled_events = if @program.selected_schedule + @program.events.confirmed - @events_schedules.map(&:event) + else + @program.events.confirmed + end + @unscheduled_events = @unscheduled_events.select{ |e| e.favourite_users.exists?(current_user.id) } if current_user && @favourites day = @conference.current_conference_day @tag = day.strftime('%Y-%m-%d') if day @@ -72,6 +81,10 @@ class SchedulesController < ApplicationController private + def favourites + @favourites = params[:favourites] == 'true' + end + def respond_to_options respond_to do |format| format.html { head :ok } diff --git a/app/views/schedules/_carousel.html.haml b/app/views/schedules/_carousel.html.haml index 785a0681..fc94883c 100644 --- a/app/views/schedules/_carousel.html.haml +++ b/app/views/schedules/_carousel.html.haml @@ -29,9 +29,10 @@ %td.room{ style: "height: #{ td_height(@rooms) }px;" } .room.elipsis.break-words{ style: "-webkit-line-clamp: #{ room_lines(@rooms) }; height: #{ room_height(@rooms) }px;" } = room.name - - event_schedules = (@event_schedules_by_room_id[room.id] || []).select{ |e| (e.end_time > start_time) && (e.start_time <= (start_time + hrs_per_slide.hour)) } + - event_schedules = event_schedules.select{ |e| e.event.favourite_users.exists?(current_user.id) } if current_user && @favourites + - interval_count.times do |offset| - if span > 1 - span -= 1 diff --git a/app/views/schedules/_schedule_item.html.haml b/app/views/schedules/_schedule_item.html.haml index 9e9d855f..97ee0317 100644 --- a/app/views/schedules/_schedule_item.html.haml +++ b/app/views/schedules/_schedule_item.html.haml @@ -7,6 +7,12 @@ = canceled_replacement_event_label(event, event_schedule, 'schedule-label') + - if current_user + = link_to('#', onClick: 'starClicked();') do + %span#star{ class: "fa fa-lg #{ event.favourite_users.exists?(current_user.id) ? 'fa-star' : 'fa-star-o' }", | + "aria-hidden" =>"true", | + "data-url" => conference_program_proposal_path(@conference.short_title, event.id), | + "data-user" => current_user.id } = event.title - if current_user diff --git a/app/views/schedules/_schedule_tabs.html.haml b/app/views/schedules/_schedule_tabs.html.haml index 0317f8bc..30dd5ab7 100644 --- a/app/views/schedules/_schedule_tabs.html.haml +++ b/app/views/schedules/_schedule_tabs.html.haml @@ -2,6 +2,6 @@ / Nav tabs %ul.nav.nav-tabs{ role: "tablist" } %li{ class: "schedule #{ 'active' if active == 'schedule' }", role: "presentation" } - = link_to('Schedule', conference_schedule_path(@conference.short_title)) + = link_to('Schedule', conference_schedule_path(@conference.short_title, favourites: @favourites)) %li{ class: "program #{ 'active' if active == 'program' }", role: "presentation" } - = link_to('All events', events_conference_schedule_path(@conference.short_title)) + = link_to('All events', events_conference_schedule_path(@conference.short_title, favourites: @favourites)) diff --git a/app/views/schedules/events.html.haml b/app/views/schedules/events.html.haml index b6e87e31..1ccd3b80 100644 --- a/app/views/schedules/events.html.haml +++ b/app/views/schedules/events.html.haml @@ -5,6 +5,13 @@ %h1.text-center Program for = @conference.title + - if current_user + .row + .col-md-12.text-center + = button_to (@favourites ? 'All events' : 'Only favourites events'), + events_conference_schedule_path(@conference.short_title), + params: { favourites: !@favourites }, + method: :get, class: 'btn btn-success' .dropdown.program-dropdown %button{ type: "button", class: "btn btn-default dropdown-toggle", 'data-toggle' => "dropdown" } Dates diff --git a/app/views/schedules/show.html.haml b/app/views/schedules/show.html.haml index 8000b1ad..7c80c52c 100644 --- a/app/views/schedules/show.html.haml +++ b/app/views/schedules/show.html.haml @@ -5,6 +5,13 @@ %h1.text-center Schedule for = @conference.title + - if current_user + .row + .col-md-12.text-center + = button_to (@favourites ? 'All events' : 'Only favourites events'), + conference_schedule_path(@conference.short_title), + params: { favourites: !@favourites }, + method: :get, class: 'btn btn-success' .dropdown.schedule-dropdown %button{ type: "button", class: "btn btn-default dropdown-toggle", 'data-toggle' => "dropdown" } = @day