]> code.citadel.org Git - citadel.git/blob - webcit/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
Upgrade of TinyMCE is in progress.
[citadel.git] / webcit / tiny_mce / plugins / insertdatetime / editor_plugin_src.js
1 /**\r
2  * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
3  *\r
4  * @author Moxiecode\r
5  * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
6  */\r
7 \r
8 /* Import plugin specific language pack */\r
9 tinyMCE.importPluginLanguagePack('insertdatetime');\r
10 \r
11 var TinyMCE_InsertDateTimePlugin = {\r
12         getInfo : function() {\r
13                 return {\r
14                         longname : 'Insert date/time',\r
15                         author : 'Moxiecode Systems AB',\r
16                         authorurl : 'http://tinymce.moxiecode.com',\r
17                         infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',\r
18                         version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
19                 };\r
20         },\r
21 \r
22         /**\r
23          * Returns the HTML contents of the insertdate, inserttime controls.\r
24          */\r
25         getControlHTML : function(cn) {\r
26                 switch (cn) {\r
27                         case "insertdate":\r
28                                 return tinyMCE.getButtonHTML(cn, 'lang_insertdate_desc', '{$pluginurl}/images/insertdate.gif', 'mceInsertDate');\r
29 \r
30                         case "inserttime":\r
31                                 return tinyMCE.getButtonHTML(cn, 'lang_inserttime_desc', '{$pluginurl}/images/inserttime.gif', 'mceInsertTime');\r
32                 }\r
33 \r
34                 return "";\r
35         },\r
36 \r
37         /**\r
38          * Executes the mceInsertDate command.\r
39          */\r
40         execCommand : function(editor_id, element, command, user_interface, value) {\r
41                 /* Adds zeros infront of value */\r
42                 function addZeros(value, len) {\r
43                         value = "" + value;\r
44 \r
45                         if (value.length < len) {\r
46                                 for (var i=0; i<(len-value.length); i++)\r
47                                         value = "0" + value;\r
48                         }\r
49 \r
50                         return value;\r
51                 }\r
52 \r
53                 function getDateTime(d, fmt) {\r
54                         fmt = fmt.replace("%D", "%m/%d/%y");\r
55                         fmt = fmt.replace("%r", "%I:%M:%S %p");\r
56                         fmt = fmt.replace("%Y", "" + d.getFullYear());\r
57                         fmt = fmt.replace("%y", "" + d.getYear());\r
58                         fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
59                         fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
60                         fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
61                         fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
62                         fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
63                         fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
64                         fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
65                         fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);\r
66                         fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);\r
67                         fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);\r
68                         fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);\r
69                         fmt = fmt.replace("%%", "%");\r
70 \r
71                         return fmt;\r
72                 }\r
73 \r
74                 // Handle commands\r
75                 switch (command) {\r
76                         case "mceInsertDate":\r
77                                 tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_dateFormat", tinyMCE.getLang('lang_insertdate_def_fmt'))));\r
78                                 return true;\r
79 \r
80                         case "mceInsertTime":\r
81                                 tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_timeFormat", tinyMCE.getLang('lang_inserttime_def_fmt'))));\r
82                                 return true;\r
83                 }\r
84 \r
85                 // Pass to next handler in chain\r
86                 return false;\r
87         }\r
88 };\r
89 \r
90 tinyMCE.addPlugin("insertdatetime", TinyMCE_InsertDateTimePlugin);\r