aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2012-05-30 19:36:43 -0400
committerTeddy Wing2012-05-30 19:36:43 -0400
commitfb801ab393a47cdc1bae3af063845f52dbdd258a (patch)
tree74352c0f6d83f5f4c2912f35ed2516741e6bd8f0
parent3d71d19460c2dc28c27c4623957feb842baf6ce2 (diff)
downloadinboxes-fb801ab393a47cdc1bae3af063845f52dbdd258a.tar.bz2
Settings: added a settings module so that users can turn email notifications for new messages on or off.
-rw-r--r--app/controllers/inboxes/discussions_controller.rb4
-rw-r--r--app/controllers/inboxes/inboxes_settings_controller.rb8
-rw-r--r--app/models/inboxes_setting.rb5
-rw-r--r--config/routes.rb5
-rw-r--r--lib/generators/inboxes/templates/install.rb8
5 files changed, 30 insertions, 0 deletions
diff --git a/app/controllers/inboxes/discussions_controller.rb b/app/controllers/inboxes/discussions_controller.rb
index d23f5a5..13dae3d 100644
--- a/app/controllers/inboxes/discussions_controller.rb
+++ b/app/controllers/inboxes/discussions_controller.rb
@@ -39,6 +39,10 @@ class Inboxes::DiscussionsController < Inboxes::BaseController
render :action => "new"
end
end
+
+ def settings
+ @settings = InboxesSetting.find_or_create_by_user_id(current_user)
+ end
private
diff --git a/app/controllers/inboxes/inboxes_settings_controller.rb b/app/controllers/inboxes/inboxes_settings_controller.rb
new file mode 100644
index 0000000..6851791
--- /dev/null
+++ b/app/controllers/inboxes/inboxes_settings_controller.rb
@@ -0,0 +1,8 @@
+class Inboxes::InboxesSettingsController < Inboxes::BaseController
+ def update
+ @settings = InboxesSetting.find_or_create_by_user_id(current_user)
+ @settings.update_attributes(:send_email_notification => params[:inboxes_setting][:send_email_notification])
+
+ redirect_to '/discussions/settings'
+ end
+end
diff --git a/app/models/inboxes_setting.rb b/app/models/inboxes_setting.rb
new file mode 100644
index 0000000..1581131
--- /dev/null
+++ b/app/models/inboxes_setting.rb
@@ -0,0 +1,5 @@
+class InboxesSetting < ActiveRecord::Base
+
+ attr_accessible :send_email_notification
+
+end
diff --git a/config/routes.rb b/config/routes.rb
index 3ecb989..a23ed52 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,5 +1,10 @@
Rails.application.routes.draw do
+ scope :module => :inboxes do
+ match '/discussions/settings' => 'discussions#settings'
+ resources :inboxes_settings, :only => [:update]
+ end
+
resources :discussions, :except => :edit, :module => :inboxes do
resources :messages, :only => [:create, :index]
resources :speakers, :only => [:create, :destroy]
diff --git a/lib/generators/inboxes/templates/install.rb b/lib/generators/inboxes/templates/install.rb
index 472cd95..18a8a6c 100644
--- a/lib/generators/inboxes/templates/install.rb
+++ b/lib/generators/inboxes/templates/install.rb
@@ -20,11 +20,19 @@ class InstallInboxes < ActiveRecord::Migration
t.timestamps
end
+
+ create_table :inboxes_settings do |t|
+ t.references :user
+ t.boolean :send_email_notification, :default => 1
+
+ t.timestamps
+ end
end
def self.down
drop_table :speakers
drop_table :discussions
drop_table :messages
+ drop_table :inboxes_settings
end
end