Make DeveloperSettings a singleton, and other improvements.

By making it a singleton, we do need an explicit Setup operation. However, it means that we can refer to the settings in client code that doesn’t have access to a request or to the ServletContext.

Other refactorings to simplify the logic or make it more scalable.
This commit is contained in:
j2blake 2014-01-04 14:22:29 -05:00
parent f6bd5804d5
commit 245763e9e7
20 changed files with 387 additions and 421 deletions

View file

@ -11,6 +11,8 @@ edu.cornell.mannlib.vitro.webapp.config.ConfigurationPropertiesSetup
edu.cornell.mannlib.vitro.webapp.config.ConfigurationPropertiesSmokeTests
edu.cornell.mannlib.vitro.webapp.utils.developer.DeveloperSettings$Setup
edu.cornell.mannlib.vitro.webapp.config.RevisionInfoSetup
edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup

View file

@ -34,41 +34,41 @@ function DeveloperPanel(developerAjaxUrl) {
document.getElementById("developerPanelSaveButton").onclick = function() {
updateDeveloperPanel(collectFormData());
}
document.getElementById("developerEnabled").onchange = updateDisabledFields
document.getElementById("developerLoggingRDFServiceEnable").onchange = updateDisabledFields
document.getElementById("developer_enabled").onchange = updateDisabledFields
document.getElementById("developer_loggingRDFService_enable").onchange = updateDisabledFields
}
function updateDisabledFields() {
var developerEnabled = document.getElementById("developerEnabled").checked;
document.getElementById("developerPermitAnonymousControl").disabled = !developerEnabled;
document.getElementById("developerDefeatFreemarkerCache").disabled = !developerEnabled;
document.getElementById("developerInsertFreemarkerDelimiters").disabled = !developerEnabled;
document.getElementById("developerPageContentsLogCustomListView").disabled = !developerEnabled;
document.getElementById("developerPageContentsLogCustomShortView").disabled = !developerEnabled;
document.getElementById("developerI18nDefeatCache").disabled = !developerEnabled;
document.getElementById("developerI18nLogStringRequests").disabled = !developerEnabled;
document.getElementById("developerLoggingRDFServiceEnable").disabled = !developerEnabled;
var developerEnabled = document.getElementById("developer_enabled").checked;
document.getElementById("developer_permitAnonymousControl").disabled = !developerEnabled;
document.getElementById("developer_defeatFreemarkerCache").disabled = !developerEnabled;
document.getElementById("developer_insertFreemarkerDelimiters").disabled = !developerEnabled;
document.getElementById("developer_pageContents_logCustomListView").disabled = !developerEnabled;
document.getElementById("developer_pageContents_logCustomShortView").disabled = !developerEnabled;
document.getElementById("developer_i18n_defeatCache").disabled = !developerEnabled;
document.getElementById("developer_i18n_logStringRequests").disabled = !developerEnabled;
document.getElementById("developer_loggingRDFService_enable").disabled = !developerEnabled;
var rdfServiceEnabled = developerEnabled && document.getElementById("developerLoggingRDFServiceEnable").checked;
document.getElementById("developerLoggingRDFServiceStackTrace").disabled = !rdfServiceEnabled;
document.getElementById("developerLoggingRDFServiceQueryRestriction").disabled = !rdfServiceEnabled;
document.getElementById("developerLoggingRDFServiceStackRestriction").disabled = !rdfServiceEnabled;
var rdfServiceEnabled = developerEnabled && document.getElementById("developer_loggingRDFService_enable").checked;
document.getElementById("developer_loggingRDFService_stackTrace").disabled = !rdfServiceEnabled;
document.getElementById("developer_loggingRDFService_queryRestriction").disabled = !rdfServiceEnabled;
document.getElementById("developer_loggingRDFService_stackRestriction").disabled = !rdfServiceEnabled;
}
function collectFormData() {
var data = new Object();
getCheckbox("developerEnabled", data);
getCheckbox("developerPermitAnonymousControl", data);
getCheckbox("developerDefeatFreemarkerCache", data);
getCheckbox("developerInsertFreemarkerDelimiters", data);
getCheckbox("developerPageContentsLogCustomListView", data);
getCheckbox("developerPageContentsLogCustomShortView", data);
getCheckbox("developerI18nDefeatCache", data);
getCheckbox("developerI18nLogStringRequests", data);
getCheckbox("developerLoggingRDFServiceEnable", data);
getCheckbox("developerLoggingRDFServiceStackTrace", data);
getText("developerLoggingRDFServiceQueryRestriction", data);
getText("developerLoggingRDFServiceStackRestriction", data);
getCheckbox("developer_enabled", data);
getCheckbox("developer_permitAnonymousControl", data);
getCheckbox("developer_defeatFreemarkerCache", data);
getCheckbox("developer_insertFreemarkerDelimiters", data);
getCheckbox("developer_pageContents_logCustomListView", data);
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;
}

