From 39b687a58fbba7d33bebc4c15a4c0986943b9fb3 Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 12 Jun 2018 14:36:35 -0400 Subject: [PATCH] recording management --- app/controllers/rooms_controller.rb | 15 +++++++++++---- app/models/room.rb | 19 +++++++++++++------ app/views/rooms/show.html.erb | 14 +++++++++++++- app/views/shared/_header.html.erb | 2 +- .../shared/components/_recording_row.html.erb | 14 +++++++++----- config/initializers/html5.rb | 6 ++++++ 6 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 config/initializers/html5.rb diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb index e6dcadc3..48bd65b5 100644 --- a/app/controllers/rooms_controller.rb +++ b/app/controllers/rooms_controller.rb @@ -3,6 +3,8 @@ class RoomsController < ApplicationController before_action :find_room, except: :create before_action :verify_room_ownership, only: [:start, :destroy, :home] + META_LISTED = "gl-listed" + # POST /r def create room = Room.new(name: room_params[:name]) @@ -90,11 +92,16 @@ class RoomsController < ApplicationController redirect_to @room end - # PATCH /r/:room_uid/:record_id + # POST /r/:room_uid/:record_id def update_recording - bbb.publish_recordings(params[:record_id], params[:publish]) - - + meta = { + "meta_#{META_LISTED}": (params[:state] == "public") + } + puts '-------------' + puts params[:record_id] + res = @room.update_recording(params[:record_id], meta) + puts res + redirect_to @room if res[:updated] end # DELETE /r/:room_uid/:record_id diff --git a/app/models/room.rb b/app/models/room.rb index a8244ed0..210eea21 100644 --- a/app/models/room.rb +++ b/app/models/room.rb @@ -32,7 +32,8 @@ class Room < ApplicationRecord logoutURL: options[:meeting_logout_url] || '', moderatorPW: random_password(12), attendeePW: random_password(12), - moderatorOnlyMessage: options[:moderator_message] + moderatorOnlyMessage: options[:moderator_message], + "meta_gl-listed": false } # Increment room sessions. @@ -81,11 +82,11 @@ class Room < ApplicationRecord end # Generate the join URL. - if uid - bbb.join_meeting_url(bbb_id, name, password, {userID: uid}) - else - bbb.join_meeting_url(bbb_id, name, password) - end + join_opts = {} + join_opts.merge!({userID: uid}) if uid + join_opts.merge!({joinViaHtml5: true}) if Rails.configuration.html5_enabled + + bbb.join_meeting_url(bbb_id, name, password, join_opts) end # Notify waiting users that a meeting has started. @@ -129,6 +130,12 @@ class Room < ApplicationRecord res[:recordings] end + def update_recording(record_id, meta) + meta.merge!({recordID: record_id}) + + bbb.send_api_request("updateRecordings", meta) + end + # Deletes a recording from a room. def delete_recording(record_id) res = bbb.delete_recordings(record_id) diff --git a/app/views/rooms/show.html.erb b/app/views/rooms/show.html.erb index fa87f9b7..ac1c6d6b 100644 --- a/app/views/rooms/show.html.erb +++ b/app/views/rooms/show.html.erb @@ -28,7 +28,7 @@
<% if @is_running %> -
In Progress
+ <%= button_to "Join", room_path(@room), class: "btn btn-primary btn-block px-7 start-button float-right" %> <% else %> <%= button_to "Start", start_room_path(@room), class: "btn btn-primary btn-block px-7 start-button float-right" %> <% end %> @@ -55,6 +55,7 @@ var invite_url; var copy = $('#copy'); +// Handle copy button. copy.on('click', function(){ var inviteURL = $('#invite-url'); inviteURL.select(); @@ -70,4 +71,15 @@ copy.on('click', function(){ }, 2000) } }); + +// Handle recording emails. +$('.email-link').each(function(){ + $(this).click(function(){ + var subject = $(".username").text() + " has invited you to view a recording."; + var body = "To view the recording, follow the link below:\n\n" + $(this).attr("data-pres-link"); + var footer = "\n\nThis e-mail is auto-generated by BigBlueButton.\nBigBlueButton is an open source web conferencing system. For more information on BigBlueButton, see https://bigbluebutton.org/." + var win = window.open("mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body) + encodeURIComponent(footer), '_blank'); + win.focus(); + }); +}); diff --git a/app/views/shared/_header.html.erb b/app/views/shared/_header.html.erb index 25032ec0..d2af82b9 100644 --- a/app/views/shared/_header.html.erb +++ b/app/views/shared/_header.html.erb @@ -24,7 +24,7 @@ <% end %> - <%= current_user.name %> + <%= current_user.name %>