add preferences and customization (#171)

This commit is contained in:
Joshua Arts
2017-05-11 09:58:51 -04:00
committed by Jesus Federico
parent 45c55efd04
commit 24c8952e59
14 changed files with 160 additions and 10 deletions

View File

@ -55,6 +55,19 @@ class LandingController < ApplicationController
end
helper_method :admin?
def preferences
@user = current_user
end
def landing_background
if !current_user || !current_user.background? then
(ENV['LANDING_BACKGROUND'].present?) ? ENV['LANDING_BACKGROUND'] : 'greenlight_background.png'
else
current_user.background.url
end
end
helper_method :landing_background
private
def render_meeting

View File

@ -0,0 +1,41 @@
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
#
# Copyright (c) 2016 BigBlueButton Inc. and by respective authors (see below).
#
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
class UsersController < ActionController::Base
# For updating a users background image.
def update
# Make sure they actually select a file.
if params[:user] then
@user = User.find(params[:id])
@user.assign_attributes(background: user_params[:background])
flash[:danger] = t('invalid_file') unless @user.save
else
flash[:danger] = t('no_file')
end
# Reload the page to apply changes and show flash messages.
redirect_back(fallback_location: root_path)
end
private
def user_params
params.require(:user).permit(:background)
end
end

View File

@ -17,6 +17,9 @@
class User < ApplicationRecord
before_create :set_encrypted_id
has_attached_file :background
validates_attachment :background,
:content_type => { :content_type => ["image/jpg", "image/jpeg", "image/gif", "image/png"] }
def self.from_omniauth(auth_hash)
user = find_or_initialize_by(uid: auth_hash['uid'], provider: auth_hash['provider'])

View File

@ -0,0 +1,42 @@
<%
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
# Copyright (c) 2016 BigBlueButton Inc. and by respective authors (see below).
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
%>
<div class="center-panel-wrapper">
<%= render layout: 'shared/center_panel' do %>
<div class="center-block center-panel-content-size col-xs-12">
<h1><%= t('preferences') %></h1>
<br>
<% if @user %>
<div class="upload-form">
<p> <%= t('background_image') + ": " + (@user.background_file_name || '') %> </p>
<%= form_for @user, :html => { :multipart => true } do |f| %>
<div class="form-group">
<%= f.file_field :background, class: 'form-control'%>
</div>
<%= f.submit t('upload'), class: 'btn btn-info' %>
<% end %>
</div>
<% else %>
<h3><%= t('preferences_logged') %></h3>
<% end %>
<br><br>
<%= link_to t('back'), @user ? meeting_room_url(resource: 'rooms', id: @user.encrypted_id) : root_url, class: 'btn btn-info' %>
</div>
<% end %>
</div>

View File

@ -48,7 +48,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<body class="app-background" data-controller="<%= params[:controller] %>" data-action="<%= params[:action] %>"
data-resource="<%= params[:resource] %>"
data-current-user="<%= current_user.try(:encrypted_id) %>"
style="background-image:url(<%= image_path('greenlight_background.png') if params[:controller] == 'landing' %>);">
style="background-image:url(<%= image_path(landing_background) if params[:controller] == 'landing' %>);">
<!-- Messages -->
<div id='alerts'>
<div class='flash-alerts'>

View File

@ -25,7 +25,8 @@
</div>
<%= yield :footer %>
<div class="help-link">
<%= link_to t('help'), 'http://bigbluebutton.org/videos/', target: '_blank' %>
<%= link_to t('help'), 'http://bigbluebutton.org/videos/', target: '_blank' %> |
<%= link_to t('preferences'), preferences_path %>
</div>
</div>
</div>