예제 #1
0
 def __init__(self, request):
     ThemeBase.__init__(self, request)
     _ = self.request.getText
     _ = lambda x: x
     self.icons['diffrc'] = (_('Diffs'), 'gnome-moin-diff.png', 16, 16)
     self.icons.update({
         'attach':
         ('%(attach_count)s', 'mail-attachment-symbolic.png', 16, 16),
         'bottom': (_('[BOTTOM]'), 'go-bottom-symbolic.png', 16, 16),
         'deleted': (_('[DELETED]'), 'edit-delete-symbolic.png', 16, 16),
         'diff': (_('Diffs'), 'gnome-moin-diff.png', 16, 16),
         'diffrc': (_('[DIFF]'), 'gnome-moin-diff.png', 16, 16),
         'edit': (_('Edit'), 'text-editor-symbolic.png', 16, 16),
         'find': ('%(page_find_page)s', 'edit-find-symbolic.png', 16, 16),
         'help':
         ('%(page_help_contents)s', 'help-browser-symbolic.png', 16, 16),
         'home': (_('Home'), 'go-home-symbolic.png', 16, 16),
         'interwiki': ('[%(wikitag)s]', 'send-to-symbolic.png', 16, 16),
         'new': (_('[NEW]'), 'gnome-moin-new.png', 16, 16),
         'print': (_('Print'), 'printer-symbolic.png', 16, 16),
         'rss': (_('[RSS]'), 'gnome-moin-rss.png', 16, 16),
         'searchbutton': ('[?]', 'edit-find-symbolic.png', 16, 16),
         'top': (_('[TOP]'), 'go-top-symbolic.png', 16, 16),
         'updated': (_('[UPDATED]'), 'view-refresh-symbolic.png', 16, 16),
         'www': ('[WWW]', 'web-browser-symbolic.png', 16, 16),
         '/!\\': ("/!\\", 'dialog-warning-symbolic.png', 16, 16),
         '(!)': ("(!)", 'dialog-information-symbolic.png', 16, 16),
         '<!>': ("<!>", 'dialog-question-symbolic.png', 16, 16),
         '(./)': ("(./)", 'object-select-symbolic.png', 16, 16)
     })
예제 #2
0
    def __init__(self, request):
        ThemeBase.__init__(self, request)
        _ = self.request.getText
	_ = lambda x: x
	self.icons['diffrc'] = (_('Diffs'), 'gnome-moin-diff.png', 16, 16)
        self.icons.update({
                'attach': ('%(attach_count)s', 'mail-attachment-symbolic.png', 16, 16),
                'bottom': (_('[BOTTOM]'), 'go-bottom-symbolic.png', 16, 16),
                'deleted': (_('[DELETED]'), 'edit-delete-symbolic.png', 16, 16),
                'diff': (_('Diffs'), 'gnome-moin-diff.png', 16, 16),
                'diffrc': (_('[DIFF]'), 'gnome-moin-diff.png', 16, 16),
                'edit': (_('Edit'), 'text-editor-symbolic.png', 16, 16),
                'find': ('%(page_find_page)s', 'edit-find-symbolic.png', 16, 16),
                'help': ('%(page_help_contents)s', 'help-browser-symbolic.png', 16, 16),
                'home': (_('Home'), 'go-home-symbolic.png', 16, 16),
                'interwiki': ('[%(wikitag)s]', 'send-to-symbolic.png', 16, 16),
                'new': (_('[NEW]'), 'gnome-moin-new.png', 16, 16),
                'print': (_('Print'), 'printer-symbolic.png', 16, 16),
                'rss': (_('[RSS]'), 'gnome-moin-rss.png', 16, 16),
                'searchbutton': ('[?]', 'edit-find-symbolic.png', 16, 16),
                'top': (_('[TOP]'), 'go-top-symbolic.png', 16, 16),
                'updated': (_('[UPDATED]'), 'view-refresh-symbolic.png', 16, 16),
                'www': ('[WWW]', 'web-browser-symbolic.png', 16, 16),
                '/!\\': ("/!\\", 'dialog-warning-symbolic.png', 16, 16),
                '(!)': ("(!)", 'dialog-information-symbolic.png', 16, 16),
                '<!>': ("<!>", 'dialog-question-symbolic.png', 16, 16),
                '(./)': ("(./)", 'object-select-symbolic.png', 16, 16)
                 })
