From 3d522aaf4a90621e62d6e6340cef25932460790d Mon Sep 17 00:00:00 2001 From: Toks Date: Wed, 3 Jul 2013 13:07:34 -0400 Subject: [PATCH] fix autocomplete eating prefixes --- app/assets/javascripts/posts.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/posts.js b/app/assets/javascripts/posts.js index 5034fd9b9..8f1920169 100644 --- a/app/assets/javascripts/posts.js +++ b/app/assets/javascripts/posts.js @@ -46,6 +46,8 @@ "#tag_implication_antecedent_name,#tag_implication_consequent_name" ); + var prefixes = "-|~|general:|gen:|artist:|art:|copyright:|copy:|co:|character:|char:|ch:"; + $fields.autocomplete({ delay: 100, focus: function() { @@ -55,7 +57,8 @@ var before_caret_text = this.value.substring(0, this.selectionStart); var after_caret_text = this.value.substring(this.selectionStart); - this.value = before_caret_text.replace(/\S+\s*$/g, ui.item.value + " "); + var regexp = new RegExp("(" + prefixes + ")?\\S+$", "g"); + this.value = before_caret_text.replace(regexp, "$1" + ui.item.value + " "); // Preserve original caret position to prevent it from jumping to the end var original_start = this.selectionStart; @@ -72,8 +75,8 @@ } var term = before_caret_text.match(/\S+/g).pop(); - var prefixes = /^(?:-|~|general:|gen:|artist:|art:|copyright:|copy:|co:|character:|char:|ch:)(.*)$/; - var match = term.match(prefixes); + var regexp = new RegExp("^(?:" + prefixes + ")(.*)$"); + var match = term.match(regexp); if (match) { term = match[1]; }