Temporarily disable button to prevent multiple submissions

This commit is contained in:
James Wang 2016-01-17 00:15:37 +00:00
parent dcc557fd89
commit 796fac7f85
4 changed files with 53 additions and 14 deletions

View file

@ -34,7 +34,7 @@ def team_create():
db.session.commit() db.session.commit()
Users.query.filter_by(uid=_user.uid).update({ "tid": team.tid }) Users.query.filter_by(uid=_user.uid).update({ "tid": team.tid })
db.session.commit() db.session.commit()
return { "success": 1, "message": "Success!" } return { "success": 1, "message": "Success!" }
@blueprint.route("/invite", methods=["POST"]) @blueprint.route("/invite", methods=["POST"])
@ -149,4 +149,4 @@ def get_team(tid=None, teamname=None, teamname_lower=None, owner=None):
match.update({ "tid": _user.tid }) match.update({ "tid": _user.tid })
with app.app_context(): with app.app_context():
result = Teams.query.filter_by(**match) result = Teams.query.filter_by(**match)
return result return result

View file

@ -214,30 +214,42 @@ $.fn.serializeObject = function() {
var register_form = function() { var register_form = function() {
var input = "#register_form input"; var input = "#register_form input";
var data = $("#register_form").serializeObject(); var data = $("#register_form").serializeObject();
var button = $("#register_form").find(":submit");
button.prop("disabled", true);
api_call("POST", "/api/user/register", data, function(result) { api_call("POST", "/api/user/register", data, function(result) {
if (result["success"] == 1) { if (result["success"] == 1) {
location.href = "/profile"; location.href = "/profile";
} else { } else {
display_message("register_msg", "danger", result["message"]); display_message("register_msg", "danger", result["message"], function() {
button.removeAttr("disabled");
});
} }
}).fail(function(jqXHR, status, error) { }).fail(function(jqXHR, status, error) {
var result = JSON.parse(jqXHR["responseText"]); var result = JSON.parse(jqXHR["responseText"]);
display_message("register_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"]); display_message("register_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"], function() {
button.removeAttr("disabled");
});
}); });
}; };
// password reset // password reset
var request_reset_form = function() { var request_reset_form = function() {
var data = $("#request_reset_form").serializeObject(); var data = $("#request_reset_form").serializeObject();
var button = $("#request_reset_form").find(":submit");
button.prop("disabled", true);
api_call("POST", "/api/user/forgot", data, function(result) { api_call("POST", "/api/user/forgot", data, function(result) {
if (result["success"] == 1) { if (result["success"] == 1) {
display_message("reset_msg", "success", result["message"]); display_message("reset_msg", "success", result["message"]);
} else { } else {
display_message("reset_msg", "danger", result["message"]); display_message("reset_msg", "danger", result["message"], function() {
button.removeAttr("disabled");
});
} }
}).fail(function(jqXHR, status, error) { }).fail(function(jqXHR, status, error) {
var result = JSON.parse(jqXHR["responseText"]); var result = JSON.parse(jqXHR["responseText"]);
display_message("reset_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"]); display_message("reset_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"], function() {
button.removeAttr("disabled");
});
}); });
} }
@ -246,17 +258,23 @@ var reset_form = function() {
data["csrf_token"] = $.cookie("csrf_token"); data["csrf_token"] = $.cookie("csrf_token");
var url = window.location.href; var url = window.location.href;
var token = url.substr(url.lastIndexOf("/")+1); var token = url.substr(url.lastIndexOf("/")+1);
var button = $("#reset_form").find(":submit");
button.prop("disabled", true);
api_call("POST", "/api/user/forgot/" + token, data, function(result) { api_call("POST", "/api/user/forgot/" + token, data, function(result) {
if (result["success"] == 1) { if (result["success"] == 1) {
display_message("reset_msg", "success", result["message"], function() { display_message("reset_msg", "success", result["message"], function() {
location.href = "/login"; location.href = "/login";
}); });
} else { } else {
display_message("reset_msg", "danger", result["message"]); display_message("reset_msg", "danger", result["message"], function() {
button.removeAttr("disabled");
});
} }
}).fail(function(jqXHR, status, error) { }).fail(function(jqXHR, status, error) {
var result = JSON.parse(jqXHR["responseText"]); var result = JSON.parse(jqXHR["responseText"]);
display_message("reset_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"]); display_message("reset_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"], function() {
button.removeAttr("disabled");
});
}); });
} }
@ -265,15 +283,21 @@ var reset_form = function() {
var login_form = function() { var login_form = function() {
var input = "#login_form input"; var input = "#login_form input";
var data = $("#login_form").serializeObject(); var data = $("#login_form").serializeObject();
var button = $("#login_form").find(":submit");
button.prop("disabled", true);
api_call("POST", "/api/user/login", data, function(result) { api_call("POST", "/api/user/login", data, function(result) {
if (result["success"] == 1) { if (result["success"] == 1) {
location.href = "/profile"; location.href = "/profile";
} else { } else {
display_message("login_msg", "danger", result["message"]); display_message("login_msg", "danger", result["message"], function() {
button.removeAttr("disabled");
});
} }
}).fail(function(jqXHR, status, error) { }).fail(function(jqXHR, status, error) {
var result = JSON.parse(jqXHR["responseText"]); var result = JSON.parse(jqXHR["responseText"]);
display_message("login_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"]); display_message("login_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"], function() {
button.removeAttr("disabled");
});
}); });
}; };
@ -282,24 +306,39 @@ var login_form = function() {
var create_team = function() { var create_team = function() {
var input = "#create_team input"; var input = "#create_team input";
var data = $("#create_team").serializeObject(); var data = $("#create_team").serializeObject();
var button = $("#create_team").find(":submit");
button.prop("disabled", true);
api_call("POST", "/api/team/create", data, function(result) { api_call("POST", "/api/team/create", data, function(result) {
if (result["success"] == 1) { if (result["success"] == 1) {
location.reload(true); location.reload(true);
} else { } else {
display_message("create_team_msg", "danger", result["message"]); display_message("create_team_msg", "danger", result["message"], function() {
button.removeAttr("disabled");
});
} }
}).fail(function(jqXHR, status, error) { }).fail(function(jqXHR, status, error) {
var result = JSON.parse(jqXHR["responseText"]); var result = JSON.parse(jqXHR["responseText"]);
display_message("create_team_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"]); display_message("create_team_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"], function() {
button.removeAttr("disabled");
});
}); });
}; };
var add_member = function() { var add_member = function() {
var input = "#add_member input"; var input = "#add_member input";
var data = $("#add_member").serializeObject(); var data = $("#add_member").serializeObject();
var button = $("#add_member").find(":submit");
button.prop("disabled", true);
api_call("POST", "/api/team/invite", data, function(result) { api_call("POST", "/api/team/invite", data, function(result) {
if (result["success"] == 1) { if (result["success"] == 1) {
location.reload(true); location.reload(true);
} else {
button.removeAtr("disabled");
} }
}).fail(function(jqXHR, status, error) {
var result = JSON.parse(jqXHR["responseText"]);
display_message("create_team_msg", "danger", "Error " + jqXHR["status"] + ": " + result["message"], function() {
button.removeAttr("disabled");
});
}); });
}; };

View file

@ -51,4 +51,4 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -157,4 +157,4 @@
} }
}); });
$("[data-toggle=tooltip]").tooltip(); $("[data-toggle=tooltip]").tooltip();
</script> </script>