Merge branch 'origin' into 'develop'
Update 4.4.1 See merge request harukin/core!61
This commit is contained in:
105
view/tpl/cal_calendar.tpl
Executable file
105
view/tpl/cal_calendar.tpl
Executable file
@@ -0,0 +1,105 @@
|
||||
<script>
|
||||
var calendar;
|
||||
|
||||
$(document).ready(function() {
|
||||
var calendarEl = document.getElementById('calendar');
|
||||
calendar = new FullCalendar.Calendar(calendarEl, {
|
||||
plugins: [ 'dayGrid' ],
|
||||
eventSources: [ {{$sources}} ],
|
||||
|
||||
timeZone: '{{$timezone}}',
|
||||
|
||||
locale: '{{$lang}}',
|
||||
|
||||
eventTextColor: 'white',
|
||||
header: false,
|
||||
|
||||
height: 'auto',
|
||||
|
||||
firstDay: {{$first_day}},
|
||||
|
||||
monthNames: aStr['monthNames'],
|
||||
monthNamesShort: aStr['monthNamesShort'],
|
||||
dayNames: aStr['dayNames'],
|
||||
dayNamesShort: aStr['dayNamesShort'],
|
||||
allDayText: aStr['allday'],
|
||||
|
||||
eventClick: function(info) {
|
||||
var event_id = info.event._def.extendedProps.item.id;
|
||||
showEvent(event_id);
|
||||
},
|
||||
|
||||
loading: function(isLoading, view) {
|
||||
$('#events-spinner').show();
|
||||
$('#today-btn > i').hide();
|
||||
if(!isLoading) {
|
||||
$('#events-spinner').hide();
|
||||
$('#today-btn > i').show();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
calendar.render();
|
||||
|
||||
$('#title').text(calendar.view.title);
|
||||
|
||||
$('#today-btn').on('click', function() {
|
||||
calendar.today();
|
||||
$('#title').text(calendar.view.title);
|
||||
});
|
||||
|
||||
$('#prev-btn').on('click', function() {
|
||||
calendar.prev();
|
||||
$('#title').text(calendar.view.title);
|
||||
});
|
||||
|
||||
$('#next-btn').on('click', function() {
|
||||
calendar.next();
|
||||
$('#title').text(calendar.view.title);
|
||||
});
|
||||
|
||||
$(document).on('click','#fullscreen-btn', updateSize);
|
||||
$(document).on('click','#inline-btn', updateSize);
|
||||
|
||||
});
|
||||
|
||||
function showEvent(event_id) {
|
||||
$.get(
|
||||
'cal/{{$nick}}?id='+event_id,
|
||||
function(data){
|
||||
$.colorbox({ scrolling: false, html: data, onComplete: function() { $.colorbox.resize(); }});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function changeView(action, viewName) {
|
||||
calendar.changeView(viewName);
|
||||
$('#title').text(calendar.view.title);
|
||||
$('#view_selector').html(views[calendar.view.type]);
|
||||
return;
|
||||
}
|
||||
|
||||
function updateSize() {
|
||||
calendar.updateSize();
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="generic-content-wrapper">
|
||||
<div class="section-title-wrapper">
|
||||
<div class="float-right">
|
||||
<div class="btn-group">
|
||||
<button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="fa fa-backward"></i></button>
|
||||
<button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><div id="events-spinner" class="spinner s"></div><i class="fa fa-bullseye" style="display: none; width: 1rem;"></i></button>
|
||||
<button id="next-btn" class="btn btn-outline-secondary btn-sm" title="{{$next}}"><i class="fa fa-forward"></i></button>
|
||||
</div>
|
||||
<button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
|
||||
<button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
|
||||
</div>
|
||||
<h2 id="title"></h2>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="section-content-wrapper-np">
|
||||
<div id="calendar"></div>
|
||||
</div>
|
||||
</div>
|
@@ -39,13 +39,26 @@ $(document).ready(function() {
|
||||
defaultView: default_view,
|
||||
defaultDate: default_date,
|
||||
|
||||
weekNumbers: true,
|
||||
navLinks: true,
|
||||
|
||||
navLinkDayClick: function(date, jsEvent) {
|
||||
calendar.gotoDate( date );
|
||||
changeView('timeGridDay');
|
||||
},
|
||||
|
||||
navLinkWeekClick: function(date, jsEvent) {
|
||||
calendar.gotoDate( date );
|
||||
changeView('timeGridWeek');
|
||||
},
|
||||
|
||||
monthNames: aStr['monthNames'],
|
||||
monthNamesShort: aStr['monthNamesShort'],
|
||||
dayNames: aStr['dayNames'],
|
||||
dayNamesShort: aStr['dayNamesShort'],
|
||||
allDayText: aStr['allday'],
|
||||
|
||||
snapDuration: '00:15:00',
|
||||
snapDuration: '00:05:00',
|
||||
|
||||
dateClick: function(info) {
|
||||
if(new_event.id) {
|
||||
@@ -56,6 +69,14 @@ $(document).ready(function() {
|
||||
|
||||
allday = info.allDay;
|
||||
|
||||
if(allday) {
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').hide();
|
||||
}
|
||||
else {
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').show();
|
||||
}
|
||||
|
||||
|
||||
var dtend = new Date(info.date.toUTCString());
|
||||
if(allday) {
|
||||
dtend.setDate(dtend.getDate() + 1);
|
||||
@@ -72,14 +93,14 @@ $(document).ready(function() {
|
||||
$('#id_description').attr('disabled', false);
|
||||
$('#id_location').attr('disabled', false);
|
||||
$('#calendar_select').val($("#calendar_select option:first").val()).attr('disabled', false);
|
||||
$('#id_dtstart').val(info.date.toUTCString());
|
||||
$('#id_dtend').val(dtend ? dtend.toUTCString() : '');
|
||||
$('#id_dtstart').val(info.date.toUTCString().slice(0, -4));
|
||||
$('#id_dtend').val(dtend ? dtend.toUTCString().slice(0, -4) : '');
|
||||
$('#id_description').val('');
|
||||
$('#id_location').val('');
|
||||
$('#event_submit').val('create_event').html('{{$create}}');
|
||||
$('#event_delete').hide();
|
||||
|
||||
new_event = { id: new_event_id, title: 'New event', start: $('#id_dtstart').val(), end: $('#id_dtend').val(), allDay: info.allDay, editable: true, color: '#bbb' };
|
||||
new_event = { id: new_event_id, title: 'New event', start: info.date.toUTCString(), end: dtend ? dtend.toUTCString() : '', allDay: info.allDay, editable: true, color: '#bbb' };
|
||||
calendar.addEvent(new_event);
|
||||
},
|
||||
|
||||
@@ -101,6 +122,13 @@ $(document).ready(function() {
|
||||
$('#l2s').remove();
|
||||
}
|
||||
|
||||
if(event.allDay) {
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').hide();
|
||||
}
|
||||
else {
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').show();
|
||||
}
|
||||
|
||||
if(event.publicId == new_event_id) {
|
||||
$('#calendar_select').trigger('change');
|
||||
$('#event_submit').show();
|
||||
@@ -136,8 +164,8 @@ $(document).ready(function() {
|
||||
$('#id_timezone_select').val(event.extendedProps.timezone);
|
||||
$('#id_location').val(event.extendedProps.location);
|
||||
$('#id_categories').tagsinput('add', event.extendedProps.categories);
|
||||
$('#id_dtstart').val(dtstart.toUTCString());
|
||||
$('#id_dtend').val(dtend.toUTCString());
|
||||
$('#id_dtstart').val(dtstart.toUTCString().slice(0, -4));
|
||||
$('#id_dtend').val(dtend.toUTCString().slice(0, -4));
|
||||
$('#id_description').val(event.extendedProps.description);
|
||||
$('#id_location').val(event.extendedProps.location);
|
||||
$('#event_submit').val('update_event').html('{{$update}}');
|
||||
@@ -183,15 +211,14 @@ $(document).ready(function() {
|
||||
},
|
||||
|
||||
eventResize: function(info) {
|
||||
console.log(info);
|
||||
|
||||
var event = info.event._def;
|
||||
var dtstart = new Date(info.event._instance.range.start);
|
||||
var dtend = new Date(info.event._instance.range.end);
|
||||
|
||||
$('#id_title').val(event.title);
|
||||
$('#id_dtstart').val(dtstart.toUTCString());
|
||||
$('#id_dtend').val(dtend.toUTCString());
|
||||
$('#id_dtstart').val(dtstart.toUTCString().slice(0, -4));
|
||||
$('#id_dtend').val(dtend.toUTCString().slice(0, -4));
|
||||
|
||||
event_id = event.extendedProps.item ? event.extendedProps.item.id : 0;
|
||||
event_xchan = event.extendedProps.item ? event.extendedProps.item.event_xchan : '';
|
||||
@@ -205,8 +232,8 @@ $(document).ready(function() {
|
||||
'preview': 0,
|
||||
'summary': event.title,
|
||||
'timezone_select': event.extendedProps.timezone,
|
||||
'dtstart': dtstart.toUTCString(),
|
||||
'dtend': dtend.toUTCString(),
|
||||
'dtstart': dtstart.toUTCString().slice(0, -4),
|
||||
'dtend': dtend.toUTCString().slice(0, -4),
|
||||
'adjust': event.allDay ? 0 : 1,
|
||||
'categories': event.extendedProps.categories,
|
||||
'desc': event.extendedProps.description,
|
||||
@@ -222,8 +249,8 @@ $(document).ready(function() {
|
||||
'id[]': event.extendedProps.calendar_id,
|
||||
'uri': event.extendedProps.uri,
|
||||
'timezone_select': event.extendedProps.timezone,
|
||||
'dtstart': dtstart ? dtstart.toUTCString() : '',
|
||||
'dtend': dtend ? dtend.toUTCString() : '',
|
||||
'dtstart': dtstart ? dtstart.toUTCString().slice(0, -4) : '',
|
||||
'dtend': dtend ? dtend.toUTCString().slice(0, -4) : '',
|
||||
'allday': event.allDay ? 1 : 0
|
||||
})
|
||||
.fail(function() {
|
||||
@@ -239,8 +266,8 @@ $(document).ready(function() {
|
||||
var dtend = new Date(info.event._instance.range.end);
|
||||
|
||||
$('#id_title').val(event.title);
|
||||
$('#id_dtstart').val(dtstart.toUTCString());
|
||||
$('#id_dtend').val(dtend.toUTCString());
|
||||
$('#id_dtstart').val(dtstart.toUTCString().slice(0, -4));
|
||||
$('#id_dtend').val(dtend.toUTCString().slice(0, -4));
|
||||
|
||||
event_id = event.extendedProps.item ? event.extendedProps.item.id : 0;
|
||||
event_xchan = event.extendedProps.item ? event.extendedProps.item.event_xchan : '';
|
||||
@@ -254,8 +281,8 @@ $(document).ready(function() {
|
||||
'preview': 0,
|
||||
'summary': event.title,
|
||||
'timezone_select': event.extendedProps.timezone,
|
||||
'dtstart': dtstart.toUTCString(),
|
||||
'dtend': dtend.toUTCString(),
|
||||
'dtstart': dtstart.toUTCString().slice(0, -4),
|
||||
'dtend': dtend.toUTCString().slice(0, -4),
|
||||
'adjust': event.allDay ? 0 : 1,
|
||||
'categories': event.extendedProps.categories,
|
||||
'desc': event.extendedProps.description,
|
||||
@@ -271,8 +298,8 @@ $(document).ready(function() {
|
||||
'id[]': event.extendedProps.calendar_id,
|
||||
'uri': event.extendedProps.uri,
|
||||
'timezone_select': event.extendedProps.timezone,
|
||||
'dtstart': dtstart ? dtstart.toUTCString() : '',
|
||||
'dtend': dtend ? dtend.toUTCString() : '',
|
||||
'dtstart': dtstart ? dtstart.toUTCString().slice(0, -4) : '',
|
||||
'dtend': dtend ? dtend.toUTCString().slice(0, -4) : '',
|
||||
'allday': event.allDay ? 1 : 0
|
||||
})
|
||||
.fail(function() {
|
||||
@@ -340,8 +367,8 @@ $(document).ready(function() {
|
||||
|
||||
$('#calendar_select').val('channel_calendar').attr('disabled', true);
|
||||
$('#id_title').val(resource.summary);
|
||||
$('#id_dtstart').val(new Date(resource.dtstart).toUTCString());
|
||||
$('#id_dtend').val(new Date(resource.dtend).toUTCString());
|
||||
$('#id_dtstart').val(new Date(resource.dtstart).toUTCString().slice(0, -4));
|
||||
$('#id_dtend').val(new Date(resource.dtend).toUTCString().slice(0, -4));
|
||||
$('#id_categories').tagsinput('add', '{{$categories}}'),
|
||||
$('#id_description').val(resource.description);
|
||||
$('#id_location').val(resource.location);
|
||||
@@ -352,13 +379,25 @@ $(document).ready(function() {
|
||||
else
|
||||
$('#event_submit').html('{{$update}}');
|
||||
}
|
||||
|
||||
if(default_view === 'dayGridMonth');
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').hide();
|
||||
});
|
||||
|
||||
|
||||
function changeView(action, viewName) {
|
||||
function changeView(viewName) {
|
||||
|
||||
calendar.changeView(viewName);
|
||||
$('#title').text(calendar.view.title);
|
||||
$('#view_selector').html(views[calendar.view.type]);
|
||||
|
||||
if(viewName === 'dayGridMonth') {
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').hide();
|
||||
}
|
||||
else {
|
||||
$('#id_dtstart_wrapper, #id_dtend_wrapper, #id_timezone_select_wrapper').show();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -538,13 +577,13 @@ function exportDate() {
|
||||
<div class="dropdown">
|
||||
<button id="view_selector" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown"></button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'dayGridMonth'); return false;">{{$month}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'timeGridWeek'); return false;">{{$week}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'timeGridDay'); return false;">{{$day}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('dayGridMonth'); return false;">{{$month}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('timeGridWeek'); return false;">{{$week}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('timeGridDay'); return false;">{{$day}}</a></li>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'listMonth'); return false;">{{$list_month}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'listWeek'); return false;">{{$list_week}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'listDay'); return false;">{{$list_day}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('listMonth'); return false;">{{$list_month}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('listWeek'); return false;">{{$list_week}}</a></li>
|
||||
<a class="dropdown-item" href="#" onclick="changeView('listDay'); return false;">{{$list_day}}</a></li>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="fa fa-backward"></i></button>
|
||||
|
@@ -9,12 +9,12 @@
|
||||
<div class="wall-item-outside-wrapper{{if $item.is_comment}} comment{{/if}}{{if $item.previewing}} preview{{/if}}" data-mid="{{$item.mid}}" id="wall-item-outside-wrapper-{{$item.id}}" >
|
||||
<div class="clearfix wall-item-content-wrapper{{if $item.is_comment}} comment{{/if}}" id="wall-item-content-wrapper-{{$item.id}}">
|
||||
{{if $item.photo}}
|
||||
<div class="wall-photo-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}">
|
||||
<div class="wall-photo-item" id="wall-photo-item-{{$item.id}}">
|
||||
{{$item.photo}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.event}}
|
||||
<div class="wall-event-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-event-item-{{$item.id}}">
|
||||
<div class="wall-event-item" id="wall-event-item-{{$item.id}}">
|
||||
{{$item.event}}
|
||||
</div>
|
||||
{{/if}}
|
||||
@@ -26,7 +26,7 @@
|
||||
<hr class="m-0">
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment && !$item.photo}} wall-item-head-new rounded-top{{/if}}" >
|
||||
<div class="p-2 clearfix wall-item-head{{if !$item.title && !$item.event && !$item.photo}} rounded-top{{/if}}{{if $item.is_new && !$item.event && !$item.is_comment}} wall-item-head-new{{/if}}" >
|
||||
{{if $item.thr_parent}}
|
||||
<a href="javascript:doscroll('{{$item.thr_parent}}',{{$item.parent}});" title="{{$item.top_hint}}" class="float-right"><i class="fa fa-angle-double-up"> </i></a>
|
||||
{{/if}}
|
||||
|
@@ -9,12 +9,12 @@
|
||||
<div class="wall-item-outside-wrapper{{if $item.is_comment}} comment{{/if}}{{if $item.previewing}} preview{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
|
||||
<div class="clearfix wall-item-content-wrapper{{if $item.is_comment}} comment{{/if}}" id="wall-item-content-wrapper-{{$item.id}}">
|
||||
{{if $item.photo}}
|
||||
<div class="wall-photo-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}">
|
||||
<div class="wall-photo-item" id="wall-photo-item-{{$item.id}}">
|
||||
{{$item.photo}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.event}}
|
||||
<div class="wall-event-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-event-item-{{$item.id}}">
|
||||
<div class="wall-event-item" id="wall-event-item-{{$item.id}}">
|
||||
{{$item.event}}
|
||||
</div>
|
||||
{{/if}}
|
||||
@@ -26,7 +26,7 @@
|
||||
<hr class="m-0">
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment && !$item.photo}} wall-item-head-new rounded-top{{/if}}">
|
||||
<div class="p-2 clearfix wall-item-head{{if !$item.title && !$item.event && !$item.photo}} rounded-top{{/if}}{{if $item.is_new && !$item.event && !$item.is_comment}} wall-item-head-new{{/if}}">
|
||||
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$item.id}}">
|
||||
<img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" /></a>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<div class='form-group field select'>
|
||||
<div id='id_{{$field.0}}_wrapper' class='form-group field select'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<select class="form-control" name='{{$field.0}}' id='id_{{$field.0}}'>
|
||||
{{foreach $field.4 as $group=>$opts}}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<div id="mail-{{$mail.id}}" class="mb-2 clearfix mail-conv-outside-wrapper">
|
||||
<div id="mail-{{$mail.id}}" class="mb-2 clearfix mail-conv-outside-wrapper"{{if $mail.sig}} data-sig="{{$mail.sig}}"{{/if}}>
|
||||
<div class="mb-2 clearfix wall-item-head">
|
||||
<div class="wall-item-info" >
|
||||
<a href="{{$mail.from_url}}"><img class="wall-item-photo" src="{{$mail.from_photo}}" alt="{{$mail.from_name}}" /></a>
|
||||
|
@@ -11,6 +11,7 @@
|
||||
<input type="hidden" id="inp-prvmail-expires" name="expires" value="{{$defexpire}}" />
|
||||
<input type="hidden" name="media_str" id="jot-media" value="" />
|
||||
<input type="hidden" name="preview" id="mail-preview" value="0" />
|
||||
<input type="hidden" name="signature" id="mail-sig" value="" />
|
||||
{{if $new}}
|
||||
<div class="form-group">
|
||||
<label for="recip">{{$to}}</label>
|
||||
|
@@ -20,7 +20,7 @@
|
||||
<hr class="m-0">
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment}} wall-item-head-new rounded-top{{/if}}">
|
||||
<div class="p-2 clearfix wall-item-head{{if !$item.title && !$item.event && !$item.photo}} rounded-top{{/if}}{{if $item.is_new && !$item.event && !$item.is_comment}} wall-item-head-new{{/if}}" >
|
||||
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}">
|
||||
<img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" />
|
||||
|
Reference in New Issue
Block a user