Commit ec04a68dbfda9a261d69766c23467aeb1585a67f

Authored by LinguÁgil 2010
Committed by Antonio Terceiro
1 parent 8acd760e

Add "Save and continue" button in edit screen.

This code was written at LinguÁgil 2010 <http://www.linguagil.com.br/>,
during the "Noosfero Coding Dojo" session on September 17th, 2010. The
following people contributed:

  * Fabrício
  * Márcio Albuquerque
  * João Paulo
  * Luiz Cláudio
  * Guto Maia
  * Alexandre Gomes
  * Ivan
  * Serge Rehem
  * Bruno Porkaria
  * Antonio Terceiro
  * Rodrigo Souto
  * Daniela Feitosa

(ActionItem1394)
app/controllers/my_profile/cms_controller.rb
@@ -88,14 +88,16 @@ class CmsController &lt; MyProfileController @@ -88,14 +88,16 @@ class CmsController &lt; MyProfileController
88 @article = profile.articles.find(params[:id]) 88 @article = profile.articles.find(params[:id])
89 @parent_id = params[:parent_id] 89 @parent_id = params[:parent_id]
90 @type = params[:type] || @article.class.to_s 90 @type = params[:type] || @article.class.to_s
  91 + continue = params[:continue]
91 92
92 refuse_blocks 93 refuse_blocks
93 record_coming 94 record_coming
94 if request.post? 95 if request.post?
95 @article.last_changed_by = user 96 @article.last_changed_by = user
96 if @article.update_attributes(params[:article]) 97 if @article.update_attributes(params[:article])
97 - redirect_to @article.view_url  
98 - return 98 + if !continue
  99 + redirect_to @article.view_url
  100 + end
99 end 101 end
100 end 102 end
101 end 103 end
app/views/cms/edit.rhtml
@@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
20 20
21 <% button_bar do %> 21 <% button_bar do %>
22 <%= submit_button :save, _('Save') %> 22 <%= submit_button :save, _('Save') %>
  23 + <%= submit_button :save, _('Save and continue'), :name => "continue" %>
23 <% end %> 24 <% end %>
24 25
25 <div style='float: right'> 26 <div style='float: right'>
features/edit_article.feature
@@ -114,3 +114,11 @@ Feature: edit article @@ -114,3 +114,11 @@ Feature: edit article
114 When I follow "Cancel" within ".no-boxes" 114 When I follow "Cancel" within ".no-boxes"
115 And I should be on /joaosilva/my-folder 115 And I should be on /joaosilva/my-folder
116 116
  117 + Scenario: save and continue
  118 + Given I am on /joaosilva/save-the-whales
  119 + And I follow "Edit"
  120 + When I fill in "Text" with "new text"
  121 + And I press "Save and continue"
  122 + Then show me the page
  123 + Then the "Text" field should contain "new text"
  124 + And I should be on "Save the whales" edit page
features/support/paths.rb
@@ -51,6 +51,10 @@ module NavigationHelpers @@ -51,6 +51,10 @@ module NavigationHelpers
51 when /^(.+)'s cms/ 51 when /^(.+)'s cms/
52 '/myprofile/%s/cms' % Profile.find_by_name($1).identifier 52 '/myprofile/%s/cms' % Profile.find_by_name($1).identifier
53 53
  54 + when /^"(.+)" edit page/
  55 + article = Article.find_by_name($1)
  56 + '/myprofile/%s/cms/edit/%s' % [article.profile.identifier, article.id]
  57 +
54 when /^(.+)'s members management/ 58 when /^(.+)'s members management/
55 '/myprofile/%s/profile_members' % Profile.find_by_name($1).identifier 59 '/myprofile/%s/profile_members' % Profile.find_by_name($1).identifier
56 60