Added lighttpd-like directory listing look
This commit is contained in:
parent
ee18c3e52e
commit
b1891da417
35
servefile
35
servefile
|
@ -301,6 +301,7 @@ class DirListingHandler(FileBaseHandler):
|
||||||
self.getFileOrDirectory(head=False)
|
self.getFileOrDirectory(head=False)
|
||||||
|
|
||||||
def getFileOrDirectory(self, head=False):
|
def getFileOrDirectory(self, head=False):
|
||||||
|
""" Send file or directory index, depending on requested path """
|
||||||
path = self.getCleanPath()
|
path = self.getCleanPath()
|
||||||
|
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
|
@ -327,20 +328,36 @@ class DirListingHandler(FileBaseHandler):
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
|
|
||||||
def sendDirectoryListing(self, path, head):
|
def sendDirectoryListing(self, path, head):
|
||||||
print "sending directory listing"
|
""" Generate a directorylisting for path and send it """
|
||||||
|
|
||||||
header = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
header = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Index of %(path)s</title>
|
<title>Index of %(path)s</title>
|
||||||
|
<style type="text/css">
|
||||||
|
a, a:active {text-decoration: none; color: blue;}
|
||||||
|
a:visited {color: #48468F;}
|
||||||
|
a:hover, a:focus {text-decoration: underline; color: red;}
|
||||||
|
|
||||||
|
body {background-color: #F5F5F5;}
|
||||||
|
h2 {margin-bottom: 12px;}
|
||||||
|
div.list { background-color: white; border-top: 1px solid #646464; border-bottom: 1px solid #646464; padding-top: 10px; padding-bottom: 14px;}
|
||||||
|
table {margin-left: 12px;}
|
||||||
|
td {padding-right: 14px;}
|
||||||
|
|
||||||
|
th, td { font: 90%% monospace; text-align: left;}
|
||||||
|
th { font-weight: bold; padding-right: 14px; padding-bottom: 3px;}
|
||||||
|
td.s, th.s {text-align: right;}
|
||||||
|
div.foot { font: 90%% monospace; color: #787878; padding-top: 4px;
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Index of %(path)s</h1>
|
<h2>Index of %(path)s</h2>
|
||||||
|
<div class="list">
|
||||||
<table summary="Directory Listing" cellpadding="0" cellspacing="0">
|
<table summary="Directory Listing" cellpadding="0" cellspacing="0">
|
||||||
<thead><tr><th class="n">Name</th><th class="m">Last Modified</th><th class="s">Size</th><th class="t">Type</th></tr></thead>
|
<thead><tr><th class="n">Name</th><th class="m">Last Modified</th><th class="s">Size</th><th class="t">Type</th></tr></thead>
|
||||||
""" % {'path': posixpath.normpath(urllib.unquote(self.path))}
|
""" % {'path': posixpath.normpath(urllib.unquote(self.path))}
|
||||||
footer = """</table>
|
footer = """</table></div>
|
||||||
<address>servefile %(version)s</address>
|
<div class="foot"><address>servefile %(version)s</address></div>
|
||||||
</body>
|
</body>
|
||||||
</html>""" % {'version': __version__}
|
</html>""" % {'version': __version__}
|
||||||
content = []
|
content = []
|
||||||
|
@ -368,10 +385,10 @@ class DirListingHandler(FileBaseHandler):
|
||||||
fileType = "Directory"
|
fileType = "Directory"
|
||||||
content.append("""
|
content.append("""
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="%s">%s</a></td>
|
<td class="n"><a href="%s">%s</a></td>
|
||||||
<td>%s</td>
|
<td class="m">%s</td>
|
||||||
<td>%s</td>
|
<td class="s">%s</td>
|
||||||
<td>%s</td>
|
<td class="t">%s</td>
|
||||||
</tr>
|
</tr>
|
||||||
""" % (urllib.quote(item), item, lastModified, fileSize, fileType))
|
""" % (urllib.quote(item), item, lastModified, fileSize, fileType))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue