X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=3c5e6a75d2f3bcae1bb0a6337264dded2dfd45ae;hb=f03fd6ea01ac4ac1657b276ccaa5ea00bbe79976;hp=9c99bb248eea6aac2bc5ebd61f684c545a3d604c;hpb=63bd3117470b16325bd808b1b68d5d922a0fe156;p=Sone.git diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js index 9c99bb2..3c5e6a7 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 @@ -68,10 +95,8 @@ function getSoneStatus(soneId) { updateSoneStatus(soneId, data.status, data.modified, data.lastUpdated); /* seconds! */ updateInterval = 60; - if (data.age < 600) { + if (data.modified || (data.status == "downloading") || (data.status == "inserting")) { updateInterval = 5; - } else if (data.age < 86400) { - updateInterval = 30; } setTimeout(function() { getSoneStatus(soneId);