Use JQuery to simplify some of the behavior code in the developer panel

This commit is contained in:
j2blake 2014-01-05 17:19:23 -05:00
parent 23c30a8957
commit 0f0cac5d35

View file

@ -3,18 +3,17 @@
function DeveloperPanel(developerAjaxUrl) { function DeveloperPanel(developerAjaxUrl) {
this.setupDeveloperPanel = updateDeveloperPanel; this.setupDeveloperPanel = updateDeveloperPanel;
function updateDeveloperPanel(data) { function updateDeveloperPanel() {
$.ajax({ $.ajax({
url: developerAjaxUrl, url: developerAjaxUrl,
dataType: "json", dataType: "json",
data: data, data: collectFormData(),
complete: function(xhr, status) { complete: function(xhr, status) {
updatePanelContents(xhr.responseText); updatePanelContents(xhr.responseText);
if (document.getElementById("developerPanelSaveButton")) { if (document.getElementById("developerPanelSaveButton")) {
enablePanelOpener(); initializeTabs();
addBehaviorToElements(); addBehaviorToElements();
updateDisabledFields(); updateDisabledFields();
initializeTabs();
} }
} }
}); });
@ -24,19 +23,19 @@ function DeveloperPanel(developerAjaxUrl) {
document.getElementById("developerPanel").innerHTML = contents; document.getElementById("developerPanel").innerHTML = contents;
} }
function enablePanelOpener() { function initializeTabs() {
document.getElementById("developerPanelClickMe").onclick = function() { $("#developerTabs").tabs();
document.getElementById("developerPanelClickText").style.display = "none";
document.getElementById("developerPanelBody").style.display = "block";
};
} }
function addBehaviorToElements() { function addBehaviorToElements() {
document.getElementById("developerPanelSaveButton").onclick = function() { $( "#developerPanelClickMe" ).click(openPanel);
updateDeveloperPanel(collectFormData()); $( "#developerPanelSaveButton" ).click(updateDeveloperPanel);
$( "#developerPanelBody [type=checkbox]" ).change(updateDisabledFields);
} }
document.getElementById("developer_enabled").onchange = updateDisabledFields
document.getElementById("developer_loggingRDFService_enable").onchange = updateDisabledFields function openPanel() {
$( "#developerPanelClickText" ).hide();
$( "#developerPanelBody" ).css( "display", "block" );
} }
function updateDisabledFields() { function updateDisabledFields() {
@ -56,34 +55,16 @@ function DeveloperPanel(developerAjaxUrl) {
document.getElementById("developer_loggingRDFService_stackRestriction").disabled = !rdfServiceEnabled; document.getElementById("developer_loggingRDFService_stackRestriction").disabled = !rdfServiceEnabled;
} }
function initializeTabs() {
$("#developerTabs").tabs();
}
function collectFormData() { function collectFormData() {
var data = new Object(); var data = new Object();
getCheckbox("developer_enabled", data); $( "#developerPanelBody [type=checkbox]" ).each(function(i, element){
getCheckbox("developer_permitAnonymousControl", data); data[element.id] = element.checked;
getCheckbox("developer_defeatFreemarkerCache", data); });
getCheckbox("developer_insertFreemarkerDelimiters", data); $( "#developerPanelBody [type=text]" ).each(function(i, element){
getCheckbox("developer_pageContents_logCustomListView", data); data[element.id] = element.value;
getCheckbox("developer_pageContents_logCustomShortView", data); });
getCheckbox("developer_i18n_defeatCache", data);
getCheckbox("developer_i18n_logStringRequests", data);
getCheckbox("developer_loggingRDFService_enable", data);
getCheckbox("developer_loggingRDFService_stackTrace", data);
getText("developer_loggingRDFService_queryRestriction", data);
getText("developer_loggingRDFService_stackRestriction", data);
return data; return data;
} }
function getCheckbox(key, dest) {
dest[key] = document.getElementById(key).checked;
}
function getText(key, dest) {
dest[key] = document.getElementById(key).value;
}
} }
/* /*
@ -95,6 +76,6 @@ $(document).ready(function() {
$("head").append(cssLink); $("head").append(cssLink);
}); });
new DeveloperPanel(developerAjaxUrl).setupDeveloperPanel({}); new DeveloperPanel(developerAjaxUrl).setupDeveloperPanel();
}); });