jabe 0.5.9 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/{LICENSE.txt → MIT-LICENSE} +1 -1
  2. data/README.textile +46 -31
  3. data/Rakefile +30 -47
  4. data/app/assets/images/jabe/delete.png +0 -0
  5. data/{public/images → app/assets/images/jabe}/delete_page.png +0 -0
  6. data/{public/images → app/assets/images/jabe}/full_page.png +0 -0
  7. data/{public/images → app/assets/images/jabe}/gravatar.gif +0 -0
  8. data/{public/javascripts → app/assets/javascripts/jabe}/application.js +15 -0
  9. data/{public/javascripts → app/assets/javascripts/jabe}/libs/dd_belatedpng.js +0 -0
  10. data/{public/javascripts → app/assets/javascripts/jabe}/libs/modernizr-1.6.min.js +0 -0
  11. data/{public/javascripts → app/assets/javascripts/jabe}/plugins.js +0 -0
  12. data/app/assets/stylesheets/jabe/application.css +3 -0
  13. data/app/{stylesheets → assets/stylesheets/jabe}/boilerplate.scss +0 -0
  14. data/app/{stylesheets → assets/stylesheets/jabe}/jabe.scss +47 -8
  15. data/app/controllers/jabe/admin/base_controller.rb +7 -0
  16. data/app/controllers/jabe/admin/entries_controller.rb +49 -0
  17. data/app/controllers/jabe/admin/settings_controller.rb +13 -0
  18. data/app/controllers/jabe/application_controller.rb +5 -0
  19. data/app/controllers/jabe/comments_controller.rb +34 -0
  20. data/app/controllers/jabe/entries_controller.rb +30 -0
  21. data/app/controllers/jabe/feed_controller.rb +8 -0
  22. data/app/controllers/jabe/sessions_controller.rb +4 -0
  23. data/app/helpers/jabe/application_helper.rb +25 -0
  24. data/app/mailers/jabe/comment_mailer.rb +12 -0
  25. data/app/models/jabe/admin.rb +11 -0
  26. data/app/models/jabe/comment.rb +35 -0
  27. data/app/models/jabe/entry.rb +22 -0
  28. data/app/models/jabe/settings.rb +14 -0
  29. data/app/views/{admin → jabe/admin}/entries/_form.html.haml +1 -1
  30. data/app/views/{admin → jabe/admin}/entries/edit.html.haml +0 -0
  31. data/app/views/{admin → jabe/admin}/entries/index.html.haml +9 -7
  32. data/app/views/{admin → jabe/admin}/entries/new.html.haml +0 -0
  33. data/app/views/{admin → jabe/admin}/settings/edit.html.haml +2 -1
  34. data/app/views/jabe/comment_mailer/notification.html.erb +19 -0
  35. data/app/views/jabe/confirmations/new.html.erb +15 -0
  36. data/app/views/{entries → jabe/entries}/index.html.haml +4 -3
  37. data/app/views/jabe/entries/show.html.haml +49 -0
  38. data/app/views/{feed → jabe/feed}/index.xml.builder +3 -3
  39. data/app/views/jabe/mailer/confirmation_instructions.html.erb +5 -0
  40. data/app/views/jabe/mailer/reset_password_instructions.html.erb +8 -0
  41. data/app/views/jabe/mailer/unlock_instructions.html.erb +7 -0
  42. data/app/views/jabe/passwords/edit.html.erb +19 -0
  43. data/app/views/jabe/passwords/new.html.erb +15 -0
  44. data/app/views/jabe/registrations/edit.html.erb +22 -0
  45. data/app/views/jabe/registrations/new.html.erb +17 -0
  46. data/app/views/jabe/sessions/new.html.erb +15 -0
  47. data/app/views/jabe/shared/_links.erb +25 -0
  48. data/app/views/jabe/unlocks/new.html.erb +15 -0
  49. data/app/views/layouts/jabe/_flashes.html.haml +3 -0
  50. data/app/views/layouts/{_footer.html.haml → jabe/_footer.html.haml} +0 -0
  51. data/app/views/layouts/jabe/_header.html.haml +4 -0
  52. data/app/views/layouts/jabe/_sidebar.html.haml +21 -0
  53. data/app/views/layouts/jabe/application.html.haml +63 -0
  54. data/{test/dummy/vendor/plugins/acts_as_textiled/init.rb → config/initializers/acts_as_textiled.rb} +2 -1
  55. data/config/initializers/devise.rb +3 -0
  56. data/config/initializers/settings.rb +5 -5
  57. data/config/initializers/simple_form.rb +93 -0
  58. data/config/initializers/time_formats.rb +1 -2
  59. data/config/locales/simple_form.en.yml +24 -0
  60. data/config/routes.rb +10 -5
  61. data/{test/dummy/db/migrate/20101229224027_create_settings.rb → db/migrate/20101230010434_create_settings.rb} +7 -2
  62. data/{lib/generators/jabe/templates/migrations/devise_create_admins.rb → db/migrate/20101230010436_devise_create_admins.rb} +6 -6
  63. data/{test/dummy/db/migrate/20101229224030_create_entries.rb → db/migrate/20101230010437_create_entries.rb} +2 -2
  64. data/{test/dummy/db/migrate/20101229224031_create_comments.rb → db/migrate/20101230010438_create_comments.rb} +3 -4
  65. data/{test/dummy/vendor/plugins/acts_as_textiled/lib/acts_as_textiled.rb → lib/acts_as_textiled/base.rb} +0 -0
  66. data/lib/jabe.rb +7 -15
  67. data/lib/jabe/engine.rb +5 -0
  68. data/lib/jabe/version.rb +3 -0
  69. data/lib/tasks/jabe_tasks.rake +4 -0
  70. metadata +187 -601
  71. data/Gemfile +0 -35
  72. data/Gemfile.lock +0 -214
  73. data/VERSION +0 -1
  74. data/app/controllers/admin/base_controller.rb +0 -3
  75. data/app/controllers/admin/entries_controller.rb +0 -42
  76. data/app/controllers/admin/settings_controller.rb +0 -11
  77. data/app/controllers/comments_controller.rb +0 -25
  78. data/app/controllers/entries_controller.rb +0 -26
  79. data/app/controllers/feed_controller.rb +0 -8
  80. data/app/helpers/jabe_helper.rb +0 -13
  81. data/app/models/admin.rb +0 -9
  82. data/app/models/comment.rb +0 -22
  83. data/app/models/entry.rb +0 -17
  84. data/app/models/settings.rb +0 -7
  85. data/app/stylesheets/_will_paginate.scss +0 -102
  86. data/app/stylesheets/handheld.scss +0 -7
  87. data/app/views/entries/_comment_form.html.haml +0 -3
  88. data/app/views/entries/show.html.haml +0 -38
  89. data/app/views/layouts/_header.html.haml +0 -4
  90. data/app/views/layouts/_sidebar.html.haml +0 -21
  91. data/app/views/layouts/application.html.haml +0 -59
  92. data/config/initializers/sass.rb +0 -5
  93. data/lib/generators/jabe/migrations/migrations_generator.rb +0 -38
  94. data/lib/generators/jabe/stylesheets/stylesheets_generator.rb +0 -9
  95. data/lib/generators/jabe/templates/migrations/add_new_settings.rb +0 -17
  96. data/lib/generators/jabe/templates/migrations/create_comments.rb +0 -20
  97. data/lib/generators/jabe/templates/migrations/create_entries.rb +0 -16
  98. data/lib/generators/jabe/templates/migrations/create_settings.rb +0 -21
  99. data/lib/generators/jabe/templates/migrations/create_slugs.rb +0 -18
  100. data/public/.htaccess +0 -220
  101. data/public/apple-touch-icon.png +0 -0
  102. data/public/blackbird/blackbird.css +0 -80
  103. data/public/blackbird/blackbird.js +0 -365
  104. data/public/blackbird/blackbird.png +0 -0
  105. data/public/crossdomain.xml +0 -25
  106. data/public/javascripts/jquery-ui.js +0 -11511
  107. data/public/javascripts/jquery-ui.min.js +0 -404
  108. data/public/javascripts/jquery.js +0 -7179
  109. data/public/javascripts/jquery.min.js +0 -167
  110. data/public/javascripts/libs/profiling/charts.swf +0 -0
  111. data/public/javascripts/libs/profiling/config.js +0 -59
  112. data/public/javascripts/libs/profiling/yahoo-profiling.css +0 -7
  113. data/public/javascripts/libs/profiling/yahoo-profiling.min.js +0 -39
  114. data/public/javascripts/rails.js +0 -154
  115. data/public/nginx.conf +0 -108
  116. data/public/robots.txt +0 -5
  117. data/test/dummy/app/controllers/application_controller.rb +0 -3
  118. data/test/dummy/app/helpers/application_helper.rb +0 -2
  119. data/test/dummy/config/application.rb +0 -52
  120. data/test/dummy/config/boot.rb +0 -10
  121. data/test/dummy/config/environment.rb +0 -5
  122. data/test/dummy/config/environments/development.rb +0 -26
  123. data/test/dummy/config/environments/production.rb +0 -49
  124. data/test/dummy/config/environments/test.rb +0 -35
  125. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  126. data/test/dummy/config/initializers/devise.rb +0 -142
  127. data/test/dummy/config/initializers/inflections.rb +0 -10
  128. data/test/dummy/config/initializers/mime_types.rb +0 -5
  129. data/test/dummy/config/initializers/secret_token.rb +0 -7
  130. data/test/dummy/config/initializers/session_store.rb +0 -8
  131. data/test/dummy/config/routes.rb +0 -58
  132. data/test/dummy/db/migrate/20101229224028_create_slugs.rb +0 -18
  133. data/test/dummy/db/migrate/20101229224029_devise_create_admins.rb +0 -26
  134. data/test/dummy/db/migrate/20110104004400_add_new_settings.rb +0 -17
  135. data/test/dummy/db/schema.rb +0 -110
  136. data/test/dummy/features/step_definitions/admin_steps.rb +0 -14
  137. data/test/dummy/features/step_definitions/email_steps.rb +0 -194
  138. data/test/dummy/features/step_definitions/entry_steps.rb +0 -54
  139. data/test/dummy/features/step_definitions/support_steps.rb +0 -3
  140. data/test/dummy/features/step_definitions/web_steps.rb +0 -219
  141. data/test/dummy/features/support/blueprints.rb +0 -37
  142. data/test/dummy/features/support/env.rb +0 -59
  143. data/test/dummy/features/support/paths.rb +0 -39
  144. data/test/dummy/spec/spec_helper.rb +0 -0
  145. data/test/dummy/spec/support/blueprints.rb +0 -9
  146. data/test/dummy/vendor/plugins/acts_as_textiled/test/fixtures/author.rb +0 -4
  147. data/test/dummy/vendor/plugins/acts_as_textiled/test/fixtures/story.rb +0 -4
  148. data/test/dummy/vendor/plugins/acts_as_textiled/test/helper.rb +0 -87
  149. data/test/dummy/vendor/plugins/acts_as_textiled/test/textiled_test.rb +0 -145
