Commit c17758fe
Changed files (6)
app
controllers
views
config
app/controllers/passwords_controller.rb
@@ -8,6 +8,8 @@ class PasswordsController < ApplicationController
def update
user = current_user
if user.change_password(params[:user][:password], params[:user][:password_confirmation])
+ sign_in @user, :bypass => true
+ flash[:notice] = "Your password has been updated successfully!"
render :index
else
flash[:error] = t(:passwords_do_not_match)
app/controllers/settings_controller.rb
@@ -2,8 +2,16 @@ class SettingsController < ApplicationController
before_filter :authenticate_user!
def index
+ @user = current_user
end
def update
+ @user = current_user
+ @user.interest_ids = params[:user][:interest_ids] ||= []
+ if @user.update_without_password(params[:user])
+ redirect_to settings_path, :notice => 'Your settings have been updated successfully!'
+ else
+ render :index
+ end
end
end
app/views/passwords/index.html.erb
@@ -3,7 +3,7 @@
<div class="row">
<div class="span12">
<h3>Change Password</h3>
- <%= form_for(@user, :url => passwords_path(@user), :html => { :method => :post, :class => "form-horizontal" }) do |f| %>
+ <%= form_for(@user, :url => password_path(@user), :html => { :method => :put, :class => "form-horizontal" }) do |f| %>
<div class="control-group">
<%= f.label :password, "New password", :class => "control-label" %>
<div class="controls">
app/views/settings/index.html.erb
@@ -0,0 +1,86 @@
+<% provide(:title, "My Settings") -%>
+<% content_for :javascript do %>
+<script type="text/javascript" charset="utf-8">
+$(function(){
+ DeviseUsers.Edit.initialize(jQuery);
+});
+</script>
+<% end %>
+
+<%= render :partial => "shared/account_nav" %>
+
+<div class="row">
+ <div class="span12">
+ <h1>My Settings</h1>
+ <%= form_for(@user, :url => setting_path(@user), :html => { :method => :put, :class => "form-horizontal" }) do |f| %>
+ <fieldset>
+ <div class="control-group">
+ <%= f.label :name, :class => "control-label" %>
+ <div class="controls"> <%= f.text_field :name, :class => "input-xlarge" %> </div>
+ </div>
+ <div class="control-group">
+ <%= f.label :email, :class => "control-label" %>
+ <div class="controls"> <%= f.email_field :email, :class => "input-xlarge" %> </div>
+ </div>
+ <div class="control-group">
+ <%= f.label :city, :class => 'control-label' %>
+ <div class="controls"> <%= f.text_field :city, :class => "input-xlarge" %> </div>
+ </div>
+ <div class="control-group">
+ <%= f.label :website, :class => "control-label" %>
+ <div class="controls"> <%= f.url_field :website, :class => "input-xlarge, url", :placeholder => "http://cakeside.com" %> </div>
+ </div>
+ <div class="control-group">
+ <%= f.label :twitter, "Twitter username @", :class => "control-label" %>
+ <div class="controls"> <%= f.text_field :twitter, :class => "input-xlarge", :placeholder => "without the @ sign", :maxlength => "255" %> </div>
+ </div>
+ <div class="control-group">
+ <%= f.label :facebook, :class => "control-label" %>
+ <div class="controls"> <%= f.text_field :facebook, :class => "input-xlarge", :placeholder => "http://www.facebook.com/your_profile", :maxlength => "255" %> </div>
+ </div>
+ <p class="help-block">
+ <strong>Note:</strong> Help us better serve you by checking off what best describes you?
+ </p>
+ <div class="control-group">
+ <label class="control-label">About me:</label>
+ <div class="controls">
+ <% for interest in Interest.all %>
+ <label class="checkbox">
+ <%= check_box_tag "user[interest_ids][]", interest.id, current_user.interests.include?(interest) %>
+ <%= interest.name %>
+ </label>
+ <% end %>
+ </div>
+ </div><!-- /control-group -->
+ <div class="form-actions">
+ <input type="submit" class="btn btn-primary" value="Save changes" />
+ <button type="reset" class="btn">Cancel</button>
+ </div>
+ <%= f.hidden_field :latitude %>
+ <%= f.hidden_field :longitude %>
+ </fieldset>
+ <% end %>
+ </div>
+</div>
+<div id="change-avatar-dialog" class="modal hide fade">
+ <%= form_tag(avatars_path(current_user), :method => "post", :multipart => true) do |f| %>
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">x</button>
+ <h3>Change My Picture</h3>
+ </div>
+ <div class="modal-body">
+ <p style="margin-left:auto; margin-right:auto;text-align:center;">
+ <%= avatar_for(current_user) %>
+ </p>
+ <p style="margin-left:auto; margin-right:auto;text-align:center;">
+ <%= fields_for Avatar.new do |f| %>
+ <%= f.file_field :avatar, :rel => avatars_path(current_user) %>
+ <% end %>
+ </p>
+ </div>
+ <div class="modal-footer">
+ <input type="submit" class="btn btn-primary" value="Save changes" />
+ <a href="#" class="btn" data-dismiss="modal">Close</a>
+ </div>
+ <% end %>
+</div>
config/routes.rb
@@ -38,13 +38,13 @@ Cake::Application.routes.draw do
# /users
devise_for :users, :controllers => {:registrations => 'registrations'}
devise_for :user, :path => '', :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }
- resources :avatars, :only => [:create]
# sitemap
match "/sitemap.xml", :to => "sitemap#index", :defaults => {:format => :xml}
resources :settings, :only => [:index, :update]
resources :passwords, :only => [:index, :update]
+ resources :avatars, :only => [:show, :create]
ActiveAdmin.routes(self)