forked from External/greenlight
add preferences and customization (#171)
This commit is contained in:
committed by
Jesus Federico
parent
45c55efd04
commit
24c8952e59
@ -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
|
||||
|
41
app/controllers/users_controller.rb
Normal file
41
app/controllers/users_controller.rb
Normal 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
|
@ -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'])
|
||||
|
42
app/views/landing/preferences.html.erb
Normal file
42
app/views/landing/preferences.html.erb
Normal 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>
|
@ -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'>
|
||||
|
@ -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>
|
||||
|
Reference in New Issue
Block a user