diff --git a/app/assets/javascripts/landing.js b/app/assets/javascripts/landing.js index da819eb0..7311db5f 100644 --- a/app/assets/javascripts/landing.js +++ b/app/assets/javascripts/landing.js @@ -32,7 +32,10 @@ Meeting.clear(); var nameInput = $('.meeting-user-name'); if (!nameInput.val()) { - nameInput.val(localStorage.getItem('lastJoinedName')); + var lastName = localStorage.getItem('lastJoinedName'); + if (lastName !== 'undefined') { + nameInput.val(lastName); + } } // setup event handlers @@ -40,18 +43,25 @@ var name = $('.meeting-user-name').val(); Meeting.getInstance().setName(name); Meeting.getInstance().setId($(".page-wrapper").data('id')); - var jqxhr = Meeting.getInstance().getJoinMeetingResponse(); - jqxhr.done(function(data) { - if (data.messageKey === 'wait_for_moderator') { - waitForModerator(Meeting.getInstance().getURL()); - } else { - $(location).attr("href", data.response.join_url); - } - }); - jqxhr.fail(function(xhr, status, error) { - console.info("meeting join failed"); - }); + // a user name is set, join the user into the session + if (name !== undefined && name !== null) { + var jqxhr = Meeting.getInstance().getJoinMeetingResponse(); + jqxhr.done(function(data) { + if (data.messageKey === 'wait_for_moderator') { + waitForModerator(Meeting.getInstance().getURL()); + } else { + $(location).attr("href", data.response.join_url); + } + }); + jqxhr.fail(function(xhr, status, error) { + console.info("meeting join failed"); + }); + + // if not user name was set it means we must ask for a name + } else { + $(location).attr("href", Meeting.getInstance().getURL()); + } }); $('.center-panel-wrapper').on ('keypress', '.meeting-user-name', function (event) { diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 71a7f158..928bf1c9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -43,6 +43,11 @@ module ApplicationHelper end end + # Whether the current page is the page of a room/meeting or not + def on_room_or_meeting_page? + params[:id].present? + end + def version Greenlight::VERSION rescue diff --git a/app/views/shared/_join_form.html.erb b/app/views/shared/_join_form.html.erb index 0c46b2d9..13384e5f 100644 --- a/app/views/shared/_join_form.html.erb +++ b/app/views/shared/_join_form.html.erb @@ -16,12 +16,13 @@ with BigBlueButton; if not, see .
+ + <% if current_user %> - <% @current_user = current_user %> - <%= text_field :current_user, :name, class: 'form-control meeting-user-name', type: 'hidden' %> - <% else %> - <%= text_field :nil, :nil, class: 'form-control meeting-user-name', placeholder: t('enter_name') %> + <%= text_field_tag 'user[name]', current_user.name, class: 'form-control meeting-user-name', type: 'hidden' %> <% end %> + + <% if admin? %> <% if @meeting_running %>
@@ -36,19 +37,33 @@ with BigBlueButton; if not, see .
<% else %> <% end %> - <% elsif current_user %> - <% else %> - - + <% else %> + <%= text_field_tag 'user[name]', '', class: 'form-control meeting-user-name', placeholder: t('enter_name') %> + + + + <% end %> + + + <% else %> + - + <% end %> + <% end %>
diff --git a/config/locales/en-us.yml b/config/locales/en-us.yml index 707aaf6c..998678ac 100644 --- a/config/locales/en-us.yml +++ b/config/locales/en-us.yml @@ -98,6 +98,7 @@ en-US: return_to_room: Return to your personal room session_url_explanation: The meeting will be taking place using the following URL start: Start + start_meeting: Start Meeting your_personal_room: Your Personal Room thumbnails: Thumbnails unlisted: Unlisted