68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
import Templates
|
|
import hserver.api
|
|
from hwo import NoPersistence
|
|
|
|
import browser
|
|
|
|
class WebManager(hserver.api.WebObject,NoPersistence):
|
|
|
|
def __init__(self,server):
|
|
hserver.api.WebObject.__init__(self)
|
|
self.__server = server
|
|
self.setDefault("overview")
|
|
|
|
def server(self):
|
|
return self.__server
|
|
|
|
def list_webobjects(self):
|
|
r = []
|
|
#exp = self.__server.exports()
|
|
exp = hserver.api.__dict__
|
|
for t in exp.values():
|
|
try:
|
|
if (issubclass(t,hserver.api.WebObject)):
|
|
r.append(t)
|
|
except:
|
|
pass
|
|
return r
|
|
|
|
def list_paths(self,folder = None, path = "", recurse = 100):
|
|
if recurse <= 0:
|
|
return []
|
|
|
|
if folder is None:
|
|
folder = self.__server.getRoot()
|
|
path = ""
|
|
|
|
return [ "/", folder, self.list_paths( folder, "", 100), "" ]
|
|
|
|
ls = []
|
|
for c in folder.children():
|
|
co = folder[c]
|
|
cpath = "%s/%s" % (path,c)
|
|
ls.append( [ cpath, co, self.list_paths( co, cpath, recurse - 1), c ] )
|
|
|
|
return ls
|
|
|
|
def _addObject(self, request, o):
|
|
f = request.getForm()
|
|
|
|
if ("oname" in f) and ("oclass" in f):
|
|
oclass = getattr( hserver.api , f["oclass"].value() )
|
|
i = oclass()
|
|
|
|
setattr( self.server().getRoot(), f["oname"].value(), i )
|
|
|
|
request.redirect( request.pathwalker().walked(-1) + "/tree" )
|
|
|
|
|
|
addObject = hserver.api.WebCallable(method=_addObject)
|
|
|
|
|
|
overview = Templates.overview_html
|
|
packages = Templates.packages_html
|
|
control = Templates.control_html
|
|
tree = Templates.tree_html
|
|
|
|
api = Templates.api_js
|