On 09/22/2010 12:31 PM, Marius Dumitru Florea wrote:
Hi devs,
I'm going to create a macro for previewing office attachments. It's main
usage will be:
{{officepreview attachment="presentation.ppt" filterStyles="true"/}}
"officepreview" is a bit long for a macro name. "preview" is shorter
but
is too generic and thus can be confusing. "preview" could be the name of
a more generic macro that previews any type of attachment, based on its
mime type (so not just office documents).
"attachment" is the only required parameter. It is also a bit long, but
"file", which is shorter, is confusing. Some users might try to preview
office documents from their file system or from the web.
"filterStyles" is optional, and defaults to false.
I take it that the current implementation outputs HTML, right? I'd like
to have a preview mode which generates small images instead, snapshots
of each page/slide, placed one after another horizontally, in a div with
a scrollbar. Could it be done?
The office preview macro will be just a wrapper
for the office preview
script service. This means no decorations (e.g. borders, headings, etc.)
will be added around the output of the script service:
{{velocity}}
{{html}}
$services.officepreview.preview($attachmentReference, $filterStyles)
{{/html}}
{{/velocity}}
I'm not sure if the office preview macro should be a wiki macro or a
Java macro. One disadvantage for wiki macros is
http://jira.xwiki.org/jira/browse/XWIKI-4262 . This means that the
attachment string reference must be resolve before calling the office
preview script service. Currently there's no clean way to resolve a
reference relative to a given document in velocity so I would have to
use groovy which raises programming rights issue. Alternative we can
extend the
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-model/src/main…
.
There's nothing to customize so the power of wiki macros wouldn't be
used. You can create a wiki macro that wraps the office preview macro
and add decorations specific to your needs.
One the other hand, the advantages of a Java macro are not significant
either because the macro is just a simple wrapper for the office preview
script service.
WDYT?
+1 for java macro. One advantage is that it will be usable nested inside
scripting macros as well (otherwise the velocity macro inside will
prevent it).
If I remember correctly this was fixed, wiki macros should be a special
case and allow scripting macro inside scripting macro, otherwise
wikimacros will be unusable on an "if" branch.
Otherwise, I think I would prefer wikimacro, for this case, since it's
more like a "shortcut" (instead of writing {{velocity}}{{html}}...., one
just writes {{officepreview ...) I don't like that much the idea of
having this kind of shortcuts in the java macros, but I don't have a
strong opinion.
Thanks,
Anca