Ejemplo n.º 1
0
def linkto(pagename, request, params=""):
    from MoinMoin.util import web

    _ = request.getText

    if not request.cfg.chart_options:
        request.formatter = Formatter(request)
        return (
            request.formatter.sysmsg(1)
            + request.formatter.text(_("Charts are not available!"))
            + request.formatter.sysmsg(0)
        )

    if _debug:
        return draw(pagename, request)

    page = Page(request, pagename)

    # Create escaped query string from dict and params
    querystr = {"action": "chart", "type": "hitcounts"}
    querystr = web.makeQueryString(querystr)
    querystr = wikiutil.escape(querystr)
    if params:
        querystr += "&" + params

    # TODO: remove escape=0 in 1.4
    data = {"url": page.url(request, querystr, escape=0)}
    data.update(request.cfg.chart_options)
    result = ('<img src="%(url)s" width="%(width)d" height="%(height)d"' ' alt="hitcounts chart">') % data

    return result
Ejemplo n.º 2
0
def linkto(pagename, request, params=''):
    from MoinMoin.util import web
    _ = request.getText

    if not request.cfg.chart_options:
        return (request.formatter.sysmsg(1) +
                request.formatter.text(_('Charts are not available!')) +
                request.formatter.sysmsg(0))

    if _debug:
        return draw(pagename, request)

    page = Page(request, pagename)

    # Create escaped query string from dict and params
    querystr = {'action': 'chart', 'type': 'pagesize'}
    querystr = web.makeQueryString(querystr)
    querystr = wikiutil.escape(querystr)
    if params:
        querystr += '&amp;' + params
    
    # TODO: remove escape=0 in 1.4
    data = {'url': page.url(request, querystr, escape=0)}
    data.update(request.cfg.chart_options)
    result = ('<img src="%(url)s" width="%(width)d" height="%(height)d"'
              ' alt="pagesize chart">') % data
    return result
Ejemplo n.º 3
0
 def querystring(self):
     """ Return query string, used in the page link """
     from MoinMoin.util import web
             
     querystr = {'highlight': self.query.highlight_re()}
     querystr = web.makeQueryString(querystr)
     querystr = wikiutil.escape(querystr)
     return querystr
Ejemplo n.º 4
0
    def testMakeQueryStringFromArgument(self):
        """ util.web: make query sting from argument """
        tests = (
            # description,          arg,                expected
            ('string unchanged',    'a=b',              'a=b'),
            ('string value',        {'a': 'b'},         'a=b'),
            ('integer value',       {'a': 1},           'a=1'),
            ('multiply values',     {'a': 1, 'b': 2},   'a=1&b=2'),
            )

        for description, arg, expected in tests:
            result = web.makeQueryString(arg)
            self.assertEqual(result, expected,
                             ('%(description)s: expected "%(expected)s" '
                              'but got "%(result)s"') % locals())
Ejemplo n.º 5
0
 def testMakeQueryStringFromArgumentAndKeywords(self):
     """ util.web: make query sting from argument and keywords """        
     
     tests = (
         # description,      arg,                    expected
         ('kw ignored',      'a=1',                  'a=1'),             
         ('kw added to arg', {'a': 1},               'a=1&b=kw'),             
         ('kw override arg',  {'a': 1, 'b': 'arg'},   'a=1&b=kw'),
         )
     
     for description, arg, expected in tests:
         # Call makeQueryString with both arg and keyword
         result = web.makeQueryString(arg, b='kw')
         self.assertEqual(result, expected,
                          ('%(description)s: expected "%(expected)s" '
                           'but got "%(result)s"') % locals())
Ejemplo n.º 6
0
def send_hotdraw(pagename, request):
    _ = request.getText

    now = time.time()
    pubpath = request.cfg.url_prefix + "/applets/TWikiDrawPlugin"
    basename = request.form['drawing'][0]
    drawpath = getAttachUrl(pagename, basename + '.draw', request, escaped=1)
    pngpath = getAttachUrl(pagename, basename + '.png', request, escaped=1)
    querystr = {'action': 'AttachFile', 'ts': now}
    querystr = wikiutil.escape(web.makeQueryString(querystr))
    pagelink = '%s?%s' % (wikiutil.quoteWikinameURL(pagename), querystr)
    savelink = Page(request, pagename).url(request) # XXX include target filename param here for twisted
                                           # request, {'savename': request.form['drawing'][0]+'.draw'}
    #savelink = '/cgi-bin/dumpform.bat'

    if htdocs_access(request):
        timestamp = '?ts=%s' % now
    else:
        timestamp = '&amp;ts=%s' % now

    request.write('<h2>' + _("Edit drawing") + '</h2>')
    request.write("""
<p>
<img src="%(pngpath)s%(timestamp)s">
<applet code="CH.ifa.draw.twiki.TWikiDraw.class"
        archive="%(pubpath)s/twikidraw.jar" width="640" height="480">
<param name="drawpath" value="%(drawpath)s">
<param name="pngpath"  value="%(pngpath)s">
<param name="savepath" value="%(savelink)s">
<param name="basename" value="%(basename)s">
<param name="viewpath" value="%(pagelink)s">
<param name="helppath" value="%(pagelink)s">
<strong>NOTE:</strong> You need a Java enabled browser to edit the drawing example.
</applet>
</p>""" % {
    'pngpath': pngpath, 'timestamp': timestamp,
    'pubpath': pubpath, 'drawpath': drawpath,
    'savelink': savelink, 'pagelink': pagelink,
    'basename': basename
})
Ejemplo n.º 7
0
    def add(self, request, eventtype, values=None, add_http_info=1, mtime_usecs=None):
        """ Write an event of type `eventtype, with optional key/value
        pairs appended (i.e. you have to pass a dict).
        """
        # Dont log spiders XXX TODO: does it make sense? 
        if web.isSpiderAgent(request):
            return
        
        if mtime_usecs is None:
            mtime_usecs = wikiutil.timestamp2version(time.time())

        if values is None:
            values = {}
        if add_http_info:
            # All these are ascii
            for key in ['remote_addr', 'http_user_agent', 'http_referer']:
                value = getattr(request, key, '')
                if value:
                    # Save those http headers in UPPERcase
                    values[key.upper()] = value
        # Encode values in a query string TODO: use more reaable format
        values = web.makeQueryString(values)
        self._add(u"%d\t%s\t%s\n" % (mtime_usecs, eventtype, values))
Ejemplo n.º 8
0
 def testMakeQueryStringFromKeywords(self):
     """ util.web: make query sting from keywords """
     expected = 'a=1&b=string'
     result = web.makeQueryString(a=1, b='string')
     self.assertEqual(result, expected,
                      'Expected "%(expected)s" but got "%(result)s"' % locals())