diff options
Diffstat (limited to 'view/tpl')
-rw-r--r-- | view/tpl/cdav_calendar.tpl | 376 | ||||
-rw-r--r-- | view/tpl/cdav_widget_calendar.tpl | 27 | ||||
-rwxr-xr-x | view/tpl/connection_template.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/conv_item.tpl | 17 | ||||
-rwxr-xr-x | view/tpl/event_head.tpl | 1 | ||||
-rwxr-xr-x | view/tpl/event_item_header.tpl | 6 | ||||
-rwxr-xr-x | view/tpl/failed_updates.tpl | 1 | ||||
-rwxr-xr-x | view/tpl/jot-header.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/js_strings.tpl | 1 | ||||
-rwxr-xr-x | view/tpl/peoplefind.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/profile_photo.tpl | 5 | ||||
-rwxr-xr-x | view/tpl/register.tpl | 1 | ||||
-rw-r--r-- | view/tpl/searchbox.tpl | 4 | ||||
-rw-r--r-- | view/tpl/wiki.tpl | 2 |
14 files changed, 361 insertions, 86 deletions
diff --git a/view/tpl/cdav_calendar.tpl b/view/tpl/cdav_calendar.tpl index a577e3120..083c7cea3 100644 --- a/view/tpl/cdav_calendar.tpl +++ b/view/tpl/cdav_calendar.tpl @@ -4,6 +4,21 @@ var new_event = {}; var new_event_id = Math.random().toString(36).substring(7); 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(); + +var allday; + $(document).ready(function() { var calendarEl = document.getElementById('calendar'); calendar = new FullCalendar.Calendar(calendarEl, { @@ -21,13 +36,15 @@ $(document).ready(function() { firstDay: {{$first_day}}, + defaultView: default_view, + defaultDate: default_date, + monthNames: aStr['monthNames'], monthNamesShort: aStr['monthNamesShort'], dayNames: aStr['dayNames'], dayNamesShort: aStr['dayNamesShort'], allDayText: aStr['allday'], - defaultTimedEventDuration: '01:00:00', snapDuration: '00:15:00', dateClick: function(info) { @@ -37,39 +54,67 @@ $(document).ready(function() { new_event = {}; } + allday = info.allDay; + var dtend = new Date(info.date.toUTCString()); - if(info.view.type == 'dayGridMonth') { + if(allday) { 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(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' }; + new_event = { id: new_event_id, title: 'New event', start: $('#id_dtstart').val(), end: $('#id_dtend').val(), allDay: info.allDay, 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); - + + if(event.extendedProps.plink) { + if(! $('#l2s').length) + $('#id_title_wrapper').prepend('<span id="l2s" class="float-right"></span>'); + + $('#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; } @@ -79,18 +124,32 @@ $(document).ready(function() { 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.extendedProps.recurrent) { $(window).scrollTop(0); $('.section-content-tools-wrapper, #event_form_wrapper').show(); $('#recurrence_warning').hide(); - $('#event_uri').val(event.extendedProps.uri); + event_uri = event.extendedProps.uri; $('#id_title').val(event.title); - $('#calendar_select').val(event.extendedProps.calendar_id[0] + ':' + event.extendedProps.calendar_id[1]).attr('disabled', true); + $('#calendar_select').val(calendar_id).attr('disabled', true).trigger('change'); + $('#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_description').val(event.extendedProps.description); $('#id_location').val(event.extendedProps.location); - $('#event_submit').val('update_event').html('Update'); + $('#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(); @@ -100,6 +159,10 @@ $(document).ready(function() { $('#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(); @@ -114,31 +177,59 @@ $(document).ready(function() { else if(event.extendedProps.recurrent && event.extendedProps.rw) { $('.section-content-tools-wrapper, #recurrence_warning').show(); $('#event_form_wrapper').hide(); - $('#event_uri').val(event.extendedProps.uri); - $('#calendar_select').val(event.extendedProps.calendar_id[0] + ':' + event.extendedProps.calendar_id[1]).attr('disabled', true); + event_uri = event.extendedProps.uri; + $('#calendar_select').val(calendar_id).attr('disabled', true).trigger('change'); } }, 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()); - $.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(); - }); + 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, + 'timezone_select': event.extendedProps.timezone, + 'dtstart': dtstart.toUTCString(), + 'dtend': dtend.toUTCString(), + 'adjust': event.allDay ? 0 : 1, + '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, + 'timezone_select': event.extendedProps.timezone, + 'dtstart': dtstart ? dtstart.toUTCString() : '', + 'dtend': dtend ? dtend.toUTCString() : '', + 'allday': event.allDay ? 1 : 0 + }) + .fail(function() { + info.revert(); + }); + } }, eventDrop: function(info) { @@ -150,19 +241,46 @@ $(document).ready(function() { $('#id_title').val(event.title); $('#id_dtstart').val(dtstart.toUTCString()); $('#id_dtend').val(dtend.toUTCString()); - - $.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(); - }); + + 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, + 'timezone_select': event.extendedProps.timezone, + 'dtstart': dtstart.toUTCString(), + 'dtend': dtend.toUTCString(), + 'adjust': event.allDay ? 0 : 1, + '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, + 'timezone_select': event.extendedProps.timezone, + 'dtstart': dtstart ? dtstart.toUTCString() : '', + 'dtend': dtend ? dtend.toUTCString() : '', + 'allday': event.allDay ? 1 : 0 + }) + .fail(function() { + info.revert(); + }); + } }, - + loading: function(isLoading, view) { $('#events-spinner').show(); $('#today-btn > i').hide(); @@ -175,7 +293,7 @@ $(document).ready(function() { }); calendar.render(); - + $('#title').text(calendar.view.title); $('#view_selector').html(views[calendar.view.type]); @@ -193,6 +311,13 @@ $(document).ready(function() { calendar.next(); $('#title').text(calendar.view.title); }); + + $('#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' }); @@ -202,6 +327,31 @@ $(document).ready(function() { $(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(); + + $('#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); + $('#id_timezone_select').val(resource.timezone); + + if(event_xchan !== '{{$channel_hash}}') + $('#event_submit').hide(); + else + $('#event_submit').html('{{$update}}'); + } }); @@ -213,9 +363,16 @@ function changeView(action, viewName) { } function add_remove_json_source(source, color, editable, status) { - var parts = source.split('/'); - var id = parts[4]; - + 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; @@ -247,37 +404,94 @@ function 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() { - var parts = $('#calendar_select').val().split(':'); - var eventSource = calendar.getEventSourceById(parts[0]); - eventSource.refetch(); - 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, + 'timezone_select': $('#id_timezone_select').val(), + 'summary': $('#id_title').val(), + 'dtstart': $('#id_dtstart').val(), + 'dtend': $('#id_dtend').val(), + 'adjust': allday ? 0 : 1, + '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(), + 'timezone_select': $('#id_timezone_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(), + 'allday': allday ? 1 : 0 + }) + .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() { - var parts = $('#calendar_select').val().split(':'); - var eventSource = calendar.getEventSourceById(parts[0]); - eventSource.refetch(); - 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() { @@ -285,8 +499,9 @@ 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(''); @@ -311,6 +526,10 @@ function on_more() { } } +function exportDate() { + window.location.href= 'channel_calendar/export'; +} + </script> <div class="generic-content-wrapper"> @@ -350,16 +569,31 @@ 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> + {{if $timezone_select}} + {{include file="field_select_grouped.tpl" field=$timezone_select}} + {{/if}} <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}} @@ -368,6 +602,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> @@ -378,6 +613,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/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 428529de2..54f1af69d 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -1,12 +1,12 @@ {{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> <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{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}"> @@ -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 && !$item.photo}} 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"> </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}}"> diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl index 0e6f7523c..9d56b7fe4 100755 --- a/view/tpl/event_head.tpl +++ b/view/tpl/event_head.tpl @@ -52,6 +52,7 @@ header: false, eventTextColor: 'white', lang: '{{$lang}}', + timeZone: '{{$timezone}}', firstDay: {{$first_day}}, eventLimit: 3, diff --git a/view/tpl/event_item_header.tpl b/view/tpl/event_item_header.tpl index 6247aaf6f..ed46c304f 100755 --- a/view/tpl/event_item_header.tpl +++ b/view/tpl/event_item_header.tpl @@ -1,6 +1,11 @@ <div class="event-item-title"> <h3><i class="fa fa-calendar"></i> {{$title}}</h3> </div> +{{if $oneday && $allday}} +<span class="dtstart">{{$dtstart_dt}}</span> +{{else if $allday}} +<span class="dtstart">{{$dtstart_dt}}</span> — <span class="dtend">{{$dtend_dt}}</span> +{{else}} <div class="event-item-start"> <span class="event-item-label">{{$dtstart_label}}</span> <span class="dtstart" title="{{$dtstart_title}}">{{$dtstart_dt}}</span> </div> @@ -9,3 +14,4 @@ <span class="event-item-label">{{$dtend_label}}</span> <span class="dtend" title="{{$dtend_title}}">{{$dtend_dt}}</span> </div> {{/if}} +{{/if}} 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/jot-header.tpl b/view/tpl/jot-header.tpl index afaaa62d9..7b1f4ee05 100755 --- a/view/tpl/jot-header.tpl +++ b/view/tpl/jot-header.tpl @@ -354,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); } 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/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/profile_photo.tpl b/view/tpl/profile_photo.tpl index b2190dda3..61d8f4254 100755 --- a/view/tpl/profile_photo.tpl +++ b/view/tpl/profile_photo.tpl @@ -125,14 +125,15 @@ <div id="profile-photo-submit-wrapper"> <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/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> |