[Xfce4-commits] <cafe:master> Allow general member information to be changed.
Jannis Pohlmann
noreply at xfce.org
Sun Mar 13 02:18:01 CET 2011
Updating branch refs/heads/master
to ac13008b9fac334cddd47a95bca2b413b51ca396 (commit)
from 02f3c9e8130180058284883c4ac75a58b84c06f9 (commit)
commit ac13008b9fac334cddd47a95bca2b413b51ca396
Author: Jannis Pohlmann <jannis at xfce.org>
Date: Sun Mar 13 02:16:14 2011 +0100
Allow general member information to be changed.
examples/xfce-foundation/config.ru | 24 ++++++++++++------------
lib/controllers/members.rb | 30 ++++++++++++++++++++++++++++--
lib/views/member.erb | 17 ++++++++++-------
lib/views/stylesheet.sass | 15 ++++++++++++---
4 files changed, 62 insertions(+), 24 deletions(-)
diff --git a/examples/xfce-foundation/config.ru b/examples/xfce-foundation/config.ru
index 54d165f..9fabfdb 100644
--- a/examples/xfce-foundation/config.ru
+++ b/examples/xfce-foundation/config.ru
@@ -20,22 +20,22 @@ require '../../lib/cafe'
# create dummy users
user = Cafe::Models::Member.first_or_create(
- :fullname => 'Christoph Wickert',
- :email => 'christoph.wickert at googlemail.com',
- :password => 'test',
- :address => 'Foo 123
-D12393 Wherever
+ { :email => 'christoph.wickert at googlemail.com' },
+ { :fullname => 'Christoph Wickert',
+ :password => 'test',
+ :address => 'Foo 123
+D-12393 Wherever
Germany',
- :member_since => '2011-02-06'
+ :member_since => '2011-02-06' }
)
user.save
user = Cafe::Models::Member.first_or_create(
- :fullname => 'Jannis Pohlmann',
- :email => 'jannis at xfce.org',
- :password => 'test',
- :address => 'Foo 123
-23123 Lübeck',
- :member_since => '2011-02-06'
+ { :email => 'jannis at xfce.org' },
+ { :fullname => 'Jannis Pohlmann',
+ :password => 'test',
+ :address => 'Foo 123
+23123 Lübeck',
+ :member_since => '2011-02-06' }
)
user.save
diff --git a/lib/controllers/members.rb b/lib/controllers/members.rb
index 2f1f8d3..c8f191c 100644
--- a/lib/controllers/members.rb
+++ b/lib/controllers/members.rb
@@ -11,13 +11,39 @@ module Cafe
app.get '/member/:id' do
authorization_required
- @member = Member.first(params[:id])
+ @member = Member.get(params[:id])
view :member
end
app.post '/member/:id/information' do
authorization_required
- @member = Member.first(params[:id])
+ @member = Member.get(params[:id])
+
+ error_set(:fullname, 'No name specified') if params[:fullname].empty?
+ error_set(:email, 'No email address specified') if params[:email].empty?
+ error_set(:address, 'No address specified') if params[:address].empty?
+ error_set(:member_since, 'No membership start date specified') if params[:member_since].empty?
+
+ unless params[:new_password_repeat].empty?
+ if params[:new_password] != params[:new_password_repeat]
+ error_set(:new_password, 'Passwords did not match')
+ end
+ end
+
+ unless error_set?
+ @member.fullname = params[:fullname]
+ @member.email = params[:email]
+ @member.address = params[:address]
+ @member.member_since = params[:member_since]
+ unless params[:new_password_repeat].empty?
+ @member.password = params[:new_password]
+ end
+ @member.save
+
+ redirect '/members'
+ end
+
+ view :member
end
end
diff --git a/lib/views/member.erb b/lib/views/member.erb
index 5f54f8f..8f8fccc 100644
--- a/lib/views/member.erb
+++ b/lib/views/member.erb
@@ -5,31 +5,34 @@
<p>
<label for="fullname">Full name:</label>
<input type="text" id="fullname" name="fullname" value="<%= @member.fullname %>"/>
+ <% if error(:fullname) %><span class="error"><%= error(:fullname) %></span><% end %>
</p>
<p>
<label for="email">Email address:</label>
<input type="text" id="email" name="email" value="<%= @member.email %>"/>
+ <% if error(:email) %><span class="error"><%= error(:email) %></span><% end %>
</p>
<p>
- <label for="email">Email address:</label>
- <input type="text" id="email" name="email" value="<%= @member.email %>"/>
+ <label for="address">Address:</label>
+ <textarea id="address" name="address"><%= @member.address %></textarea>
</p>
+ <% if error(:address) %><p class="error"><span class="placeholder"> </span><%= error(:address) %></p><% end %>
<p>
<label for="new_password">Password:</label>
<input type="password" id="new_password" name="new_password" value=""/>
+ <% if error(:new_password) %><span class="error"><%= error(:new_password) %></span><% end %>
</p>
<p>
<label for="new_password">Password (confirmation):</label>
<input type="password" id="new_password_repeat" name="new_password_repeat" value=""/>
- </p>
- <p>
- <label for="address">Address:</label>
- <textarea id="address" name="address" style="height:10em;"><%= @member.address %></textarea>
+ <% unless params.has_key?(:new_password) %>
+ <span class="info">Leave empty for no password change</span>
+ <% end %>
</p>
<p>
<label for="member_since">Member since:</label>
<input type="text" id="member_since" name="member_since" value="<%= @member.member_since %>"/>
- Format: YYYY-MM-DD
+ <span class="info">Format: YYYY-MM-DD</span>
</p>
<p><span class="placeholder"> </span> <input type="submit" value="Save"/></p>
</form>
diff --git a/lib/views/stylesheet.sass b/lib/views/stylesheet.sass
index 68f870b..82e3e57 100755
--- a/lib/views/stylesheet.sass
+++ b/lib/views/stylesheet.sass
@@ -93,6 +93,9 @@ fieldset
p
padding: 0em
+ p.error
+ margin-top: -1em
+
label, span.placeholder
display: block
float: left
@@ -110,6 +113,7 @@ fieldset
height: 2em
input[type=text]
+ width: 20em
border: thin solid rgb(150,150,150)
line-height: 2em
padding:
@@ -121,10 +125,15 @@ fieldset
textarea
@extend input[type=text]
- width: 60%
+ width: 40em
+ height: 10em
+
+ span.error
+ padding-left: 0.5em
- span.error, span.info
- padding-left: 1em
+ span.info
+ @extend span.error
+ font-style: italic
.error
color: red
More information about the Xfce4-commits
mailing list