From 39434768738b8b8fb4986ee187b3014a8518fb99 Mon Sep 17 00:00:00 2001 From: Juan Pol Date: Thu, 2 Jun 2016 23:55:41 -0400 Subject: [PATCH] Adding voting system --- Gemfile | 3 + Gemfile.lock | 1 + app/assets/javascripts/application.js | 2 +- app/assets/javascripts/room.js | 76 +++--- app/assets/stylesheets/groups.scss | 17 +- app/controllers/groups_controller.rb | 3 +- app/controllers/transfers_controller.rb | 22 ++ app/views/groups/show.html.erb | 149 +++++++++-- app/views/layouts/application.html.erb | 4 + config/events.rb | 3 + ...0160602162559_add_stage_column_to_group.rb | 5 + db/schema.rb | 241 +++++++++--------- 12 files changed, 352 insertions(+), 174 deletions(-) create mode 100644 app/controllers/transfers_controller.rb create mode 100644 db/migrate/20160602162559_add_stage_column_to_group.rb diff --git a/Gemfile b/Gemfile index 8dff6a9..6386994 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,8 @@ source 'https://rubygems.org' + + +gem 'json' # Web socket gems gem 'websocket-rails' gem 'faye-websocket', '0.10.0' diff --git a/Gemfile.lock b/Gemfile.lock index 3fc04c8..0ec4dc8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -211,6 +211,7 @@ DEPENDENCIES faye-websocket (= 0.10.0) jbuilder (~> 2.0) jquery-rails + json omniauth-facebook pg (~> 0.15) pry diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 6dfff76..4b3ef9e 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -15,7 +15,7 @@ //= require jquery_ujs //= require turbolinks //= require_tree . - +//= require websocket_rails/main $(document).ready(function(){ //array of ivited friends diff --git a/app/assets/javascripts/room.js b/app/assets/javascripts/room.js index 3fb2ebb..de5f9e1 100644 --- a/app/assets/javascripts/room.js +++ b/app/assets/javascripts/room.js @@ -2,6 +2,7 @@ $(document).ready(function(){ //Variables for DOM elements var categoryListElem = $('#cat-select') + // Selected categories are given the class of "active" $('.category-select-indicator').on('click', function(e){ if ($(this).parent().hasClass('active')){ @@ -18,39 +19,54 @@ $(document).ready(function(){ // var c = $('#category_selected').val(); var arry = []; var d = $('#date_selected').val(); - + var c ; + + // Collect all chosen categories for ( var i=0; i < categoryListElem.children('.active').length; i++){ arry.push(categoryListElem.children('.active')[i].getAttribute('value')); - c = arry.join(',') + c = arry.join(','); } - console.log(c) - $.ajax({ - url: "http://api.eventful.com/json/events/search?callback=?", - data: { - app_key: "Q3knLXnFqsCt8wpQ", - location: "New York", - categories: c, - date: d - }, - dataType: "json", - success: function(response) - { - console.log(response) - events = response.events.event - for(var i =0; i < events.length; i++){ - var elem = $('#event-results') - elem.append('
  • '+'

    '+ events[i].title+ '

    ' +'
  • '); - - // Show image if valid url exist - elem.children().last().append(''); - - // Show description, if description is invald display "No description" - elem.children().last().append('

    '+ (events[i].description ? events[i].description: "No description" ) + '

    ') - } - } - }); - }) + dispatcher.trigger('room_message_api', {categories: c, date: d, group_id: $('#group-info').val()}); + $('#voting-stage-one').hide() + // $.ajax({ + // url: "http://api.eventful.com/json/events/search?callback=?", + // data: { + // app_key: "Q3knLXnFqsCt8wpQ", + // location: "New York", + // categories: c, + // date: d + // }, + // dataType: "json", + // success: function(response) + // { + // console.log(response) + // events = response.events.event + // for(var i =0; i < events.length; i++){ + // var elem = $('#event-results') + // elem.append('
  • '+'

    '+ events[i].title+ '

    ' +'
  • '); + + // // Show image if valid url exist + // elem.children().last().append(''); + // // Show description, if description is invald display "No description" + // elem.children().last().append('

    '+ (events[i].description ? events[i].description: "No description" ) + '

    ') + // } + // } + // }); + }) + +}) -}) \ No newline at end of file +//function to check if user already voted returns true if an element was removed +function removeMyVote(myId){ + var vBoxes = $('.voting-box'); + var rslt = false + vBoxes.children().each(function(){ + if(this.getAttribute('id') == myId ){ + rslt = true; + this.parentNode.removeChild(this); + } + }) + return rslt; +} \ No newline at end of file diff --git a/app/assets/stylesheets/groups.scss b/app/assets/stylesheets/groups.scss index 1bb6309..fa85d6b 100644 --- a/app/assets/stylesheets/groups.scss +++ b/app/assets/stylesheets/groups.scss @@ -7,8 +7,15 @@ $unit : 10px; background: grey; } -#cat-select { - .active-indicator{ - background: green; - }; -} \ No newline at end of file + +.active-indicator{ + background: green; +}; + + + +.event-results-indicator{ + background: grey; + height: $unit * 2; + width: $unit * 2; +}; diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index b3a7d75..15c673c 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -8,7 +8,6 @@ def show end end def create - binding.pry @group=Group.new(group_params) if @group.save @members = params[:group][:fname].split(',') @@ -20,7 +19,7 @@ def create end redirect_to group_path(@group.id) else - redirect_to + redirect_to :back end end diff --git a/app/controllers/transfers_controller.rb b/app/controllers/transfers_controller.rb new file mode 100644 index 0000000..209ed2a --- /dev/null +++ b/app/controllers/transfers_controller.rb @@ -0,0 +1,22 @@ +require 'net/http' + +class TransfersController < WebsocketRails::BaseController + + def update_room + + end + + #request events from eventful api and sends it browser + def eventful_response + uri = URI("http://api.eventful.com/json/events/search?callback=?&app_key=Q3knLXnFqsCt8wpQ&location=New+York&categories=#{message[:categories]}&date=#{message[:date]}") + + response = Net::HTTP.get(uri) + rslt = JSON.parse(response) + + broadcast_message :api_response, rslt + + group = Group.find(message[:group_id].to_i) + group.update(stage: "STAGE2") + end + +end \ No newline at end of file diff --git a/app/views/groups/show.html.erb b/app/views/groups/show.html.erb index 49be32e..4d7917f 100644 --- a/app/views/groups/show.html.erb +++ b/app/views/groups/show.html.erb @@ -2,23 +2,140 @@ This is the group show page

    Group id: <%= @group.id %>

    Group Name: <%= @group.name %>

    - + + <% @members.each do |member|%>

    <%=member.fname%>

    <% end %> - - -

    API Form

    -<%= select(:category,:selected, options_for_select(categories_list.collect{|loc| [ loc , loc] }), promt: "Category")%> -<%= select(:date,:selected, options_for_select(date_options.collect{|loc| [ loc , loc] }), promt: "Category")%> - - - \ No newline at end of file + +<% if current_user.id == @group.user_id%> +
    + + + + + + <%= select(:date,:selected, options_for_select(date_options.collect{|loc| [ loc , loc] }), promt: "Date")%> + +
    +<% end %> + + +
    + + + + +
    + + + + + + + + \ No newline at end of file diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 5a8c0ac..329232c 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -18,6 +18,10 @@ + +
    + +