%!
import pprint as pp
import xml.sax.saxutils as su
%>
<%namespace name="lib" file="//lib.html" import="*" />
<%
globalCounter = {}
def primitiveToXml(P, addUl=True):
if isinstance(P, dict): return _dictToXml(P, addUl)
elif isinstance(P, list): return _listToXml(P, addUl)
elif isinstance(P, basestring): return '%s' % su.escape(P)
else: return '%s' % su.escape(str(P))
def _dictToXml(D, addUl=True):
output = []
if addUl:
output = ['
']
for k in D:
output.append('- ')
#output.append('')
output.append('%s' % k)
#output.append(k)
output.append(': ')
#output.append('')
output.append(primitiveToXml(D[k]))
output.append('
')
if addUl:
output.append('
')
return ''.join(output)
def _listToXml(L, addUl=True):
output = []
if addUl:
output = ['']
for x in L:
output.append('- ')
output.append(primitiveToXml(x))
output.append('
')
if addUl:
output.append('
')
return ''.join(output)
def _recurseModuleTree(data, depth=0):
output = []
if depth == 0:
output.append('')
else:
output.append('')
for i, mod in enumerate(data):
# assign a unique DOM ID to this module
globalCounter.setdefault(mod['className'], -1)
globalCounter[mod['className']] += 1
output.append('- ')
output.append('')
output.append('%s_%s_%s_%s' % (mod['className'],globalCounter[mod['className']], depth,i))
if mod.get('layoutPanel') != None:
output.append(' %s' % mod.get('layoutPanel'))
output.append('')
output.append('
')
printed = mod.copy()
if 'children' in printed:
del printed['children']
output.append('- %s config
' % mod['className'])
output.append(primitiveToXml(printed, False))
output.append('
')
if mod.get('children'):
output.append(_recurseModuleTree(mod['children'], depth=depth+1))
output.append('
')
output.append(' ')
output.append('
')
return '\n'.join(output)
def renderModuleTree():
modules = viewConfig['modules']
return _recurseModuleTree(modules)
def renderParsedTree():
return pp.pformat(modules)
def renderViewSummary():
printed = viewConfig.copy()
if 'modules' in printed:
del printed['modules']
return primitiveToXml(printed)
%>
<%inherit file="//layout/base.html" />
<%def name="css()">
<%lib:stylesheet_tags files="${['/static/css/jquery.treeview.css']}" />
%def>
<%def name="js()">
<%lib:script_tags files="${['/static/js/contrib/jquery.treeview.js']}" />
%def>
View source: ${view_id | h} (${viewConfig['label'] | h})
Properties
${renderViewSummary()}
Module tree
${renderModuleTree()}
XML source