Merge pull request #2433 from geckoxx/2274-empty-tag

Fix Bug 2274, empty tag
This commit is contained in:
Daniel Grippi 2011-11-30 09:07:30 -08:00
commit 5a1b73dc61
4 changed files with 21 additions and 6 deletions

View file

@ -22,6 +22,9 @@ class PeopleController < ApplicationController
if (params[:q][0] == 35 || params[:q][0] == '#') && params[:q].length > 1
redirect_to tag_path(:name => params[:q].gsub(/[#\.]/, ''), :q => params[:q])
return
elsif (params[:q][0] == 35 || params[:q][0] == '#') && params[:q].length == 1
flash[:error] = I18n.t('tags.show.none', :name => params[:q])
redirect_to :back
end
limit = params[:limit] ? params[:limit].to_i : 15

View file

@ -15,13 +15,18 @@ class TagFollowingsController < ApplicationController
# POST /tag_followings.xml
def create
name_normalized = ActsAsTaggableOn::Tag.normalize(params['name'])
@tag = ActsAsTaggableOn::Tag.find_or_create_by_name(name_normalized)
@tag_following = current_user.tag_followings.new(:tag_id => @tag.id)
if @tag_following.save
flash[:notice] = I18n.t('tag_followings.create.success', :name => name_normalized)
if name_normalized.nil? || name_normalized.empty?
flash[:error] = I18n.t('tag_followings.create.none')
else
flash[:error] = I18n.t('tag_followings.create.failure', :name => name_normalized)
@tag = ActsAsTaggableOn::Tag.find_or_create_by_name(name_normalized)
@tag_following = current_user.tag_followings.new(:tag_id => @tag.id)
if @tag_following.save
flash[:notice] = I18n.t('tag_followings.create.success', :name => name_normalized)
else
flash[:error] = I18n.t('tag_followings.create.failure', :name => name_normalized)
end
end
redirect_to :back

View file

@ -848,10 +848,12 @@ en:
following: "Following #%{tag}"
stop_following: "Stop Following #%{tag}"
followed_by: 'followed by'
none: "The empty tag does not exist!"
tag_followings:
create:
success: "Hooray! You're now following #%{name}."
failure: "Failed to follow #%{name}. Are you already following it?"
none: "You cannot follow a blank tag!"
destroy:
success: "Alas! You aren't following #%{name} anymore."
failure: "Failed to stop following #%{name}. Maybe you already stopped following it?"

View file

@ -91,6 +91,11 @@ describe PeopleController do
get :index, :q => '#babi.es'
response.should redirect_to(tag_path('babies', :q => '#babi.es'))
end
it 'stay on the page if you search for the empty hash' do
get :index, :q => '#'
flash[:error].should be_present
end
end
describe '#tag_index' do