aboutsummaryrefslogtreecommitdiffstats
path: root/view/tpl/event_head.tpl
diff options
context:
space:
mode:
Diffstat (limited to 'view/tpl/event_head.tpl')
-rwxr-xr-xview/tpl/event_head.tpl160
1 files changed, 160 insertions, 0 deletions
diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl
new file mode 100755
index 000000000..3b2cb5041
--- /dev/null
+++ b/view/tpl/event_head.tpl
@@ -0,0 +1,160 @@
+<link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar/fullcalendar.css' />
+<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/moment/moment.min.js"></script>
+<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/fullcalendar.min.js"></script>
+<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/locale-all.js"></script>
+
+<script>
+ function showEvent(eventid) {
+ $.get(
+ '{{$baseurl}}{{$module_url}}/?id='+eventid,
+ function(data){
+ $.colorbox({ scrolling: false, html: data, onComplete: function() { $.colorbox.resize(); }});
+ }
+ );
+ }
+
+ function doEventPreview() {
+ $('#event-edit-preview').val(1);
+ $.post('events',$('#event-edit-form').serialize(), function(data) {
+ $.colorbox({ html: data });
+ });
+ $('#event-edit-preview').val(0);
+ }
+
+ function exportDate() {
+ var moment = $('#events-calendar').fullCalendar('getDate');
+ var sT = 'events/' + moment.year() + '/' + (moment.month() + 1) + '/export';
+ window.location.href=sT;
+ }
+
+ function changeView(action, viewName) {
+ $('#events-calendar').fullCalendar(action, viewName);
+ var view = $('#events-calendar').fullCalendar('getView');
+
+ if(view.type !== 'month' && !$('main').hasClass('fullscreen')) {
+ $('#events-calendar').fullCalendar('option', 'height', 'auto');
+ }
+ else {
+ $('#events-calendar').fullCalendar('option', 'height', '');
+ }
+
+ if($('main').hasClass('fullscreen')) {
+ $('#events-calendar').fullCalendar('option', 'height', $(window).height() - $('.section-title-wrapper').outerHeight(true) - 2); // -2 is for border width (.generic-content-wrapper top and bottom) of .generic-content-wrapper
+ }
+
+ $('#title').text(view.title);
+ }
+
+
+ $(document).ready(function() {
+ $('#events-calendar').fullCalendar({
+ events: '{{$baseurl}}{{$module_url}}/json',
+ header: false,
+ eventTextColor: 'white',
+ lang: '{{$lang}}',
+ firstDay: {{$first_day}},
+
+ eventLimit: 3,
+
+ monthNames: aStr['monthNames'],
+ monthNamesShort: aStr['monthNamesShort'],
+ dayNames: aStr['dayNames'],
+ dayNamesShort: aStr['dayNamesShort'],
+
+ allDayText: aStr['allday'],
+ timeFormat: 'HH:mm',
+ eventClick: function(calEvent, jsEvent, view) {
+ showEvent(calEvent.id);
+ },
+ loading: function(isLoading, view) {
+ $('#events-spinner').spin('tiny');
+ $('#events-spinner > i').css('color', 'transparent');
+ if(!isLoading) {
+ $('#events-spinner').spin(false);
+ $('#events-spinner > i').css('color', '');
+ $('td.fc-day').dblclick(function() {
+ openMenu('form');
+ //window.location.href='/events/new?start='+$(this).data('date');
+ });
+ }
+ },
+
+ eventRender: function(event, element, view) {
+
+ //console.log(view.name);
+ if (event.item['author']['xchan_name']==null) return;
+
+ switch(view.name){
+ case "month":
+ element.find(".fc-title").html(
+ "<img src='{0}' style='height:12px;width:12px;' title='{1}'>&nbsp;<span title='{3}{4}'>{2}</span>".format(
+ event.item['author']['xchan_photo_s'],
+ event.item['author']['xchan_name'],
+ event.title,
+ event.item.description ? event.item.description + "\r\n\r\n" : '',
+ event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : ''
+ ));
+ break;
+ case "agendaWeek":
+ element.find(".fc-title").html(
+ "<img src='{0}' style='height:12px;width:12px;'>&nbsp;{1}: <span title='{3}{4}'>{2}</span>".format(
+ event.item['author']['xchan_photo_s'],
+ event.item['author']['xchan_name'],
+ event.title,
+ event.item.description ? event.item.description + "\r\n\r\n" : '',
+ event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : ''
+ ));
+ break;
+ case "agendaDay":
+ element.find(".fc-title").html(
+ "<img src='{0}' style='height:12px;width:12px;'>&nbsp;{1}: <span title='{3}{4}'>{2}</span>".format(
+ event.item['author']['xchan_photo_s'],
+ event.item['author']['xchan_name'],
+ event.title,
+ event.item.description ? event.item.description + "\r\n\r\n" : '',
+ event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : ''
+ ));
+ break;
+ }
+ }
+
+ });
+
+ // center on date
+ // @fixme does not work for cal/$nick module_url
+ var args=location.href.replace(baseurl,"").split("/");
+ {{if $modparams == 2}}
+ if (args.length>=5) {
+ $("#events-calendar").fullCalendar('gotoDate',args[3] , args[4]-1);
+ }
+ {{else}}
+ if (args.length>=4) {
+ $("#events-calendar").fullCalendar('gotoDate',args[2] , args[3]-1);
+ }
+ {{/if}}
+
+ // show event popup
+ var hash = location.hash.split("-")
+ if (hash.length==2 && hash[0]=="#link") showEvent(hash[1]);
+
+ // echo the title
+ var view = $('#events-calendar').fullCalendar('getView');
+ $('#title').text(view.title);
+
+ // shift the finish time date on start time date change automagically
+ var origsval = $('#id_start_text').val();
+ $('#id_start_text').change(function() {
+ var origfval = $('#id_finish_text').val();
+ if(origfval) {
+ var sval = $('#id_start_text').val();
+ var diff = moment(sval).diff(origsval);
+ var fval = moment(origfval).add(diff, 'millisecond').format("YYYY-MM-DD HH:mm");
+ $('#id_finish_text').val(fval);
+ origsval = sval;
+ }
+ });
+
+ });
+
+</script>
+