diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index 76345f7..8b83656 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -1164,3 +1164,25 @@ div.fieldWithErrors {
font-style: italic;
padding-left: 0.5em;
}
+
+
+/* pushover */
+.pushover_button {
+ box-sizing: border-box;
+ background-color: #eee;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAJQCeAPHNVUx7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wEPAh02ee0QVwAAACZpVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBNYWOV5F9bAAABqElEQVQ4y62TvUtbURjGf+fek2vQpMF2ED9QkfpR6VLaDoIEF0UKWQRBQ+yQP6GDU0Xw4y/obOgg6dDSJVS61MlBcXFQB6M1BsF+IES9NnrzcRy8xpvrBwH7bOflfc553+d5jsCF9tiRDwgBEaDXLi8B80AiGQ2Yzn7hIo8Cce5HOBkNfLo6aA7ydAVkgLjdez3BrS8rRbBJEmyU+AyBVVDE1i1SJ6psEmHvfOLktj0SjL/2snKQx8wpNg+LBJt0RjoN+j6bqOvN/ZotWAldtYK5gWpmV84YbPUw2ePlb7bI73+Kep+OLFONkGarXcK7l16+7+V57BW8qJMs7Ob5k4VQm4fVXzlyquyGiHRYBcC+WWQxnSP63AAgtn7O0FNJ9xOd0W+nbkF7pbsytXxOQw30N0t2MgX6Wzy8qtMJL5zy81jdsETaIXnjLL7trkLqGl+2svxI5/mwZt1l6ZJmJ6yEGqkYbveQOioQ2yiz7TbMa0DCWRnuMPBXaXzcsJx23YWEZmc7fJkqxdgzg8xZka/bFhVE2hSuKL+nMswko4GJ//KZxEO/8wVmfpjJTWeCTQAAAABJRU5ErkJggg==) 2px 2px no-repeat, linear-gradient(#FFF, #DEDEDE);
+ border: 1px solid #CCC;
+ border-radius: 3px;
+ color: #333;
+ display: inline-block;
+ font: 11px/18px "Helvetica Neue",Arial,sans-serif;
+ font-weight: bold;
+ cursor: pointer;
+ height: 22px;
+ padding-left: 20px;
+ padding-right: 5px;
+ overflow: hidden;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5);
+ text-decoration: none;
+ vertical-align: middle;
+}
diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb
index b79883e..ab4fc32 100644
--- a/app/controllers/settings_controller.rb
+++ b/app/controllers/settings_controller.rb
@@ -19,6 +19,50 @@ class SettingsController < ApplicationController
return redirect_to settings_path
end
+ def pushover
+ if !Pushover.SUBSCRIPTION_CODE
+ flash[:error] = "This site is not configured for Pushover"
+ return redirect_to "/settings"
+ end
+
+ session[:pushover_rand] = SecureRandom.hex
+
+ return redirect_to Pushover.subscription_url({
+ :success => "#{Rails.application.root_url}settings/pushover_callback?" <<
+ "rand=#{session[:pushover_rand]}",
+ :failure => "#{Rails.application.root_url}settings/",
+ })
+ end
+
+ def pushover_callback
+ if !session[:pushover_rand].to_s.present?
+ flash[:error] = "No random token present in session"
+ return redirect_to "/settings"
+ end
+
+ if !params[:rand].to_s.present?
+ flash[:error] = "No random token present in URL"
+ return redirect_to "/settings"
+ end
+
+ if params[:rand].to_s != session[:pushover_rand].to_s
+ raise "rand param #{params[:rand].inspect} != " <<
+ session[:pushover_rand].inspect
+ end
+
+ @user.pushover_user_key = params[:pushover_user_key].to_s
+ @user.save!
+
+ if @user.pushover_user_key.present?
+ flash[:success] = "Your account is now setup for Pushover notifications."
+ else
+ flash[:success] = "Your account is no longer setup for Pushover " <<
+ "notifications."
+ end
+
+ return redirect_to "/settings"
+ end
+
def update
@edit_user = @user.clone
@@ -37,7 +81,6 @@ private
:username, :email, :password, :password_confirmation, :about,
:email_replies, :email_messages, :email_mentions,
:pushover_replies, :pushover_messages, :pushover_mentions,
- :pushover_user_key, :pushover_device, :pushover_sound,
:mailing_list_mode
)
end
diff --git a/app/models/user.rb b/app/models/user.rb
index ad99812..e1fe79a 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -221,8 +221,7 @@ class User < ActiveRecord::Base
def pushover!(params)
if self.pushover_user_key.present?
- Pushover.push(self.pushover_user_key, self.pushover_device,
- params.merge({ :sound => self.pushover_sound.to_s }))
+ Pushover.push(self.pushover_user_key, params)
end
end
diff --git a/app/views/settings/index.html.erb b/app/views/settings/index.html.erb
index f496db1..9bb0f70 100644
--- a/app/views/settings/index.html.erb
+++ b/app/views/settings/index.html.erb
@@ -38,33 +38,6 @@
-
-
-
+ <%= f.submit "Save Account Settings" %> +
+ +