]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/debian/missing-sources/framework/Web/Javascripts/source/tinymce-405/plugins/insertdatetime/plugin.js
baculum: Add missing-sources directory in debian metadata structure
[bacula/bacula] / gui / baculum / debian / missing-sources / framework / Web / Javascripts / source / tinymce-405 / plugins / insertdatetime / plugin.js
1 /**
2  * plugin.js
3  *
4  * Copyright, Moxiecode Systems AB
5  * Released under LGPL License.
6  *
7  * License: http://www.tinymce.com/license
8  * Contributing: http://www.tinymce.com/contributing
9  */
10
11 /*global tinymce:true */
12
13 tinymce.PluginManager.add('insertdatetime', function(editor) {
14         var daysShort = "Sun Mon Tue Wed Thu Fri Sat Sun".split(' ');
15         var daysLong = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(' ');
16         var monthsShort = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(' ');
17         var monthsLong = "January February March April May June July August September October November December".split(' ');
18         var menuItems = [], lastFormat;
19
20         function getDateTime(fmt, date) {
21                 function addZeros(value, len) {
22                         value = "" + value;
23
24                         if (value.length < len) {
25                                 for (var i = 0; i < (len - value.length); i++) {
26                                         value = "0" + value;
27                                 }
28                         }
29
30                         return value;
31                 }
32
33                 date = date || new Date();
34
35                 fmt = fmt.replace("%D", "%m/%d/%Y");
36                 fmt = fmt.replace("%r", "%I:%M:%S %p");
37                 fmt = fmt.replace("%Y", "" + date.getFullYear());
38                 fmt = fmt.replace("%y", "" + date.getYear());
39                 fmt = fmt.replace("%m", addZeros(date.getMonth() + 1, 2));
40                 fmt = fmt.replace("%d", addZeros(date.getDate(), 2));
41                 fmt = fmt.replace("%H", "" + addZeros(date.getHours(), 2));
42                 fmt = fmt.replace("%M", "" + addZeros(date.getMinutes(), 2));
43                 fmt = fmt.replace("%S", "" + addZeros(date.getSeconds(), 2));
44                 fmt = fmt.replace("%I", "" + ((date.getHours() + 11) % 12 + 1));
45                 fmt = fmt.replace("%p", "" + (date.getHours() < 12 ? "AM" : "PM"));
46                 fmt = fmt.replace("%B", "" + editor.translate(monthsLong[date.getMonth()]));
47                 fmt = fmt.replace("%b", "" + editor.translate(monthsShort[date.getMonth()]));
48                 fmt = fmt.replace("%A", "" + editor.translate(daysLong[date.getDay()]));
49                 fmt = fmt.replace("%a", "" + editor.translate(daysShort[date.getDay()]));
50                 fmt = fmt.replace("%%", "%");
51
52                 return fmt;
53         }
54
55         function insertDateTime(format) {
56                 var html = getDateTime(format);
57
58                 if (editor.settings.insertdatetime_element) {
59                         var computerTime;
60
61                         if (/%[HMSIp]/.test(format)) {
62                                 computerTime = getDateTime("%Y-%m-%dT%H:%M");
63                         } else {
64                                 computerTime = getDateTime("%Y-%m-%d");
65                         }
66
67                         html = '<time datetime="' + computerTime + '">' + html + '</time>';
68
69                         var timeElm = editor.dom.getParent(editor.selection.getStart(), 'time');
70                         if (timeElm) {
71                                 editor.dom.setOuterHTML(timeElm, html);
72                                 return;
73                         }
74                 }
75
76                 editor.insertContent(html);
77         }
78
79         editor.addCommand('mceInsertDate', function() {
80                 insertDateTime(editor.getParam("insertdatetime_dateformat", editor.translate("%Y-%m-%d")));
81         });
82
83         editor.addCommand('mceInsertTime', function() {
84                 insertDateTime(editor.getParam("insertdatetime_timeformat", editor.translate('%H:%M:%S')));
85         });
86
87         editor.addButton('inserttime', {
88                 type: 'splitbutton',
89                 title: 'Insert time',
90                 onclick: function() {
91                         insertDateTime(lastFormat || "%H:%M:%S");
92                 },
93                 menu: menuItems
94         });
95
96         tinymce.each(editor.settings.insertdatetime_formats || [
97                 "%H:%M:%S",
98                 "%Y-%m-%d",
99                 "%I:%M:%S %p",
100                 "%D"
101         ], function(fmt) {
102                 menuItems.push({
103                         text: getDateTime(fmt),
104                         onclick: function() {
105                                 lastFormat = fmt;
106                                 insertDateTime(fmt);
107                         }
108                 });
109         });
110
111         editor.addMenuItem('insertdatetime', {
112                 icon: 'date',
113                 text: 'Insert date/time',
114                 menu: menuItems,
115                 context: 'insert'
116         });
117 });