diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 623618ebb..a23c69735 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -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 diff --git a/app/controllers/tag_followings_controller.rb b/app/controllers/tag_followings_controller.rb index 84c2766b3..4a98720fb 100644 --- a/app/controllers/tag_followings_controller.rb +++ b/app/controllers/tag_followings_controller.rb @@ -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 diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index e30553236..56f027747 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -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?" diff --git a/spec/controllers/people_controller_spec.rb b/spec/controllers/people_controller_spec.rb index 62305276a..9a646cd66 100644 --- a/spec/controllers/people_controller_spec.rb +++ b/spec/controllers/people_controller_spec.rb @@ -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