aboutsummaryrefslogtreecommitdiffstats
path: root/view/tpl
diff options
context:
space:
mode:
Diffstat (limited to 'view/tpl')
-rw-r--r--view/tpl/app.tpl4
-rwxr-xr-xview/tpl/categories_widget.tpl2
-rw-r--r--view/tpl/cdav_calendar.tpl563
-rw-r--r--view/tpl/cdav_widget_calendar.tpl27
-rw-r--r--view/tpl/cloud_directory.tpl2
-rwxr-xr-xview/tpl/connection_template.tpl2
-rwxr-xr-xview/tpl/conv_item.tpl24
-rwxr-xr-xview/tpl/conv_list.tpl9
-rwxr-xr-xview/tpl/cover_photo.tpl3
-rw-r--r--view/tpl/dreport.tpl8
-rwxr-xr-xview/tpl/event_head.tpl6
-rwxr-xr-xview/tpl/failed_updates.tpl1
-rwxr-xr-xview/tpl/group_edit.tpl1
-rwxr-xr-xview/tpl/jot-header.tpl28
-rwxr-xr-xview/tpl/jot.tpl14
-rwxr-xr-xview/tpl/js_strings.tpl1
-rw-r--r--view/tpl/notifications_widget.tpl15
-rwxr-xr-xview/tpl/peoplefind.tpl2
-rwxr-xr-xview/tpl/photo_view.tpl2
-rw-r--r--view/tpl/privacy_groups.tpl1
-rwxr-xr-xview/tpl/profile_photo.tpl7
-rwxr-xr-xview/tpl/register.tpl1
-rwxr-xr-xview/tpl/remote_friends_common.tpl3
-rw-r--r--view/tpl/searchbox.tpl4
-rw-r--r--view/tpl/wiki.tpl2
25 files changed, 523 insertions, 209 deletions
diff --git a/view/tpl/app.tpl b/view/tpl/app.tpl
index 6013f9548..cacbf7e64 100644
--- a/view/tpl/app.tpl
+++ b/view/tpl/app.tpl
@@ -31,8 +31,8 @@
<a class="dropdown-item{{if $app.active}} active{{/if}}" href="{{$app.url}}">{{if $icon}}<i class="generic-icons-nav fa fa-fw fa-{{$icon}}"></i>{{else}}<img src="{{$app.photo}}" width="16" height="16" style="margin-right:9px;"/>{{/if}}{{$app.name}}</a>
{{/if}}
{{if $order}}
-<a href="{{$hosturl}}appman/{{$app.guid}}/moveup" class="btn btn-outline-secondary btn-sm" style="margin-bottom: 5px;"><i class="generic-icons-nav fa fa-fw fa-arrow-up"></i></a>
-<a href="{{$hosturl}}appman/{{$app.guid}}/movedown" class="btn btn-outline-secondary btn-sm" style="margin-bottom: 5px;"><i class="generic-icons-nav fa fa-fw fa-arrow-down"></i></a>
+<a href="{{$hosturl}}appman/{{$app.guid}}/moveup{{if $pinned}}/nav_pinned_app{{else}}/nav_featured_app{{/if}}" class="btn btn-outline-secondary btn-sm" style="margin-bottom: 5px;"><i class="generic-icons-nav fa fa-fw fa-arrow-up"></i></a>
+<a href="{{$hosturl}}appman/{{$app.guid}}/movedown{{if $pinned}}/nav_pinned_app{{else}}/nav_featured_app{{/if}}" class="btn btn-outline-secondary btn-sm" style="margin-bottom: 5px;"><i class="generic-icons-nav fa fa-fw fa-arrow-down"></i></a>
{{if $icon}}<i class="generic-icons-nav fa fa-fw fa-{{$icon}}"></i>{{else}}<img src="{{$app.photo}}" width="16" height="16" style="margin-right:9px;"/>{{/if}}{{$app.name}}<br>
{{/if}}
diff --git a/view/tpl/categories_widget.tpl b/view/tpl/categories_widget.tpl
index 72478aa3d..1341c652c 100755
--- a/view/tpl/categories_widget.tpl
+++ b/view/tpl/categories_widget.tpl
@@ -5,7 +5,7 @@
<ul class="nav nav-pills flex-column">
<li class="nav-item"><a href="{{$base}}" class="nav-link{{if $sel_all}} active{{/if}}">{{$all}}</a></li>
{{foreach $terms as $term}}
- <li class="nav-item"><a href="{{$base}}?f=&cat={{$term.name}}" class="nav-link{{if $term.selected}} active{{/if}}">{{$term.name}}</a></li>
+ <li class="nav-item"><a href="{{$base}}?f=&cat={{$term.name|urlencode}}" class="nav-link{{if $term.selected}} active{{/if}}">{{$term.name}}</a></li>
{{/foreach}}
</ul>
diff --git a/view/tpl/cdav_calendar.tpl b/view/tpl/cdav_calendar.tpl
index b0245e853..22579227a 100644
--- a/view/tpl/cdav_calendar.tpl
+++ b/view/tpl/cdav_calendar.tpl
@@ -1,131 +1,273 @@
<script>
-
-var new_event = [];
+var calendar;
+var new_event = {};
var new_event_id = Math.random().toString(36).substring(7);
-var views = {'month' : '{{$month}}', 'agendaWeek' : '{{$week}}', 'agendaDay' : '{{$day}}', 'listMonth' : '{{$list_month}}', 'listWeek' : '{{$list_week}}', 'listDay' : '{{$list_day}}'};
+var views = {'dayGridMonth' : '{{$month}}', 'timeGridWeek' : '{{$week}}', 'timeGridDay' : '{{$day}}', 'listMonth' : '{{$list_month}}', 'listWeek' : '{{$list_week}}', 'listDay' : '{{$list_day}}'};
+
+var event_id;
+var event_uri;
+var event_xchan;
+
+var contact_allow = [];
+var group_allow = [];
+var contact_deny = [];
+var group_deny = [];
+
+var resource = {{$resource}};
+var default_view = resource !== null ? 'timeGridDay' : 'dayGridMonth';
+var default_date = resource !== null ? new Date(resource.dtstart) : new Date();
$(document).ready(function() {
- $('#calendar').fullCalendar({
+ var calendarEl = document.getElementById('calendar');
+ calendar = new FullCalendar.Calendar(calendarEl, {
+ plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list' ],
eventSources: [ {{$sources}} ],
+
+ timeZone: '{{$timezone}}',
- header: false,
- eventTextColor: 'white',
+ locale: '{{$lang}}',
- lang: '{{$lang}}',
+ eventTextColor: 'white',
+ header: false,
+
+ height: 'auto',
+
firstDay: {{$first_day}},
+ defaultView: default_view,
+ defaultDate: default_date,
+
monthNames: aStr['monthNames'],
monthNamesShort: aStr['monthNamesShort'],
dayNames: aStr['dayNames'],
dayNamesShort: aStr['dayNamesShort'],
allDayText: aStr['allday'],
- timeFormat: 'HH:mm',
- timezone: 'local',
-
defaultTimedEventDuration: '01:00:00',
snapDuration: '00:15:00',
+
+ dateClick: function(info) {
+ if(new_event.id) {
+ var event_poi = calendar.getEventById(new_event.id);
+ event_poi.remove();
+ new_event = {};
+ }
- dayClick: function(date, jsEvent, view) {
-
- if(new_event.length)
- $('#calendar').fullCalendar( 'removeEventSource', new_event);
+ var dtend = new Date(info.date.toUTCString());
+ if(info.view.type == 'dayGridMonth') {
+ dtend.setDate(dtend.getDate() + 1);
+ }
+ else{
+ dtend.setHours(dtend.getHours() + 1);
+ }
- $('#event_uri').val('');
+ event_uri = '';
$('#id_title').val('New event');
+ $('#id_title').attr('disabled', false);
+ $('#id_dtstart').attr('disabled', false);
+ $('#id_dtend').attr('disabled', false);
+ $('#id_description').attr('disabled', false);
+ $('#id_location').attr('disabled', false);
$('#calendar_select').val($("#calendar_select option:first").val()).attr('disabled', false);
- $('#id_dtstart').val(date.format());
- $('#id_dtend').val(date.hasTime() ? date.add(1, 'hours').format() : date.add(1, 'days').format());
+ $('#id_dtstart').val(info.date.toUTCString());
+ $('#id_dtend').val(dtend ? dtend.toUTCString() : '');
$('#id_description').val('');
$('#id_location').val('');
- $('#event_submit').val('create_event').html('Create');
+ $('#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(), editable: true, color: '#bbb' }]
- $('#calendar').fullCalendar( 'addEventSource', new_event);
+ new_event = { id: new_event_id, title : 'New event', start: $('#id_dtstart').val(), end: $('#id_dtend').val(), editable: true, color: '#bbb' };
+ calendar.addEvent(new_event);
},
+
+ eventClick: function(info) {
+
+ //reset categories
+ $('#id_categories').tagsinput('removeAll');
+
+ var event = info.event._def;
+ var dtstart = new Date(info.event._instance.range.start);
+ var dtend = new Date(info.event._instance.range.end);
- eventClick: function(event, jsEvent, view) {
+ if(event.extendedProps.plink) {
+ if(! $('#l2s').length)
+ $('#id_title_wrapper').prepend('<span id="l2s" class="float-right"></span>');
- if(event.id == new_event_id) {
+ $('#l2s').html('<a href="' + event.extendedProps.plink[0] + '" target="_blank"><i class="fa fa-external-link"></i> ' + event.extendedProps.plink[1] + '</a>');
+ }
+ else {
+ $('#l2s').remove();
+ }
+
+ if(event.publicId == new_event_id) {
+ $('#calendar_select').trigger('change');
+ $('#event_submit').show();
+ event_id = 0;
$(window).scrollTop(0);
$('.section-content-tools-wrapper, #event_form_wrapper').show();
$('#recurrence_warning').hide();
$('#id_title').focus().val('');
+ $('#id_title').attr('disabled', false);
+ $('#id_dtstart').attr('disabled', false);
+ $('#id_dtend').attr('disabled', false);
+ $('#id_description').attr('disabled', false);
+ $('#id_location').attr('disabled', false);
+
return false;
}
- if($('main').hasClass('fullscreen') && view.type !== 'month' && event.rw)
- $('#calendar').fullCalendar('option', 'height', 'auto');
-
- if(new_event.length && event.rw) {
- $('#calendar').fullCalendar( 'removeEventSource', new_event);
+ if(new_event.id && event.extendedProps.rw) {
+ var event_poi = calendar.getEventById(new_event.id);
+ event_poi.remove();
+ new_event = {};
}
+
+ var calendar_id = ((event.extendedProps.calendar_id.constructor === Array) ? event.extendedProps.calendar_id[0] + ':' + event.extendedProps.calendar_id[1] : event.extendedProps.calendar_id);
- if(!event.recurrent && event.rw) {
- var start_clone = moment(event.start);
- var noend_allday = start_clone.add(1, 'day').format('YYYY-MM-DD');
-
+ if(!event.extendedProps.recurrent) {
$(window).scrollTop(0);
$('.section-content-tools-wrapper, #event_form_wrapper').show();
$('#recurrence_warning').hide();
- $('#id_title').focus();
-
- $('#event_uri').val(event.uri);
+ event_uri = event.extendedProps.uri;
$('#id_title').val(event.title);
- $('#calendar_select').val(event.calendar_id[0] + ':' + event.calendar_id[1]).attr('disabled', true);
- $('#id_dtstart').val(event.start.format());
- $('#id_dtend').val(event.end ? event.end.format() : event.start.hasTime() ? '' : noend_allday);
- $('#id_description').val(event.description);
- $('#id_location').val(event.location);
- $('#event_submit').val('update_event').html('Update');
- $('#event_delete').show();
+ $('#calendar_select').val(calendar_id).attr('disabled', true).trigger('change');
+ $('#id_categories').tagsinput('add', event.extendedProps.categories);
+ $('#id_dtstart').val(dtstart.toUTCString());
+ $('#id_dtend').val(dtend.toUTCString());
+ $('#id_description').val(event.extendedProps.description);
+ $('#id_location').val(event.extendedProps.location);
+ $('#event_submit').val('update_event').html('{{$update}}');
+ $('#dbtn-acl').addClass('d-none');
+ event_id = event.extendedProps.item ? event.extendedProps.item.id : 0;
+ event_xchan = event.extendedProps.item ? event.extendedProps.item.event_xchan : '';
+
+ contact_allow = event.extendedProps.contact_allow || [];
+ group_allow = event.extendedProps.group_allow || [];
+ contact_deny = event.extendedProps.contact_deny || [];
+ group_deny = event.extendedProps.group_deny || [];
+
+ if(event.extendedProps.rw) {
+ $('#event_delete').show();
+ $('#event_submit').show();
+ $('#id_title').focus();
+ $('#id_title').attr('disabled', false);
+ $('#id_dtstart').attr('disabled', false);
+ $('#id_dtend').attr('disabled', false);
+ $('#id_description').attr('disabled', false);
+ $('#id_location').attr('disabled', false);
+
+ if(calendar_id === 'channel_calendar' && !event.ui.startEditable) {
+ $('#event_submit').hide();
+ }
+ }
+ else {
+ $('#event_submit').hide();
+ $('#event_delete').hide();
+ $('#id_title').attr('disabled', true);
+ $('#id_dtstart').attr('disabled', true);
+ $('#id_dtend').attr('disabled', true);
+ $('#id_description').attr('disabled', true);
+ $('#id_location').attr('disabled', true);
+ }
}
- else if(event.recurrent && event.rw) {
+ else if(event.extendedProps.recurrent && event.extendedProps.rw) {
$('.section-content-tools-wrapper, #recurrence_warning').show();
$('#event_form_wrapper').hide();
- $('#event_uri').val(event.uri);
- $('#calendar_select').val(event.calendar_id[0] + ':' + event.calendar_id[1]).attr('disabled', true);
+ event_uri = event.extendedProps.uri;
+ $('#calendar_select').val(calendar_id).attr('disabled', true).trigger('change');
}
},
+
+ eventResize: function(info) {
- eventResize: function(event, delta, revertFunc) {
-
+ 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(event.start.format());
- $('#id_dtend').val(event.end.format());
-
- $.post( 'cdav/calendar', {
- 'update': 'resize',
- 'id[]': event.calendar_id,
- 'uri': event.uri,
- 'dtstart': event.start ? event.start.format() : '',
- 'dtend': event.end ? event.end.format() : ''
- })
- .fail(function() {
- revertFunc();
- });
+ $('#id_dtstart').val(dtstart.toUTCString());
+ $('#id_dtend').val(dtend.toUTCString());
+
+ event_id = event.extendedProps.item ? event.extendedProps.item.id : 0;
+ event_xchan = event.extendedProps.item ? event.extendedProps.item.event_xchan : '';
+
+ if(event.extendedProps.calendar_id === 'channel_calendar') {
+ $.post( 'channel_calendar', {
+ 'event_id': event_id,
+ 'event_hash': event_uri,
+ 'xchan': event_xchan,
+ 'type': 'event',
+ 'preview': 0,
+ 'summary': event.title,
+ 'dtstart': dtstart.toUTCString(),
+ 'dtend': dtend.toUTCString(),
+ 'adjust': event.extendedProps.item.adjust,
+ 'categories': event.extendedProps.categories,
+ 'desc': event.extendedProps.description,
+ 'location': event.extendedProps.location,
+ })
+ .fail(function() {
+ info.revert();
+ });
+ }
+ else {
+ $.post( 'cdav/calendar', {
+ 'update': 'resize',
+ 'id[]': event.extendedProps.calendar_id,
+ 'uri': event.extendedProps.uri,
+ 'dtstart': dtstart ? dtstart.toUTCString() : '',
+ 'dtend': dtend ? dtend.toUTCString() : ''
+ })
+ .fail(function() {
+ info.revert();
+ });
+ }
},
+
+ eventDrop: function(info) {
- eventDrop: function(event, delta, revertFunc) {
-
- var start_clone = moment(event.start);
- var noend_allday = start_clone.add(1, 'day').format('YYYY-MM-DD');
-
+ 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(event.start.format());
- $('#id_dtend').val(event.end ? event.end.format() : event.start.hasTime() ? '' : noend_allday);
-
- $.post( 'cdav/calendar', {
- 'update': 'drop',
- 'id[]': event.calendar_id,
- 'uri': event.uri,
- 'dtstart': event.start ? event.start.format() : '',
- 'dtend': event.end ? event.end.format() : event.start.hasTime() ? '' : noend_allday
- })
- .fail(function() {
- revertFunc();
- });
+ $('#id_dtstart').val(dtstart.toUTCString());
+ $('#id_dtend').val(dtend.toUTCString());
+
+ event_id = event.extendedProps.item ? event.extendedProps.item.id : 0;
+ event_xchan = event.extendedProps.item ? event.extendedProps.item.event_xchan : '';
+
+ if(event.extendedProps.calendar_id === 'channel_calendar') {
+ $.post( 'channel_calendar', {
+ 'event_id': event_id,
+ 'event_hash': event_uri,
+ 'xchan': event_xchan,
+ 'type': 'event',
+ 'preview': 0,
+ 'summary': event.title,
+ 'dtstart': dtstart.toUTCString(),
+ 'dtend': dtend.toUTCString(),
+ 'adjust': event.extendedProps.item.adjust,
+ 'categories': event.extendedProps.categories,
+ 'desc': event.extendedProps.description,
+ 'location': event.extendedProps.location,
+ })
+ .fail(function() {
+ info.revert();
+ });
+ }
+ else {
+ $.post( 'cdav/calendar', {
+ 'update': 'drop',
+ 'id[]': event.extendedProps.calendar_id,
+ 'uri': event.extendedProps.uri,
+ 'dtstart': dtstart ? dtstart.toUTCString() : '',
+ 'dtend': dtend ? dtend.toUTCString() : ''
+ })
+ .fail(function() {
+ info.revert();
+ });
+ }
},
loading: function(isLoading, view) {
@@ -136,111 +278,205 @@ $(document).ready(function() {
$('#today-btn > i').show();
}
}
+
+ });
+
+ calendar.render();
+
+ $('#title').text(calendar.view.title);
+ $('#view_selector').html(views[calendar.view.type]);
+
+ $('#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);
});
- // echo the title
- var view = $('#calendar').fullCalendar('getView');
-
- $('#title').text(view.title);
-
- $('#view_selector').html(views[view.name]);
-
+ $('#calendar_select').on('change', function() {
+ if(this.value === 'channel_calendar')
+ $('#dbtn-acl, #id_categories_wrapper').removeClass('d-none');
+ else
+ $('#dbtn-acl, #id_categories_wrapper').addClass('d-none');
+ });
+
$('.color-edit').colorpicker({ input: '.color-edit-input' });
- $(document).on('click','#fullscreen-btn', on_fullscreen);
- $(document).on('click','#inline-btn', on_inline);
-
+ $(document).on('click','#fullscreen-btn', updateSize);
+ $(document).on('click','#inline-btn', updateSize);
$(document).on('click','#event_submit', on_submit);
$(document).on('click','#event_more', on_more);
$(document).on('click','#event_cancel, #event_cancel_recurrent', reset_form);
$(document).on('click','#event_delete, #event_delete_recurrent', on_delete);
-});
+ if(resource !== null) {
+ $('.section-content-tools-wrapper, #event_form_wrapper').show();
-function changeView(action, viewName) {
- $('#calendar').fullCalendar(action, viewName);
- var view = $('#calendar').fullCalendar('getView');
+ $('#id_title_wrapper').prepend('<span id="l2s" class="float-right"></span>');
+ $('#l2s').html('<a href="' + resource.plink[0] + '" target="_blank"><i class="fa fa-external-link"></i> ' + resource.plink[1] + '</a>');
+
+ event_id = resource.id;
+ event_uri = resource.event_hash;
+ event_xchan = resource.event_xchan;
+
+ $('#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_categories').tagsinput('add', '{{$categories}}'),
+ $('#id_description').val(resource.description);
+ $('#id_location').val(resource.location);
- if($('main').hasClass('fullscreen'))
- if(view.name !== 'month')
- $('.section-content-tools-wrapper').css('display') === 'none' ? on_fullscreen() : on_inline() ;
+ if(event_xchan !== '{{$channel_hash}}')
+ $('#event_submit').hide();
else
- on_fullscreen();
- else
- on_inline();
+ $('#event_submit').html('{{$update}}');
+ }
+});
+
- $('#title').text(view.title);
- $('#view_selector').html(views[view.name]);
+function changeView(action, viewName) {
+ calendar.changeView(viewName);
+ $('#title').text(calendar.view.title);
+ $('#view_selector').html(views[calendar.view.type]);
+ return;
}
function add_remove_json_source(source, color, editable, status) {
+ var id, parts = [];
+
+ if(source == '/channel_calendar/json')
+ id = 'channel_calendar'
+
+ if(! id) {
+ parts = source.split('/');
+ id = parts[4];
+ }
+
+ var eventSource = calendar.getEventSourceById(id);
+ var selector = '#calendar-btn-' + id;
if(status === undefined)
status = 'fa-calendar-check-o';
if(status === 'drop') {
+ eventSource.remove();
reset_form();
- $('#calendar').fullCalendar( 'removeEventSource', source );
return;
}
- var parts = source.split('/');
- var id = parts[4];
-
- var selector = '#calendar-btn-' + id;
-
if($(selector).hasClass('fa-calendar-o')) {
- $('#calendar').fullCalendar( 'addEventSource', { url: source, color: color, editable: editable });
+ calendar.addEventSource({ id: id, url: source, color: color, editable: editable });
$(selector).removeClass('fa-calendar-o');
$(selector).addClass(status);
$.get('/cdav/calendar/switch/' + id + '/1');
}
else {
- $('#calendar').fullCalendar( 'removeEventSource', source );
+ eventSource.remove();
$(selector).removeClass(status);
$(selector).addClass('fa-calendar-o');
$.get('/cdav/calendar/switch/' + id + '/0');
}
}
-function on_fullscreen() {
- var view = $('#calendar').fullCalendar('getView');
- if(($('.section-content-tools-wrapper').css('display') === 'none') || ($('.section-content-tools-wrapper').css('display') !== 'none' && view.type === 'month'))
- $('#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
-}
-
-function on_inline() {
- var view = $('#calendar').fullCalendar('getView');
- ((view.type === 'month') ? $('#calendar').fullCalendar('option', 'height', '') : $('#calendar').fullCalendar('option', 'height', 'auto'));
+function updateSize() {
+ calendar.updateSize();
}
function on_submit() {
- $.post( 'cdav/calendar', {
- 'submit': $('#event_submit').val(),
- 'target': $('#calendar_select').val(),
- 'uri': $('#event_uri').val(),
- 'title': $('#id_title').val(),
- 'dtstart': $('#id_dtstart').val(),
- 'dtend': $('#id_dtend').val(),
- 'description': $('#id_description').val(),
- 'location': $('#id_location').val()
- })
- .done(function() {
- $('#calendar').fullCalendar( 'refetchEventSources', [ {{$sources}} ] );
- reset_form();
- });
+ if($('#calendar_select').val() === 'channel_calendar') {
+ if(new_event_id) {
+ $("input[name='contact_allow[]']").each(function() {
+ contact_allow.push($(this).val());
+ });
+ $("input[name='group_allow[]']").each(function() {
+ group_allow.push($(this).val());
+ });
+ $("input[name='contact_deny[]']").each(function() {
+ contact_deny.push($(this).val());
+ });
+ $("input[name='group_deny[]']").each(function() {
+ group_deny.push($(this).val());
+ });
+ }
+
+ $.post( 'channel_calendar', {
+ 'event_id': event_id,
+ 'event_hash': event_uri,
+ 'xchan': event_xchan,
+ 'type': 'event',
+ 'preview': 0,
+ 'summary': $('#id_title').val(),
+ 'dtstart': $('#id_dtstart').val(),
+ 'dtend': $('#id_dtend').val(),
+ 'adjust': 0,
+ 'categories': $('#id_categories').val(),
+ 'desc': $('#id_description').val(),
+ 'location': $('#id_location').val(),
+ 'contact_allow[]': contact_allow,
+ 'group_allow[]': group_allow,
+ 'contact_deny[]': contact_deny,
+ 'group_deny[]': group_deny
+
+ })
+ .done(function() {
+ var eventSource = calendar.getEventSourceById('channel_calendar');
+ eventSource.refetch();
+ reset_form();
+
+ });
+
+ }
+ else {
+ $.post( 'cdav/calendar', {
+ 'submit': $('#event_submit').val(),
+ 'target': $('#calendar_select').val(),
+ 'uri': event_uri,
+ 'title': $('#id_title').val(),
+ 'dtstart': $('#id_dtstart').val(),
+ 'dtend': $('#id_dtend').val(),
+ 'description': $('#id_description').val(),
+ 'location': $('#id_location').val()
+ })
+ .done(function() {
+ var parts = $('#calendar_select').val().split(':');
+ var eventSource = calendar.getEventSourceById(parts[0]);
+ eventSource.refetch();
+ reset_form();
+
+ });
+ }
}
function on_delete() {
- $.post( 'cdav/calendar', {
- 'delete': 'delete',
- 'target': $('#calendar_select').val(),
- 'uri': $('#event_uri').val(),
- })
- .done(function() {
- $('#calendar').fullCalendar( 'refetchEventSources', [ {{$sources}} ] );
- reset_form();
- });
+ if($('#calendar_select').val() === 'channel_calendar') {
+ $.get('channel_calendar/drop/' + event_uri, function() {
+ var eventSource = calendar.getEventSourceById('channel_calendar');
+ eventSource.refetch();
+ reset_form();
+ });
+ }
+ else {
+ $.post( 'cdav/calendar', {
+ 'delete': 'delete',
+ 'target': $('#calendar_select').val(),
+ 'uri': event_uri
+ })
+ .done(function() {
+ var parts = $('#calendar_select').val().split(':');
+ var eventSource = calendar.getEventSourceById(parts[0]);
+ eventSource.refetch();
+ reset_form();
+ });
+ }
}
function reset_form() {
@@ -248,19 +484,20 @@ function reset_form() {
$('#event_submit').val('');
$('#calendar_select').val('');
- $('#event_uri').val('');
+ event_uri = '';
$('#id_title').val('');
+ $('#id_categories').tagsinput('removeAll');
$('#id_dtstart').val('');
$('#id_dtend').val('');
- if(new_event.length)
- $('#calendar').fullCalendar( 'removeEventSource', new_event);
-
+ if(new_event.id) {
+ var event_poi = calendar.getEventById(new_event.id);
+ event_poi.remove();
+ new_event = {};
+ }
+
if($('#more_block').hasClass('open'))
on_more();
-
- if($('main').hasClass('fullscreen'))
- on_fullscreen();
}
function on_more() {
@@ -274,6 +511,10 @@ function on_more() {
}
}
+function exportDate() {
+ window.location.href= 'channel_calendar/export';
+}
+
</script>
<div class="generic-content-wrapper">
@@ -282,18 +523,18 @@ function on_more() {
<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', 'month'); return false;">{{$month}}</a></li>
- <a class="dropdown-item" href="#" onclick="changeView('changeView', 'agendaWeek'); return false;">{{$week}}</a></li>
- <a class="dropdown-item" href="#" onclick="changeView('changeView', 'agendaDay'); return false;">{{$day}}</a></li>
+ <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>
<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>
</div>
<div class="btn-group">
- <button class="btn btn-outline-secondary btn-sm" onclick="changeView('prev', false);" title="{{$prev}}"><i class="fa fa-backward"></i></button>
- <button id="today-btn" class="btn btn-outline-secondary btn-sm" onclick="changeView('today', false);" title="{{$today}}"><div id="events-spinner" class="spinner s"></div><i class="fa fa-bullseye" style="display: none; width: 1rem;"></i></button>
- <button class="btn btn-outline-secondary btn-sm" onclick="changeView('next', false);" title="{{$next}}"><i class="fa fa-forward"></i></button>
+ <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>
@@ -313,16 +554,28 @@ function on_more() {
</div>
</div>
<div id="event_form_wrapper" style="display: none">
- <form id="event_form" method="post" action="">
- <input id="event_uri" type="hidden" name="uri" value="">
+ <form id="event_form" method="post" action="" class="acl-form" data-form_id="event_form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
{{include file="field_input.tpl" field=$title}}
<label for="calendar_select">{{$calendar_select_label}}</label>
<select id="calendar_select" name="target" class="form-control form-group">
+ <optgroup label="{{$calendar_optiopns_label.0}}">
+ {{foreach $channel_calendars as $channel_calendar}}
+ <option value="channel_calendar">{{$channel_calendar.displayname}}</option>
+ {{/foreach}}
+ </optgroup>
+ <optgroup label="{{$calendar_optiopns_label.1}}">
{{foreach $writable_calendars as $writable_calendar}}
<option value="{{$writable_calendar.id.0}}:{{$writable_calendar.id.1}}">{{$writable_calendar.displayname}}{{if $writable_calendar.sharer}} ({{$writable_calendar.sharer}}){{/if}}</option>
{{/foreach}}
+ </optgroup>
</select>
<div id="more_block" style="display: none;">
+ {{if $catsenabled}}
+ <div id="id_categories_wrapper" class="form-group">
+ <label id="label_categories" for="id_categories">{{$categories_label}}</label>
+ <input name="categories" id="id_categories" class="form-control" type="text" value="{{$categories}}" data-role="cat-tagsinput" />
+ </div>
+ {{/if}}
{{include file="field_input.tpl" field=$dtstart}}
{{include file="field_input.tpl" field=$dtend}}
{{include file="field_textarea.tpl" field=$description}}
@@ -331,6 +584,7 @@ function on_more() {
<div class="form-group">
<div class="pull-right">
<button id="event_more" type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-caret-down"></i> {{$more}}</button>
+ <button id="dbtn-acl" class="btn btn-outline-secondary btn-sm d-none" type="button" data-toggle="modal" data-target="#aclModal"><i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i></button>
<button id="event_submit" type="button" value="" class="btn btn-primary btn-sm"></button>
</div>
@@ -341,6 +595,7 @@ function on_more() {
<div class="clear"></div>
</div>
</form>
+ {{$acl}}
</div>
</div>
<div class="section-content-wrapper-np">
diff --git a/view/tpl/cdav_widget_calendar.tpl b/view/tpl/cdav_widget_calendar.tpl
index 8d6414ec6..93ff50fd3 100644
--- a/view/tpl/cdav_widget_calendar.tpl
+++ b/view/tpl/cdav_widget_calendar.tpl
@@ -1,3 +1,17 @@
+<div class="widget">
+ <h3>{{$channel_calendars_label}}</h3>
+ {{foreach $channel_calendars as $channel_calendar}}
+ <div id="calendar-{{$channel_calendar.calendarid}}">
+ <div class="ml-3{{if !$channel_calendar@last}} form-group{{/if}}">
+ <i id="calendar-btn-{{$channel_calendar.calendarid}}" class="fa {{if $channel_calendar.switch}}fa-calendar-check-o{{else}}fa-calendar-o{{/if}} generic-icons fakelink" onclick="add_remove_json_source('{{$channel_calendar.json_source}}', '{{$channel_calendar.color}}', {{$channel_calendar.editable}})" style="color: {{$channel_calendar.color}};"></i>{{$channel_calendar.displayname}}
+ <div class="float-right">
+ <a href="#" onclick="exportDate(); return false;"><i id="download-icon" class="fa fa-cloud-download fakelink generic-icons-right"></i></a>
+ </div>
+ </div>
+ </div>
+ {{/foreach}}
+</div>
+
{{if $my_calendars}}
<div class="widget">
<h3>{{$my_calendars_label}}</h3>
@@ -48,7 +62,9 @@
<label for="edit-form-{{$calendar.calendarid}}">{{$edit_label}}</label>
<div id="edit-form-{{$calendar.calendarid}}" class="input-group form-group">
<input id="create-{{$calendar.calendarid}}" name="{DAV:}displayname" type="text" value="{{$calendar.displayname}}" class="form-control">
- <span class="input-group-addon"><i></i></span>
+ <div class="input-group-append">
+ <div class="input-group-addon p-3"></div>
+ </div>
</div>
<div class="form-group">
<button type="submit" name="edit" value="edit" class="btn btn-primary btn-sm">{{$edit}}</button>
@@ -85,10 +101,12 @@
<div id="create-calendar" class="sub-menu-wrapper">
<div class="sub-menu">
<form method="post" action="" class="colorpicker-component color-edit">
- <input id="color" name="color" type="hidden" value="#3a87ad" class="color-edit-input">
+ <input id="color" name="color" type="hidden" value="#ff8f00" class="color-edit-input">
<div id="create-form" class="input-group form-group">
<input id="create" name="{DAV:}displayname" type="text" placeholder="{{$create_placeholder}}" class="form-control">
- <span class="input-group-addon"><i></i></span>
+ <div class="input-group-append">
+ <div class="input-group-addon p-3"></div>
+ </div>
</div>
<div class="form-group">
<button type="submit" name="create" value="create" class="btn btn-primary btn-sm">{{$create}}</button>
@@ -105,6 +123,9 @@
<div class="form-group">
<select id="import" name="target" class="form-control">
<option value="">{{$import_placeholder}}</option>
+ <optgroup label="{{$tools_options_label.0}}">
+ <option value="{{$channel_calendar.calendarid}}">{{$channel_calendar.displayname}}</option>
+ <optgroup label="{{$tools_options_label.1}}">
{{foreach $writable_calendars as $writable_calendar}}
<option value="{{$writable_calendar.id.0}}:{{$writable_calendar.id.1}}">{{$writable_calendar.displayname}}</option>
{{/foreach}}
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index 51178a9ba..90347d274 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -68,7 +68,7 @@
<td class="cloud-index-tool"><a href="#" title="{{$delete}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete/json', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a></td>
{{else}}
- <td></td><td></td><td></td>{{if $is_admin}}<td class="cloud-index-tool"><a href="#" title="{{$admin_delete}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete/json', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>{{else}}<td>{{/if}}</td>
+ <td></td><td></td><td></td>{{if $is_admin || $item.is_creator}}<td class="cloud-index-tool"><a href="#" title="{{if $is_admin}}{{$admin_delete}}{{else}}{{$delete}}{{/if}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete/json', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>{{else}}<td>{{/if}}</td>
{{/if}}
<td>{{*{{$item.type}}*}}</td>
<td class="d-none d-md-table-cell">{{$item.sizeFormatted}}</td>
diff --git a/view/tpl/connection_template.tpl b/view/tpl/connection_template.tpl
index 4543a69d0..a40406d5d 100755
--- a/view/tpl/connection_template.tpl
+++ b/view/tpl/connection_template.tpl
@@ -43,7 +43,7 @@
{{/if}}
{{if $contact.network}}
<div class="contact-info-element">
- <span class="contact-info-label">{{$contact.network_label}}:</span> {{$contact.network}} - <a href="{{$contact.recentlink}}">{{$contact.recent_label}}</a>
+ <span class="contact-info-label">{{$contact.network_label}}:</span> {{$contact.network}} - <a href="{{$contact.recentlink}}" rel="nofollow noopener">{{$contact.recent_label}}</a>
</div>
{{/if}}
</div>
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 7dddf9c01..54f1af69d 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -1,20 +1,20 @@
{{if $item.comment_firstcollapsed}}
-<div class="hide-comments-outer fakelink" onclick="showHideComments({{$item.id}});">
+<div id="hide-comments-outer-{{$item.parent}}" class="hide-comments-outer fakelink" onclick="showHideComments({{$item.id}});">
<span id="hide-comments-{{$item.id}}" class="hide-comments">{{$item.hide_text}}</span>&nbsp;<span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span>
</div>
<div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
{{/if}}
<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper h-entry {{else}} u-comment h-cite {{/if}} item_{{$item.submid}}">
<a name="item_{{$item.id}}" ></a>
- <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="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" id="wall-photo-item-{{$item.id}}">
+ <div class="wall-photo-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}">
{{$item.photo}}
</div>
{{/if}}
{{if $item.event}}
- <div class="wall-event-item" id="wall-event-item-{{$item.id}}">
+ <div class="wall-event-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-event-item-{{$item.id}}">
{{$item.event}}
</div>
{{/if}}
@@ -26,8 +26,11 @@
<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="wall-item-info " id="wall-item-info-{{$item.id}}" >
+ <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}}" >
+ {{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">&nbsp;&nbsp;&nbsp;</i></a>
+ {{/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" />
{{if $item.thread_author_menu}}
@@ -36,7 +39,6 @@
{{foreach $item.thread_author_menu as $mitem}}
<a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a>
{{/foreach}}
-
</div>
{{/if}}
</div>
@@ -102,6 +104,11 @@
<i class="fa fa-thumbs-o-down{{if $item.my_responses.dislike}} ivoted{{/if}}" ></i>
</button>
{{/if}}
+ {{if $item.reply_to}}
+ <button type="button" title="{{$item.reply_to.0}}" class="btn btn-outline-secondary btn-sm" onclick="doreply({{$item.parent}}, {{$item.id}}, '{{$item.author_id}}', '{{$item.reply_to.2}} {{$item.name}}'); return false;">
+ <i class="fa fa-reply" ></i>
+ </button>
+ {{/if}}
{{if $item.isevent}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-attend-menu-{{$item.id}}" title="{{$item.attend_title}}">
@@ -146,6 +153,9 @@
{{if $item.share}}
<a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a>
{{/if}}
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a>
+ {{/if}}
{{if $item.plink}}
<a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a>
{{/if}}
diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl
index c6da3d8a4..63e74b159 100755
--- a/view/tpl/conv_list.tpl
+++ b/view/tpl/conv_list.tpl
@@ -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" id="wall-photo-item-{{$item.id}}">
+ <div class="wall-photo-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}">
{{$item.photo}}
</div>
{{/if}}
{{if $item.event}}
- <div class="wall-event-item" id="wall-event-item-{{$item.id}}">
+ <div class="wall-event-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" 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}} wall-item-head-new rounded-top{{/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="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>
@@ -139,6 +139,9 @@
{{if $item.share}}
<a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a>
{{/if}}
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a>
+ {{/if}}
{{if $item.plink}}
<a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a>
{{/if}}
diff --git a/view/tpl/cover_photo.tpl b/view/tpl/cover_photo.tpl
index 5a5bf2286..a1c4a922d 100755
--- a/view/tpl/cover_photo.tpl
+++ b/view/tpl/cover_photo.tpl
@@ -102,7 +102,8 @@
<br />
<br />
<div id="profile-photo-submit-wrapper">
- <input type="submit" name="submit" id="profile-photo-submit" value="{{$submit}}">
+ <button type="submit" class="btn btn-outline-primary" name="submit" id="profile-photo-submit">{{$submit}}</button>
+ <button type="submit" class="btn btn-outline-danger" name="remove" id="profile-photo-remove">{{$remove}}</button>
</div>
</div>
diff --git a/view/tpl/dreport.tpl b/view/tpl/dreport.tpl
index 1f5915609..89188891d 100644
--- a/view/tpl/dreport.tpl
+++ b/view/tpl/dreport.tpl
@@ -3,11 +3,11 @@
{{if $table == 'item'}}
<div class="dropdown pull-right">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{$options}}">
- <i class="fa fa-sort-desc"></i>
+ <i class="fa fa-cog"></i>
</button>
- <ul class="dropdown-menu">
- <li><a href="dreport/push/{{$mid}}">{{$push}}</a></li>
- </ul>
+ <div class="dropdown-menu">
+ <a href="dreport/push/{{$safe_mid}}" class="dropdown-item">{{$push}}</a>
+ </div>
</div>
{{/if}}
<h2>{{$title}}</h2>
diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl
index 2f440e826..0e6f7523c 100755
--- a/view/tpl/event_head.tpl
+++ b/view/tpl/event_head.tpl
@@ -1,7 +1,7 @@
-<link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar/fullcalendar.css' />
+<link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar.old/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 language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar.old/fullcalendar.min.js"></script>
+<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar.old/locale-all.js"></script>
<script>
function showEvent(eventid) {
diff --git a/view/tpl/failed_updates.tpl b/view/tpl/failed_updates.tpl
index f53f1f478..598171b87 100755
--- a/view/tpl/failed_updates.tpl
+++ b/view/tpl/failed_updates.tpl
@@ -9,6 +9,7 @@
<h4>{{$f}}</h4>
<ul>
<li><a href="{{$base}}/admin/dbsync/mark/{{$f}}">{{$mark}}</a></li>
+<li><a href="{{$base}}/admin/dbsync/verify/{{$f}}">{{$verify}}</a></li>
<li><a href="{{$base}}/admin/dbsync/{{$f}}">{{$apply}}</a></li>
</ul>
diff --git a/view/tpl/group_edit.tpl b/view/tpl/group_edit.tpl
index 88f037abe..60038701e 100755
--- a/view/tpl/group_edit.tpl
+++ b/view/tpl/group_edit.tpl
@@ -13,6 +13,7 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token_edit}}'>
{{include file="field_input.tpl" field=$gname}}
{{include file="field_checkbox.tpl" field=$public}}
+ {{$pgrp_extras}}
<a href="group/drop/{{$gid}}?t={{$form_security_token_drop}}" onclick="return confirmDelete();" class="btn btn-sm btn-danger">
{{$delete}}
</a>
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index 2670ba9e7..7b1f4ee05 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -198,16 +198,24 @@ var activeCommentText = '';
})
}
-
function jotShare(id,post_type) {
+ $('#like-rotator-' + id).show();
+ $.get('{{$baseurl}}/share/' + id, function(data) {
+ $('#like-rotator-' + id).hide();
+ updateInit();
+ });
+ }
+
+ function jotEmbed(id,post_type) {
if(post_type == 6) {
window.location.href = 'rpost?f=&post_id='+id;
}
else {
+
if ($('#jot-popup').length != 0) $('#jot-popup').show();
$('#like-rotator-' + id).show();
- $.get('{{$baseurl}}/share/' + id, function(data) {
+ $.get('{{$baseurl}}/embed/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
@@ -219,7 +227,7 @@ var activeCommentText = '';
}
function linkdropper(event) {
- var linkFound = event.dataTransfer.types.contains("text/uri-list");
+ var linkFound = ((event.dataTransfer.types.indexOf("text/uri-list") > -1) ? true : false);
if(linkFound) {
event.preventDefault();
var editwin = '#' + event.target.id;
@@ -256,7 +264,7 @@ var activeCommentText = '';
commentwin = ((editwin.indexOf('comment') >= 0) ? true : false);
if(commentwin) {
var commentid = editwin.substring(editwin.lastIndexOf('-') + 1);
- commentOpen(document.getElementById(event.target.id),commentid);
+ $("#comment-edit-text-" + commentid).addClass("expanded");
}
}
@@ -346,7 +354,7 @@ var activeCommentText = '';
}
function itemAddToCal(id) {
- $.get('{{$baseurl}}/events/add/' + id);
+ $.get('{{$baseurl}}/channel_calendar/add/' + id);
if(timer) clearTimeout(timer);
timer = setTimeout(updateInit,1000);
}
@@ -419,7 +427,9 @@ var activeCommentText = '';
var imageparent = document.getElementById($(image).parent()[0].id);
$(imageparent).toggleClass('embed-photo-selected-photo');
var href = $(imageparent).attr('href');
- $.post("embedphotos/photolink", {href: href},
+ $.post(
+ "embedphotos/photolink",
+ {href: href},
function(ddata) {
if (ddata['status']) {
addeditortext(ddata['photolink']);
@@ -429,10 +439,8 @@ var activeCommentText = '';
}
return false;
},
- 'json');
- $('#embedPhotoModalBodyAlbumDialog').html('');
- $('#embedPhotoModalBodyAlbumDialog').off('click');
- $('#embedPhotoModal').modal('hide');
+ 'json'
+ );
}
});
$('#embedPhotoModalBodyAlbumListDialog').addClass('d-none');
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index 4eae33d13..b4616db6d 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -137,8 +137,11 @@
<i id="profile-nocomment" class="fa fa-comments jot-icons"></i>
</button>
{{/if}}
+ {{if $custommoretoolsbuttons}}
+ {{$custommoretoolsbuttons}}
+ {{/if}}
</div>
- {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting}}
+ {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting || $custommoretoolsdropdown}}
<div class="btn-group d-lg-none">
<button type="button" id="more-tools" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i id="more-tools-icon" class="fa fa-cog jot-icons"></i>
@@ -176,6 +179,8 @@
{{if $feature_nocomment}}
<a class="dropdown-item" href="#" onclick="toggleNoComment(); return false;"><i id="profile-nocomment-sub" class="fa fa-comments"></i>&nbsp;{{$nocommenttitlesub}}</a>
{{/if}}
+ <hr />
+ {{$custommoretoolsdropdown}}
</div>
</div>
{{/if}}
@@ -186,6 +191,11 @@
</div>
</div>
<div id="profile-jot-submit-right" class="btn-group float-right">
+ {{foreach $customsubmitright as $csr}}
+ <button class="btn btn-outline-secondary btn-sm" {{$csr.buttonparams}} title="{{$csr.preview}}">
+ {{$csr.buttoncontent}}
+ </button>
+ {{/foreach}}
{{if $preview}}
<button class="btn btn-outline-secondary btn-sm" onclick="preview_post();return false;" title="{{$preview}}">
<i class="fa fa-eye jot-icons" ></i>
@@ -292,7 +302,7 @@
{{if $embedPhotos}}
<div class="modal" id="embedPhotoModal" tabindex="-1" role="dialog" aria-labelledby="embedPhotoLabel" aria-hidden="true">
- <div class="modal-dialog">
+ <div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" id="embedPhotoModalLabel">{{$embedPhotosModalTitle}}</h3>
diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl
index f7425ba98..0a9cf9519 100755
--- a/view/tpl/js_strings.tpl
+++ b/view/tpl/js_strings.tpl
@@ -33,6 +33,7 @@
'name_empty' : "{{$name_empty}}",
'name_ok1' : "{{$name_ok1}}",
'name_ok2' : "{{$name_ok2}}",
+ 'to_reply' : "{{$to_reply}}",
'plural_func' : "{{$plural_func}}",
diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl
index f43d82301..bc7f80906 100644
--- a/view/tpl/notifications_widget.tpl
+++ b/view/tpl/notifications_widget.tpl
@@ -24,7 +24,7 @@
});
window.onpopstate = function(e) {
- if(e.state !== null)
+ if(e.state !== null && e.state.b64mid !== bParam_mid)
getData(e.state.b64mid, '');
};
});
@@ -105,8 +105,9 @@
$("#nav-{{$notification.type}}-menu .notification").each(function(i, el){
var cn = $(el).data('contact_name').toString().toLowerCase();
+ var ca = $(el).data('contact_addr').toString().toLowerCase();
- if(cn.indexOf(val) === -1)
+ if(cn.indexOf(val) === -1 && ca.indexOf(val) === -1)
$(this).addClass('d-none');
else
$(this).removeClass('d-none');
@@ -134,18 +135,18 @@
{{$no_notifications}}<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
</div>
<div id="nav-notifications-template" rel="template">
- <a class="list-group-item clearfix notification {5}" href="{0}" title="{2}" data-b64mid="{6}" data-notify_id="{7}" data-thread_top="{8}" data-contact_name="{2}">
+ <a class="list-group-item clearfix notification {6}" href="{0}" title="{3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}">
<img class="menu-img-3" data-src="{1}">
<span class="contactname">{2}</span>
- <span class="dropdown-sub-text">{3}<br>{4}</span>
+ <span class="dropdown-sub-text">{4}<br>{5}</span>
</a>
</div>
<div id="nav-notifications-forums-template" rel="template">
- <a class="list-group-item clearfix notification notification-forum" href="{0}" title="{3}" data-b64mid="{6}" data-notify_id="{7}" data-thread_top="{8}" data-contact_name="{2}">
- <span class="float-right badge badge-{{$notification.severity}}">{9}</span>
+ <a class="list-group-item clearfix notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}">
+ <span class="float-right badge badge-{{$notification.severity}}">{10}</span>
<img class="menu-img-1" data-src="{1}">
<span class="">{2}</span>
- <i class="fa fa-{10} text-muted"></i>
+ <i class="fa fa-{11} text-muted"></i>
</a>
</div>
<div id="notifications" class="navbar-nav">
diff --git a/view/tpl/peoplefind.tpl b/view/tpl/peoplefind.tpl
index 206be694e..bbcc0b85b 100755
--- a/view/tpl/peoplefind.tpl
+++ b/view/tpl/peoplefind.tpl
@@ -4,7 +4,7 @@
<div class="input-group form-group">
<input class="form-control" type="text" name="search" title="{{$hint}}{{if $advanced_search}}{{$advanced_hint}}{{/if}}" placeholder="{{$desc}}" />
<div class="input-group-append">
- <button class="btn btn-outline-secondary" type="submit" name="submit"><i class="fa fa-fw fa-search"></i></button>
+ <button class="btn btn-sm btn-outline-secondary" type="submit" name="submit"><i class="fa fa-fw fa-search"></i></button>
</div>
</div>
</form>
diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl
index 105cf0ac8..6d566cab9 100755
--- a/view/tpl/photo_view.tpl
+++ b/view/tpl/photo_view.tpl
@@ -99,7 +99,7 @@
<div id="photo-edit-end" class="clear"></div>
</div>
<div id="photo-view-wrapper">
- <div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" onclick="$.colorbox({href: '{{$photo.href}}'}); return false;"><img style="width: 100%;" src="{{$photo.src}}"></a></div>
+ <div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" onclick="{{$onclick}}"><img style="width: 100%;" src="{{$photo.src}}"></a></div>
<div id="photo-photo-end" class="clear"></div>
{{if $tags}}
<div class="photo-item-tools-left" id="in-this-photo">
diff --git a/view/tpl/privacy_groups.tpl b/view/tpl/privacy_groups.tpl
index b4e27ef2c..327a15aee 100644
--- a/view/tpl/privacy_groups.tpl
+++ b/view/tpl/privacy_groups.tpl
@@ -8,6 +8,7 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{include file="field_input.tpl" field=$gname}}
{{include file="field_checkbox.tpl" field=$public}}
+ {{$pgrp_extras}}
<button type="submit" name="submit" class="btn btn-sm btn-primary float-right">{{$submit}}</button>
</form>
</div>
diff --git a/view/tpl/profile_photo.tpl b/view/tpl/profile_photo.tpl
index 819502df5..61d8f4254 100755
--- a/view/tpl/profile_photo.tpl
+++ b/view/tpl/profile_photo.tpl
@@ -124,15 +124,16 @@
{{/if}}
<div id="profile-photo-submit-wrapper">
- <input type="submit" name="submit" id="profile-photo-submit" value="{{$submit}}">
+ <button type="submit" class="btn btn-outline-primary" name="submit" id="profile-photo-submit">{{$submit}}</button>
+ <button type="submit" class="btn btn-outline-danger" name="remove" id="profile-photo-remove">{{$remove}}</button>
</div>
</div>
</form>
<br />
<div id="profile-photo-link-select-wrapper">
- <button id="embed-photo-wrapper" class="btn btn-default btn-primary" title="{{$embedPhotos}}" onclick="initializeEmbedPhotoDialog();return false;">
- <i id="embed-photo" class="fa fa-file-image-o"></i> {{$select}}
+ <button id="embed-photo-wrapper" class="btn btn-default btn-primary" title="{{$embedPhotos}}" onclick="initializeEmbedPhotoDialog();return false;">
+ <i id="embed-photo" class="fa fa-file-image-o"></i> {{$select}}
</button>
</div>
</div>
diff --git a/view/tpl/register.tpl b/view/tpl/register.tpl
index 33ca46ba1..1054c7567 100755
--- a/view/tpl/register.tpl
+++ b/view/tpl/register.tpl
@@ -4,6 +4,7 @@
</div>
<div class="section-content-wrapper">
<form action="register" method="post" id="register-form">
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{if $reg_is}}
<div class="section-content-warning-wrapper">
<div id="register-desc" class="descriptive-paragraph">{{$reg_is}}</div>
diff --git a/view/tpl/remote_friends_common.tpl b/view/tpl/remote_friends_common.tpl
index efc0ab49a..6ef3a7dde 100755
--- a/view/tpl/remote_friends_common.tpl
+++ b/view/tpl/remote_friends_common.tpl
@@ -7,10 +7,9 @@
<div class="contact-block-content">
{{foreach $items as $item}}
<div class="contact-block-div">
- <a class="contact-block-link mpfriend" href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"><img class="contact-block-img mpfriend" src="{{$item.xchan_photo_s}}"alt="{{$item.xchan_name}}" title="{{$item.xchan_name}} [{{$item.xchan_addr}}]" /></a>
+ <a class="contact-block-link mpfriend" href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"><img class="contact-block-img mpfriend" src="{{$item.xchan_photo_s}}" alt="{{$item.xchan_name}}" title="{{$item.xchan_name}} [{{$item.xchan_addr}}]" /></a>
</div>
{{/foreach}}
</div>
{{/if}}
</div>
-
diff --git a/view/tpl/searchbox.tpl b/view/tpl/searchbox.tpl
index 2fcf3e374..0ff526847 100644
--- a/view/tpl/searchbox.tpl
+++ b/view/tpl/searchbox.tpl
@@ -3,9 +3,9 @@
<div id="{{$id}}" class="input-group">
<input class="form-control" type="text" name="search" id="search-text" value="{{$s}}" onclick="this.submit();" />
<div class="input-group-append">
- <button type="submit" name="submit" class="btn btn-outline-secondary" id="search-submit" value="{{$search_label}}"><i class="fa fa-search"></i></button>
+ <button type="submit" name="submit" class="btn btn-sm btn-outline-secondary" id="search-submit" value="{{$search_label}}"><i class="fa fa-search"></i></button>
{{if $savedsearch}}
- <button type="submit" name="searchsave" class="btn btn-outline-secondary" id="search-save" value="{{$save_label}}"><i class="fa fa-floppy-o"></i></button>
+ <button type="submit" name="searchsave" class="btn btn-sm btn-outline-secondary" id="search-save" value="{{$save_label}}"><i class="fa fa-floppy-o"></i></button>
{{/if}}
</div>
</div>
diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl
index 4a4db03eb..8556d8bad 100644
--- a/view/tpl/wiki.tpl
+++ b/view/tpl/wiki.tpl
@@ -68,7 +68,7 @@
<div class="input-group">
<input class="form-control" name="{{$commitMsg.0}}" id="id_{{$commitMsg.0}}" type="text" value="{{$commitMsg.2}}"{{if $commitMsg.5}} {{$commitMsg.5}}{{/if}}>
<div class="input-group-append">
- <button id="save-page" type="button" class="btn btn-primary disabled">Save</button>
+ <button id="save-page" type="button" class="btn btn-sm btn-primary disabled">Save</button>
</div>
</div>
</div>