Moved input existence validations to client

This commit is contained in:
BrokenEagle
2017-11-12 23:11:31 -08:00
parent af7c109912
commit f91e11bb41
2 changed files with 25 additions and 2 deletions

View File

@@ -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 = "<strong>Error</strong>: " + error_messages.join(", ");
$("#client-errors").show();
e.preventDefault();
}
});
}
Danbooru.Upload.initialize_shortcuts = function() {
Danbooru.keydown("e", "edit", function(e) {
$("#upload_tag_string").focus();

View File

@@ -15,7 +15,7 @@
<%= render "post", :post => @post %>
<%= render "sources/info", :source => @source %>
<%= error_messages_for "upload" %>
<div id="client-errors" class="error-messages ui-state-error ui-corner-all" style="display:none"></div>
<%= form_for(@upload, :html => {:multipart => true, :class => "simple_form", :id => "form"}) do |f| %>
<%= hidden_field_tag :url, params[:url] %>
@@ -116,7 +116,7 @@
</div>
<div class="input">
<%= submit_tag "Submit", :class => "large", :data => { :disable_with => "Submitting..." }, :class => "ui-button ui-widget ui-corner-all gradient" %>
<%= submit_tag "Submit", :id => "submit-button", :class => "large", :class => "ui-button ui-widget ui-corner-all gradient" %>
</div>
<div id="artist-tags-container">