changeset 14:dad63ce7aea9

Added edit bar for logged in users
author Radomir Dopieralski <devel@sheep.art.pl>
date Thu, 05 Jun 2008 11:55:11 +0200
parents ea1e3da31e1e
children 0456cf214bda
files mfact.py mfact/css/screen.css
diffstat 2 files changed, 66 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mfact.py	Thu Jun 05 11:37:55 2008 +0200
+++ b/mfact.py	Thu Jun 05 11:55:11 2008 +0200
@@ -7,6 +7,7 @@
 """
 
 from MoinMoin.theme import ThemeBase
+from MoinMoin import wikiutil
 
 
 class Theme(ThemeBase):
@@ -135,8 +136,7 @@
             self.emit_custom_html(self.cfg.page_footer1),
             # Footer
             u'<div id="footer">',
-            self.credits(d),
-            self.showversion(d, **keywords),
+            self.editbar(d),
             u'</div>',
             # Post footer custom html
             self.emit_custom_html(self.cfg.page_footer2),
@@ -190,6 +190,66 @@
 
         return '\n'.join(html)
 
+    def editbar(self, d, **keywords):
+        if not self.shouldShowEditbar(d['page']):
+            return u''
+        parts = [
+            u'<ul class="editbar">',
+            self.edit_link(d),
+            self.revert_link(d),
+            self.info_link(d),
+            self.admin_link(d),
+            u'</ul>',
+        ]
+        return u' '.join(parts)
+
+    def edit_link(self, d):
+        page = d['page']
+        if not (page.isWritable() and
+                self.request.user.may.write(page.page_name)):
+            return u""
+        _ = self.request.getText
+        params = (wikiutil.quoteWikinameURL(page.page_name) +
+                  '?action=edit')
+        text = _('Edit', formatted=False)
+        link = wikiutil.link_tag(self.request, params, text, css_class="edit", name="texteditlink")
+        html = u"<li>%s</li>" % link
+        return html
+
+    def info_link(self, d):
+        page = d['page']
+        _ = self.request.getText
+        params = (wikiutil.quoteWikinameURL(page.page_name) +
+                  '?action=info')
+        text = _('History', formatted=False)
+        link = wikiutil.link_tag(self.request, params, text, css_class="history")
+        html = u"<li>%s</li>" % link
+        return html
+
+    def revert_link(self, d):
+        page = d['page']
+        if not (self.request.rev and
+                page.isWritable() and
+                self.request.user.may.revert(page.page_name)):
+            return u''
+        _ = self.request.getText
+        params = (wikiutil.quoteWikinameURL(page.page_name) +
+                  '?action=revert&rev=%d' % self.request.rev)
+        text = _('Revert', formatted=False)
+        link = wikiutil.link_tag(self.request, params, text, css_class="revert")
+        html = u"<li>%s</li>" % link
+        return html
+
+    def admin_link(self, d):
+        page = d['page']
+        _ = self.request.getText
+        params = (wikiutil.quoteWikinameURL(page.page_name) +
+                  '?action=PageActions')
+        text = _('Actions', formatted=False)
+        link = wikiutil.link_tag(self.request, params, text, css_class="admin")
+        html = u"<li>%s</li>" % link
+        return html
+
 def execute(request):
     """
     Generate and return a theme object
--- a/mfact/css/screen.css	Thu Jun 05 11:37:55 2008 +0200
+++ b/mfact/css/screen.css	Thu Jun 05 11:55:11 2008 +0200
@@ -80,12 +80,12 @@
     text-decoration: underline;
 }
 
-ul#credits {
+ul.editbar {
     margin: 0;
     padding: 0;
 }
 
-ul#credits li {
+ul.editbar li {
     display: inline;
     margin: 0 0.25em;
     padding: 0;
@@ -126,3 +126,5 @@
 }
 
 #content li p { margin: 0 }
+
+