ZimletTemplateFiles

Revision as of 12:27, 28 September 2008 by SvenDowideit (talk | contribs) (start adding questions ...)

Zimlet template files (actually Zimbra template files) are Javascript templates that work in a similar fashion to JSP - they are compiled from a html-fragment into a .js files using a tool found in Zimbra.

for example,

export CLASSPATH=/opt/zimbra/jetty/webapps/zimbraAdmin/WEB-INF/classes
~/bin/zmjava com/zimbra/kabuki/tools/templates/Template -p com_zimbra_hello_world.templates. MainView.template

will generate the MainView.template.js file that is then sent to the browser if needed by the Zimlet. (NOTE: the dot at the end of the -p prefix is significant)


declare template.js in the config.xml

     <include>templates/MainView.template.js</include>	

using template files from javascript

this.getHtmlElement().innerHTML = AjxTemplate.expand("com_zimbra_hello_world.templates.MainView#HelloWorldView_Main", params);


Template tool commandline parameters

  • -p <prefix> - prefix
  • -d - define *WHAT?*
  • -a - authorative *WHAT?*
  • -i <dir> - input dir
  • -o <dir> - output dir


Future development suggestions

it seem to me that .template -> .template.js generation is currently rather haphazard. The .template.js is included in the zimlet config.xml in the same way as a hand written .js - Zimbra is not aware that this is actually a compiled artifact. It would (to my mind) be better for the config.xml to list package source, which it can then deal with as appropriate.

oddly, when developing the zimlet in the _dev dir, AjxTemplate seems to work, _but_ is gets a 404 error from requesting (incorrectly) the template.js file from

https://zimbra/zimbra/templates/com_zimbra_hello_world/templates/MainView.template.js?v=080815215848

even though the js class was found, due to its registration in the config.xml - suggesting that templates, and other lazy loaded resources _should_ be annotated differently in the config, so zimbra knows what it needs to do.

Jump to: navigation, search