cone.calendar 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cone/calendar/__init__.py +20 -0
- cone/calendar/browser/__init__.py +88 -0
- cone/calendar/browser/calendar.pt +16 -0
- cone/calendar/browser/calendar.py +370 -0
- cone/calendar/browser/static/calendar/cone.calendar.css +23 -0
- cone/calendar/browser/static/calendar/cone.calendar.js +241 -0
- cone/calendar/browser/static/calendar/cone.calendar.min.js +1 -0
- cone/calendar/browser/static/fullcalendar/fullcalendar.css +1404 -0
- cone/calendar/browser/static/fullcalendar/fullcalendar.js +14206 -0
- cone/calendar/browser/static/fullcalendar/fullcalendar.min.css +5 -0
- cone/calendar/browser/static/fullcalendar/fullcalendar.min.js +10 -0
- cone/calendar/browser/static/fullcalendar/fullcalendar.print.css +208 -0
- cone/calendar/browser/static/fullcalendar/fullcalendar.print.min.css +5 -0
- cone/calendar/browser/static/fullcalendar/gcal.js +180 -0
- cone/calendar/browser/static/fullcalendar/gcal.min.js +6 -0
- cone/calendar/browser/static/fullcalendar/locale/af.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ar-dz.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ar-ly.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ar-ma.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ar-sa.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ar-tn.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ar.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/bg.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ca.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/cs.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/da.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/de-at.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/de.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/el.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/en-au.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/en-ca.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/en-gb.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/en-ie.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/en-nz.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/es-do.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/es.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/eu.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/fa.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/fi.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/fr-ca.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/fr-ch.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/fr.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/gl.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/he.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/hi.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/hr.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/hu.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/id.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/is.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/it.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ja.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/kk.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ko.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/lb.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/lt.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/lv.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/mk.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ms-my.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ms.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/nb.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/nl-be.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/nl.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/nn.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/pl.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/pt-br.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/pt.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ro.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/ru.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/sk.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/sl.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/sr-cyrl.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/sr.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/sv.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/th.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/tr.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/uk.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/vi.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/zh-cn.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale/zh-tw.js +1 -0
- cone/calendar/browser/static/fullcalendar/locale-all.js +5 -0
- cone/calendar/browser/static/moment/locale/af.js +73 -0
- cone/calendar/browser/static/moment/locale/ar-dz.js +59 -0
- cone/calendar/browser/static/moment/locale/ar-ly.js +126 -0
- cone/calendar/browser/static/moment/locale/ar-ma.js +60 -0
- cone/calendar/browser/static/moment/locale/ar-sa.js +105 -0
- cone/calendar/browser/static/moment/locale/ar-tn.js +59 -0
- cone/calendar/browser/static/moment/locale/ar.js +142 -0
- cone/calendar/browser/static/moment/locale/az.js +105 -0
- cone/calendar/browser/static/moment/locale/be.js +134 -0
- cone/calendar/browser/static/moment/locale/bg.js +90 -0
- cone/calendar/browser/static/moment/locale/bn.js +119 -0
- cone/calendar/browser/static/moment/locale/bo.js +119 -0
- cone/calendar/browser/static/moment/locale/br.js +108 -0
- cone/calendar/browser/static/moment/locale/bs.js +143 -0
- cone/calendar/browser/static/moment/locale/ca.js +81 -0
- cone/calendar/browser/static/moment/locale/cs.js +172 -0
- cone/calendar/browser/static/moment/locale/cv.js +63 -0
- cone/calendar/browser/static/moment/locale/cy.js +81 -0
- cone/calendar/browser/static/moment/locale/da.js +60 -0
- cone/calendar/browser/static/moment/locale/de-at.js +79 -0
- cone/calendar/browser/static/moment/locale/de.js +78 -0
- cone/calendar/browser/static/moment/locale/dv.js +100 -0
- cone/calendar/browser/static/moment/locale/el.js +98 -0
- cone/calendar/browser/static/moment/locale/en-au.js +67 -0
- cone/calendar/browser/static/moment/locale/en-ca.js +63 -0
- cone/calendar/browser/static/moment/locale/en-gb.js +67 -0
- cone/calendar/browser/static/moment/locale/en-ie.js +67 -0
- cone/calendar/browser/static/moment/locale/en-nz.js +67 -0
- cone/calendar/browser/static/moment/locale/eo.js +73 -0
- cone/calendar/browser/static/moment/locale/es-do.js +80 -0
- cone/calendar/browser/static/moment/locale/es.js +81 -0
- cone/calendar/browser/static/moment/locale/et.js +80 -0
- cone/calendar/browser/static/moment/locale/eu.js +66 -0
- cone/calendar/browser/static/moment/locale/fa.js +107 -0
- cone/calendar/browser/static/moment/locale/fi.js +107 -0
- cone/calendar/browser/static/moment/locale/fo.js +60 -0
- cone/calendar/browser/static/moment/locale/fr-ca.js +60 -0
- cone/calendar/browser/static/moment/locale/fr-ch.js +64 -0
- cone/calendar/browser/static/moment/locale/fr.js +64 -0
- cone/calendar/browser/static/moment/locale/fy.js +73 -0
- cone/calendar/browser/static/moment/locale/gd.js +76 -0
- cone/calendar/browser/static/moment/locale/gl.js +77 -0
- cone/calendar/browser/static/moment/locale/he.js +99 -0
- cone/calendar/browser/static/moment/locale/hi.js +124 -0
- cone/calendar/browser/static/moment/locale/hr.js +145 -0
- cone/calendar/browser/static/moment/locale/hu.js +109 -0
- cone/calendar/browser/static/moment/locale/hy-am.js +95 -0
- cone/calendar/browser/static/moment/locale/id.js +83 -0
- cone/calendar/browser/static/moment/locale/is.js +127 -0
- cone/calendar/browser/static/moment/locale/it.js +70 -0
- cone/calendar/browser/static/moment/locale/ja.js +76 -0
- cone/calendar/browser/static/moment/locale/jv.js +83 -0
- cone/calendar/browser/static/moment/locale/ka.js +89 -0
- cone/calendar/browser/static/moment/locale/kk.js +87 -0
- cone/calendar/browser/static/moment/locale/km.js +58 -0
- cone/calendar/browser/static/moment/locale/ko.js +65 -0
- cone/calendar/browser/static/moment/locale/ky.js +88 -0
- cone/calendar/browser/static/moment/locale/lb.js +137 -0
- cone/calendar/browser/static/moment/locale/lo.js +70 -0
- cone/calendar/browser/static/moment/locale/lt.js +117 -0
- cone/calendar/browser/static/moment/locale/lv.js +97 -0
- cone/calendar/browser/static/moment/locale/me.js +111 -0
- cone/calendar/browser/static/moment/locale/mi.js +64 -0
- cone/calendar/browser/static/moment/locale/mk.js +90 -0
- cone/calendar/browser/static/moment/locale/ml.js +81 -0
- cone/calendar/browser/static/moment/locale/mr.js +159 -0
- cone/calendar/browser/static/moment/locale/ms-my.js +83 -0
- cone/calendar/browser/static/moment/locale/ms.js +82 -0
- cone/calendar/browser/static/moment/locale/my.js +96 -0
- cone/calendar/browser/static/moment/locale/nb.js +63 -0
- cone/calendar/browser/static/moment/locale/ne.js +123 -0
- cone/calendar/browser/static/moment/locale/nl-be.js +86 -0
- cone/calendar/browser/static/moment/locale/nl.js +86 -0
- cone/calendar/browser/static/moment/locale/nn.js +60 -0
- cone/calendar/browser/static/moment/locale/pa-in.js +124 -0
- cone/calendar/browser/static/moment/locale/pl.js +105 -0
- cone/calendar/browser/static/moment/locale/pt-br.js +61 -0
- cone/calendar/browser/static/moment/locale/pt.js +65 -0
- cone/calendar/browser/static/moment/locale/ro.js +75 -0
- cone/calendar/browser/static/moment/locale/ru.js +183 -0
- cone/calendar/browser/static/moment/locale/se.js +61 -0
- cone/calendar/browser/static/moment/locale/si.js +71 -0
- cone/calendar/browser/static/moment/locale/sk.js +150 -0
- cone/calendar/browser/static/moment/locale/sl.js +162 -0
- cone/calendar/browser/static/moment/locale/sq.js +70 -0
- cone/calendar/browser/static/moment/locale/sr-cyrl.js +110 -0
- cone/calendar/browser/static/moment/locale/sr.js +110 -0
- cone/calendar/browser/static/moment/locale/ss.js +89 -0
- cone/calendar/browser/static/moment/locale/sv.js +69 -0
- cone/calendar/browser/static/moment/locale/sw.js +59 -0
- cone/calendar/browser/static/moment/locale/ta.js +130 -0
- cone/calendar/browser/static/moment/locale/te.js +89 -0
- cone/calendar/browser/static/moment/locale/tet.js +68 -0
- cone/calendar/browser/static/moment/locale/th.js +67 -0
- cone/calendar/browser/static/moment/locale/tl-ph.js +62 -0
- cone/calendar/browser/static/moment/locale/tlh.js +120 -0
- cone/calendar/browser/static/moment/locale/tr.js +90 -0
- cone/calendar/browser/static/moment/locale/tzl.js +91 -0
- cone/calendar/browser/static/moment/locale/tzm-latn.js +58 -0
- cone/calendar/browser/static/moment/locale/tzm.js +58 -0
- cone/calendar/browser/static/moment/locale/uk.js +146 -0
- cone/calendar/browser/static/moment/locale/uz.js +58 -0
- cone/calendar/browser/static/moment/locale/vi.js +79 -0
- cone/calendar/browser/static/moment/locale/x-pseudo.js +68 -0
- cone/calendar/browser/static/moment/locale/yo.js +60 -0
- cone/calendar/browser/static/moment/locale/zh-cn.js +127 -0
- cone/calendar/browser/static/moment/locale/zh-hk.js +105 -0
- cone/calendar/browser/static/moment/locale/zh-tw.js +104 -0
- cone/calendar/browser/static/moment/locales.js +8624 -0
- cone/calendar/browser/static/moment/locales.min.js +663 -0
- cone/calendar/browser/static/moment/moment-with-locales.js +12910 -0
- cone/calendar/browser/static/moment/moment-with-locales.min.js +1216 -0
- cone/calendar/browser/static/moment/moment.min.js +551 -0
- cone/calendar/interfaces.py +14 -0
- cone/calendar/locale/cone.calendar.pot +0 -0
- cone/calendar/locale/de/LC_MESSAGES/cone.calendar.po +0 -0
- cone/calendar/locale/en/LC_MESSAGES/cone.calendar.po +0 -0
- cone/calendar/tests/test_calendar.py +340 -0
- cone_calendar-1.1.0.dist-info/METADATA +252 -0
- cone_calendar-1.1.0.dist-info/RECORD +202 -0
- cone_calendar-1.1.0.dist-info/WHEEL +4 -0
- cone_calendar-1.1.0.dist-info/licenses/LICENSE.rst +27 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
var cone_calendar = (function (exports, $) {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
class EventSource {
|
|
5
|
+
constructor(calendar, opts) {
|
|
6
|
+
this._calendar = calendar;
|
|
7
|
+
this._events_view = opts.events;
|
|
8
|
+
delete opts.events;
|
|
9
|
+
Object.assign(this, opts);
|
|
10
|
+
this.events = this.events.bind(this);
|
|
11
|
+
}
|
|
12
|
+
events(start, end, timezone, callback) {
|
|
13
|
+
let calendar = this._calendar,
|
|
14
|
+
url = calendar.target + '/' + this._events_view;
|
|
15
|
+
let params = {
|
|
16
|
+
start: start.unix(),
|
|
17
|
+
end: end.unix()
|
|
18
|
+
};
|
|
19
|
+
calendar.json_request(url, params, callback, null);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class Calendar {
|
|
23
|
+
static initialize(context) {
|
|
24
|
+
let elem = $('#calendar', context);
|
|
25
|
+
if (!elem.length) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
new Calendar(elem);
|
|
29
|
+
}
|
|
30
|
+
constructor(elem) {
|
|
31
|
+
this.elem = elem;
|
|
32
|
+
this.target = elem.data('calendar_target');
|
|
33
|
+
this.actions = elem.data('calendar_actions');
|
|
34
|
+
let sources = elem.data('calendar_sources'),
|
|
35
|
+
event_sources = [];
|
|
36
|
+
for (let i in sources) {
|
|
37
|
+
event_sources.push(new EventSource(this, sources[i]));
|
|
38
|
+
}
|
|
39
|
+
let options = elem.data('calendar_options');
|
|
40
|
+
$.extend(options, {
|
|
41
|
+
eventSources: event_sources,
|
|
42
|
+
eventClick: this.event_clicked.bind(this),
|
|
43
|
+
dayClick: this.day_clicked.bind(this),
|
|
44
|
+
eventDrop: this.event_drop.bind(this),
|
|
45
|
+
eventResize: this.event_resize.bind(this)
|
|
46
|
+
});
|
|
47
|
+
elem.bind('reload', function() {
|
|
48
|
+
elem.fullCalendar('refetchEvents');
|
|
49
|
+
});
|
|
50
|
+
elem.fullCalendar(options);
|
|
51
|
+
}
|
|
52
|
+
json_request(url, params, callback, errback) {
|
|
53
|
+
bdajax.request({
|
|
54
|
+
url: url,
|
|
55
|
+
type: 'json',
|
|
56
|
+
params: params,
|
|
57
|
+
success: function(data) {
|
|
58
|
+
if (data.error) {
|
|
59
|
+
errback && errback();
|
|
60
|
+
bdajax.error(data.message);
|
|
61
|
+
} else {
|
|
62
|
+
callback(data.data);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
error: function() {
|
|
66
|
+
errback && errback();
|
|
67
|
+
bdajax.error('Failed to request JSON data');
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
create_context_menu(actions, x, y) {
|
|
72
|
+
let body = $('body', document);
|
|
73
|
+
let wrapper = $('<div />')
|
|
74
|
+
.attr('class', 'calendar-contextmenu-wrapper')
|
|
75
|
+
.css('height', body.height() + 'px');
|
|
76
|
+
body.append(wrapper);
|
|
77
|
+
wrapper.on('click contextmenu', function(e) {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
wrapper.remove();
|
|
80
|
+
});
|
|
81
|
+
let menu = $('<ul />')
|
|
82
|
+
.attr('class', 'calendar-contextmenu dropdown-menu')
|
|
83
|
+
.css('left', x + 'px')
|
|
84
|
+
.css('top', y + 'px')
|
|
85
|
+
.css('display', 'block');
|
|
86
|
+
wrapper.append(menu);
|
|
87
|
+
for (let i in actions) {
|
|
88
|
+
this.add_menu_item(wrapper, menu, actions[i]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
add_menu_item(wrapper, menu, action) {
|
|
92
|
+
let menu_item = $('<li><span />' + action.title + '</li>');
|
|
93
|
+
if (action.icon) {
|
|
94
|
+
$('span', menu_item).attr('class', action.icon);
|
|
95
|
+
}
|
|
96
|
+
menu.append(menu_item);
|
|
97
|
+
menu_item.on('click', function(e) {
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
wrapper.remove();
|
|
100
|
+
this.handle_action(action);
|
|
101
|
+
}.bind(this));
|
|
102
|
+
}
|
|
103
|
+
prepare_target(target, params) {
|
|
104
|
+
if (!target.url) {
|
|
105
|
+
target = bdajax.parsetarget(target);
|
|
106
|
+
}
|
|
107
|
+
$.extend(target.params, params);
|
|
108
|
+
return target;
|
|
109
|
+
}
|
|
110
|
+
handle_action(action) {
|
|
111
|
+
if (!action.target) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (action.confirm) {
|
|
115
|
+
bdajax.dialog({
|
|
116
|
+
message: action.confirm
|
|
117
|
+
}, function(options) {
|
|
118
|
+
this.perform_action(action);
|
|
119
|
+
}.bind(this));
|
|
120
|
+
} else {
|
|
121
|
+
this.perform_action(action);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
perform_action(action) {
|
|
125
|
+
let target = action.target;
|
|
126
|
+
if (action.action) {
|
|
127
|
+
bdajax.action({
|
|
128
|
+
name: action.action.name,
|
|
129
|
+
selector: action.action.selector,
|
|
130
|
+
mode: action.action.mode,
|
|
131
|
+
url: target.url,
|
|
132
|
+
params: target.params
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
if (action.event) {
|
|
136
|
+
let event = action.event;
|
|
137
|
+
bdajax.trigger(
|
|
138
|
+
event.name,
|
|
139
|
+
event.selector,
|
|
140
|
+
target
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
if (action.overlay) {
|
|
144
|
+
let overlay = action.overlay;
|
|
145
|
+
bdajax.overlay({
|
|
146
|
+
action: overlay.action,
|
|
147
|
+
target: target,
|
|
148
|
+
selector: overlay.selector,
|
|
149
|
+
content_selector: overlay.content_selector,
|
|
150
|
+
css: overlay.css
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
handle_actions(actions, target, params, x, y) {
|
|
155
|
+
if (!actions || !actions.length) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
actions = JSON.parse(JSON.stringify(actions));
|
|
159
|
+
for (let i in actions) {
|
|
160
|
+
let action = actions[i];
|
|
161
|
+
action.target = this.prepare_target(
|
|
162
|
+
action.target || target,
|
|
163
|
+
params
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
if (actions.length == 1) {
|
|
167
|
+
let action = actions[0];
|
|
168
|
+
this.handle_action(action);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
this.create_context_menu(actions, x, y);
|
|
172
|
+
}
|
|
173
|
+
event_clicked(cal_evt, js_evt, view) {
|
|
174
|
+
let params = {
|
|
175
|
+
view: view.name
|
|
176
|
+
};
|
|
177
|
+
this.handle_actions(
|
|
178
|
+
cal_evt.actions,
|
|
179
|
+
cal_evt.target,
|
|
180
|
+
params,
|
|
181
|
+
js_evt.pageX,
|
|
182
|
+
js_evt.pageY
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
day_clicked(date, js_evt, view) {
|
|
186
|
+
let params = {
|
|
187
|
+
date: date.unix(),
|
|
188
|
+
all_day: !date.hasTime(),
|
|
189
|
+
view: view.name
|
|
190
|
+
};
|
|
191
|
+
this.handle_actions(
|
|
192
|
+
this.actions,
|
|
193
|
+
this.target,
|
|
194
|
+
params,
|
|
195
|
+
js_evt.pageX,
|
|
196
|
+
js_evt.pageY
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
update_event(cal_evt, delta, revert_func, view, callback) {
|
|
200
|
+
let target = this.prepare_target(cal_evt.target, {
|
|
201
|
+
id: cal_evt.id,
|
|
202
|
+
start: cal_evt.start.unix(),
|
|
203
|
+
end: cal_evt.end.unix(),
|
|
204
|
+
delta: delta.asSeconds()
|
|
205
|
+
});
|
|
206
|
+
let url = target.url + '/' + view;
|
|
207
|
+
this.json_request(url, target.params, callback, revert_func);
|
|
208
|
+
}
|
|
209
|
+
event_drop(cal_evt, delta, revert_func) {
|
|
210
|
+
if (!cal_evt.editable && !cal_evt.startEditable) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
let view = 'calendar_event_drop';
|
|
214
|
+
let cb = function(data) {
|
|
215
|
+
console.log(data);
|
|
216
|
+
};
|
|
217
|
+
this.update_event(cal_evt, delta, revert_func, view, cb);
|
|
218
|
+
}
|
|
219
|
+
event_resize(cal_evt, delta, revert_func) {
|
|
220
|
+
if (!cal_evt.editable && !cal_evt.durationEditable) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
let view = 'calendar_event_resize';
|
|
224
|
+
let cb = function(data) {
|
|
225
|
+
console.log(data);
|
|
226
|
+
};
|
|
227
|
+
this.update_event(cal_evt, delta, revert_func, view, cb);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
$(function() {
|
|
232
|
+
bdajax.register(Calendar.initialize, true);
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
exports.Calendar = Calendar;
|
|
236
|
+
|
|
237
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
238
|
+
|
|
239
|
+
return exports;
|
|
240
|
+
|
|
241
|
+
})({}, jQuery);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var cone_calendar=function(e,t){"use strict";class a{constructor(e,t){this._calendar=e,this._events_view=t.events,delete t.events,Object.assign(this,t),this.events=this.events.bind(this)}events(e,t,a,n){let i=this._calendar,r=i.target+"/"+this._events_view,s={start:e.unix(),end:t.unix()};i.json_request(r,s,n,null)}}class n{static initialize(e){let a=t("#calendar",e);a.length&&new n(a)}constructor(e){this.elem=e,this.target=e.data("calendar_target"),this.actions=e.data("calendar_actions");let n=e.data("calendar_sources"),i=[];for(let e in n)i.push(new a(this,n[e]));let r=e.data("calendar_options");t.extend(r,{eventSources:i,eventClick:this.event_clicked.bind(this),dayClick:this.day_clicked.bind(this),eventDrop:this.event_drop.bind(this),eventResize:this.event_resize.bind(this)}),e.bind("reload",function(){e.fullCalendar("refetchEvents")}),e.fullCalendar(r)}json_request(e,t,a,n){bdajax.request({url:e,type:"json",params:t,success:function(e){e.error?(n&&n(),bdajax.error(e.message)):a(e.data)},error:function(){n&&n(),bdajax.error("Failed to request JSON data")}})}create_context_menu(e,a,n){let i=t("body",document),r=t("<div />").attr("class","calendar-contextmenu-wrapper").css("height",i.height()+"px");i.append(r),r.on("click contextmenu",function(e){e.preventDefault(),r.remove()});let s=t("<ul />").attr("class","calendar-contextmenu dropdown-menu").css("left",a+"px").css("top",n+"px").css("display","block");r.append(s);for(let t in e)this.add_menu_item(r,s,e[t])}add_menu_item(e,a,n){let i=t("<li><span />"+n.title+"</li>");n.icon&&t("span",i).attr("class",n.icon),a.append(i),i.on("click",function(t){t.stopPropagation(),e.remove(),this.handle_action(n)}.bind(this))}prepare_target(e,a){return e.url||(e=bdajax.parsetarget(e)),t.extend(e.params,a),e}handle_action(e){e.target&&(e.confirm?bdajax.dialog({message:e.confirm},function(t){this.perform_action(e)}.bind(this)):this.perform_action(e))}perform_action(e){let t=e.target;if(e.action&&bdajax.action({name:e.action.name,selector:e.action.selector,mode:e.action.mode,url:t.url,params:t.params}),e.event){let a=e.event;bdajax.trigger(a.name,a.selector,t)}if(e.overlay){let a=e.overlay;bdajax.overlay({action:a.action,target:t,selector:a.selector,content_selector:a.content_selector,css:a.css})}}handle_actions(e,t,a,n,i){if(e&&e.length){e=JSON.parse(JSON.stringify(e));for(let n in e){let i=e[n];i.target=this.prepare_target(i.target||t,a)}if(1==e.length){let t=e[0];return void this.handle_action(t)}this.create_context_menu(e,n,i)}}event_clicked(e,t,a){let n={view:a.name};this.handle_actions(e.actions,e.target,n,t.pageX,t.pageY)}day_clicked(e,t,a){let n={date:e.unix(),all_day:!e.hasTime(),view:a.name};this.handle_actions(this.actions,this.target,n,t.pageX,t.pageY)}update_event(e,t,a,n,i){let r=this.prepare_target(e.target,{id:e.id,start:e.start.unix(),end:e.end.unix(),delta:t.asSeconds()}),s=r.url+"/"+n;this.json_request(s,r.params,i,a)}event_drop(e,t,a){if(!e.editable&&!e.startEditable)return;this.update_event(e,t,a,"calendar_event_drop",function(e){console.log(e)})}event_resize(e,t,a){if(!e.editable&&!e.durationEditable)return;this.update_event(e,t,a,"calendar_event_resize",function(e){console.log(e)})}}return t(function(){bdajax.register(n.initialize,!0)}),e.Calendar=n,Object.defineProperty(e,"__esModule",{value:!0}),e}({},jQuery);
|