# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - imgbrwsrgen Action
    Version 0.1

    Generates the various components of a PHP or HTML image browser.

    @copyright: 2007 by Kenneth Bull
    @license: GNU GPL, see COPYING for details.
"""
from ..macro import ImageBrowserContent
from MoinMoin.action import AttachFile
from MoinMoin.Page import Page
from MoinMoin import wikiutil

try:
    from . import Thumbnail
except:
    Thumbnail = None

def execute(pagename, request):
    _ = request.getText
    page = Page(pagename)

    files = request.form.get('files')
    if files is None:
        files = ImageBrowserContent.getImageList(request, pagename)
    else:
        files = files[0].split(',')
    
    do = request.form.get('do', ['help'])[0]
    if do == 'help':
        request.disableHttpCaching(level=2)
        request.http_headers()
        wikiutil.send_title(request, pagename, page=page, pagename=pagename, html_head='', editor_mode=1)
        request.write(request.formatter.startContent("content"))

        request.write(request.formatter.heading(1, 1)+\
                      _("Image browser components")+\
                      request.formatter.heading(0, 1))

        request.write(request.formatter.heading(1, 2)+\
                      _("Code")+\
                      request.formatter.heading(0, 2))
        
        url = '%s/%s?action=%s&do=' % (request.getScriptname(),
                                       wikiutil.quoteWikinameURL(pagename),
                                       action_name)
        for cmd in [['inc',     _("PHP include file")],
                    ['php',     _("PHP code")],
                    ['js',      _("JavaScript code")],
                    ['html',    _("HTML code")]]:
            request.write(''.join(\
                request.formatter.url(1,
                    url = ''.join(\
                        url,
                        request.getScriptname(),
                        wikiutil.quoteWikinameURL(pagename),
                        action_name,
                        cmd[0],
                        request.form.get('index') and ('&index=%s' % request.form.get('index')[0]) or '',
                        request.form.get('files') and ('&files=%s' % request.form.get('files')[0]) or '')),
                cmd[1],
                request.formatter.url(0),
                request.formatter.linebreak()))

        request.write(request.formatter.heading(1, 2)+\
                      _("Images")+\
                      request.formatter.heading(0, 2))

        for f in files:
            page_name, filename = AttachFile.absoluteName(f, macro.formatter.page.page_name)
            request.write(''.join(\
                request.formatter.url(1, url = AttachFile.getAttachUrl(page_name, filename, request))
                "%s/%s" % (page_name, filename),
                request.formatter.url(0),
                request.formatter.linebreak()))

        if Thumbnail is not None:
            request.write(request.formatter.heading(1, 2)+\
                          _("Thumbnails")+\
                          request.formatter.heading(0, 2))
            for f in files:
                page_name, filename = AttachFile.absoluteName(f, macro.formatter.page.page_name)
                request.write(''.join(\
                    request.formatter.url(1, url = Thumbnail.getThumbnailUrl(page_name, filename, request, 320, 240))
                    "%s/%s" % (page_name, filename),
                    request.formatter.url(0),
                    request.formatter.linebreak()))

        request.write(self.request.formatter.endContent())
        wikiutil.send_footer(self.request, self.page_name)
        return
    elif do == 'inc':
    elif do == 'php':
    elif do == 'js':
    elif do == 'html':