예제 #3
0
    def __init__(self, request):
        ThemeBase.__init__(self, request)
        append_translation = self.get_config('append_translation', default=True, by_user=False)
        self._translations = self.theme_translations(append_translation)
        self.cms_mode = self.get_config('cms_mode', default=False, by_user=False)

        self._remove_old_userprefs()
        self.userprefs_allowed = self.get_config('userprefs', default=False, by_user=False)
        if self.userprefs_allowed:
            self.userprefs_definition = [
                (bool,  'clear',        self._('Clear look')),
                (bool,  'shadow',       self._('Shadows for box mode')),
                (bool,  'full_screen',  self._('Full screen mode')) ]

        try:
            self.static_prefix = self.cfg.url_prefix_static
        except AttributeError:
            self.static_prefix = self.cfg.url_prefix
예제 #4
0
    def send_title(self, text, **keywords):
        """ Capture original send_title() and rewrite DOCTYPE for html5 """

        # add some CSS class info to the body tag
        keywords['body_attr']='class="modern t-dark-w colorskin-orchard csstransforms csstransforms3d csstransitions orchard"'

        # for mobile
        additional_head = u"""
<!-- Mobile Specific Metas ================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

<!-- Font ================================================== -->
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300italic,400italic,400,300,600,700,900|Varela|Arapey:400,400italic' rel="stylesheet" type='text/css' >

<!-- JS ================================================== -->
<script src="%(prefix)s/%(theme)s/js/jquery.min.js" type="text/javascript"></script>
<script src="%(prefix)s/%(theme)s/layerslider/js/greensock.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<script src="%(prefix)s/%(theme)s/js/modernizr.custom.11889.js" type="text/javascript"></script>
<script src="%(prefix)s/%(theme)s/js/respond.js" type="text/javascript"></script>
<![endif]-->
<!-- HTML5 Shiv events (end)-->
<!-- MEGA MENU -->

""" % {'prefix': self.cfg.url_prefix_static,
       'theme': self.name
      }
      
        try:
            if not self.request.cfg.memodump_additional_head:
                raise AttributeError
        except AttributeError:
            self.request.cfg.html_head = u'%s%s' % (additional_head, self.request.cfg.html_head)
            self.request.cfg.memodump_additional_head = True

        buffer = StringIO.StringIO()
        self.request.redirect(buffer)
        try:
            ThemeBase.send_title(self, text, **keywords)
        finally:
            self.request.redirect()
        html = re.sub(ur'^<!DOCTYPE HTML .*?>\n', ur'<!DOCTYPE html>\n', buffer.getvalue())
        self.request.write(html)
    def send_title(self, text, **keywords):
        """ Capture original send_title() and rewrite DOCTYPE for html5 """

        # for mobile
        additional_head = u'<meta name="viewport" content="width=device-width,initial-scale=1.0">\n'
        try:
            if not self.request.cfg.memodump_additional_head:
                raise AttributeError
        except AttributeError:
            self.request.cfg.html_head = u'%s%s' % (additional_head, self.request.cfg.html_head)
            self.request.cfg.memodump_additional_head = True

        buffer = StringIO.StringIO()
        self.request.redirect(buffer)
        try:
            ThemeBase.send_title(self, text, **keywords)
        finally:
            self.request.redirect()
        html = re.sub(ur'^<!DOCTYPE HTML .*?>\n', ur'<!DOCTYPE html>\n', buffer.getvalue())
        self.request.write(html)
class TestEditBarActions(object):
    def setup_method(self, method):
        self.savedValid = self.request.user.valid
        self.savedMailEnabled = self.request.cfg.mail_enabled
        self.request.cfg.mail_enabled = True
        self.page = Page(self.request, u'FrontPage')
        self.ThemeBase = ThemeBase(self.request)

    def teardown_method(self, method):
        self.request.user.valid = self.savedValid
        self.request.cfg.mail_enabled = self.savedMailEnabled

    def test_editbar_for_anonymous_user(self):
        assert not self.request.user.valid
        assert not self.ThemeBase.subscribeLink(self.page)
        assert not self.ThemeBase.quicklinkLink(self.page)

    def test_editbar_for_valid_user(self):
        self.request.user.valid = True
        assert self.request.user.valid
        assert 'subscribe' in self.ThemeBase.subscribeLink(self.page)
        assert 'quicklink' in self.ThemeBase.quicklinkLink(self.page)
예제 #7
0
 def html_head(self, d):
     """ Assemble html head
     
     modifications to ThemeBase method:
         - Add javascript source file 
     
     @param d: parameter dictionary
     @rtype: unicode
     @return: formatted header
     """
     head = ThemeBase.html_head(self, d)
     head += u'\n<script type="text/javascript" src="%s/%s/js/actionmenuoptions.js"></script>' % (self.cfg.url_prefix_static, self.name)
     return head
