# -*- coding: utf-8 -*-
"""
    MoinMoin - macro to overlay data on a template

    <<IncludeVal(key)>>

    @copyright: 2012 Gordon Messmer <gordon@dragonsdawn.net>
    @license: GNU GPL, see COPYING for details.
"""

from MoinMoin.macro import Macro

_sysmsg = u'<p><strong class="%s">%s</strong></p>'

def macro_IncludeVal(macro, pagekey=u'', input=u'text'):
    request = macro.request
    _ = request.getText

    # parse and check arguments
    if not pagekey:
        return (_sysmsg % ('error', _('Invalid key arguments "%s"!')) % (pagekey, ))
    if not hasattr(request, 'ReqVars') or not request.ReqVars.has_key('vardict'):
        # Macro not called from a page included with IncludeWithVars
        return u'<b>Var: %s</b>' % pagekey

    m = Macro(macro.parser)
    if request.args.has_key('edit'):
        input = u'<input type="text" name="%s" value="%s" />'
        return input % (pagekey, m.macro_GetVal(request.ReqVars['vardict'], pagekey))
    else:
        return m.macro_GetVal(request.ReqVars['vardict'], pagekey)
