Commit Graph

5962 Commits

Author SHA1 Message Date
Jörg Lehrke
80a9456eee cleanup forgotten test code in GroupDAV 2010-10-17 23:12:19 +00:00
Ralf Becker
7ed2f90ad4 new mode to return the url 2010-10-15 20:22:40 +00:00
Ralf Becker
a6c1f34be7 allow to autoload and/or supply initial tree via json 2010-10-15 16:19:31 +00:00
Ralf Becker
f779454f4c only provide old pathes for old functionality, new code can use new path dhtmlxTree/codebase 2010-10-15 16:16:07 +00:00
Ralf Becker
197fdee2a4 updated dhtmlxtree to version 2.6 2010-10-15 10:04:07 +00:00
Ralf Becker
77bede9db4 removed dhtmlxtree 1.2 to import current version 2.6 2010-10-15 10:02:33 +00:00
Ralf Becker
0c9dec895b reimplement GetDir to send content-type header with charset 2010-10-14 18:16:27 +00:00
Klaus Leithoff
5c66c7d162 categories: better handling of editing/moving categories within the cat-tree 2010-10-14 15:33:10 +00:00
Ralf Becker
87da090667 using native php wordwrap to speed up encoding of images 2010-10-14 10:55:58 +00:00
Ralf Becker
819ce52f90 reverted removing from delete call in add, as it does NOT take into account changed levels handled by delete 2010-10-14 08:18:41 +00:00
Klaus Leithoff
e8aef25f5b phpgwapi: call hooks of apps after deleting of categories to enable apps to clean up their use of affected categories 2010-10-13 07:39:53 +00:00
Ralf Becker
d7d719a73d do NOT return buttons, unless they are pressed 2010-10-12 13:56:40 +00:00
Ralf Becker
2a801e61fe always use regular links stream wrapper here: extended one is unnecessary (slow) for just listing attachments 2010-10-12 08:17:10 +00:00
Jörg Lehrke
33bd0fed50 Announce all available addressbooks and calendars of the current user with GroupDAV 2010-10-09 22:49:10 +00:00
Nathan Gray
69922af6ec Fix for invalid SQL reported by Massimo 676 on the pERP dev list 2010-10-08 14:58:42 +00:00
Klaus Leithoff
fd37185922 email/phpmailer: fix for bug regarding the sending of the charset information reported by stefan.helzle-at-oscons.de 2010-10-07 08:33:59 +00:00
Klaus Leithoff
68ce4a81e1 finnish/suomi translations provided by mkk 2010-10-07 08:09:31 +00:00
Klaus Leithoff
ea97a9671b fix for Stylite Ticket#8044 -Message on loginscreen and home doesent have a default lang fallback as all other egroupware translations 2010-10-05 08:30:50 +00:00
Jörg Lehrke
12cb6439ba Don't use MaxGUIDSize as maximum UID length 2010-10-04 17:27:09 +00:00
Nathan Gray
057a08f866 Make deleted parameter optional 2010-09-30 18:34:49 +00:00
Klaus Leithoff
b976930423 preventing invalid birthdays stored with the datastore such as 0000-00-00 or 0.0.00 to transform to a birthday 2010-09-30 09:32:34 +00:00
Ralf Becker
bddb577d95 * show package changelog inside EGroupware under about 2010-09-29 11:22:46 +00:00
Ralf Becker
3fb29911b6 * show package changelog inside EGroupware under about 2010-09-29 11:21:12 +00:00
Ralf Becker
1237e5d754 adding EGroupware version to X-Dav-Powered-By header eg. "EGroupware 1.8.001 CalDAV/CardDAV/GroupDAV server" 2010-09-28 08:32:11 +00:00
Nathan Gray
6029b5043f Add two extra columns to store the ISO country code for contacts 2010-09-27 23:00:11 +00:00
Nathan Gray
1482dbc1be Add the ability to hide and hold deleted links, pending final deletion of linked record. This prevents links to deleted items showing when deleted items are held for purging. 2010-09-27 16:27:48 +00:00
Klaus Leithoff
61812f4dc5 allow for forced passwordchange on next login at account creation time 2010-09-27 07:51:32 +00:00
Jörg Lehrke
40d786871e Improve Mac OS Addressbook.App CardDAV support as far as reasonable 2010-09-25 15:19:48 +00:00
Ralf Becker
ed733eef42 * iPhone and Mac Addressbook support aka Apple CalDAV/CardDAV autodetection
Addressbook does NOT allow to specify the URL, unlike iCal which allows it after autodetection fails.
This, some XML specifics set now for Apple addressbook user-agents and etags for addressbook collection itself
allow now to use EGroupware with iPhone or Mac addressbook. The later was working before, if you edited the URL
into a decompiled plist file, but failed now because of a new REPORT it tries on the principal, to find out shared
addessbooks, which we not yet support, but failed to tell in the correct way (501 Not Implemented).
Addressbook sync now the personal addressbook, because that is what we tell it as addressbook-home-set.
We should add some configuration so user can choose what addressbook to set as addressbook-home-set, or to set
the "all" addressbook (/addressbook). For the later we could add some prefs like SyncML to specify filters or
eg. a distribution list.
2010-09-25 09:08:37 +00:00
Ralf Becker
73beff54fe an other fix for NTLM and SiteMgr 2010-09-25 08:19:22 +00:00
Klaus Leithoff
2e33eeaab6 fixing ACL check for nopasswordchange; fixing setting of shadowlastchange by using the correct data with propper format 2010-09-24 08:20:14 +00:00
Ralf Becker
2b4eddc56b added info about firefox with NTLM and update EGroupware configuration 2010-09-24 06:11:18 +00:00
Ralf Becker
9ebb6a54ca explicit redirect target for NTLM auth and reverted unnecessary commit r32251 2010-09-23 17:47:55 +00:00
Klaus Leithoff
7e68a0727f check if the user is allowed to change its password, before redirecting 2010-09-22 15:20:06 +00:00
Klaus Leithoff
0a53a95bdc password-feature ldap specific stuff 2010-09-22 13:13:27 +00:00
Klaus Leithoff
abbf9e3abf allow old name for account_lastpwd_change (account_lastpassword_change) 2010-09-22 11:41:16 +00:00
Klaus Leithoff
91a612b55f some more translations for password feature 2010-09-22 10:30:33 +00:00
Klaus Leithoff
3843c0b59b Feature: to allow admins a) to set an allowed password age, to require all users to change their password regularily; b) force password change for a given user on the users next login; c) better control about the password strength required; Funded by Cricket 2010-09-22 09:48:27 +00:00
Ralf Becker
1f8e2e93df * allow to pick CC of tickets from addressbook
- also added a different approach allowing apps to register themselfs multiple times in the link registry, was necessary as types approach from Nathan changes the usage of the original app, while this adds sub-types like an arbitrary app responded to the link hook
2010-09-22 09:36:26 +00:00
Jörg Lehrke
67aff3d370 New content_history approach for synchronization with all datastores 2010-09-18 11:28:48 +00:00
Jörg Lehrke
2e0e03205d Fix group principals issue 2010-09-18 08:45:46 +00:00
Klaus Leithoff
5c8d3301d6 postgres compatibility gathering of birthdays for homearea (calendar merge of birtdays into holidays) order by column must be part of distinct selection list; adapting calendar home view to meet expected date format by using egw_time::to 2010-09-17 13:51:12 +00:00
Ralf Becker
dce834b93b present a login page, if anon user has no right for an application, makes more sense then throwing an exception 2010-09-17 09:11:44 +00:00
Nathan Gray
4517bafcb6 Attempt at a fix for error that prevented sidebox menu from sliding out in IE8 2010-09-16 20:06:48 +00:00
Ralf Becker
07da314086 using own CreateIndex() method in CreateTable(), to deal correctly with size-limited indexes in PostgreSQL 2010-09-16 11:58:25 +00:00
Ralf Becker
63915fe8ab PostgreSQL seems to require to update the sequenz, after manually inserting id's 2010-09-16 11:47:15 +00:00
Ralf Becker
ae8ec8748b CreateIndex: remove length limits from column names, if DB type is NOT MySQL 2010-09-16 10:22:43 +00:00
Ralf Becker
14b6c569fb new logo for 1.8 2010-09-16 09:57:12 +00:00
Ralf Becker
037166df72 removed not used "powered by *groupware version" phrase 2010-09-16 09:52:15 +00:00
Ralf Becker
6154863394 remove hooks of apps, when deleting them (event if sources are no longer there) 2010-09-15 20:09:57 +00:00
Ralf Becker
8e55c897ab Add index to improve import of contacts using a custom field as primary key 2010-09-15 13:34:01 +00:00
Ralf Becker
1e9695dbc9 allow to limit size of index by appending it in brackets after the column name, eg. "column(32)", which is already supported by ADOdb, by was broken by our fix to always quote names, to allow column names which are reserved words, eg. "timestamp" in phpfreechat 2010-09-15 13:27:26 +00:00
Ralf Becker
8f63182822 * added mail log, which can be enabled by setting $GLOBALS[egw_info][server][log_mail] to a path or true for standard error_log
- added egw_mailer class to archive that and correctly intialise EGroupware pathes for translations
- updated translations and moved them to phpgwapi/lang/ (getting rid of message not translated errors)
- using egw_mailer in fmail including catching of phpmailerException to not glutter GUI with echoed errors
2010-09-15 09:10:12 +00:00
Klaus Leithoff
02c6955326 convertHTML2Text: handling of chars that break further processing of converted Data (e.g.: Mail to Infolog) 2010-09-15 08:39:07 +00:00
Klaus Leithoff
a4d3aca9e9 fix for Safari Padding-Bug 2010-09-15 08:28:16 +00:00
Ralf Becker
34e51b19e8 reverting back to arbitrary job data AND adding other job parameters only if data is an array, it made to many problems requiring it to be an array 2010-09-14 09:38:59 +00:00
Klaus Leithoff
553152fc80 fix for expected parameter for data must be an array in set_timer, when starting async testjob; handling array as adr in send when creating messages 2010-09-13 08:41:04 +00:00
Jörg Lehrke
b02f830128 Fix content history issue 2010-09-12 21:16:39 +00:00
Jörg Lehrke
bb9190a669 New content_history approach for calendar synchronization; fix various Sync issues 2010-09-12 20:14:46 +00:00
Jörg Lehrke
5e161094e7 Allow to check only readable items in content history 2010-09-12 12:36:40 +00:00
Jörg Lehrke
da41f40507 Allow the check only readable items in content history 2010-09-12 12:34:32 +00:00
Ralf Becker
caf6d694c2 using qstr (quoting of strings) from ADOdb 5.11, it might fix problems reported by Anthony Messina 2010-09-11 07:47:40 +00:00
Ralf Becker
741a12bef2 fixed typo, wrong parameter name 2010-09-10 08:24:19 +00:00
Ralf Becker
7f29cd8530 fix for postgreSQL bug reported by Anthony Messina (amessina-at-messinet.com): sync_contentid is varchar(60) and need explicit cast: added egw_db->to_int($expr) 2010-09-10 07:11:22 +00:00
Klaus Leithoff
5153a61a63 preserving ampersands while converting html to text; improving linebreak behavior; switching off WordWrapn (by setting it to 0) in phpmailer, as we handle our linebreaking on our own 2010-09-09 10:19:23 +00:00
Ralf Becker
8160ff2472 if modified timestamp get set, reset evtl. existing deleted timestamp, as recovering of deleted entries does NOT work otherwise 2010-09-09 09:08:37 +00:00
Ralf Becker
83dae424e0 new method to abstract MySQL function unix_timestamp (convert db timestamp to integer) 2010-09-09 09:06:13 +00:00
Ralf Becker
00acdcb48b fixed wrong type parameter for logging to a file and some formatting 2010-09-08 16:22:55 +00:00
Ralf Becker
bb96dda0a7 Log mails to log file specified in ['egw_info']['server']['log_mail'] or regular error_log for true (can be set either in DB or header.inc.php) 2010-09-08 16:02:40 +00:00
Ralf Becker
f49eaf39ce fixed in some update situations called unset_datetime on egw_minimal object 2010-09-08 07:45:38 +00:00
Ralf Becker
577c8926bc added abstract function to base egw_framework, as it get called from admin/inc/hook_top_menu.inc.php for pending updates 2010-09-07 19:08:13 +00:00
Ralf Becker
a2cb21c455 * create preference for start directory of image browser in rich text editor in EGroupware VFS (filemanager), instead of old FCK editor configuration 2010-09-07 18:12:18 +00:00
Ralf Becker
cdc0d2fb5e fixed warning if data is no array and modified method signature to allow only an array or NULL as parameter (seems that is the way it is used so far) 2010-09-07 12:17:19 +00:00
Ralf Becker
2777c78d74 new mount option for filesystem streamwrapper to specify a download url, to be used instead of default webdav.php download, eg. if mounted directory is already in the docroot or mapped via an alias 2010-09-07 11:05:20 +00:00
Klaus Leithoff
a7e0270be1 idots: IE8 Compatibility, reduce to 1pxpadding-left; resources select box was not shown in calendar sidebox 2010-09-06 15:50:50 +00:00
Klaus Leithoff
78862a1335 idots: fix for IE8 Compatibility; resources select box was not shown in calendar sidebox 2010-09-06 15:17:53 +00:00
Ralf Becker
5e47dcd0da calling job with data array, plus all regular job data, like eg. next (time job was supposted to run) 2010-09-06 14:09:27 +00:00
Klaus Leithoff
6fb84bb8cd include 250 in checking the error-codes when sending data, as 250 indicates success -> OK (354 indicates intermediate status, and was the only status checked for) 2010-09-06 07:57:10 +00:00
Ralf Becker
50c43deec9 updating verson to 1.8 2010-09-05 15:24:34 +00:00
Klaus Leithoff
a2919ecd3b improve convertHTMLToText, for toggle editor and mail2infolog process; better control of insert Signature at Top. Only insert the signature, when the compose window is opened the first time (compose/reply/forward), dont do it if sending failes, and the compose window is refreshed (in general when mySigID is set) 2010-08-31 14:23:58 +00:00
Ralf Becker
d6822d9564 - fixed not working accounts::cache_invalidate(): cache is now in regular egw_cache on session level
- calling static methods static: accounts::cache_invalidate() or egw::invalidate_session_cache()
- fixed wrong number of deleted items in setup_cmd_ldap sub-comand=delete_ldap
- only use create, if we have an ldap_admin_pw set
- call an add_account hook for each created account, if specified (not by default)
2010-08-29 08:16:27 +00:00
Ralf Becker
2cc8585ecb small docu about creating ssl (ldaps) or tls connections 2010-08-26 20:44:33 +00:00
Ralf Becker
ff867f4daf tls support for ldap, use "tls://host" instead of hostname 2010-08-26 20:30:01 +00:00
Oscar Manuel Gómez Senovilla
2f0df89b4f Tracker #2703 2010-08-25 16:14:29 +00:00
Klaus Leithoff
316ac13e31 translations provided by mkk 2010-08-25 11:15:29 +00:00
Ralf Becker
bb5000d526 setting NO memory limit for async service 2010-08-23 16:32:33 +00:00
Ralf Becker
a65406b88b * restore to current system charset, to force all restores to utf-8, and do NOT halt on sql errors in restore 2010-08-19 08:07:06 +00:00
Ralf Becker
912973e47f fixed halfway implemented $append parameter and app-detection for static methods 2010-08-15 20:05:39 +00:00
Ralf Becker
10cf1b2b8e * not overwriting system configuration (eg. pathes) on restore, which break a running system and if called from within EGroupware update the restored backup, in case it is an older version 2010-08-15 15:46:23 +00:00
Jörg Lehrke
44c3c7eb9a Improve iPhone iCal support 2010-08-15 06:42:05 +00:00
Ralf Becker
70e0947517 allow to return a limited result set and arbitrary columns 2010-08-12 18:15:37 +00:00
Nathan Gray
8728ba5512 - Implement request.abort() to cancel a request
- Check that the response is there before trying to access a key inside it
- Don't return null for encoding 0
2010-08-10 14:58:54 +00:00
Nathan Gray
7ea2ef612c Add static method to access history and slice it using a start and num_rows, instead of getting all history at once 2010-08-10 14:48:05 +00:00
Jörg Lehrke
d6d7198785 Fix old format vCard/vCalendar quoting issue 2010-08-06 20:51:26 +00:00
Jörg Lehrke
b780c68c3f Improve support of BB Funambol Client 2010-08-06 18:14:36 +00:00
Hans-Jürgen Tappe
86a32e2f8b Tracker #2184. Add "select all" in the account selection popup. 2010-07-31 08:07:21 +00:00
Hans-Jürgen Tappe
83e867ef01 Disable verbose debug messages on restore. 2010-07-31 08:03:32 +00:00
Hans-Jürgen Tappe
4325167239 Fix an invalid link definition in the adodb documentation. 2010-07-31 06:11:05 +00:00
Ralf Becker
671313b3ea quiten error_log if no CSS file for an app 2010-07-30 13:38:49 +00:00
Ralf Becker
f185382b0a fixed not working link_query call to static callback eg. "someclass::somemethod" 2010-07-29 19:09:55 +00:00
Ralf Becker
a5ba32b8b6 allow to change password without run rights for preferences via a new password app (part of preferences app, but separate to install) 2010-07-27 14:29:20 +00:00
Klaus Leithoff
fda7878852 fix for bug MyStylite Tracker#773; Menu links: superfluous Scrollbar 2010-07-27 12:11:20 +00:00
Andreas Stöckel
98383800ae Added currently unused find_iterator which allows less memory intensive file 'find' operations 2010-07-26 15:30:23 +00:00
Jörg Lehrke
f8a2efe8df Fix syncml:metinf and syncml:devinf namespace issue (#2696) 2010-07-25 18:08:20 +00:00
Ralf Becker
8ef7201027 fixed wrong extraction of the extra_attr, eg. uid 2010-07-21 14:39:07 +00:00
Ralf Becker
f7c1f243ae fixed PHP warning: Illegal offset type in phpgwapi/inc/class.accounts_ldap.inc.php on line 1100 and not working update of group mail addresses 2010-07-21 14:20:31 +00:00
Ralf Becker
3dfa4e5fe6 allow null as value in assign() 2010-07-21 13:16:36 +00:00
Andreas Stöckel
da54059fd1 Fixed problem with toolbar not being expanded and removed bottom breadcrumb bar 2010-07-21 11:45:05 +00:00
Andreas Stöckel
408a9ece4f Fixed typo which prevented IE js load from working correctly 2010-07-21 10:52:18 +00:00
Andreas Stöckel
9615c33fe8 Fixed JS loadFinished notification on IE 2010-07-21 10:26:54 +00:00
Ralf Becker
09719babaf replace deprecated call_user_method(_array) with call_user_func(_array) 2010-07-20 16:47:11 +00:00
Klaus Leithoff
14722e5060 enable SCAYT (switch autostart on), no matter which spellchecker you are using 2010-07-20 13:49:11 +00:00
Klaus Leithoff
0d3cfae3b9 disable SCAYT too (switch autostart off), if you disable spellchecker in admin 2010-07-20 13:34:53 +00:00
Andreas Stöckel
70319aefd6 Added some docu and checks for console.log being defined 2010-07-20 10:54:56 +00:00
Andreas Stöckel
7ad65804d5 Added onLoadFinish event to egw_json_response on the js side, which gets triggered when all javascript code which should be included has been loaded and evaluated on the client 2010-07-20 10:20:32 +00:00
Ralf Becker
2b016955d9 remove border and use black color for nicer printing of input elements 2010-07-17 15:52:16 +00:00
Klaus Leithoff
f71cd37af6 use notifications option/configuration to enforce the use of emailadminprofiles only for notifications 2010-07-16 12:04:51 +00:00
Nathan Gray
80706f34b7 If error details are included, show them in the log 2010-07-09 13:00:46 +00:00
Andreas Stöckel
b5e33eab09 - Fixed etemplate input dirty handling
- Now generating an widget object tree in widget.js
- Added generic response to egw_json
- Moved "getFramework" function to jsapi and renamed it to "egw_getFramework"
- Added plugin system to egw_json
- Transformed the jQuery "replaceWith" call form class.etemplate_form.inc.php into an own json plugin
- Fixed label creation for et_html
2010-07-08 12:03:13 +00:00
Klaus Leithoff
09100671ee put out Unrecogniced GroupDAV client Message only, when debug bis enabled -> does not work, as the function is static, commented the error_log 2010-07-08 09:41:06 +00:00
Klaus Leithoff
129eaec0e3 put out Unrecogniced GroupDAV client Message only, when debug bis enabled 2010-07-08 09:37:24 +00:00
Klaus Leithoff
cd541542ce added missing hr to toolbar, when in advanced mode 2010-07-07 08:04:15 +00:00
Klaus Leithoff
7be12bc70f added missing table-button to toolbar, when in advanced mode 2010-07-06 15:26:00 +00:00
Klaus Leithoff
99bd207983 fix for bug targets (if specified with HTML Links in CKEditor) do not szrvive purify. Chr.Fueller investigated Attr.AllowedFrameTargets as cause of the issue 2010-07-06 13:50:55 +00:00
Jörg Lehrke
75b25bb796 Fix FroupDAV report issue 2010-07-02 05:01:15 +00:00
Andreas Stöckel
0867ed78d8 Added missing console.info dummy function 2010-07-01 13:52:55 +00:00
Klaus Leithoff
2768366eb6 fix for cached titles that are empty 2010-07-01 11:14:48 +00:00
Ralf Becker
a3685d298e removed 2. header include, stalling access without home rights 2010-06-30 12:03:50 +00:00
Andreas Stöckel
47a7fc9337 - Added "beforeSubmit" callback handler to the PHP json class
- Added "clientCall" and "clientSetOption" function to the base etemplate widget class
- Got the client side HTML area widget work with the new functions described above
2010-06-30 09:13:17 +00:00
Jörg Lehrke
09bc2c09cd Fix CTag issues for GroupDAV 2010-06-29 13:52:56 +00:00
Jörg Lehrke
affd4b1885 Fix CalDAV issues 2010-06-29 09:19:25 +00:00
Ralf Becker
aa6b4adcc1 return default instead of referer containing "cd=yes", which causes a load of the framework inside the framework 2010-06-28 10:52:37 +00:00
Jörg Lehrke
bce68a9e82 Fix CalDAV group attendee issue; various GroupDAV improvements 2010-06-27 22:16:22 +00:00
Jörg Lehrke
99cb0d791a Fix SyncML SourceURI issue 2010-06-26 11:26:46 +00:00
Jörg Lehrke
4e42eb30f0 Enable Funambol client 8.5 again; various SyncML optimizations 2010-06-25 17:08:09 +00:00
Andreas Stöckel
0605a04daa Fixed hiding of toolbar 2010-06-25 12:30:39 +00:00
Ralf Becker
491f790a3b Triggering jQuery's change event manually, when jscalendar updates 2010-06-25 11:17:28 +00:00
Andreas Stöckel
008be66608 More fixes to the spellchecker handling 2010-06-25 10:38:44 +00:00
Andreas Stöckel
5cd16d7c88 Fixed spellchecker handling 2010-06-25 10:30:26 +00:00
Andreas Stöckel
23a87dc2f9 Updated ckeditor to new version 2010-06-25 10:27:42 +00:00
Andreas Stöckel
dd3496be0b Replaced old ckeditor configuration code with own class, fixed felamimail to work with it 2010-06-25 10:01:53 +00:00
Andreas Stöckel
4d88b00e02 Moved ckeditor configuration to own php file which generates js, in order for easier implementation in etemplate 2 2010-06-24 14:23:56 +00:00
Ralf Becker
fccbe5fcbd Moved removal of standard javascript files from egw_framework class to
egw_json, as it did not work in all cases
2010-06-24 11:33:51 +00:00
Ralf Becker
f42ee4b026 - for Ajax: no need to load the "standard" files, they are already
loaded, in fact jquery has a problem if loaded twice
- add filectime to js and css files loaded via include_css_js_response
2010-06-24 10:51:02 +00:00
Andreas Stöckel
7545d93cbc Fixed problem with indent not working with new CKEditor3 2010-06-24 08:38:56 +00:00
Ralf Becker
8e98f6cea3 New method egw_framework::include_css_js_response to add javascript and
CSS included via egw_framework::validate_file or egw_framework::includeCSS
to an ajax response.
Fixed jscalendar to use that service and sitemgr to include it manually.
2010-06-23 23:01:57 +00:00
Andreas Stöckel
769debd2bd Fixed singleton handling with egw_json_re 2010-06-23 08:33:23 +00:00
Ralf Becker
95ac7e77be fix for PostgreSQL 8.3, using "::text ILIKE", hopefully that works in older versions too 2010-06-22 16:56:16 +00:00
Ralf Becker
7acd58f2f4 using egw_db->capabilities[egw_db::CASE_INSENSITIVE_LIKE] 2010-06-22 16:54:47 +00:00
Ralf Becker
8d93ce6fbb No longer using document write to add icon (to not display it if user
has javascript switched off, as we require it now and it makes problems
with the new etemplate rendering)
2010-06-22 15:33:44 +00:00