diff --git a/app/assets/javascripts/tag_script.js b/app/assets/javascripts/tag_script.js index 7dade90fe..2f753b3b1 100644 --- a/app/assets/javascripts/tag_script.js +++ b/app/assets/javascripts/tag_script.js @@ -34,7 +34,7 @@ } } else if (command === "[reset]") { return []; - } else if (command[0] === "-" && !command.match(/^-pool:/i)) { + } else if (command[0] === "-" && !command.match(/^(?:-pool|-parent):/i)) { return Danbooru.reject(tags, function(x) {return x === command.substr(1, 100)}); } else { tags.push(command); diff --git a/app/models/post.rb b/app/models/post.rb index 6ae650f5f..ee8b93286 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -432,7 +432,7 @@ class Post < ActiveRecord::Base end def filter_metatags(tags) - @pre_metatags, tags = tags.partition {|x| x =~ /\A(?:rating|parent):/i} + @pre_metatags, tags = tags.partition {|x| x =~ /\A(?:rating|parent|-parent):/i} @post_metatags, tags = tags.partition {|x| x =~ /\A(?:-pool|pool|newpool|fav|child):/i} apply_pre_metatags return tags @@ -485,6 +485,11 @@ class Post < ActiveRecord::Base when /^parent:none$/i, /^parent:0$/i self.parent_id = nil + when /^-parent:(\d+)$/i + if parent_id == $1.to_i + self.parent_id = nil + end + when /^parent:(\d+)$/i if $1.to_i != id && Post.exists?(["id = ?", $1.to_i]) self.parent_id = $1.to_i