Merge pull request #13 from jfederico/master

Some rework for generalizing code that is used by the two resources
This commit is contained in:
Jesus Federico 2016-10-19 16:01:23 -04:00 committed by GitHub
commit d313c5d373
10 changed files with 62 additions and 32 deletions

View File

@ -3,7 +3,6 @@ require 'digest/sha1'
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
include ApplicationHelper
def current_user
@current_user ||= User.find_by(id: session[:user_id])

View File

@ -1,33 +1,51 @@
class LandingController < ApplicationController
def meeting
@refreshable = (params[:resource] == 'meetings' && !params.has_key?(:id))
@meeting_token = params[:id] || @meeting_token = helpers.new_meeting_token
@resource = params[:resource]
@resource_url = meeting_url(@meeting_token)
def index
if params[:resource] == 'meetings'
render_meeting
elsif params[:resource] == 'rooms'
render_room
else
render 'errors/error'
end
end
# GET /token.json
def new_meeting
respond_to do |format|
meeting_url = meeting_url(helpers.new_meeting_token)
meeting_url = resource_url('meetings', helpers.new_meeting_token)
format.json { render :json => { :messageKey => "ok", :message => "New meeting URL created", :status => :ok, :response => { :meeting_url => meeting_url} }, :status => status }
end
end
def meeting
render_meeting
end
def room
@room_name = params[:name]
@user = User.find_by(username: @room_name)
@meeting_token = @room_name
@resource = "rooms"
@resource_url = room_url(@meeting_token)
if @user.nil?
redirect_to root_path
end
render_room
end
def admin?
@user == current_user
end
helper_method :admin?
private
def render_meeting
@resource = params[:resource]
@meeting_token = params[:id] || @meeting_token = helpers.new_meeting_token
@refreshable = (params[:resource] == 'meetings' && !params.has_key?(:id))
render :action => 'meeting'
end
def render_room
@resource = params[:resource]
@meeting_token = params[:id]
@user = User.find_by(username: @meeting_token)
if @user.nil?
redirect_to root_path
end
render :action => 'room'
end
end

View File

@ -3,7 +3,7 @@ class SessionsController < ApplicationController
@user = User.from_omniauth(request.env['omniauth.auth'])
if @user.persisted?
session[:user_id] = @user.id
redirect_to controller: 'landing', action: 'room', name: @user.username
redirect_to controller: 'landing', action: 'room', id: @user.username
else
@user.save!
session[:user_id] = @user.id

View File

@ -1,3 +1,3 @@
<div id="landing_page_footer_message">
<p>Bookmark this page to reuse this meeting URL, or click refresh button to generate a new meeting URL</p>
<p>Bookmark this page to reuse this meeting URL<% if @resource == "meetings" %>, or click refresh button to generate a new meeting URL<% end %></p>
</div>

View File

@ -10,10 +10,6 @@
<span class="fa fa-google"></span>
<% end %>
</div>
<% else %>
<div>Hello <%= current_user.name %></div>
<div><%= link_to 'Personal Room', current_user.room_url %></div>
<div><%= link_to 'Logout', '/logout' %></div>
<% end %>
</div>
</div>

View File

@ -4,7 +4,7 @@
<div id="landing_page_url" class="center-block">
<form id="url_form" class="form-inline">
<div class="form-group">
<span id="meeting_url"><%= @resource_url %></span>
<span id="meeting_url"><%= resource_url(@resource, @meeting_token) %></span>
</div>
<% if @refreshable %>
<button id="url_form_button" type="button" class="btn btn-default" data-url="<%= new_meeting_path() %>">

View File

@ -1,6 +1,6 @@
<figure class=highlight><pre><figcaption class="text" data-lang="text">
<p>Hi Everyone</p>
<p>The meeting will be at this URL</p>
<p><a id="text_meeting_url" href="<%= @resource_url %>"><%= @resource_url %></a></p>
<p><a id="text_meeting_url" href="<%= resource_url(@resource, @meeting_token) %>"><%= resource_url(@resource, @meeting_token) %></a></p>
<p>Please join!</p>
</figcaption></pre></figure>

View File

@ -1,6 +1,18 @@
<!-- Body -->
<div class='body'>
<div class="page-wrapper room">
<div class="row">
<div class="col-sm-2 col-sm-offset-10">
<% if !current_user.nil? %>
<span class="user">Hello <%= current_user.name %></span>
<%= link_to "Logout", user_logout_url() %>
<div><%= link_to 'Personal Room', current_user.room_url %></div>
<% end %>
</div>
</div>
</div>
<div class="container">
<%= render 'landing/join_form' %>

View File

@ -5,8 +5,8 @@
<div class="row">
<div class="col-sm-2 col-sm-offset-10">
<% if admin? %>
<span class="user"><%= current_user.name %></span>
<%= link_to "Logout", "/logout" %>
<span class="user">Hello <%= current_user.name %></span>
<%= link_to "Logout", user_logout_url() %>
<% else %>
<%= link_to "Login", "/auth/twitter" %>
<% end %>

View File

@ -1,14 +1,19 @@
Rails.application.routes.draw do
resources :users, only: [:edit, :update]
get 'bbb/join/:resource/:id', to: 'bbb#join', as: :bbb_join
get '/meetings/new', to: 'landing#new_meeting', as: :new_meeting
get '/meetings(/:id)', to: 'landing#meeting', as: :meeting, :resource => "meetings"
get '/rooms/:name', to: 'landing#room', as: :room
# This should be removed once before being released
get '/auth/:provider/callback', to: 'sessions#create'
get '/logout', to: 'sessions#destroy'
###########################################################
get '/users/auth/:provider/callback', to: 'sessions#create'
get '/users/logout', to: 'sessions#destroy', as: :user_logout
get '/meetings/join/:resource/:id', to: 'bbb#join', as: :bbb_join
get '/meetings/new', to: 'landing#new_meeting', as: :new_meeting
# There are two resources [meetings|rooms]
# meetings offer a landing page for NON authenticated users to create and join session in BigBlueButton
# rooms offer a customized landing page for authenticated users to create and join session in BigBlueButton
get '/:resource(/:id)', to: 'landing#index', as: :resource
root to: 'landing#meeting', :resource => "meetings"
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html