# -*- coding: iso-8859-1 -*-

import re
from MoinMoin import config, wikiutil
from MoinMoin.Page import Page

# Ripped from the LikePages action
def execute(pagename, request):
    _ = request.getText
    from MoinMoin.formatter.text_html import Formatter
    request.formatter = Formatter(request)

    request.http_headers()

    # This action generate data using the user language
    request.setContentLanguage(request.lang)

    request.theme.send_title(_('Actions for "%s"') % (pagename),
                        pagename=pagename)
        
    # Start content - IMPORTANT - without content div, there is no
    # direction support!
    request.write(request.formatter.startContent("content"))

    # Just list the actions
    request.write(availableactions(request))

    # End content and send footer
    request.write(request.formatter.endContent())
    request.theme.send_footer(pagename)
        
# Rippped from the theme code
def availableactions(request):
    page = request.page
    _ = request.getText
    html = ''
    available = request.getAvailableActions(page)
    if available:
        available = list(available)
        available.sort()
        links = []
        for action in available:
            # Always add spaces: AttachFile -> Attach File 
            # XXX TODO do not make a page object just for split_title
            title = Page(request, action).split_title(force=1)
            # Use translated version if available
            title = _(title, formatted=False)
            params = '%s?action=%s' % (page.page_name, action)
            link = wikiutil.link_tag(request, params, title)
            links.append(u''.join([ u'<li>', link, u'</li>' ]))
            
        html = u'<ul>%s</ul>' % u''.join(links)
    return html
