forked from External/greenlight
		
	allow meeting name separately when joining from room
This commit is contained in:
		@@ -191,6 +191,15 @@
 | 
			
		||||
  var initRooms = function() {
 | 
			
		||||
    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().setupActionHandlers();
 | 
			
		||||
  };
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
_meetingInstance = null
 | 
			
		||||
 | 
			
		||||
class @Meeting
 | 
			
		||||
  constructor: (@meetingId, @type, @userName) ->
 | 
			
		||||
  constructor: (@meetingId, @type, @userName, @meetingName) ->
 | 
			
		||||
 | 
			
		||||
  # Gets the current instance or creates a new one
 | 
			
		||||
  @getInstance: ->
 | 
			
		||||
@@ -35,8 +35,12 @@ class @Meeting
 | 
			
		||||
  @clear: ->
 | 
			
		||||
    _meetingInstance = null
 | 
			
		||||
 | 
			
		||||
  @buildMeetingURL: (id, type) ->
 | 
			
		||||
    return @buildFullDomainURL() + '/' + type + '/' + encodeURIComponent(id)
 | 
			
		||||
  @buildMeetingURL: (id, type, name) ->
 | 
			
		||||
    if name
 | 
			
		||||
      name = '/' + encodeURIComponent(name)
 | 
			
		||||
    else
 | 
			
		||||
      name = ''
 | 
			
		||||
    return @buildFullDomainURL() + '/' + type + '/' + encodeURIComponent(id) + name
 | 
			
		||||
 | 
			
		||||
  @buildFullDomainURL: ->
 | 
			
		||||
    url = location.protocol + '//' + location.hostname
 | 
			
		||||
@@ -80,6 +84,10 @@ class @Meeting
 | 
			
		||||
    @meetingId = id
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
  setMeetingName: (name) ->
 | 
			
		||||
    @meetingName = name
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
  getType: ->
 | 
			
		||||
    return @type
 | 
			
		||||
 | 
			
		||||
@@ -88,7 +96,7 @@ class @Meeting
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
  getURL: ->
 | 
			
		||||
    return Meeting.buildMeetingURL(@meetingId, @type)
 | 
			
		||||
    return Meeting.buildMeetingURL(@meetingId, @type, @meetingName)
 | 
			
		||||
 | 
			
		||||
  getUserName: ->
 | 
			
		||||
    return @userName
 | 
			
		||||
 
 | 
			
		||||
@@ -26,15 +26,34 @@ class BbbController < ApplicationController
 | 
			
		||||
  # GET /:resource/:id/join
 | 
			
		||||
  def join
 | 
			
		||||
    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
 | 
			
		||||
      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
 | 
			
		||||
        {
 | 
			
		||||
          wait_for_moderator: true,
 | 
			
		||||
          meeting_recorded: true,
 | 
			
		||||
          meeting_name: user.name,
 | 
			
		||||
          meeting_name: meeting_name,
 | 
			
		||||
          user_is_moderator: current_user == user
 | 
			
		||||
        }
 | 
			
		||||
      else
 | 
			
		||||
@@ -42,23 +61,24 @@ class BbbController < ApplicationController
 | 
			
		||||
          user_is_moderator: true
 | 
			
		||||
        }
 | 
			
		||||
      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[:hook_url] = "#{base_url}/callback"
 | 
			
		||||
 | 
			
		||||
      bbb_res = bbb_join_url(
 | 
			
		||||
        params[:id],
 | 
			
		||||
        meeting_id,
 | 
			
		||||
        params[:name],
 | 
			
		||||
        options
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
      # the user can join the meeting
 | 
			
		||||
      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
 | 
			
		||||
      else
 | 
			
		||||
        NotifyUserWaitingJob.perform_later(params[:id], params[:name])
 | 
			
		||||
        NotifyUserWaitingJob.perform_later(meeting_id, params[:name])
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      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'
 | 
			
		||||
  post '/:resource/:id/callback', to: 'bbb#callback' #, 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'}
 | 
			
		||||
  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'}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user