diff options
| author | Teddy Wing | 2012-05-30 19:36:43 -0400 |
|---|---|---|
| committer | Teddy Wing | 2012-05-30 19:36:43 -0400 |
| commit | fb801ab393a47cdc1bae3af063845f52dbdd258a (patch) | |
| tree | 74352c0f6d83f5f4c2912f35ed2516741e6bd8f0 | |
| parent | 3d71d19460c2dc28c27c4623957feb842baf6ce2 (diff) | |
| download | inboxes-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.rb | 4 | ||||
| -rw-r--r-- | app/controllers/inboxes/inboxes_settings_controller.rb | 8 | ||||
| -rw-r--r-- | app/models/inboxes_setting.rb | 5 | ||||
| -rw-r--r-- | config/routes.rb | 5 | ||||
| -rw-r--r-- | lib/generators/inboxes/templates/install.rb | 8 |
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 |
