From 5b030017d9a0ce22a63efd9e48884defcf4b91a1 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Fri, 13 May 2016 13:56:53 +0530 Subject: [PATCH] FEATURE: new search filter in:wiki --- config/locales/server.en.yml | 2 +- lib/search.rb | 4 ++++ spec/components/search_spec.rb | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index ffce1246243a56..f41152fcbe40d2 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -2786,7 +2786,7 @@ en: status:openstatus:closedstatus:archivedstatus:norepliesstatus:single_user #category-slugcategory:foogroup:foobadge:foo in:likesin:postedin:watchingin:trackingin:private - in:bookmarksin:firstin:pinnedin:unpinned + in:bookmarksin:firstin:pinnedin:unpinnedin:wiki posts_count:numbefore:days or dateafter:days or date

diff --git a/lib/search.rb b/lib/search.rb index c4bb98ca6db0eb..22cb3f79c0c065 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -231,6 +231,10 @@ def self.advanced_filters end end + advanced_filter(/in:wiki/) do |posts,match| + posts.where(wiki: true) + end + advanced_filter(/badge:(.*)/) do |posts,match| badge_id = Badge.where('name ilike ? OR id = ?', match, match.to_i).pluck(:id).first if badge_id diff --git a/spec/components/search_spec.rb b/spec/components/search_spec.rb index f3ee6f1561daf2..8d14de9411df8f 100644 --- a/spec/components/search_spec.rb +++ b/spec/components/search_spec.rb @@ -426,6 +426,13 @@ def search expect(Search.execute('boom in:unpinned', guardian: guardian).posts.length).to eq(1) end + it 'supports wiki' do + topic = Fabricate(:topic) + wiki_post = Fabricate(:post, raw: 'this is a test 248', wiki: true, topic: topic) + + expect(Search.execute('test 248 in:wiki').posts.length).to eq(1) + end + it 'supports before and after, in:first, user:, @username' do time = Time.zone.parse('2001-05-20 2:55')