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