diff --git a/app/assets/javascripts/uploads.js b/app/assets/javascripts/uploads.js index 673c9c56e..5554cacc6 100644 --- a/app/assets/javascripts/uploads.js +++ b/app/assets/javascripts/uploads.js @@ -12,6 +12,7 @@ this.initialize_info_bookmarklet(); this.initialize_similar(); this.initialize_shortcuts(); + this.initialize_submit(); $("#related-tags-button").trigger("click"); $("#find-artist-button").trigger("click"); @@ -26,6 +27,28 @@ } } + Danbooru.Upload.initialize_submit = function() { + $("#form").submit(function(e) { + var error_messages = []; + if (($("#upload_file").val() === "") && ($("#upload_source").val() === "")) { + error_messages.push("Must choose file or specify source"); + } + if (!$("#upload_rating_s")[0].checked && !$("#upload_rating_q")[0].checked && !$("#upload_rating_e")[0].checked && + ($("#upload_tag_string").val().search(/\brating:[sqe]/) < 0)) { + error_messages.push("Must specify a rating"); + } + if (error_messages.length === 0) { + $("#submit-button")[0].setAttribute("disabled","true"); + $("#submit-button")[0].setAttribute("value","Submitting..."); + $("#client-errors").hide(); + } else { + $("#client-errors")[0].innerHTML = "Error: " + error_messages.join(", "); + $("#client-errors").show(); + e.preventDefault(); + } + }); + } + Danbooru.Upload.initialize_shortcuts = function() { Danbooru.keydown("e", "edit", function(e) { $("#upload_tag_string").focus(); diff --git a/app/views/uploads/new.html.erb b/app/views/uploads/new.html.erb index 4413c9b4b..bbf7bc5c4 100644 --- a/app/views/uploads/new.html.erb +++ b/app/views/uploads/new.html.erb @@ -15,7 +15,7 @@ <%= render "post", :post => @post %> <%= render "sources/info", :source => @source %> - <%= error_messages_for "upload" %> +
<%= form_for(@upload, :html => {:multipart => true, :class => "simple_form", :id => "form"}) do |f| %> <%= hidden_field_tag :url, params[:url] %> @@ -116,7 +116,7 @@