@@ -0,0 +1,30 @@
1
+ module Jabe
2
+ class EntriesController < ApplicationController
3
+ include ApplicationHelper
4
+
5
+ helper_method :entry, :comment
6
+
7
+ def index
8
+ @entries = Entry.published.
9
+ page(params[:page]).
10
+ per( Jabe::SETTINGS.entries_per_page || 5)
11
+ end
12
+
13
+ def show
14
+ if entry.draft? && ! admin_signed_in?
15
+ render 'public/404.html', :layout => false, :status => 404
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def entry
22
+ @entry ||= Entry.find(params[:id])
23
+ end
24
+
25
+ def comment
26
+ @comment ||= entry.comments.new
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,8 @@
1
+ module Jabe
2
+ class FeedController < ApplicationController
3
+ def index
4
+ @entries = Entry.published.page(params[:page]).
5
+ per( Jabe::SETTINGS.entries_per_page || 5)
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ module Jabe
2
+ class SessionsController < ::Devise::SessionsController
3
+ end
4
+ end
@@ -0,0 +1,25 @@
1
+ module Jabe
2
+ module ApplicationHelper
3
+ include PublicEntryUrl
4
+
5
+ def default_gravatar_url
6
+ "#{request.protocol}#{request.host_with_port}#{asset_path('jabe/gravatar.gif')}"
7
+ end
8
+
9
+ def page_title(title)
10
+ @page_title = title
11
+ end
12
+
13
+ def stylesheet(name)
14
+ content_for :stylesheets do
15
+ stylesheet_link_tag(name)
16
+ end
17
+ end
18
+
19
+ def javascript(name)
20
+ content_for :javascripts do
21
+ javascript_include_tag(name)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,12 @@
1
+ class CommentMailer < ActionMailer::Base
2
+ default :from => Jabe::SETTINGS.mail_from
3
+
4
+ def notification(comment, request)
5
+ @comment = comment
6
+ @request = request
7
+
8
+ mail(:to => Admin.all.map(&:email),
9
+ :subject => "Comment on: #{comment.entry.title}"
10
+ )
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module Jabe
2
+ class Admin < ActiveRecord::Base
3
+ # Include default devise modules. Others available are:
4
+ # :token_authenticatable, :confirmable, :lockable and :timeoutable
5
+ devise :database_authenticatable, :recoverable, :rememberable, :trackable,
6
+ :validatable
7
+
8
+ # Setup accessible (or protected) attributes for your model
9
+ attr_accessible :email, :password, :password_confirmation, :remember_me
10
+ end
11
+ end
@@ -0,0 +1,35 @@
1
+ module Jabe
2
+ class Comment < ActiveRecord::Base
3
+ if defined?(Gravtastic)
4
+ include Gravtastic
5
+ is_gravtastic :size => 64
6
+ end
7
+
8
+ attr_accessor :nickname
9
+
10
+ belongs_to :entry
11
+ default_scope :order => 'created_at ASC'
12
+
13
+ before_validation :bot_check
14
+ validates_presence_of :name, :email, :body, :message => 'Required'
15
+
16
+ acts_as_textiled :body
17
+
18
+ def send_notification(request)
19
+ begin
20
+ CommentMailer.notification(self, request).deliver
21
+ rescue => e
22
+ logger.error "#{e}\n#{e.backtrace.join("\n")}"
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def bot_check
29
+ unless self.nickname.blank?
30
+ errors.add(:nickname, 'You shouldn\'t have seen this...')
31
+ false
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,22 @@
1
+ module Jabe
2
+ class Entry < ActiveRecord::Base
3
+ before_save :set_published_at
4
+
5
+ has_many :comments
6
+
7
+ extend FriendlyId
8
+ friendly_id :title, :use => :slugged
9
+
10
+ acts_as_textiled :body
11
+
12
+ default_scope :order => 'published_at DESC'
13
+ scope :drafts, :conditions => { :draft => true }
14
+ scope :published, :conditions => { :draft => false }
15
+
16
+ private
17
+
18
+ def set_published_at
19
+ self.published_at = Time.now unless draft? || self.published_at
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ module Jabe
2
+ class Settings < ActiveRecord::Base
3
+ def do_updates
4
+ Time.zone = self.time_zone
5
+ ActionMailer::Base.default_url_options[:host] = self.host_name
6
+ end
7
+ end
8
+
9
+ # begin
10
+ SETTINGS = Settings.first || Settings.create
11
+ SETTINGS.do_updates
12
+ # rescue ActiveRecord::StatementInvalid
13
+ # end
14
+ end
@@ -1,4 +1,4 @@
1
- = semantic_form_for [:admin, entry] do |form|
1
+ = simple_form_for [:admin, entry] do |form|
2
2
  = form.input :title
