roblonium-web/Admi/Scripts/ClientSettings.js

96 lines
3.0 KiB
JavaScript

$(function () {
$("span[data-make-button]").button();
var getButton = $("#get-value-button");
var setButton = $("#set-value-button");
var deleteButton = $("#delete-button");
var keyField = $("#setting-key");
var valueField = $("#setting-value");
var baseGetUrl = getButton.data("url");
var baseSetUrl = setButton.data("url");
var baseDeleteUrl = deleteButton.data("url");
var statusMessage = $("#status-message");
function showMessage(text, color) {
color = color || "black";
statusMessage.css("color", color);
statusMessage.text(text);
}
getButton.click(function () {
valueField.val(""); // clear value
var key = keyField.val();
var url = baseGetUrl + "?key=" + encodeURIComponent(key);
$.ajax({
url: url,
cache: false,
success: function (data) {
valueField.val(data);
showMessage("Setting found");
},
error: function (jqXHR, textStatus, errorThrown) {
showMessage(errorThrown, "red");
}
});
});
setButton.click(function () {
if (!Roblox.Admi.SettingsSemaphore.doesCurrentUserHoldSettingsSemaphore()) {
return false;
}
var confirmed = prompt("Are you sure you want to modify this setting? Type YES to continue.") == "YES";
if (confirmed) {
var key = keyField.val();
var value = valueField.val();
var params = { key: key, value: value };
$.post(baseSetUrl, params, function (data) {
if (data == "SET") {
showMessage("Setting saved", "green");
}
else {
showMessage("Error, setting was not saved", "red");
}
});
}
else {
showMessage("Save aborted", "orange");
}
});
deleteButton.click(function () {
if (!Roblox.Admi.SettingsSemaphore.doesCurrentUserHoldSettingsSemaphore()) {
return false;
}
var confirmed = prompt("Are you sure you want to modify this setting? Type YES to continue.") == "YES";
if (confirmed) {
var key = keyField.val();
var params = { key: key };
$.post(baseDeleteUrl, params, function (data) {
if (data == "DELETED") {
showMessage("Setting was deleted", "green");
}
else {
showMessage("Error, setting was not deleted", "red");
}
});
}
else {
showMessage("Delete aborted", "orange");
}
});
$("#format-json-button").click(function () {
var str = valueField.val();
try {
var json = JSON.parse(str);
var formattedString = JSON.stringify(json, null, 4);
valueField.val(formattedString);
}
catch (e) {
alert("Error while parsing JSON:\r\n" + e);
}
});
});