##// END OF EJS Templates
hgweb: add file permissions...
mpm@selenic.com -
r359:0c4688e9 default
parent child Browse files
Show More
@@ -130,6 +130,7 b' class hgweb:'
130 "addbreaks": nl2br,
130 "addbreaks": nl2br,
131 "obfuscate": obfuscate,
131 "obfuscate": obfuscate,
132 "firstline": (lambda x: x.splitlines(1)[0]),
132 "firstline": (lambda x: x.splitlines(1)[0]),
133 "permissions": (lambda x: x and "-rwxr-xr-x" or "-rw-r--r--")
133 }
134 }
134
135
135 def refresh(self):
136 def refresh(self):
@@ -376,13 +377,14 b' class hgweb:'
376 p1, p2 = fl.parents(n)
377 p1, p2 = fl.parents(n)
377 t = float(cs[2].split(' ')[0])
378 t = float(cs[2].split(' ')[0])
378 mfn = cs[0]
379 mfn = cs[0]
380 self.repo.manifest.read(mfn)
379
381
380 def lines():
382 def lines():
381 for l, t in enumerate(text.splitlines(1)):
383 for l, t in enumerate(text.splitlines(1)):
382 yield self.t("fileline", line = t,
384 yield self.t("fileline", line = t,
383 linenumber = "% 6d" % (l + 1),
385 linenumber = "% 6d" % (l + 1),
384 parity = l & 1)
386 parity = l & 1)
385
387
386 yield self.t("filerevision", file = f,
388 yield self.t("filerevision", file = f,
387 header = self.header(),
389 header = self.header(),
388 footer = self.footer(),
390 footer = self.footer(),
@@ -400,6 +402,7 b' class hgweb:'
400 parent2 = self.parent("filerevparent",
402 parent2 = self.parent("filerevparent",
401 hex(p2), fl.rev(p2), file=f),
403 hex(p2), fl.rev(p2), file=f),
402 p1 = hex(p1), p2 = hex(p2),
404 p1 = hex(p1), p2 = hex(p2),
405 permissions = self.repo.manifest.readflags(mfn)[f],
403 p1rev = fl.rev(p1), p2rev = fl.rev(p2))
406 p1rev = fl.rev(p1), p2rev = fl.rev(p2))
404
407
405 def fileannotate(self, f, node):
408 def fileannotate(self, f, node):
@@ -415,6 +418,7 b' class hgweb:'
415 p1, p2 = fl.parents(n)
418 p1, p2 = fl.parents(n)
416 t = float(cs[2].split(' ')[0])
419 t = float(cs[2].split(' ')[0])
417 mfn = cs[0]
420 mfn = cs[0]
421 self.repo.manifest.read(mfn)
418
422
419 def annotate():
423 def annotate():
420 parity = 1
424 parity = 1
@@ -465,12 +469,14 b' class hgweb:'
465 parent2 = self.parent("fileannotateparent",
469 parent2 = self.parent("fileannotateparent",
466 hex(p2), fl.rev(p2), file=f),
470 hex(p2), fl.rev(p2), file=f),
467 p1 = hex(p1), p2 = hex(p2),
471 p1 = hex(p1), p2 = hex(p2),
472 permissions = self.repo.manifest.readflags(mfn)[f],
468 p1rev = fl.rev(p1), p2rev = fl.rev(p2))
473 p1rev = fl.rev(p1), p2rev = fl.rev(p2))
469
474
470 def manifest(self, mnode, path):
475 def manifest(self, mnode, path):
471 mf = self.repo.manifest.read(bin(mnode))
476 mf = self.repo.manifest.read(bin(mnode))
472 rev = self.repo.manifest.rev(bin(mnode))
477 rev = self.repo.manifest.rev(bin(mnode))
473 node = self.repo.changelog.node(rev)
478 node = self.repo.changelog.node(rev)
479 mff=self.repo.manifest.readflags(bin(mnode))
474
480
475 files = {}
481 files = {}
476
482
@@ -500,7 +506,8 b' class hgweb:'
500 manifest = mnode,
506 manifest = mnode,
501 filenode = hex(fnode),
507 filenode = hex(fnode),
502 parity = parity,
508 parity = parity,
503 basename = f)
509 basename = f,
510 permissions = mff[full])
504 else:
511 else:
505 yield self.t("manifestdirentry",
512 yield self.t("manifestdirentry",
506 parity = parity,
513 parity = parity,
@@ -29,6 +29,9 b''
29 <tr>
29 <tr>
30 <td class="metatag">date:</td>
30 <td class="metatag">date:</td>
31 <td>#date|date# (#date|age# ago)</td></tr>
31 <td>#date|date# (#date|age# ago)</td></tr>
32 <tr>
33 <td class="metatag">permissions:</td>
34 <td>#permissions|permissions#</td></tr>
32 </table>
35 </table>
33
36
34 <br/>
37 <br/>
@@ -30,6 +30,9 b''
30 <tr>
30 <tr>
31 <td class="metatag">date:</td>
31 <td class="metatag">date:</td>
32 <td>#date|date# (#date|age# ago)</td></tr>
32 <td>#date|date# (#date|age# ago)</td></tr>
33 <tr>
34 <td class="metatag">permissions:</td>
35 <td>#permissions|permissions#</td></tr>
33 </table>
36 </table>
34
37
35 <pre>
38 <pre>
@@ -11,7 +11,10 b''
11
11
12 <h2>manifest: #path#</h2>
12 <h2>manifest: #path#</h2>
13
13
14 <div class="parity1"><a href="?cmd=manifest;manifest=#manifest#;path=#up#">[up]</a><br /></div>
14 <table cellpadding="0" cellspacing="0">
15 <tr class="parity1">
16 <td><tt>drwxr-xr-x</tt>&nbsp;
17 <td><a href="?cmd=manifest;manifest=#manifest#;path=#up#">[up]</a>
15 #entries#
18 #entries#
16
19 </table>
17 #footer#
20 #footer#
@@ -8,8 +8,8 b' fileellipses = "..."'
8 changelogentry = changelogentry.tmpl
8 changelogentry = changelogentry.tmpl
9 changeset = changeset.tmpl
9 changeset = changeset.tmpl
10 manifest = manifest.tmpl
10 manifest = manifest.tmpl
11 manifestdirentry = "<div class="parity#parity#"><a href="?cmd=manifest;manifest=#manifest#;path=#path#">#basename#/</a><br /></div>"
11 manifestdirentry = "<tr class="parity#parity#"><td><tt>drwxr-xr-x</tt>&nbsp;<td><a href="?cmd=manifest;manifest=#manifest#;path=#path#">#basename#/</a>"
12 manifestfileentry = "<div class="parity#parity#"><a href="?cmd=file;filenode=#filenode#;file=#file#">#basename#</a><br /></div>"
12 manifestfileentry = "<tr class="parity#parity#"><td><tt>#permissions|permissions#</tt>&nbsp;<td><a href="?cmd=file;filenode=#filenode#;file=#file#">#basename#</a>"
13 filerevision = filerevision.tmpl
13 filerevision = filerevision.tmpl
14 fileannotate = fileannotate.tmpl
14 fileannotate = fileannotate.tmpl
15 filediff = filediff.tmpl
15 filediff = filediff.tmpl
General Comments 0
You need to be logged in to leave comments. Login now