3
3
  = form.input :body
4
4
  = form.input :published_at if entry.published_at
@@ -9,12 +9,12 @@
9
9
  - @drafts.each do |entry|
10
10
  %tr
11
11
  %td
12
- = link_to image_tag('delete_page.png'),
12
+ = link_to image_tag('jabe/delete_page.png'),
13
13
  admin_entry_path(entry),
14
14
  :confirm => 'Are you sure?',
15
15
  :method => :delete,
16
16
  :title => 'Delete'
17
- = link_to image_tag('full_page.png'),
17
+ = link_to image_tag('jabe/full_page.png'),
18
18
  entry_path(entry),
19
19
  :title => 'Preview'
20
20
  %td
@@ -29,15 +29,17 @@
29
29
  - @published.each do |entry|
30
30
  %tr
31
31
  %td.icons
32
- = link_to image_tag('delete_page.png'),
32
+ = link_to image_tag('jabe/delete_page.png'),
33
33
  admin_entry_path(entry),
34
34
  :confirm => 'Are you sure?',
35
35
  :method => :delete,
36
36
  :title => 'Delete'
37
- = link_to image_tag('full_page.png'),
38
- public_entry_path(entry),
37
+ = link_to image_tag('jabe/full_page.png'),
38
+ public_entry_url(entry),
39
39
  :title => 'Preview'
