diff --git a/app/assets/javascripts/landing.js b/app/assets/javascripts/landing.js index 92058407..81becb6f 100644 --- a/app/assets/javascripts/landing.js +++ b/app/assets/javascripts/landing.js @@ -195,7 +195,7 @@ var initRooms = function() { displayRoomURL(); - $('.center-panel-wrapper').on('keyup', '.meeting-name', function (event, msg) { + $('.center-panel-wrapper').on('input', '.meeting-name', function (event, msg) { var newId = $(this).val(); Meeting.getInstance().setMeetingId(newId); $('.meeting-url').val(Meeting.getInstance().getURL()); @@ -207,6 +207,27 @@ } }); + if ($(".page-wrapper.rooms").data('main-room')) { + $('.center-panel-wrapper').on('click', '.fill-meeting-name', function (event, msg) { + var name = $(this).text(); + $('input.meeting-name').val(name).trigger('input'); + }); + + $('ul.previously-joined').empty(); + var joinedMeetings = localStorage.getItem('joinedRooms'); + if (joinedMeetings && joinedMeetings.length > 0) { + joinedMeetings = joinedMeetings.split(','); + $('.center-panel-wrapper .previously-joined-wrapper').removeClass('hidden'); + + for (var i = joinedMeetings.length - 1; i >= 0; i--) { + $('ul.previously-joined').append('
  • '+joinedMeetings[i]+'
  • '); + } + } + if ($('input.meeting-name').val() !== '') { + $('input.meeting-name').trigger('input'); + } + } + Recordings.getInstance().refresh(); Recordings.getInstance().setupActionHandlers(); }; diff --git a/app/assets/javascripts/meeting.coffee b/app/assets/javascripts/meeting.coffee index 05b4da94..4e678031 100644 --- a/app/assets/javascripts/meeting.coffee +++ b/app/assets/javascripts/meeting.coffee @@ -63,21 +63,27 @@ class @Meeting # The response object contains the URL to join the meeting getJoinMeetingResponse: -> return $.get @getURL() + "/join?name=" + @userName, (data) => - if data.messageKey == 'ok' && @type == 'meetings' - # update name used to join meeting - localStorage.setItem('lastJoinedName', @getUserName()) + # update name used to join meeting + localStorage.setItem('lastJoinedName', @getUserName()) - # update previously joined meetings on client + if data.messageKey == 'ok' + key = '' + if @type == 'meetings' + key = 'joinedMeetings' + else if @type == 'rooms' + key = 'joinedRooms' + + # update previously joined meetings/rooms on client try - joinedMeetings = localStorage.getItem('joinedMeetings') || '' + joinedMeetings = localStorage.getItem(key) || '' joinedMeetings = joinedMeetings.split(',') joinedMeetings = joinedMeetings.filter (item) => item != @meetingId.toString() if joinedMeetings.length >= 5 joinedMeetings.splice(0, 1) joinedMeetings.push(@meetingId) - localStorage.setItem('joinedMeetings', joinedMeetings.join(',')) + localStorage.setItem(key, joinedMeetings.join(',')) catch err - localStorage.setItem('joinedMeetings', @meetingId) + localStorage.setItem(key, @meetingId) getMeetingId: -> return @meetingId diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 0b214e16..d82be8ae 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -14,13 +14,15 @@ // You should have received a copy of the GNU Lesser General Public License along // with BigBlueButton; if not, see . +.previously-joined { + list-style-type: none; + margin:auto; + width: 200px; + padding: 0; +} + .meetings { - .previously-joined { - list-style-type: none; - margin:auto; - width: 200px; - padding: 0; - } + } .rooms { diff --git a/app/views/landing/_rooms_center_panel.html.erb b/app/views/landing/_rooms_center_panel.html.erb index c87e4e8c..bf88c636 100644 --- a/app/views/landing/_rooms_center_panel.html.erb +++ b/app/views/landing/_rooms_center_panel.html.erb @@ -31,6 +31,9 @@ with BigBlueButton; if not, see .
    <% if admin? %> <%= render 'shared/meeting_name_form' %> +
    + <%= render 'landing/previously_joined' %> +
    <%= render 'landing/invite_join' %>