Render browser settings into the template rather than using synchronous AJAX calls to get them.

pull/3/head
Dave Page 2015-02-12 10:46:21 +00:00
parent bb6a3f9b5b
commit 4c29f4385f
3 changed files with 14 additions and 46 deletions

View File

@ -50,12 +50,6 @@ function storeLayout(pane, $pane, paneState, paneOptions) {
return true return true
} }
// Get the previous settings
var sqlPaneSize = getIntegerSetting("Browser/SQLPane/Size", 250)
var sqlPaneClosed = getBooleanSetting("Browser/SQLPane/Closed", false)
var browserPaneSize = getIntegerSetting("Browser/BrowserPane/Size", 250)
var browserPaneClosed = getBooleanSetting("Browser/BrowserPane/Closed", false)
var layout var layout
var layoutDefault = { var layoutDefault = {
center__maskContents: true, center__maskContents: true,
@ -66,8 +60,8 @@ var layoutDefault = {
center__maskContents: true, center__maskContents: true,
center__onresize: "storeLayout", center__onresize: "storeLayout",
south__maskContents: true, south__maskContents: true,
south__size: sqlPaneSize, south__size: {{ layout_settings.sql_size }},
south__initClosed: sqlPaneClosed, south__initClosed: {{ layout_settings.sql_closed }},
south__spacing_closed: 22, south__spacing_closed: 22,
south__togglerLength_closed: 140, south__togglerLength_closed: 140,
south__togglerAlign_closed: "right", south__togglerAlign_closed: "right",
@ -77,8 +71,8 @@ var layoutDefault = {
south__slideTrigger_open: "mouseover", south__slideTrigger_open: "mouseover",
}], }],
west__maskContents: true, west__maskContents: true,
west__size: browserPaneSize, west__size: {{ layout_settings.browser_size }},
west__initClosed: browserPaneClosed, west__initClosed: {{ layout_settings.browser_closed }},
west__spacing_closed: 22, west__spacing_closed: 22,
west__togglerLength_closed: 140, west__togglerLength_closed: 140,
west__togglerAlign_closed: "top", west__togglerAlign_closed: "top",

View File

@ -17,6 +17,7 @@ from flask.ext.login import current_user
from inspect import getmoduleinfo, getmembers from inspect import getmoduleinfo, getmembers
from pgadmin import modules from pgadmin import modules
from pgadmin.settings import get_setting
import config import config
@ -72,11 +73,18 @@ def index():
tools_items = sorted(tools_items, key=lambda k: k['priority']) tools_items = sorted(tools_items, key=lambda k: k['priority'])
help_items = sorted(help_items, key=lambda k: k['priority']) help_items = sorted(help_items, key=lambda k: k['priority'])
# Get any Javascript snippets # Get the layout settings
layout_settings = {}
layout_settings['sql_size'] = get_setting('Browser/SQLPane/Size', default=250)
layout_settings['sql_closed'] = get_setting('Browser/SQLPane/Closed', default=False)
layout_settings['browser_size'] = get_setting('Browser/BrowserPane/Size', default=250)
layout_settings['browser_closed'] = get_setting('Browser/BrowserPane/Closed', default=False)
return render_template(MODULE_NAME + '/index.html', return render_template(MODULE_NAME + '/index.html',
username=current_user.email, username=current_user.email,
file_items=file_items, file_items=file_items,
edit_items=edit_items, edit_items=edit_items,
tools_items=tools_items, tools_items=tools_items,
help_items=help_items, help_items=help_items,
js_code = js_code) js_code = js_code,
layout_settings = layout_settings)

View File

@ -1,37 +1,3 @@
// Get a setting from the server. Returns a string value
function getSetting(setting, defval) {
var value
$.ajaxSetup({
async: false
});
$.post("{{ url_for('settings.get') }}", { setting: setting, default: defval })
.done(function(data) {
value = data
});
$.ajaxSetup({
async: true
});
return value
}
// Get a setting from the server. Returns a boolean value
function getBooleanSetting(setting, defval) {
return (getSetting(setting, defval) == "true" ? true : false)
}
// Get a setting from the server. Returns an integer value
function getIntegerSetting(setting, defval) {
return parseInt(getSetting(setting, defval))
}
// Get a setting from the server. Returns an float value
function getFloatSetting(setting, defval) {
return parseFloat(getSetting(setting, defval))
}
// Store a single setting // Store a single setting
function storeSetting(setting, value) { function storeSetting(setting, value) {
$.post("{{ url_for('settings.store') }}", { setting: setting, value: value }); $.post("{{ url_for('settings.store') }}", { setting: setting, value: value });