X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=1d6f0f8acac103a4c7320f1f2ff54aebe1acef0c;hb=aa5d1c27e9ed5a3d0b06c313e2669d2625c338f4;hp=6420e5b4bdad7e38f5ed5e327e6f09539dedab3b;hpb=067571ca9d47d10dd401312f6bfe367908866f28;p=Sone.git diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js index 6420e5b..1d6f0f8 100644 --- a/src/main/resources/static/javascript/sone.js +++ b/src/main/resources/static/javascript/sone.js @@ -5,26 +5,38 @@ function registerInputTextareaSwap(inputSelector, defaultText, inputFieldName, o textarea = $("").blur(function() { if ($(this).val() == "") { $(this).hide(); - $(this).data("inputField").show().removeAttr("disabled"); + inputField = $(this).data("inputField"); + inputField.show().removeAttr("disabled").addClass("default"); + (function(inputField) { + getTranslation(defaultText, function(translation) { + inputField.val(translation); + }); + })(inputField); } - }).hide().data("inputField", $(this)); + }).hide().data("inputField", $(this)).val($(this).val()); $(this).after(textarea); (function(inputField, textarea) { - $(inputField).focus(function() { + inputField.focus(function() { $(this).hide().attr("disabled", "disabled"); textarea.show().focus(); - }).addClass("default"); - (function(inputField) { - $.getJSON("ajax/getTranslation.ajax", {"key": defaultText}, function(data, textStatus) { - $(inputField).val(data.value); - }); - })(inputField); - $(inputField.form).submit(function() { + }); + if (inputField.val() == "") { + inputField.addClass("default"); + (function(inputField) { + getTranslation(defaultText, function(translation) { + inputField.val(translation); + }); + })(inputField); + } else { + inputField.hide().attr("disabled", "disabled"); + textarea.show(); + } + $(inputField.get(0).form).submit(function() { if (!optional && (textarea.val() == "")) { return false; } }); - })(this, textarea); + })($(this), textarea); }); } @@ -58,6 +70,21 @@ function addCommentLinks() { } /** + * Retrieves the translation for the given key and calls the callback function. + * The callback function takes a single parameter, the translated string. + * + * @param key + * The key of the translation string + * @param callback + * The callback function + */ +function getTranslation(key, callback) { + $.getJSON("ajax/getTranslation.ajax", {"key": key}, function(data, textStatus) { + callback(data.value); + }); +} + +/** * Fires off an AJAX request to retrieve the current status of a Sone. * * @param soneId @@ -93,13 +120,13 @@ function getSoneStatus(soneId) { * The date and time of the last update (formatted for display) */ function updateSoneStatus(soneId, status, modified, lastUpdated) { - $("#sone .sone#" + soneId). + $("#sone .sone." + 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 + " .last-update span.time").text(lastUpdated); } var watchedSones = {};