From d352a4cc7eb6db577340d255cf0bb5a8f3076165 Mon Sep 17 00:00:00 2001 From: Jeffrey Warren Date: Fri, 26 Jan 2018 15:24:03 -0500 Subject: [PATCH 1/4] Update typeahead_service.rb --- app/services/typeahead_service.rb | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/services/typeahead_service.rb b/app/services/typeahead_service.rb index 44e9dd5c41..392fbba290 100644 --- a/app/services/typeahead_service.rb +++ b/app/services/typeahead_service.rb @@ -200,14 +200,25 @@ def search_tags(srchString, limit = 5) # Search question entries for matching text def search_questions(srchString, limit = 5) sresult = TagList.new - questions = Node.where( - 'type = "note" AND node.status = 1 AND title LIKE ?', - '%' + srchString + '%' - ) - .joins(:tag) - .where('term_data.name LIKE ?', 'question:%') - .order('node.nid DESC') - .limit(limit) + if ActiveRecord::Base.connection.adapter_name == 'Mysql2' + questions = Node.search(input) + .group(:nid) + .includes(:node) + .references(:node) + .limit(limit) + .where("node.type": "note", "node.status": 1) + .order('node.changed DESC') + .joins(:tag) + .where('term_data.name LIKE ?', 'question:%') + else + questions = Node.where('title LIKE ?', '%' + srchString + '%') + .joins(:tag) + .where('term_data.name LIKE ?', 'question:%') + .limit(limit) + .group(:nid) + .where(type: "note", status: 1) + .order(changed: :desc) + end questions.each do |match| tval = TagResult.fromSearch( match.nid, From ddda1854bd5382342a3fbbb172fc86e878d54d8b Mon Sep 17 00:00:00 2001 From: Jeffrey Warren Date: Fri, 26 Jan 2018 15:43:10 -0500 Subject: [PATCH 2/4] Update typeahead_service.rb --- app/services/typeahead_service.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/typeahead_service.rb b/app/services/typeahead_service.rb index 392fbba290..d5649d4128 100644 --- a/app/services/typeahead_service.rb +++ b/app/services/typeahead_service.rb @@ -198,7 +198,7 @@ def search_tags(srchString, limit = 5) end # Search question entries for matching text - def search_questions(srchString, limit = 5) + def search_questions(input, limit = 5) sresult = TagList.new if ActiveRecord::Base.connection.adapter_name == 'Mysql2' questions = Node.search(input) @@ -211,7 +211,7 @@ def search_questions(srchString, limit = 5) .joins(:tag) .where('term_data.name LIKE ?', 'question:%') else - questions = Node.where('title LIKE ?', '%' + srchString + '%') + questions = Node.where('title LIKE ?', '%' + input + '%') .joins(:tag) .where('term_data.name LIKE ?', 'question:%') .limit(limit) From f8a3f15ebfee8336b1a628067e700812604725c3 Mon Sep 17 00:00:00 2001 From: Jeffrey Warren Date: Fri, 26 Jan 2018 15:50:57 -0500 Subject: [PATCH 3/4] Update restful_typeahead.js --- app/assets/javascripts/restful_typeahead.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/restful_typeahead.js b/app/assets/javascripts/restful_typeahead.js index 8512881219..437ed82077 100644 --- a/app/assets/javascripts/restful_typeahead.js +++ b/app/assets/javascripts/restful_typeahead.js @@ -9,7 +9,7 @@ jQuery(document).ready(function() { var el = $('input.search-query.typeahead'); var typeahead = el.typeahead({ - items: 8, + items: 15, minLength: 3, autoSelect: false, source: function (query, process) { From b4d427a1142f2c1e118b732385a3d079eefd3f56 Mon Sep 17 00:00:00 2001 From: Jeffrey Warren Date: Fri, 26 Jan 2018 15:56:25 -0500 Subject: [PATCH 4/4] Update revision.rb --- app/models/revision.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/revision.rb b/app/models/revision.rb index 032eafca07..254eabe9a4 100644 --- a/app/models/revision.rb +++ b/app/models/revision.rb @@ -6,6 +6,8 @@ class Revision < ActiveRecord::Base belongs_to :node, foreign_key: 'nid', dependent: :destroy, counter_cache: :drupal_node_revisions_count has_one :drupal_users, foreign_key: 'uid' + has_many :node_tag, foreign_key: 'nid' + has_many :tag, through: :node_tag validates :title, presence: :true,