From 52543589e4e884e9a302aaf72ea327c1c9dd8ab3 Mon Sep 17 00:00:00 2001 From: Stella Date: Sun, 23 Feb 2014 14:56:09 +0200 Subject: [PATCH] voting visual changes --- app/assets/javascripts/osem.js | 5 ----- app/assets/stylesheets/osem.css | 2 +- app/controllers/admin/events_controller.rb | 12 +++++++--- app/views/admin/events/_proposal.html.haml | 12 +++++----- app/views/admin/events/_voting.html.haml | 26 ++++++++++++++++++++-- app/views/admin/events/index.html.haml | 6 ++--- app/views/admin/events/vote.js.erb | 2 +- 7 files changed, 44 insertions(+), 21 deletions(-) diff --git a/app/assets/javascripts/osem.js b/app/assets/javascripts/osem.js index dbae93ac..21dd66c8 100644 --- a/app/assets/javascripts/osem.js +++ b/app/assets/javascripts/osem.js @@ -60,11 +60,6 @@ $(function() { $(".comment-reply").hide(); $(".user-details-popover").popover(); $("#comments-div").hide(); - - $("#votes-link").click(function(){ - $("#votes-div").toggle(); - return false; - }); }); function word_count(text, divId, maxcount) { diff --git a/app/assets/stylesheets/osem.css b/app/assets/stylesheets/osem.css index 81531f5e..d4da287f 100644 --- a/app/assets/stylesheets/osem.css +++ b/app/assets/stylesheets/osem.css @@ -14,7 +14,7 @@ background: url(../assets/star.png) 0 0; width: 26px; height: 26px; - display: block; + display: inline-block; } .myrating, .othersrating { background: url(../assets/star.png) 0 0; diff --git a/app/controllers/admin/events_controller.rb b/app/controllers/admin/events_controller.rb index 5c486b50..9199128e 100644 --- a/app/controllers/admin/events_controller.rb +++ b/app/controllers/admin/events_controller.rb @@ -1,5 +1,6 @@ class Admin::EventsController < ApplicationController before_filter :verify_organizer + # FIXME: The timezome should only be applied on output, otherwise # you get lost in timezone conversions... # around_filter :set_timezone_for_this_request @@ -122,16 +123,21 @@ class Admin::EventsController < ApplicationController end def vote - event = Event.find(params[:id]) + @event = Event.find(params[:id]) + @ratings = @event.votes.includes(:person) if votes = current_user.person.votes.find_by_event_id(params[:id]) votes.update_attributes(:rating => params[:rating]) else - @myvote = event.votes.build + @myvote = @event.votes.build @myvote.person = current_user.person @myvote.rating = params[:rating] @myvote.save end - redirect_to admin_conference_event_path(@conference.short_title, event) + + respond_to do |format| + format.html { redirect_to admin_conference_event_path(@conference.short_title, @event)} + format.js + end end end diff --git a/app/views/admin/events/_proposal.html.haml b/app/views/admin/events/_proposal.html.haml index 1e931836..986450ba 100644 --- a/app/views/admin/events/_proposal.html.haml +++ b/app/views/admin/events/_proposal.html.haml @@ -13,7 +13,7 @@ .span12 %table.table %tr - %td + %td{:style => "width:20%"} %b Type %td .dropdown @@ -113,6 +113,10 @@ %td %b Description %td= simple_format(@event.description) + + - if @conference.call_for_papers.rating > 0 + = render :partial => "voting" + - if @event.event_attachments.size > 0 %table.table %thead @@ -142,11 +146,7 @@ %td = link_to "Delete", conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id), :method => :delete, :confirm => "Are you sure you want to delete this attachment? It's permanant!" -- if @conference.call_for_papers.rating > 0 - .row-fluid - = link_to "Votes (#{@event.voters.length})", "#", :id => "votes-link" - #votes-div - = render :partial => 'voting' + .row-fluid = link_to "Comments (#{@comment_count})", "#", :id => "event-comment-link" #comments-div diff --git a/app/views/admin/events/_voting.html.haml b/app/views/admin/events/_voting.html.haml index 11ed1eed..8353bbc4 100644 --- a/app/views/admin/events/_voting.html.haml +++ b/app/views/admin/events/_voting.html.haml @@ -1,7 +1,29 @@ -%table#myeventratings{:style=>"width: 20%"} +%table.table#myrating %tr + %td{:style => "width:20%"} + %b Rating %td - %b Your vote: + - if @event.average_rating.to_f > 0 + #{@event.average_rating}/#{@conference.call_for_papers.rating} + - else + Rating: (0/#{@conference.call_for_papers.rating}) + + - @conference.call_for_papers.rating.times do |counter| + - if @event.average_rating.to_f.round == counter+1 + = label_tag "label_rating", "", :class => "avgrating", :avgrate => true + = javascript_tag "$('label[avgrate=true]').prevAll().andSelf().addClass('bright');" + - else + = label_tag "label_rating", "", :class => "avgrating" + %tr + %td + %b Voters + %td + = @event.voters.length + ( + = @ratings.map {|x| "#{x.first_name} #{x.last_name}"}.join ', ' + ) + %tr + %td Your vote %td - @conference.call_for_papers.rating.times do |counter| - voted = @event.voted?(@event, current_user.person) diff --git a/app/views/admin/events/index.html.haml b/app/views/admin/events/index.html.haml index e5fd2047..ae537b13 100644 --- a/app/views/admin/events/index.html.haml +++ b/app/views/admin/events/index.html.haml @@ -31,12 +31,12 @@ = event.id %td =link_to event.title, admin_conference_event_path(@conference.short_title, event) - %td + %td{:style => "width:96px"} - if @conference.call_for_papers.rating != 0 - if event.average_rating.to_f > 0 - Rating: (#{event.average_rating}/#{@conference.call_for_papers.rating}) + Rating: #{event.average_rating}/#{@conference.call_for_papers.rating} - else - Rating: (0/#{@conference.call_for_papers.rating}) + Rating: 0/#{@conference.call_for_papers.rating} %br - @conference.call_for_papers.rating.times do |counter| diff --git a/app/views/admin/events/vote.js.erb b/app/views/admin/events/vote.js.erb index 38ffd622..dc677901 100644 --- a/app/views/admin/events/vote.js.erb +++ b/app/views/admin/events/vote.js.erb @@ -1 +1 @@ -$('table#myeventratings').replaceWith("<%= escape_javascript(render :partial => 'voting') %>"); \ No newline at end of file +$('table#myrating').replaceWith("<%= escape_javascript(render :partial => 'voting') %>"); \ No newline at end of file