40
40
  %td
41
41
  = link_to entry.title, edit_admin_entry_path(entry)
42
- %td.when
43
- = entry.published_at.to_s(:long)
42
+ .when
43
+ = entry.published_at.to_s(:long)
44
+
45
+ = paginate @published
@@ -1,5 +1,5 @@
1
1
  %h2 Site Settings
2
- = semantic_form_for SETTINGS, :url => admin_settings_path do |form|
2
+ = simple_form_for Jabe::SETTINGS, :url => admin_settings_path do |form|
3
3
  = form.input :host_name, :label => 'Domain and port', :hint => '(e.g. pixels-and-bits.com or localhost:3000)'
4
4
  = form.input :site_name
5
5
  = form.input :tagline
@@ -10,4 +10,5 @@
10
10
  = form.input :show_github_badge
11
11
  = form.input :twitter_username
12
12
  = form.input :facebook_url
13
+ = form.input :google_tracker_id
13
14
  = form.submit 'Save'
@@ -0,0 +1,19 @@
1
+ <p>
2
+ From: <%= @comment.name %>
3
+ </p>
4
+ <p>
5
+ Email: <%= @comment.email %>
6
+ </p>
7
+ <p>
8
+ URL: <%= @comment.url %>
9
+ </p>
10
+ <p>
11
+ <%= @comment.body.html_safe %>
12
+ </p>
13
+ <hr>
14
+ <p>
15
+ Remote IP: <%= @request.remote_ip %>
16
+ </p>
17
+ <p>
18
+ User agent: <%= @request.user_agent %>
19
+ </p>
@@ -0,0 +1,15 @@
1
+ <h2>Resend confirmation instructions</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="inputs">
7
+ <%= f.input :email, :required => true %>
8
+ </div>
9
+
10
+ <div class="actions">
11
+ <%= f.button :submit, "Resend confirmation instructions" %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render :partial => "devise/shared/links" %>
@@ -2,12 +2,13 @@
2
2
  - @entries.each do |entry|
