From 3ee20d2bb7a7b85138ac27f13a35ac7e74d65c13 Mon Sep 17 00:00:00 2001 From: Toks Date: Sat, 11 May 2013 16:01:19 -0400 Subject: [PATCH] fixes #846 --- app/assets/stylesheets/specific/wiki_pages.css.scss | 5 +++++ app/controllers/wiki_pages_controller.rb | 8 ++++++-- app/helpers/wiki_pages_helper.rb | 2 +- app/views/wiki_pages/show.html.erb | 4 ++++ app/views/wiki_pages/show_or_new.html.erb | 5 +++++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/specific/wiki_pages.css.scss b/app/assets/stylesheets/specific/wiki_pages.css.scss index 6c114ec19..feab83c89 100644 --- a/app/assets/stylesheets/specific/wiki_pages.css.scss +++ b/app/assets/stylesheets/specific/wiki_pages.css.scss @@ -27,4 +27,9 @@ div#c-wiki-pages { margin-left: 15em; padding-left: 1em; } + + div.redirected-from { + font-size: 0.8em; + margin-bottom: 1em; + } } diff --git a/app/controllers/wiki_pages_controller.rb b/app/controllers/wiki_pages_controller.rb index a3ca8ee28..ce2690368 100644 --- a/app/controllers/wiki_pages_controller.rb +++ b/app/controllers/wiki_pages_controller.rb @@ -67,8 +67,12 @@ class WikiPagesController < ApplicationController def show_or_new @wiki_page = WikiPage.find_by_title(params[:title]) - if @wiki_page - redirect_to wiki_page_path(@wiki_page) + tag_alias = TagAlias.where("status = 'active' and antecedent_name = ?", params[:title]).first + + if tag_alias && params[:no_redirect].blank? + redirect_to show_or_new_wiki_pages_path(:title => tag_alias.consequent_name, :redirected_from => params[:title]) + elsif @wiki_page + redirect_to wiki_page_path(@wiki_page, :redirected_from => params[:redirected_from]) else @wiki_page = WikiPage.new(:title => params[:title]) respond_with(@wiki_page) diff --git a/app/helpers/wiki_pages_helper.rb b/app/helpers/wiki_pages_helper.rb index 382b6ae9b..c0506de35 100644 --- a/app/helpers/wiki_pages_helper.rb +++ b/app/helpers/wiki_pages_helper.rb @@ -15,7 +15,7 @@ module WikiPagesHelper if consequent_aliases.any? html << "

The following tags are aliased to this tag: " - html << raw(consequent_aliases.map {|x| link_to(x.antecedent_name, show_or_new_wiki_pages_path(:title => x.antecedent_name))}.join(", ")) + html << raw(consequent_aliases.map {|x| link_to(x.antecedent_name, show_or_new_wiki_pages_path(:title => x.antecedent_name, :no_redirect => true))}.join(", ")) html << ".

" end diff --git a/app/views/wiki_pages/show.html.erb b/app/views/wiki_pages/show.html.erb index 4b4f37bb4..0a739d067 100644 --- a/app/views/wiki_pages/show.html.erb +++ b/app/views/wiki_pages/show.html.erb @@ -12,6 +12,10 @@ <% end %> + <% if params[:redirected_from].present? %> +
Redirected from <%= link_to params[:redirected_from], show_or_new_wiki_pages_path(:title => params[:redirected_from], :no_redirect => true) %>.
+ <% end %> +
<%= format_text(@wiki_page.body) %> diff --git a/app/views/wiki_pages/show_or_new.html.erb b/app/views/wiki_pages/show_or_new.html.erb index c75c45a95..3c2c24ba5 100644 --- a/app/views/wiki_pages/show_or_new.html.erb +++ b/app/views/wiki_pages/show_or_new.html.erb @@ -4,6 +4,11 @@

<%= params[:title] %>

+ + <% if params[:redirected_from].present? %> +
Redirected from <%= link_to params[:redirected_from], show_or_new_wiki_pages_path(:title => params[:redirected_from], :no_redirect => true) %>.
+ <% end %> +

This wiki page does not exist. <%= link_to "Create new wiki page", new_wiki_page_path(:wiki_page => {:title => params[:title]}) %>.