- modified image_macro(): use new object DEFAULTIMAGES to render any of the former "root images"
- fixed a bug in colorpicker_macro(): use res.push()/res.pop(), otherwise the macro would render the input directly to response
- added constant SKINSETS that contains the structure of the skinmgr (for both root- and site skinmanager)
- added constructor for Skinset objects (used for constructing the SKINSETS constant)
* fixed bug that prevented colorpicker from working at all
* fixed bug that prevented display of colors that are changed but not saved
* <% colorpicker name="xyz" %> now renders the default colorpicker
* <% colorpicker name="xyz" skin="colorpickerExt" %> renders the extended version (or any other depending on the skin)
* modified site's edit.skin to open the extended version
* put client-side scripts and functionality into global Antville object to define a strict namespace
* updated AntvilleLib
NOTE: THIS IS STILL WORK IN PROGRESS
* Skins are attached to skinset rather than site objects
* Each site can have multiple skinsets
* Skinsets can inherit from each other
* Added subclasses of imagemgr and skinmgr that mount on root/manage
* added flushMailQueue to send mail objects contained in the mail queue (ie. app.data.mailqueue)
* added call for flushMailQueue from the scheduler function
* changed mail.send() to mail.queue() in sendNotification functions
* since site preferences are stored as xml the corresponding code had to be adjusted
* currently, no notification is sent if a story's status changes from offline to online (abuse factor is too high)
* there's only one global notification skin used for the mail body
* the sender is always set to sys_email to avoid the bounce problem we already had with registration mails
- moved constant definitions into separate file constants.js
- renamed checkEmail() to evalEmail()
- removed string check functions since they are replaced with AntvilleLib methods
- modified formatTimestamp to use AntvilleLib, site preferences are xml-encoded now
- added constructor functions for Message, Exception and MailException objects, changed interface of getMessage()
- added Method buildAlias() which is called by buildAliasFromFile(), now gets the destination collection as second argument
- modified getRole: use switch() instead of if/else if
- added method extractContent that extracts submitted story/comment content from req.data
- added method sendMail()