예제 #8
0
class TestEditBarActions(object):
    def setup_method(self, method):
        self.savedValid = self.request.user.valid
        self.savedMailEnabled = self.request.cfg.mail_enabled
        self.request.cfg.mail_enabled = True
        self.page = Page(self.request, u'FrontPage')
        self.ThemeBase = ThemeBase(self.request)

    def teardown_method(self, method):
        self.request.user.valid = self.savedValid
        self.request.cfg.mail_enabled = self.savedMailEnabled

    def test_editbar_for_anonymous_user(self):
        assert not self.request.user.valid
        assert not self.ThemeBase.subscribeLink(self.page)
        assert not self.ThemeBase.quicklinkLink(self.page)

    def test_editbar_for_valid_user(self):
        self.request.user.valid = True
        assert self.request.user.valid
        assert 'subscribe' in self.ThemeBase.subscribeLink(self.page)
        assert 'quicklink' in self.ThemeBase.quicklinkLink(self.page)
예제 #9
0
파일: moniker19.py 프로젝트: apzr/wiki
 def html_head(self, d):
     """ Assemble html head
     
     modifications to ThemeBase method:
         - Add javascript source file 
     
     @param d: parameter dictionary
     @rtype: unicode
     @return: formatted header
     """
     head = ThemeBase.html_head(self, d)
     head += u'\n<script type="text/javascript" src="%s/%s/js/actionmenuoptions.js"></script>' % (
         self.cfg.url_prefix_static, self.name)
     return head
예제 #10
0
 def html_head(self, d):
     html = ThemeBase.html_head(self, d)
     html += '\n<link rel="canonical" href="http://wiki.ros.org/%s" />' % wikiutil.quoteWikinameURL(d['page'].page_name)
     return html
예제 #11
0
 def navibar(self, d):
     html = ThemeBase.navibar(self, d)
     return html.replace('<ul id="navibar">', '<ul class="nav">')
예제 #12
0
파일: h1ds.py 프로젝트: dpretty/h1ds
 def html_head(self, d):
     extra_line = u'<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>'
     return ThemeBase.html_head(self, d) + '\n' + extra_line
예제 #13
0
파일: h1ds.py 프로젝트: dpretty/h1ds
 def html_head(self, d):
     extra_line = u'<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>'
     return ThemeBase.html_head(self, d) + '\n' + extra_line
예제 #14
0
 def __init__(self, *args, **kwargs):
     ThemeBase.__init__(self, *args, **kwargs)
     self.j2env = Environment(loader=FileSystemLoader(
         self.cfg.templates_path),
                              autoescape=select_autoescape(['html', 'xml']))
예제 #15
0
 def setup_method(self, method):
     self.savedValid = self.request.user.valid
     self.savedMailEnabled = self.request.cfg.mail_enabled
     self.request.cfg.mail_enabled = True
     self.page = Page(self.request, u'FrontPage')
     self.ThemeBase = ThemeBase(self.request)
예제 #16
0
 def make_icon(self, icon, vars=None):
     if icon == 'www' or icon == 'mailto':
         return ''
     else:
         return ThemeBase.make_icon(self, icon, vars)
예제 #17
0
 def make_icon(self, icon, vars=None):
     if icon == 'www' or icon == 'mailto':
         return ''
     else:
         return ThemeBase.make_icon(self, icon, vars)
예제 #18
0
 def recentchanges_header(self, d):
     """ Override """
     html = ThemeBase.recentchanges_header(self,d)
     return html.replace('<table>', '<table class="table table-bordered">')
예제 #19
0
 def make_icon(self, icon, vars=None, **kwargs):
     if icon in self.fa_icons:
         return '<i class="%s" aria-hidden="true"></i>' % self.fa_icons[icon]
     return ThemeBase.make_icon(self, icon, vars=vars, **kwargs)
예제 #20
0
 def navibar(self, d):
     html = ThemeBase.navibar(self, d)
     return html.replace('<ul id="navibar">', '<ul class="nav">')
예제 #21
0
 def splitNavilink(self, text, localize=1):
     pagename, link = ThemeBase.splitNavilink(self, text, localize = localize)
     return (pagename, re.sub(r'(<a.*?>)(.*)(</a>)', r'\1<span>\2</span>\3', link))
예제 #22
0
 def html_head(self, d):
     return ThemeBase.html_head(self, d) + '\n' + self.faviconLink()
예제 #23
0
 def splitNavilink(self, text, localize=1):
     pagename, link = ThemeBase.splitNavilink(self, text, localize=localize)
     return (pagename,
             re.sub(r'(<a.*?>)(.*)(</a>)', r'\1<span>\2</span>\3', link))
 def setup_method(self, method):
     self.savedValid = self.request.user.valid
     self.savedMailEnabled = self.request.cfg.mail_enabled
     self.request.cfg.mail_enabled = True
     self.page = Page(self.request, u'FrontPage')
     self.ThemeBase = ThemeBase(self.request)