View file

@ -9,7 +9,7 @@
<input type="text" id="${key}" size="30" value="${settings[key]}" >
</#macro>
<#if !settings.developerEnabled>
<#if !settings.developer_enabled>
<#elseif !settings.mayControl>
<div class="developer">
<h1>${siteName} is running in developer mode.</h1>
@ -22,11 +22,11 @@
<div id="developerPanelBody">
<div>
<label>
<@showCheckbox "developerEnabled" />
<@showCheckbox "developer_enabled" />
Enable developer mode
</label>
<label>
<@showCheckbox "developerPermitAnonymousControl" />
<@showCheckbox "developer_permitAnonymousControl" />
Allow anonymous user to see and modify developer settings
</label>
</div>
@ -35,11 +35,11 @@
<div class="container">
Page configuration
<label>
<@showCheckbox "developerPageContentsLogCustomListView" />
<@showCheckbox "developer_pageContents_logCustomListView" />
Log the use of custom list view XML files.
</label>
<label>
<@showCheckbox "developerPageContentsLogCustomShortView" />
<@showCheckbox "developer_pageContents_logCustomShortView" />
Log the use of custom short views in search, index and browse pages.
</label>
</div>
@ -47,11 +47,11 @@
<div class="container">
Language support
<label>
<@showCheckbox "developerI18nDefeatCache" />
<@showCheckbox "developer_i18n_defeatCache" />
Defeat the cache of language property files
</label>
<label>
<@showCheckbox "developerI18nLogStringRequests" />
<@showCheckbox "developer_i18n_logStringRequests" />
Log the retrieval of language strings
</label>
</div>
@ -71,11 +71,11 @@
<div class="container">
Freemarker templates
<label>
<@showCheckbox "developerDefeatFreemarkerCache" />
<@showCheckbox "developer_defeatFreemarkerCache" />
Defeat the template cache
</label>
<label>
<@showCheckbox "developerInsertFreemarkerDelimiters" />
<@showCheckbox "developer_insertFreemarkerDelimiters" />
Insert HTML comments at start and end of templates
</label>
</div>
@ -83,21 +83,21 @@
<div class="container">
SPARQL Queries
<label>
<@showCheckbox "developerLoggingRDFServiceEnable" />
<@showCheckbox "developer_loggingRDFService_enable" />
Log each query
</label>
<div class="within">
<label>
<@showCheckbox "developerLoggingRDFServiceStackTrace" />
<@showCheckbox "developer_loggingRDFService_stackTrace" />
Add stack trace
</label>
<label>
Restrict by query string
<@showTextbox "developerLoggingRDFServiceQueryRestriction" />
<@showTextbox "developer_loggingRDFService_queryRestriction" />
</label>
<label>
Restrict by calling stack
<@showTextbox "developerLoggingRDFServiceStackRestriction" />
<@showTextbox "developer_loggingRDFService_stackRestriction" />
</label>
</div>
</div>