Commit a18ff65ca5322200d40bd54fe9b95b99cd8a116b
1 parent
fa516d36
Exists in
master
and in
29 other branches
ActionItem806: add button to config blog in control panel
Showing
10 changed files
with
58 additions
and
2 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
... | ... | @@ -61,6 +61,9 @@ class CmsController < MyProfileController |
61 | 61 | @article = profile.articles.find(params[:id]) |
62 | 62 | @parent_id = params[:parent_id] |
63 | 63 | @type = params[:type] |
64 | + if !@article.nil? && @article.blog? || !@type.nil? && @type == 'Blog' | |
65 | + @back_url = url_for(:controller => 'profile_editor', :profile => profile.identifier) | |
66 | + end | |
64 | 67 | record_coming_from_public_view |
65 | 68 | if request.post? |
66 | 69 | @article.last_changed_by = user |
... | ... | @@ -89,6 +92,10 @@ class CmsController < MyProfileController |
89 | 92 | @parent_id = params[:parent_id] |
90 | 93 | render :action => 'select_article_type', :layout => false |
91 | 94 | return |
95 | + else | |
96 | + if @type == 'Blog' | |
97 | + @back_url = url_for(:controller => 'profile_editor', :profile => profile.identifier) | |
98 | + end | |
92 | 99 | end |
93 | 100 | |
94 | 101 | raise "Invalid article type #{@type}" unless valid_article_type?(@type) |
... | ... | @@ -175,7 +182,9 @@ class CmsController < MyProfileController |
175 | 182 | protected |
176 | 183 | |
177 | 184 | def redirect_back |
178 | - if params[:back_to] == 'public_view' | |
185 | + if params[:back_to] == 'control_panel' | |
186 | + redirect_to :controller => 'profile_editor', :profile => @profile.identifier | |
187 | + elsif params[:back_to] == 'public_view' | |
179 | 188 | redirect_to @article.url |
180 | 189 | elsif @article.parent |
181 | 190 | redirect_to :action => 'view', :id => @article.parent | ... | ... |
app/views/cms/_blog.rhtml
... | ... | @@ -15,3 +15,5 @@ |
15 | 15 | <%= labelled_form_field(_('Use as description in RSS Feed:'), feed.select(:feed_item_description, [ [ _('Article abstract'), 'abstract'], [ _('Article body'), 'body']])) %> |
16 | 16 | |
17 | 17 | <% end %> |
18 | + | |
19 | +<%= javascript_tag "$('back_to').value = 'control_panel'" %> | ... | ... |
app/views/content_viewer/view_page.rhtml
... | ... | @@ -30,11 +30,13 @@ |
30 | 30 | if ( act ) act.className = ( show ? "show" : "hidden" ); |
31 | 31 | } |
32 | 32 | </script> |
33 | - <% if logged_in? && current_user.person.has_permission?('post_content', profile) %> | |
33 | + <% if logged_in? && current_user.person.has_permission?('post_content', profile) %> | |
34 | 34 | <div id="article-actions" class="hidden"> |
35 | + <% unless @page.blog? %> | |
35 | 36 | <%= link_to content_tag( 'span', label_for_edit_article(@page) ), |
36 | 37 | { :controller => 'cms', :action => 'edit', :id => @page }, |
37 | 38 | :class => 'button with-text icon-edit' %> |
39 | + <% end %> | |
38 | 40 | <% if !(profile.kind_of?(Enterprise) && environment.enabled?('disable_cms')) %> |
39 | 41 | <% if @page != profile.home_page %> |
40 | 42 | <%= link_to content_tag( 'span', _('Delete') ), | ... | ... |
app/views/profile_editor/index.rhtml
... | ... | @@ -25,6 +25,12 @@ |
25 | 25 | |
26 | 26 | <%= file_manager_button(_('Manage Content'), 'icons-app/cms.png', :controller => 'cms') unless environment.enabled?('disable_cms') || profile.community? %> |
27 | 27 | |
28 | + <% if profile.has_blog? %> | |
29 | + <%= file_manager_button(_('Config my blog'), 'icons-app/blog.png', :controller => 'cms', :action => 'edit', :id => profile.blog) %> | |
30 | + <% else %> | |
31 | + <%= file_manager_button(_('Create my blog'), 'icons-app/blog-disabled.png', :controller => 'cms', :action => 'new', :type => 'Blog') %> | |
32 | + <% end %> | |
33 | + | |
28 | 34 | <%= file_manager_button(_('Change Password'), 'icons-app/change-password.png', :controller => 'account', :action => 'change_password') if profile.person? %> |
29 | 35 | |
30 | 36 | <%= file_manager_button(__('Manage friends'), 'icons-app/friends.png', :controller => 'friends', :action => 'index') if profile.person? %> | ... | ... |
public/images/icons-app/README
1.85 KB
3.09 KB
test/functional/cms_controller_test.rb
... | ... | @@ -758,4 +758,28 @@ class CmsControllerTest < Test::Unit::TestCase |
758 | 758 | assert :tag => 'input', :attributes => {:name => 'article[notify_comments]', :value => 1} |
759 | 759 | end |
760 | 760 | |
761 | + should 'back to control panel after create blog' do | |
762 | + assert_difference Blog, :count do | |
763 | + post :new, :type => Blog.name, :profile => profile.identifier, :article => { :name => 'my-blog' }, :back_to => 'control_panel' | |
764 | + assert_redirected_to :controller => 'profile_editor', :profile => profile.identifier | |
765 | + end | |
766 | + end | |
767 | + | |
768 | + should 'back to control panel after config blog' do | |
769 | + profile.articles << Blog.new(:name => 'my-blog', :profile => profile) | |
770 | + post :edit, :profile => profile.identifier, :id => profile.blog.id, :back_to => 'control_panel' | |
771 | + assert_redirected_to :controller => 'profile_editor', :profile => profile.identifier | |
772 | + end | |
773 | + | |
774 | + should 'back to control panel if cancel create blog' do | |
775 | + get :new, :profile => profile.identifier, :type => Blog.name | |
776 | + assert_tag :tag => 'a', :content => 'Cancel', :attributes => { :href => /\/myprofile\/#{profile.identifier}/ } | |
777 | + end | |
778 | + | |
779 | + should 'back to control panel if cancel config blog' do | |
780 | + profile.articles << Blog.new(:name => 'my-blog', :profile => profile) | |
781 | + get :edit, :profile => profile.identifier, :id => profile.blog.id | |
782 | + assert_tag :tag => 'a', :content => 'Cancel', :attributes => { :href => /\/myprofile\/#{profile.identifier}/ } | |
783 | + end | |
784 | + | |
761 | 785 | end | ... | ... |
test/functional/profile_editor_controller_test.rb
... | ... | @@ -622,4 +622,15 @@ class ProfileEditorControllerTest < Test::Unit::TestCase |
622 | 622 | assert_no_tag :tag => 'a', :attributes => { :href => '/myprofile/default_user/cms' } |
623 | 623 | end |
624 | 624 | |
625 | + should 'offer to create blog in control panel' do | |
626 | + get :index, :profile => 'default_user' | |
627 | + assert_tag :tag => 'a', :attributes => { :href => "/myprofile/default_user/cms/new?type=Blog" } | |
628 | + end | |
629 | + | |
630 | + should 'offer to config blog in control panel' do | |
631 | + profile.articles << Blog.new(:name => 'My blog', :profile => profile) | |
632 | + get :index, :profile => 'default_user' | |
633 | + assert_tag :tag => 'a', :attributes => { :href => "/myprofile/default_user/cms/edit/#{profile.blog.id}" } | |
634 | + end | |
635 | + | |
625 | 636 | end | ... | ... |