store previously joined authenticated meetings

This commit is contained in:
Zachary Chai 2017-02-02 14:35:41 -05:00
parent 126993dc08
commit 5a29a344fe
4 changed files with 46 additions and 14 deletions

View File

@ -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('<li><a class="fill-meeting-name">'+joinedMeetings[i]+'</a></li>');
}
}
if ($('input.meeting-name').val() !== '') {
$('input.meeting-name').trigger('input');
}
}
Recordings.getInstance().refresh();
Recordings.getInstance().setupActionHandlers();
};

View File

@ -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 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

View File

@ -14,13 +14,15 @@
// You should have received a copy of the GNU Lesser General Public License along
// with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
.meetings {
.previously-joined {
.previously-joined {
list-style-type: none;
margin:auto;
width: 200px;
padding: 0;
}
}
.meetings {
}
.rooms {

View File

@ -31,6 +31,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<div class="center-block center-panel-content-size col-xs-12">
<% if admin? %>
<%= render 'shared/meeting_name_form' %>
<div class="row">
<%= render 'landing/previously_joined' %>
</div>
<div class="row">
<%= render 'landing/invite_join' %>
</div>