diff --git a/Gemfile b/Gemfile index 3409daf9..88051b89 100644 --- a/Gemfile +++ b/Gemfile @@ -57,5 +57,6 @@ gem 'bigbluebutton-api-ruby' gem 'bootstrap-sass', '3.3.0.0' gem 'bootstrap-social-rails', '~> 4.12' +gem 'font-awesome-rails' gem 'jquery-ui-rails' gem 'jquery-datatables-rails', '~> 3.4.0' diff --git a/Gemfile.lock b/Gemfile.lock index b24c67ff..e946530f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -65,6 +65,8 @@ GEM faraday (0.9.2) multipart-post (>= 1.2, < 3) ffi (1.9.14) + font-awesome-rails (4.6.3.1) + railties (>= 3.2, < 5.1) globalid (0.3.7) activesupport (>= 4.1.0) hashie (3.4.4) @@ -209,6 +211,7 @@ DEPENDENCIES byebug coffee-rails (~> 4.2) dotenv-rails + font-awesome-rails jbuilder (~> 2.5) jquery-datatables-rails (~> 3.4.0) jquery-rails diff --git a/app/assets/javascripts/landing.js b/app/assets/javascripts/landing.js index 4aeefe17..b3e24d18 100644 --- a/app/assets/javascripts/landing.js +++ b/app/assets/javascripts/landing.js @@ -15,6 +15,7 @@ } }); }); + $('#url_form_button').click (function (event) { $.ajax({ url : $(this).data ('url'), @@ -36,7 +37,7 @@ $(document).on("turbolinks:load", function() { if ($("body[data-controller=landing]").get(0)) { - if ($("body[data-action=index]").get(0)) { + if ($("body[data-action=meeting]").get(0) || $("body[data-action=room]").get(0)) { initIndex(); } } diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 3bcfc498..48ad3a1c 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -5,6 +5,8 @@ // Bootstrap @import "bootstrap-sprockets"; @import "bootstrap"; +@import "bootstrap-social"; +@import "font-awesome"; .room { .room-link { diff --git a/app/controllers/bbb_controller.rb b/app/controllers/bbb_controller.rb index 9c9ef648..9e50f497 100644 --- a/app/controllers/bbb_controller.rb +++ b/app/controllers/bbb_controller.rb @@ -1,16 +1,14 @@ class BbbController < ApplicationController - include BbbHelper # GET /join # GET /join.json def join - logger.info params.to_json if ( !params.has_key?(:id) ) render_response("missing_parameter", "meeting token was not included", :bad_request) elsif ( !params.has_key?(:name) ) render_response("missing_parameter", "user name was not included", :bad_request) else - bbb_join_url = bbb_join_url(params[:id], false, params[:name], false) + bbb_join_url = helpers.bbb_join_url(params[:id], false, params[:name], false, "#{request.base_url}/#{params[:resource]}/#{params[:id]}") if bbb_join_url[:returncode] logger.info "#Execute the redirect" render_response("ok", "execute the redirect", :ok, {:join_url => bbb_join_url[:join_url]}) diff --git a/app/controllers/landing_controller.rb b/app/controllers/landing_controller.rb index 0c6c9e5e..3d770fa2 100644 --- a/app/controllers/landing_controller.rb +++ b/app/controllers/landing_controller.rb @@ -1,17 +1,16 @@ class LandingController < ApplicationController - include LandingHelper - def index - @refreshable = (params[:resource] == 'meeting' && !params.has_key?(:id)) - @meeting_token = params[:id] || @meeting_token = new_meeting_token - @meeting_url = landing_url(@meeting_token) + 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) end # GET /token.json def new_meeting respond_to do |format| - meeting_url = landing_url(new_meeting_token) - logger.info meeting_url + meeting_url = meeting_url(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 @@ -19,6 +18,9 @@ class LandingController < ApplicationController def room @room_name = params[:name] @user = User.find_by(username: @room_name) + @meeting_token = @room_name + @resource = params[:resource] + @resource_url = room_url(@meeting_token) if @user.nil? redirect_to root_path end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0a20de1d..de6be794 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,15 +1,2 @@ module ApplicationHelper - def bbb_endpoint - Rails.application.secrets[:bbb_endpoint] - end - - def bbb_secret - Rails.application.secrets[:bbb_secret] - end - - def random_password(length) - o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten - password = (0...length).map { o[rand(o.length)] }.join - return password - end end diff --git a/app/helpers/bbb_helper.rb b/app/helpers/bbb_helper.rb index 9a3a6fc0..91130568 100644 --- a/app/helpers/bbb_helper.rb +++ b/app/helpers/bbb_helper.rb @@ -1,6 +1,20 @@ module BbbHelper - def bbb_join_url(meeting_token, meeting_recorded=false, user_fullname='User', user_is_moderator=false) - bbb ||= BigBlueButton::BigBlueButtonApi.new(helpers.bbb_endpoint + "api", bbb_secret, "0.8", true) + def bbb_endpoint + Rails.application.secrets[:bbb_endpoint] + end + + def bbb_secret + Rails.application.secrets[:bbb_secret] + end + + def random_password(length) + o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten + password = (0...length).map { o[rand(o.length)] }.join + return password + end + + def bbb_join_url(meeting_token, meeting_recorded=false, user_fullname='User', user_is_moderator=false, meeting_logout_url=nil) + bbb ||= BigBlueButton::BigBlueButtonApi.new(bbb_endpoint + "api", bbb_secret, "0.8", true) if !bbb return { :returncode => false, :messageKey => "BBBAPICallInvalid", :message => "BBB API call invalid." } else @@ -14,7 +28,7 @@ module BbbHelper logger.info "Message for the log file #{exc.key}: #{exc.message}" # Prepare parameters for create - logout_url = "#{request.base_url}/meeting/#{meeting_token}" + logout_url = meeting_logout_url || logout_url = "#{request.base_url}" moderator_password = random_password(12) viewer_password = random_password(12) meeting_options = {:record => meeting_recorded.to_s, :logoutURL => logout_url, :moderatorPW => moderator_password, :attendeePW => viewer_password } diff --git a/app/views/landing/_footer_message.html.erb b/app/views/landing/_footer_message.html.erb new file mode 100644 index 00000000..40f7b7f2 --- /dev/null +++ b/app/views/landing/_footer_message.html.erb @@ -0,0 +1,3 @@ +
diff --git a/app/views/landing/_footer_oauth_append.html.erb b/app/views/landing/_footer_oauth_append.html.erb new file mode 100644 index 00000000..8aa4a36f --- /dev/null +++ b/app/views/landing/_footer_oauth_append.html.erb @@ -0,0 +1,19 @@ + + diff --git a/app/views/landing/_join_form.html.erb b/app/views/landing/_join_form.html.erb new file mode 100644 index 00000000..51e7c13e --- /dev/null +++ b/app/views/landing/_join_form.html.erb @@ -0,0 +1,28 @@ +
+ Hi Everyone
+ The meeting will be at this URL
+
+ Please join!
+
- Hi Everyone
- The meeting will be at this URL
-
- Please join!
-