3
3
  .entry{ :class => entry == @entries.last ? 'last' : '' }
4
4
  .title
5
- = link_to entry.title, public_entry_path(entry)
5
+ %h1
6
+ = link_to entry.title, public_entry_url(entry)
6
7
  .date
7
8
  = entry.published_at.to_s(:long)
8
9
  .content
9
10
  ~ entry.body.html_safe
10
11
  .meta
11
- = link_to "Comments: #{entry.comments.count}", public_entry_path(entry) + '#comments'
12
+ = link_to "Comments: #{entry.comments.count}", public_entry_url(entry) + '#comments'
12
13
  #pagination.apple_pagination
13
- = will_paginate @entries
14
+ = paginate @entries
@@ -0,0 +1,49 @@
1
+ - page_title entry.title
2
+
3
+ #entries
4
+ .entry.last
5
+ .title
6
+ %h1
7
+ = entry.title
8
+ .date
9
+ = entry.published_at.try(:to_s, :long)
10
+ .content
11
+ ~ entry.body.html_safe
12
+
13
+ %a{ :name => 'comments' }
14
+ #comments
15
+ %h2 Comments
16
+ - if entry.comments.any?
17
+ - entry.comments.each do |comment|
18
+ .comment
19
+ - if admin_signed_in?
20
+ .delete
21
+ = link_to image_tag('jabe/delete.png'),
22
+ entry_comment_path(entry, comment),
23
+ :confirm => 'Are you sure?',
24
+ :method => :delete
25
+ - if comment.respond_to?(:gravatar_url)
26
+ .gravatar
27
+ = image_tag comment.gravatar_url(:default => default_gravatar_url)
28
+ .author
29
+ = comment.name
30
+ %span.when
31
+ = comment.created_at.to_s(:long)
32
+ .body
33
+ = comment.body.html_safe
34
+ - else
35
+ .comment
36
+ .author
37
+ None yet...
38
+
39
+ %a{ :name => 'add-comment' }
40
+ #new_comment
41
+ %h2 Add a comment
42
+ = simple_form_for [entry, comment] do |form|
43
+ = form.input :name
44
+ = form.input :nickname
45
+ = form.input :email, :label => 'Email (not shown to the public)'
46
+ = form.input :url, :label => 'Website'
47
+ = form.input :body, :label => 'Comment',
48
+ :hint => "Textile enabled (#{link_to 'Reference', 'http://redcloth.org/try-redcloth/', :target => '_blank'})".html_safe
49
+ = form.submit 'Add comment'
@@ -1,15 +1,15 @@
1
1
  atom_feed do |feed|
