diff --git a/app/controllers/admin/admin_controller.rb b/app/controllers/admin/admin_controller.rb index 168e5a89..21854844 100644 --- a/app/controllers/admin/admin_controller.rb +++ b/app/controllers/admin/admin_controller.rb @@ -15,9 +15,10 @@ def index def update max_rooms = params[:setting][:max_rooms].to_i - public_site = params[:setting][:public_site] == "1" + public_site = params[:setting][:public_site] == "1" + disable_conn_disconn_activity = params[:setting][:disable_conn_disconn_activity] == "1" - Setting.set_values(:max_rooms => max_rooms, :public_site => public_site) + Setting.set_values(:max_rooms => max_rooms, :public_site => public_site, :disable_conn_disconn_activity => disable_conn_disconn_activity) redirect_to :admin_root end @@ -47,8 +48,8 @@ def toggle_admin user.save! - render :json => user, :status => 200 + render :json => user, :status => 200 end - + end -end \ No newline at end of file +end diff --git a/app/models/channel.rb b/app/models/channel.rb index 10e2eefd..425d4f6d 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -6,7 +6,7 @@ class Channel < ActiveRecord::Base validates :name, :presence => { :message => "Room name cannot be blank"}, :uniqueness => { :message => "Room name is already taken" } validates :user, :presence => { :message => "Room must belong to a user"} - + before_create :ensure_app_max_rooms def ensure_app_max_rooms @@ -26,14 +26,18 @@ def user_connect(user) activity = Channel.primary.activities.new activity.user_id = user.id activity.action = "connect" - activity.save! + unless Setting.my_settings.disable_conn_disconn_activity + activity.save! + end end def user_disconnect(user) activity = Channel.primary.activities.new activity.user_id = user.id activity.action = "disconnect" - activity.save! + unless Setting.my_settings.disable_conn_disconn_activity + activity.save! + end end end end diff --git a/app/models/setting.rb b/app/models/setting.rb index ded7d6a7..99360fe0 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -12,6 +12,10 @@ def max_rooms self.values[:max_rooms] end + def disable_conn_disconn_activity + self.values[:disable_conn_disconn_activity] + end + def public_site? self.values[:public_site] end @@ -36,8 +40,13 @@ def validate_public_site !!self.values[:public_site] == self.values[:public_site] unless self.new_record? end + # make sure disable connect/disconnect a boolean + def validate_conn_disconn + !!self.values[:disable_conn_disconn_activity] == self.values[:disable_conn_disconn_activity] unless self.new_record? + end + def self.default_values - {:max_rooms => Kandan::Config.options[:max_rooms], :public_site => Kandan::Config.options[:public_site]} + {:max_rooms => Kandan::Config.options[:max_rooms], :public_site => Kandan::Config.options[:public_site], :disable_conn_disconn_activity => Kandan::Config.options[:disable_conn_disconn_activity]} end # Helper methods to be used while we don't need to deal with multi-tenancy diff --git a/app/views/admin/admin/index.html.erb b/app/views/admin/admin/index.html.erb index 8022621a..b2c9b658 100644 --- a/app/views/admin/admin/index.html.erb +++ b/app/views/admin/admin/index.html.erb @@ -13,6 +13,12 @@ <%= f.label :max_rooms do %> Max number of rooms <%= f.number_field :max_rooms, :class => "input-mini pull-right" %> <% end %> + + <%= f.label :disable_conn_disconn_activity do %> + <%= f.check_box :disable_conn_disconn_activity, :class => "switch" %> disable connect/disconnect activity + + <% end %> + <%= f.label :public_site do %> <%= f.check_box :public_site, :class => "switch" %> Public site diff --git a/config/kandan_settings.yml b/config/kandan_settings.yml index 2387d8b8..3e448289 100644 --- a/config/kandan_settings.yml +++ b/config/kandan_settings.yml @@ -12,6 +12,8 @@ :max_rooms: 99 +disable_conn_disconn_activity: true + :public_site: true :avatar_url: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=%{fallback}