Expose(base, basename='base'), thanks villas
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 1.99.7 (2012-03-12 15:42:03) dev
|
Version 1.99.7 (2012-03-12 15:48:55) dev
|
||||||
|
|||||||
+10
-4
@@ -4166,9 +4166,10 @@ class PluginManager(object):
|
|||||||
return key in self.__dict__
|
return key in self.__dict__
|
||||||
|
|
||||||
class Expose(object):
|
class Expose(object):
|
||||||
def __init__(self,base=None):
|
def __init__(self,base=None,basename='base'):
|
||||||
current.session.forget()
|
current.session.forget()
|
||||||
base = base or os.path.join(current.request.folder,'static')
|
base = base or os.path.join(current.request.folder,'static')
|
||||||
|
self.basename = basename
|
||||||
args = self.args = current.request.raw_args and \
|
args = self.args = current.request.raw_args and \
|
||||||
current.request.raw_args.split('/') or []
|
current.request.raw_args.split('/') or []
|
||||||
filename = os.path.join(base,*args)
|
filename = os.path.join(base,*args)
|
||||||
@@ -4182,10 +4183,11 @@ class Expose(object):
|
|||||||
if os.path.isdir(f) and not self.isprivate(f)]
|
if os.path.isdir(f) and not self.isprivate(f)]
|
||||||
self.filenames = [f[len(path)-1:] for f in sorted(glob.glob(path)) \
|
self.filenames = [f[len(path)-1:] for f in sorted(glob.glob(path)) \
|
||||||
if not os.path.isdir(f) and not self.isprivate(f)]
|
if not os.path.isdir(f) and not self.isprivate(f)]
|
||||||
def breadcrumbs(self):
|
|
||||||
|
def breadcrumbs(self, basename):
|
||||||
path = []
|
path = []
|
||||||
span = SPAN()
|
span = SPAN()
|
||||||
span.append(A('base',_href=URL()))
|
span.append(A(basename,_href=URL()))
|
||||||
span.append('/')
|
span.append('/')
|
||||||
args = current.request.raw_args and \
|
args = current.request.raw_args and \
|
||||||
current.request.raw_args.split('/') or []
|
current.request.raw_args.split('/') or []
|
||||||
@@ -4194,15 +4196,18 @@ class Expose(object):
|
|||||||
span.append(A(arg,_href=URL(args='/'.join(path))))
|
span.append(A(arg,_href=URL(args='/'.join(path))))
|
||||||
span.append('/')
|
span.append('/')
|
||||||
return span
|
return span
|
||||||
|
|
||||||
def table_folders(self):
|
def table_folders(self):
|
||||||
return TABLE(*[TR(TD(A(folder,_href=URL(args=self.args+[folder])))) \
|
return TABLE(*[TR(TD(A(folder,_href=URL(args=self.args+[folder])))) \
|
||||||
for folder in self.folders])
|
for folder in self.folders])
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def isprivate(f):
|
def isprivate(f):
|
||||||
return 'private' in f or f.startswith('.') or f.endswith('~')
|
return 'private' in f or f.startswith('.') or f.endswith('~')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def isimage(f):
|
def isimage(f):
|
||||||
return f.rsplit('.')[-1].lower() in ('png','jpg','jpeg','gif','tiff')
|
return f.rsplit('.')[-1].lower() in ('png','jpg','jpeg','gif','tiff')
|
||||||
|
|
||||||
def table_files(self,width=160):
|
def table_files(self,width=160):
|
||||||
return TABLE(*[TR(TD(A(f,_href=URL(args=self.args+[f]))),
|
return TABLE(*[TR(TD(A(f,_href=URL(args=self.args+[f]))),
|
||||||
TD(IMG(_src=URL(args=self.args+[f]),
|
TD(IMG(_src=URL(args=self.args+[f]),
|
||||||
@@ -4211,12 +4216,13 @@ class Expose(object):
|
|||||||
for f in self.filenames])
|
for f in self.filenames])
|
||||||
def xml(self):
|
def xml(self):
|
||||||
return DIV(
|
return DIV(
|
||||||
H2(self.breadcrumbs()),
|
H2(self.breadcrumbs(self.basename)),
|
||||||
H3('Folders'),
|
H3('Folders'),
|
||||||
self.table_folders(),
|
self.table_folders(),
|
||||||
H3('Files'),
|
H3('Files'),
|
||||||
self.table_files()).xml()
|
self.table_files()).xml()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import doctest
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|||||||
Reference in New Issue
Block a user