post mode menu fixes
This commit is contained in:
@@ -24,6 +24,10 @@
|
|||||||
|
|
||||||
Danbooru.PostModeMenu.initialize_edit_form = function() {
|
Danbooru.PostModeMenu.initialize_edit_form = function() {
|
||||||
$("#quick-edit-div").hide();
|
$("#quick-edit-div").hide();
|
||||||
|
$("#quick-edit-form input[value=Cancel]").click(function(e) {
|
||||||
|
$("#quick-edit-div").hide();
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
$("#quick-edit-form").submit(function(e) {
|
$("#quick-edit-form").submit(function(e) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@@ -56,13 +60,13 @@
|
|||||||
script = prompt("Enter a tag script", script);
|
script = prompt("Enter a tag script", script);
|
||||||
|
|
||||||
if (script) {
|
if (script) {
|
||||||
Cookie.put("tag-script", script);
|
Danbooru.Cookie.put("tag-script", script);
|
||||||
$("#mode-box select").val("apply-tag-script");
|
$("#mode-box select").val("apply-tag-script");
|
||||||
} else {
|
} else {
|
||||||
$("#mode-box select").val("view");
|
$("#mode-box select").val("view");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.change();
|
Danbooru.PostModeMenu.change();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -168,7 +168,7 @@
|
|||||||
Danbooru.Post.update_data(data);
|
Danbooru.Post.update_data(data);
|
||||||
},
|
},
|
||||||
error: function(data, status, xhr) {
|
error: function(data, status, xhr) {
|
||||||
Danbooru.j_alert("Error: " + data.reason);
|
Danbooru.notice("Error: " + data.reason);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,11 +11,11 @@
|
|||||||
|
|
||||||
$.each(split_pred, function(i, x) {
|
$.each(split_pred, function(i, x) {
|
||||||
if (x[0] === "-") {
|
if (x[0] === "-") {
|
||||||
if (tags.include(x.substr(1, 100))) {
|
if ($.inArray(x.substr(1, 100), tags)) {
|
||||||
is_true = false;
|
is_true = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!tags.include(x)) {
|
if (!$.inArray(x, tags)) {
|
||||||
is_true = false;
|
is_true = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
Danbooru.TagScript.process = function(tags, command) {
|
Danbooru.TagScript.process = function(tags, command) {
|
||||||
if (command.match(/^\[if/)) {
|
if (command.match(/^\[if/)) {
|
||||||
var match = command.match(/\[if\s+(.+?)\s*,\s*(.+?)\]/)
|
var match = command.match(/\[if\s+(.+?)\s*,\s*(.+?)\]/)
|
||||||
if (this.test(tags, match[1])) {
|
if (Danbooru.TagScript.test(tags, match[1])) {
|
||||||
return this.process(tags, match[2]);
|
return Danbooru.TagScript.process(tags, match[2]);
|
||||||
} else {
|
} else {
|
||||||
return tags;
|
return tags;
|
||||||
}
|
}
|
||||||
@@ -37,20 +37,21 @@
|
|||||||
} else if (command[0] === "-") {
|
} else if (command[0] === "-") {
|
||||||
return Danbooru.reject(tags, function(x) {return x === command.substr(1, 100)});
|
return Danbooru.reject(tags, function(x) {return x === command.substr(1, 100)});
|
||||||
} else {
|
} else {
|
||||||
tags.push(command)
|
tags.push(command);
|
||||||
return tags;
|
return tags;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Danbooru.TagScript.run = function(post_id, tag_script) {
|
Danbooru.TagScript.run = function(post_id, tag_script) {
|
||||||
var commands = this.parse(tag_script);
|
var commands = Danbooru.TagScript.parse(tag_script);
|
||||||
var post = $("#p_" + post_id);
|
var $post = $("#post_" + post_id);
|
||||||
var old_tags = post.data("tags");
|
var old_tags = $post.data("tags");
|
||||||
|
|
||||||
$.each(commands, function(i, x) {
|
$.each(commands, function(i, x) {
|
||||||
post.data("tags", Danbooru.TagScript.process(post.data("tags"), x));
|
var array = $post.data("tags").match(/\S+/g);
|
||||||
})
|
$post.data("tags", Danbooru.TagScript.process(array, x).join(" "));
|
||||||
|
});
|
||||||
|
|
||||||
Danbooru.Post.update(post_id, {"post[old_tags]": old_tags, "post[tags]": post.data("tags")});
|
Danbooru.Post.update(post_id, {"post[old_tag_string]": old_tags, "post[tag_string]": $post.data("tags")});
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class PostsController < ApplicationController
|
|||||||
|
|
||||||
def update
|
def update
|
||||||
@post = Post.find(params[:id])
|
@post = Post.find(params[:id])
|
||||||
@post.update_attributes(params[:post])
|
@post.update_attributes(params[:post], :as => CurrentUser.role)
|
||||||
respond_with(@post) do |format|
|
respond_with(@post) do |format|
|
||||||
format.json do
|
format.json do
|
||||||
render :json => @post.to_json
|
render :json => @post.to_json
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class ForumTopic < ActiveRecord::Base
|
class ForumTopic < ActiveRecord::Base
|
||||||
attr_accessible :title, :original_post_attributes
|
attr_accessible :title, :original_post_attributes
|
||||||
attr_accessible :is_sticky, :is_locked, :as => :janitor
|
attr_accessible :title, :original_post_attributes, :is_sticky, :is_locked, :as => [:admin, :moderator, :janitor]
|
||||||
belongs_to :creator, :class_name => "User"
|
belongs_to :creator, :class_name => "User"
|
||||||
belongs_to :updater, :class_name => "User"
|
belongs_to :updater, :class_name => "User"
|
||||||
has_many :posts, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id", :dependent => :destroy
|
has_many :posts, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id", :dependent => :destroy
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class Post < ActiveRecord::Base
|
|||||||
validates_presence_of :parent, :if => lambda {|rec| !rec.parent_id.nil?}
|
validates_presence_of :parent, :if => lambda {|rec| !rec.parent_id.nil?}
|
||||||
validate :validate_parent_does_not_have_a_parent
|
validate :validate_parent_does_not_have_a_parent
|
||||||
attr_accessible :source, :rating, :tag_string, :old_tag_string, :last_noted_at
|
attr_accessible :source, :rating, :tag_string, :old_tag_string, :last_noted_at
|
||||||
|
attr_accessible :source, :rating, :tag_string, :old_tag_string, :last_noted_at, :is_rating_locked, :is_note_locked, :as => [:admin, :moderator, :janitor]
|
||||||
scope :pending, where(["is_pending = ?", true])
|
scope :pending, where(["is_pending = ?", true])
|
||||||
scope :pending_or_flagged, where(["(is_pending = ? OR is_flagged = ?)", true, true])
|
scope :pending_or_flagged, where(["(is_pending = ? OR is_flagged = ?)", true, true])
|
||||||
scope :undeleted, where(["is_deleted = ?", false])
|
scope :undeleted, where(["is_deleted = ?", false])
|
||||||
@@ -973,6 +974,27 @@ class Post < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module ApiMethods
|
||||||
|
def hidden_attributes
|
||||||
|
super + [:tag_index]
|
||||||
|
end
|
||||||
|
|
||||||
|
def serializable_hash(options = {})
|
||||||
|
options ||= {}
|
||||||
|
options[:except] ||= []
|
||||||
|
options[:except] += hidden_attributes
|
||||||
|
super(options)
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_xml(options = {}, &block)
|
||||||
|
# to_xml ignores the serializable_hash method
|
||||||
|
options ||= {}
|
||||||
|
options[:except] ||= []
|
||||||
|
options[:except] += hidden_attributes
|
||||||
|
super(options, &block)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
include FileMethods
|
include FileMethods
|
||||||
include ImageMethods
|
include ImageMethods
|
||||||
include ApprovalMethods
|
include ApprovalMethods
|
||||||
@@ -989,6 +1011,7 @@ class Post < ActiveRecord::Base
|
|||||||
include DeletionMethods
|
include DeletionMethods
|
||||||
include VersionMethods
|
include VersionMethods
|
||||||
include NoteMethods
|
include NoteMethods
|
||||||
|
include ApiMethods
|
||||||
|
|
||||||
def reload(options = nil)
|
def reload(options = nil)
|
||||||
super
|
super
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class User < ActiveRecord::Base
|
|||||||
|
|
||||||
attr_accessor :password, :old_password
|
attr_accessor :password, :old_password
|
||||||
attr_accessible :password, :old_password, :password_confirmation, :password_hash, :email, :last_logged_in_at, :last_forum_read_at, :has_mail, :receive_email_notifications, :comment_threshold, :always_resize_images, :favorite_tags, :blacklisted_tags, :name, :ip_addr, :time_zone, :default_image_size
|
attr_accessible :password, :old_password, :password_confirmation, :password_hash, :email, :last_logged_in_at, :last_forum_read_at, :has_mail, :receive_email_notifications, :comment_threshold, :always_resize_images, :favorite_tags, :blacklisted_tags, :name, :ip_addr, :time_zone, :default_image_size
|
||||||
attr_accessible :level, :as => :admin
|
attr_accessible :password, :old_password, :password_confirmation, :password_hash, :email, :last_logged_in_at, :last_forum_read_at, :has_mail, :receive_email_notifications, :comment_threshold, :always_resize_images, :favorite_tags, :blacklisted_tags, :name, :ip_addr, :time_zone, :default_image_size, :level, :as => :admin
|
||||||
validates_length_of :name, :within => 2..100, :on => :create
|
validates_length_of :name, :within => 2..100, :on => :create
|
||||||
validates_format_of :name, :with => /\A[^\s:]+\Z/, :on => :create, :message => "cannot have whitespace or colons"
|
validates_format_of :name, :with => /\A[^\s:]+\Z/, :on => :create, :message => "cannot have whitespace or colons"
|
||||||
validates_uniqueness_of :name, :case_sensitive => false, :on => :create
|
validates_uniqueness_of :name, :case_sensitive => false, :on => :create
|
||||||
|
|||||||
@@ -4,5 +4,6 @@
|
|||||||
<%= form_tag("/posts", :class => "simple_form", :method => :put, :id => "quick-edit-form") do %>
|
<%= form_tag("/posts", :class => "simple_form", :method => :put, :id => "quick-edit-form") do %>
|
||||||
<%= text_area_tag "post[tag_string]", "" %>
|
<%= text_area_tag "post[tag_string]", "" %>
|
||||||
<%= submit_tag "Submit" %>
|
<%= submit_tag "Submit" %>
|
||||||
|
<%= submit_tag "Cancel" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user