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}