X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=05ab5a00480736d293510bd9e332f356d16351cd;hb=refs%2Ftags%2F0.2;hp=695503cb3bb8f94b4e86556f0212c2f61699a45c;hpb=ad54030fb89a0b74a7096e350c5428f884d28ffe;p=Sone.git diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js index 695503c..05ab5a0 100644 --- a/src/main/resources/static/javascript/sone.js +++ b/src/main/resources/static/javascript/sone.js @@ -112,6 +112,17 @@ function getSoneStatus(soneId) { } /** + * Filters the given Sone ID, replacing all “~” characters by an underscore. + * + * @param soneId + * The Sone ID to filter + * @returns The filtered Sone ID + */ +function filterSoneId(soneId) { + return soneId.replace(/[^a-zA-Z0-9-]/g, "_"); +} + +/** * Updates the status of the given Sone. * * @param soneId @@ -125,14 +136,14 @@ function getSoneStatus(soneId) { * The date and time of the last update (formatted for display) */ function updateSoneStatus(soneId, name, status, modified, lastUpdated) { - $("#sone .sone." + soneId). + $("#sone .sone." + filterSoneId(soneId)). toggleClass("unknown", status == "unknown"). toggleClass("idle", status == "idle"). toggleClass("inserting", status == "inserting"). toggleClass("downloading", status == "downloading"). toggleClass("modified", modified); - $("#sone .sone." + soneId + " .last-update span.time").text(lastUpdated); - $("#sone .sone." + soneId + " .profile-link a").text(name); + $("#sone .sone." + filterSoneId(soneId) + " .last-update span.time").text(lastUpdated); + $("#sone .sone." + filterSoneId(soneId) + " .profile-link a").text(name); } var watchedSones = {}; @@ -297,16 +308,16 @@ function getReplyId(element) { function likePost(postId) { $.getJSON("ajax/like.ajax", { "type": "post", "post" : postId, "formPassword": getFormPassword() }, function() { - $("#sone .post#" + postId + " > .status-line .like").addClass("hidden"); - $("#sone .post#" + postId + " > .status-line .unlike").removeClass("hidden"); + $("#sone .post#" + postId + " > .inner-part > .status-line .like").addClass("hidden"); + $("#sone .post#" + postId + " > .inner-part > .status-line .unlike").removeClass("hidden"); updatePostLikes(postId); }); } function unlikePost(postId) { $.getJSON("ajax/unlike.ajax", { "type": "post", "post" : postId, "formPassword": getFormPassword() }, function() { - $("#sone .post#" + postId + " > .status-line .unlike").addClass("hidden"); - $("#sone .post#" + postId + " > .status-line .like").removeClass("hidden"); + $("#sone .post#" + postId + " > .inner-part > .status-line .unlike").addClass("hidden"); + $("#sone .post#" + postId + " > .inner-part > .status-line .like").removeClass("hidden"); updatePostLikes(postId); }); } @@ -314,9 +325,9 @@ function unlikePost(postId) { function updatePostLikes(postId) { $.getJSON("ajax/getLikes.ajax", { "type": "post", "post": postId }, function(data, textStatus) { if (data.success) { - $("#sone .post#" + postId + " > .status-line .likes").toggleClass("hidden", data.likes == 0) - $("#sone .post#" + postId + " > .status-line .likes span.like-count").text(data.likes); - $("#sone .post#" + postId + " > .status-line .likes > span").attr("title", generateSoneList(data.sones)); + $("#sone .post#" + postId + " > .inner-part > .status-line .likes").toggleClass("hidden", data.likes == 0) + $("#sone .post#" + postId + " > .inner-part > .status-line .likes span.like-count").text(data.likes); + $("#sone .post#" + postId + " > .inner-part > .status-line .likes > span").attr("title", generateSoneList(data.sones)); } }); }