| @@ -27,14 +27,15 @@ function get_edit_id_from_href(href) { | |||||
| return anime_id; | return anime_id; | ||||
| } | } | ||||
| function get_scores_from_element(elem) { | |||||
| var score_100 = Math.round(elem.val() * 10) / 10; | |||||
| var score_10 = Math.round(elem.val()); | |||||
| if (isNaN(score_100) || score_100 < 1 || score_100 > 10) { | |||||
| alert("Invalid score: must be a decimal between 1.0 and 10.0."); | |||||
| function get_score_from_element(elem) { | |||||
| var score = Math.round(elem.val() * 10) / 10; | |||||
| if (isNaN(score) || ((score < 1 || score > 10) && score != 0)) { | |||||
| alert("Invalid score: must be a number between 1.0 and 10.0, or 0."); | |||||
| return null; | return null; | ||||
| } | } | ||||
| return [score_100, score_10]; | |||||
| if (score == Math.round(score)) | |||||
| score += ".0" | |||||
| return score; | |||||
| } | } | ||||
| /* --------------------------- Storage functions --------------------------- */ | /* --------------------------- Storage functions --------------------------- */ | ||||
| @@ -87,35 +88,31 @@ function remove_score(anime_id) { | |||||
| /* ----------------------- Event patches/injections ------------------------ */ | /* ----------------------- Event patches/injections ------------------------ */ | ||||
| function update_list_score(anime_id) { | function update_list_score(anime_id) { | ||||
| var new_scores = get_scores_from_element($("#scoretext" + anime_id)); | |||||
| if (new_scores === null) | |||||
| var new_score = get_score_from_element($("#scoretext" + anime_id)); | |||||
| if (new_score === null) | |||||
| return; | return; | ||||
| var new_score_100 = new_scores[0], new_score_10 = new_scores[1]; | |||||
| var payload = {id: anime_id, score: new_score_10}; | |||||
| var payload = {id: anime_id, score: Math.round(new_score)}; | |||||
| $("#scorebutton" + anime_id).prop("disabled", true); | $("#scorebutton" + anime_id).prop("disabled", true); | ||||
| $.post("/includes/ajax.inc.php?t=63", payload, function(data) { | $.post("/includes/ajax.inc.php?t=63", payload, function(data) { | ||||
| $("#scoreval" + anime_id).text(new_score_100); | |||||
| $("#scoreval" + anime_id).text(new_score == 0 ? "-" : new_score); | |||||
| $("#scoretext" + anime_id).val(""); | $("#scoretext" + anime_id).val(""); | ||||
| $("#scorediv" + anime_id).css("display", "none"); | $("#scorediv" + anime_id).css("display", "none"); | ||||
| $("#scorebutton" + anime_id).prop("disabled", false); | $("#scorebutton" + anime_id).prop("disabled", false); | ||||
| if (should_sort) | if (should_sort) | ||||
| sort_list(); | sort_list(); | ||||
| }); | }); | ||||
| save_score(anime_id, new_score_100); | |||||
| save_score(anime_id, new_score); | |||||
| } | } | ||||
| function update_anime_score(anime_id, is_new) { | function update_anime_score(anime_id, is_new) { | ||||
| var new_scores = get_scores_from_element($("#myinfo_score")); | |||||
| if (new_scores === null) | |||||
| var new_score = get_score_from_element($("#myinfo_score")); | |||||
| if (new_score === null) | |||||
| return; | return; | ||||
| var new_score_100 = new_scores[0], new_score_10 = new_scores[1]; | |||||
| var t_id, payload = {score: new_score_10}; | |||||
| var t_id, payload = {score: Math.round(new_score)}; | |||||
| payload["status"] = $("#myinfo_status").val(); | payload["status"] = $("#myinfo_status").val(); | ||||
| payload["epsseen"] = $("#myinfo_watchedeps").val(); | payload["epsseen"] = $("#myinfo_watchedeps").val(); | ||||
| if (is_new) { | if (is_new) { | ||||
| payload["aid"] = anime_id; | payload["aid"] = anime_id; | ||||
| t_id = "61"; | t_id = "61"; | ||||
| @@ -130,13 +127,13 @@ function update_anime_score(anime_id, is_new) { | |||||
| $("#myinfoDisplay").html(LOADING_IMG); | $("#myinfoDisplay").html(LOADING_IMG); | ||||
| $.post("/includes/ajax.inc.php?t=" + t_id, payload, function(data) { | $.post("/includes/ajax.inc.php?t=" + t_id, payload, function(data) { | ||||
| if (is_new) { | if (is_new) { | ||||
| document.getElementById("myinfoDisplay").innerHTML = ""; | |||||
| document.getElementById("addtolist").innerHTML = data; | |||||
| $("#myinfoDisplay").html(""); | |||||
| $("#addtolist").html(data); | |||||
| } | } | ||||
| else | else | ||||
| document.getElementById("myinfoDisplay").innerHTML = data; | |||||
| $("#myinfoDisplay").html(data); | |||||
| }); | }); | ||||
| save_score(anime_id, new_score_100); | |||||
| save_score(anime_id, new_score); | |||||
| } | } | ||||
| function submit_add_form(submit_button) { | function submit_add_form(submit_button) { | ||||
| @@ -144,25 +141,23 @@ function submit_add_form(submit_button) { | |||||
| if (!anime_id) | if (!anime_id) | ||||
| return submit_button[0].click(); | return submit_button[0].click(); | ||||
| var new_scores = get_scores_from_element($("#score_input")); | |||||
| if (new_scores === null) | |||||
| var new_score = get_score_from_element($("#score_input")); | |||||
| if (new_score === null) | |||||
| return; | return; | ||||
| var new_score_100 = new_scores[0], new_score_10 = new_scores[1]; | |||||
| $("select[name='score']").val(new_score_10); | |||||
| save_score(anime_id, new_score_100); | |||||
| $("select[name='score']").val(Math.round(new_score)); | |||||
| save_score(anime_id, new_score); | |||||
| submit_button[0].click(); | submit_button[0].click(); | ||||
| } | } | ||||
| function submit_edit_form(anime_id, submit_type, submit_button) { | function submit_edit_form(anime_id, submit_type, submit_button) { | ||||
| if (submit_type == 2) { | if (submit_type == 2) { | ||||
| var new_scores = get_scores_from_element($("#score_input")); | |||||
| if (new_scores === null) | |||||
| var new_score = get_score_from_element($("#score_input")); | |||||
| if (new_score === null) | |||||
| return; | return; | ||||
| var new_score_100 = new_scores[0], new_score_10 = new_scores[1]; | |||||
| $("select[name='score']").val(new_score_10); | |||||
| save_score(anime_id, new_score_100); | |||||
| $("select[name='score']").val(Math.round(new_score)); | |||||
| save_score(anime_id, new_score); | |||||
| } | } | ||||
| else if (submit_type == 3) | else if (submit_type == 3) | ||||
| remove_score(anime_id); | remove_score(anime_id); | ||||
| @@ -225,7 +220,7 @@ function hook_list() { | |||||
| var bucket = data[bucket_id]; | var bucket = data[bucket_id]; | ||||
| if (bucket !== undefined && bucket[anime_id] !== undefined) | if (bucket !== undefined && bucket[anime_id] !== undefined) | ||||
| $(elem).text(bucket[anime_id]); | |||||
| $(elem).text(bucket[anime_id] == 0 ? "-" : bucket[anime_id]); | |||||
| else { | else { | ||||
| var current = parseInt($(elem).text()); | var current = parseInt($(elem).text()); | ||||
| if (!isNaN(current)) | if (!isNaN(current)) | ||||
| @@ -271,10 +266,8 @@ function hook_anime(anime_id) { | |||||
| var old_button = $("input[name='myinfo_submit']"); | var old_button = $("input[name='myinfo_submit']"); | ||||
| var is_new = old_button.attr("value") == "Add"; | var is_new = old_button.attr("value") == "Add"; | ||||
| if (!is_new && score === null) { | |||||
| var old_score = parseInt(old_input.val()); | |||||
| score = old_score == 0 ? "" : old_score + ".0"; | |||||
| } | |||||
| if (!is_new && score === null) | |||||
| score = parseInt(old_input.val()) + ".0"; | |||||
| old_input.after($("<span> / 10.0</span>")) | old_input.after($("<span> / 10.0</span>")) | ||||
| .after($("<input>") | .after($("<input>") | ||||
| @@ -282,7 +275,7 @@ function hook_anime(anime_id) { | |||||
| .attr("id", "myinfo_score") | .attr("id", "myinfo_score") | ||||
| .attr("name", "myinfo_score") | .attr("name", "myinfo_score") | ||||
| .attr("class", "inputtext") | .attr("class", "inputtext") | ||||
| .attr("value", (score === null) ? "" : score) | |||||
| .attr("value", (score === null || score == 0) ? "" : score) | |||||
| .attr("size", "3")) | .attr("size", "3")) | ||||
| .remove(); | .remove(); | ||||
| @@ -327,17 +320,15 @@ function hook_edit(anime_id) { | |||||
| var old_edit = $("input[type='button'][onclick='checkValidSubmit(2)']"); | var old_edit = $("input[type='button'][onclick='checkValidSubmit(2)']"); | ||||
| var old_delete = $("input[type='button'][onclick='checkValidSubmit(3)']"); | var old_delete = $("input[type='button'][onclick='checkValidSubmit(3)']"); | ||||
| if (score === null) { | |||||
| var old_score = parseInt(old_input.val()); | |||||
| score = old_score == 0 ? "" : old_score + ".0"; | |||||
| } | |||||
| if (score === null) | |||||
| score = parseInt(old_input.val()) + ".0"; | |||||
| old_input.after($("<span> / 10.0</span>")) | old_input.after($("<span> / 10.0</span>")) | ||||
| .after($("<input>") | .after($("<input>") | ||||
| .attr("type", "text") | .attr("type", "text") | ||||
| .attr("id", "score_input") | .attr("id", "score_input") | ||||
| .attr("class", "inputtext") | .attr("class", "inputtext") | ||||
| .attr("value", score) | |||||
| .attr("value", score == 0 ? "" : score) | |||||
| .attr("size", "3")) | .attr("size", "3")) | ||||
| .hide(); | .hide(); | ||||