2
- feed.title(SETTINGS.site_name)
2
+ feed.title( Jabe::SETTINGS.site_name)
3
3
 
4
4
  feed.updated @entries.first.try(:published_at)
5
5
 
6
6
  @entries.each do |post|
7
- feed.entry(post, :url => public_entry_url(post)) do |entry|
7
+ feed.entry(post, :url => 'http:' + public_entry_url(post)) do |entry|
8
8
  entry.title h post.title
9
9
  entry.content post.body, :type => 'html'
10
10
 
11
11
  entry.author do |author|
12
- author.name(SETTINGS.site_name)
12
+ author.name( Jabe::SETTINGS.site_name)
13
13
  end
14
14
  end
15
15
  end
@@ -0,0 +1,5 @@
1
+ <p>Welcome <%= @resource.email %>!</p>
2
+
3
+ <p>You can confirm your account through the link below:</p>
4
+
5
+ <p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
@@ -0,0 +1,8 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Someone has requested a link to change your password, and you can do this through the link below.</p>
4
+
5
+ <p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
6
+
7
+ <p>If you didn't request this, please ignore this email.</p>
8
+ <p>Your password won't change until you access the link above and create a new one.</p>
@@ -0,0 +1,7 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Your account has been locked due to an excessive amount of unsuccessful sign in attempts.</p>
4
+
5
+ <p>Click the link below to unlock your account:</p>
6
+
7
+ <p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>
@@ -0,0 +1,19 @@
1
+ <h2>Change your password</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <%= f.input :reset_password_token, :as => :hidden %>
7
+ <%= f.full_error :reset_password_token %>
8
+
9
+ <div class="inputs">
10
+ <%= f.input :password, :label => "New password", :required => true %>
11
+ <%= f.input :password_confirmation, :label => "Confirm your new password", :required => true %>
12
+ </div>
13
+
14
+ <div class="actions">
15
+ <%= f.button :submit, "Change my password" %>
16
+ </div>
17
+ <% end %>
18
+
19
+ <%= render :partial => "devise/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Forgot your password?</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="inputs">
7
+ <%= f.input :email, :required => true %>
8
+ </div>
9
+
10
+ <div class="actions">
11
+ <%= f.button :submit, "Send me reset password instructions" %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render :partial => "devise/shared/links" %>
@@ -0,0 +1,22 @@
1
+ <h2>Edit <%= resource_name.to_s.humanize %></h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+ <%= f.input :password, :hint => "leave it blank if you don't want to change it", :required => false %>
9
+ <%= f.input :password_confirmation, :required => false %>
10
+ <%= f.input :current_password, :hint => "we need your current password to confirm your changes", :required => true %>
11
+ </div>
12
+
13
+ <div class="actions">
14
+ <%= f.button :submit, "Update" %>
15
+ </div>
16
+ <% end %>
17
+
18
+ <h3>Cancel my account</h3>
19
+
20
+ <p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p>
21
+
22
+ <%= link_to "Back", :back %>