X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Ftemplates%2FeditProfile.html;h=12cbd74e076830607cd8cfff095865152f2c389a;hb=bfd1b2e8caf931f4a27d414bce3fc7d688ccdef9;hp=ae0a522a43845dbce88f3151c1618571133d3b90;hpb=dee1446a74cb28ba132167d4118fcf73d88a4b88;p=Sone.git diff --git a/src/main/resources/templates/editProfile.html b/src/main/resources/templates/editProfile.html index ae0a522..12cbd74 100644 --- a/src/main/resources/templates/editProfile.html +++ b/src/main/resources/templates/editProfile.html @@ -25,11 +25,90 @@ }); <%foreach fields field> - registerInputTextareaSwap("#sone #edit-profile input[name=field-<% loop.count>]", "<% field.key|html>", "field-<% loop.count>", true, true); + registerInputTextareaSwap("#sone #edit-profile input[name=field-<% loop.count>]", <% field.key|js>, "field-<% loop.count>", true, true); <%/foreach> /* hide all the labels. */ $("#sone #edit-profile label, #sone #add-profile-field label").hide(); + + /* ajaxify the delete buttons. */ + getTranslation("Page.EditProfile.Fields.Button.ReallyDelete", function(reallyDeleteText) { + $("#sone #edit-profile .delete-field-name button").each(function() { + confirmButton = $(this).clone().addClass("hidden").addClass("confirm").text(reallyDeleteText).insertAfter(this); + (function(deleteButton, confirmButton) { + deleteButton.click(function() { + deleteButton.fadeOut("slow", function() { + confirmButton.fadeIn("slow"); + $(document).one("click", function() { + if (this != confirmButton.get(0)) { + confirmButton.fadeOut("slow", function() { + deleteButton.fadeIn("slow"); + }); + } + return false; + }); + }); + return false; + }); + confirmButton.click(function() { + confirmButton.fadeOut("slow"); + buttonName = confirmButton.attr("name"); + fieldId = buttonName.substring("delete-field-".length); + deleteProfileField(fieldId); + return false; + }); + })($(this), confirmButton); + }); + }); + + /* ajaxify the edit button. */ + $("#sone #edit-profile .edit-field-name button").each(function() { + profileField = $(this).parents(".profile-field"); + fieldNameElement = profileField.find(".name"); + inputField = $("input[type=text].short", profileField); + confirmButton = $("button.confirm", profileField); + cancelButton = $("button.cancel", profileField); + (function(editButton, inputField, confirmButton, cancelButton, fieldNameElement) { + cleanUp = function(editButton, inputField, confirmButton, cancelButton, fieldNameElement) { + editButton.removeAttr("disabled"); + inputField.addClass("hidden"); + confirmButton.addClass("hidden"); + cancelButton.addClass("hidden"); + fieldNameElement.removeClass("hidden"); + }; + confirmButton.click(function() { + inputField.attr("disabled", "disabled"); + confirmButton.attr("disabled", "disabled"); + cancelButton.attr("disabled", "disabled"); + editProfileField(confirmButton.parents(".profile-field").attr("id"), inputField.val(), function() { + fieldNameElement.text(inputField.val()); + cleanUp(editButton, inputField, confirmButton, cancelButton, fieldNameElement); + }); + return false; + }); + cancelButton.click(function() { + cleanUp(editButton, inputField, confirmButton, cancelButton, fieldNameElement); + return false; + }); + inputField.keypress(function(event) { + if (event.which == 13) { + confirmButton.click(); + return false; + } else if (event.which == 27) { + cancelButton.click(); + return false; + } + }); + editButton.click(function() { + editButton.attr("disabled", "disabled"); + fieldNameElement.addClass("hidden"); + inputField.removeAttr("disabled").val(fieldNameElement.text()).removeClass("hidden").focus().select(); + confirmButton.removeAttr("disabled").removeClass("hidden"); + cancelButton.removeAttr("disabled").removeClass("hidden"); + return false; + }); + })($(this), inputField, confirmButton, cancelButton, fieldNameElement); + }); }); @@ -82,13 +161,14 @@

<%= Page.EditProfile.Fields.Description|l10n|html>

<%foreach fields field fieldLoop> -
-
<% field.key|html>
-
-
-
-
-
+
+
<% field.name|html>
+ +
+
+
+
+
<%if fieldLoop.last>