forked from External/greenlight
		
	allow meeting name separately when joining from room
This commit is contained in:
		@@ -191,6 +191,15 @@
 | 
				
			|||||||
  var initRooms = function() {
 | 
					  var initRooms = function() {
 | 
				
			||||||
    displayRoomURL();
 | 
					    displayRoomURL();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $('.center-panel-wrapper').on('keyup', '.meeting-name', function (event, msg) {
 | 
				
			||||||
 | 
					      var newName = $(this).val();
 | 
				
			||||||
 | 
					      // Meeting.getInstance().setMeetingId(newId);
 | 
				
			||||||
 | 
					      Meeting.getInstance().setMeetingName(newName);
 | 
				
			||||||
 | 
					      // $(".page-wrapper.meetings").data('id', newId);
 | 
				
			||||||
 | 
					      // $('.meeting-url').val(Meeting.getInstance().getURL());
 | 
				
			||||||
 | 
					      // $('.join-meeting-title').html(I18n.join_title.replace(/%{id}/, newId));
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Recordings.getInstance().refresh();
 | 
					    Recordings.getInstance().refresh();
 | 
				
			||||||
    Recordings.getInstance().setupActionHandlers();
 | 
					    Recordings.getInstance().setupActionHandlers();
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,7 @@
 | 
				
			|||||||
_meetingInstance = null
 | 
					_meetingInstance = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class @Meeting
 | 
					class @Meeting
 | 
				
			||||||
  constructor: (@meetingId, @type, @userName) ->
 | 
					  constructor: (@meetingId, @type, @userName, @meetingName) ->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Gets the current instance or creates a new one
 | 
					  # Gets the current instance or creates a new one
 | 
				
			||||||
  @getInstance: ->
 | 
					  @getInstance: ->
 | 
				
			||||||
@@ -35,8 +35,12 @@ class @Meeting
 | 
				
			|||||||
  @clear: ->
 | 
					  @clear: ->
 | 
				
			||||||
    _meetingInstance = null
 | 
					    _meetingInstance = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @buildMeetingURL: (id, type) ->
 | 
					  @buildMeetingURL: (id, type, name) ->
 | 
				
			||||||
    return @buildFullDomainURL() + '/' + type + '/' + encodeURIComponent(id)
 | 
					    if name
 | 
				
			||||||
 | 
					      name = '/' + encodeURIComponent(name)
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      name = ''
 | 
				
			||||||
 | 
					    return @buildFullDomainURL() + '/' + type + '/' + encodeURIComponent(id) + name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @buildFullDomainURL: ->
 | 
					  @buildFullDomainURL: ->
 | 
				
			||||||
    url = location.protocol + '//' + location.hostname
 | 
					    url = location.protocol + '//' + location.hostname
 | 
				
			||||||
@@ -80,6 +84,10 @@ class @Meeting
 | 
				
			|||||||
    @meetingId = id
 | 
					    @meetingId = id
 | 
				
			||||||
    return this
 | 
					    return this
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setMeetingName: (name) ->
 | 
				
			||||||
 | 
					    @meetingName = name
 | 
				
			||||||
 | 
					    return this
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  getType: ->
 | 
					  getType: ->
 | 
				
			||||||
    return @type
 | 
					    return @type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -88,7 +96,7 @@ class @Meeting
 | 
				
			|||||||
    return this
 | 
					    return this
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  getURL: ->
 | 
					  getURL: ->
 | 
				
			||||||
    return Meeting.buildMeetingURL(@meetingId, @type)
 | 
					    return Meeting.buildMeetingURL(@meetingId, @type, @meetingName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  getUserName: ->
 | 
					  getUserName: ->
 | 
				
			||||||
    return @userName
 | 
					    return @userName
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,15 +26,34 @@ class BbbController < ApplicationController
 | 
				
			|||||||
  # GET /:resource/:id/join
 | 
					  # GET /:resource/:id/join
 | 
				
			||||||
  def join
 | 
					  def join
 | 
				
			||||||
    if params[:name].blank?
 | 
					    if params[:name].blank?
 | 
				
			||||||
      render_bbb_response("missing_parameter", "user name was not included", :unprocessable_entity)
 | 
					      return render_bbb_response(
 | 
				
			||||||
 | 
					        messageKey: "missing_parameter",
 | 
				
			||||||
 | 
					        message: "user name was not included",
 | 
				
			||||||
 | 
					        status: :unprocessable_entity
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      user = User.find_by encrypted_id: params[:id]
 | 
					      if params[:room_id]
 | 
				
			||||||
 | 
					        user = User.find_by encrypted_id: params[:room_id]
 | 
				
			||||||
 | 
					        if !user
 | 
				
			||||||
 | 
					          return render_bbb_response(
 | 
				
			||||||
 | 
					            messageKey: "not_found",
 | 
				
			||||||
 | 
					            message: "User Not Found",
 | 
				
			||||||
 | 
					            status: :not_found
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        meeting_id = params[:room_id]
 | 
				
			||||||
 | 
					        meeting_name = params[:id]
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        meeting_id = params[:id]
 | 
				
			||||||
 | 
					        user = User.find_by encrypted_id: params[:id]
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      options = if user
 | 
					      options = if user
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          wait_for_moderator: true,
 | 
					          wait_for_moderator: true,
 | 
				
			||||||
          meeting_recorded: true,
 | 
					          meeting_recorded: true,
 | 
				
			||||||
          meeting_name: user.name,
 | 
					          meeting_name: meeting_name,
 | 
				
			||||||
          user_is_moderator: current_user == user
 | 
					          user_is_moderator: current_user == user
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
@@ -42,23 +61,24 @@ class BbbController < ApplicationController
 | 
				
			|||||||
          user_is_moderator: true
 | 
					          user_is_moderator: true
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
      base_url = "#{request.base_url}/#{params[:resource]}/#{params[:id]}"
 | 
					
 | 
				
			||||||
 | 
					      base_url = "#{request.base_url}/#{params[:resource]}/#{meeting_id}"
 | 
				
			||||||
      options[:meeting_logout_url] = base_url
 | 
					      options[:meeting_logout_url] = base_url
 | 
				
			||||||
      options[:hook_url] = "#{base_url}/callback"
 | 
					      options[:hook_url] = "#{base_url}/callback"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      bbb_res = bbb_join_url(
 | 
					      bbb_res = bbb_join_url(
 | 
				
			||||||
        params[:id],
 | 
					        meeting_id,
 | 
				
			||||||
        params[:name],
 | 
					        params[:name],
 | 
				
			||||||
        options
 | 
					        options
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # the user can join the meeting
 | 
					      # the user can join the meeting
 | 
				
			||||||
      if bbb_res[:returncode] && current_user && current_user == user
 | 
					      if bbb_res[:returncode] && current_user && current_user == user
 | 
				
			||||||
        JoinMeetingJob.perform_later(params[:id])
 | 
					        JoinMeetingJob.perform_later(meeting_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # user will be waiting for a moderator
 | 
					      # user will be waiting for a moderator
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        NotifyUserWaitingJob.perform_later(params[:id], params[:name])
 | 
					        NotifyUserWaitingJob.perform_later(meeting_id, params[:name])
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      render_bbb_response bbb_res, bbb_res[:response]
 | 
					      render_bbb_response bbb_res, bbb_res[:response]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,6 +34,7 @@ Rails.application.routes.draw do
 | 
				
			|||||||
  get '/:resource/:id/session_status_refresh', to: 'landing#session_status_refresh'
 | 
					  get '/:resource/:id/session_status_refresh', to: 'landing#session_status_refresh'
 | 
				
			||||||
  post '/:resource/:id/callback', to: 'bbb#callback' #, defaults: {format: 'json'}
 | 
					  post '/:resource/:id/callback', to: 'bbb#callback' #, defaults: {format: 'json'}
 | 
				
			||||||
  delete '/rooms/:id/end', to: 'bbb#end', defaults: {format: 'json'}
 | 
					  delete '/rooms/:id/end', to: 'bbb#end', defaults: {format: 'json'}
 | 
				
			||||||
 | 
					  get '/:resource/:room_id/:id/join', to: 'bbb#join', defaults: {format: 'json'}
 | 
				
			||||||
  get '/rooms/:id/recordings', to: 'bbb#recordings', defaults: {format: 'json'}
 | 
					  get '/rooms/:id/recordings', to: 'bbb#recordings', defaults: {format: 'json'}
 | 
				
			||||||
  patch '/rooms/:id/recordings/:record_id', to: 'bbb#update_recordings', defaults: {format: 'json'}
 | 
					  patch '/rooms/:id/recordings/:record_id', to: 'bbb#update_recordings', defaults: {format: 'json'}
 | 
				
			||||||
  delete '/rooms/:id/recordings/:record_id', to: 'bbb#delete_recordings', defaults: {format: 'json'}
 | 
					  delete '/rooms/:id/recordings/:record_id', to: 'bbb#delete_recordings', defaults: {format: 'json'}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user