diff options
Diffstat (limited to 'view')
-rw-r--r-- | view/css/bootstrap-red.css | 27 | ||||
-rw-r--r-- | view/js/acl.js | 74 | ||||
-rw-r--r-- | view/js/autocomplete.js | 2 | ||||
-rw-r--r-- | view/js/main.js | 84 | ||||
-rw-r--r-- | view/theme/redbasic/css/style.css | 2 | ||||
-rwxr-xr-x | view/tpl/acl_selector.tpl | 12 | ||||
-rwxr-xr-x | view/tpl/connection_template.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/contact_template.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/conv_item.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/conv_list.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/direntry.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/jot.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/micropro_img.tpl | 2 | ||||
-rw-r--r-- | view/tpl/notifications_widget.tpl | 18 | ||||
-rwxr-xr-x | view/tpl/photo_top.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/search_item.tpl | 2 |
16 files changed, 156 insertions, 81 deletions
diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css index 984a5b4f9..122bb5904 100644 --- a/view/css/bootstrap-red.css +++ b/view/css/bootstrap-red.css @@ -11,29 +11,6 @@ nav .dropdown-menu { min-width: 16rem; } -@media screen and (min-width: 992px) { - nav .badge { - top: 0px; - left: 0px; - line-height: 0.75; - } -} - -@media screen and (max-width: 992px) { - .navbar { - padding: .5rem 7px; - } - - nav .badge { - top: 0.5rem; - left: 1.5rem; - } -} - -.widget .badge { - font-size: 100%; -} - .nav-item.nav-item-hack { height: 2.3rem; } @@ -77,10 +54,6 @@ nav .dropdown-menu { } /* nav overrides end */ -.list-group-item:hover { - text-decoration: none; -} - label { font-weight: bold; } diff --git a/view/js/acl.js b/view/js/acl.js index 9415113dd..4597184ea 100644 --- a/view/js/acl.js +++ b/view/js/acl.js @@ -12,8 +12,13 @@ function ACL(backend_url) { that.deny_cid = []; that.deny_gid = []; - that.group_uids = []; - that.group_ids = []; + that.group_uids = {}; + that.group_ids = {}; + that.contact_uids = {}; + that.contact_ids = {}; + + that.bang = ''; + that.selected_id = ''; that.info = $("#acl-info"); @@ -78,6 +83,8 @@ ACL.prototype.get_form_data = function(event) { that.deny_cid = (that.form_id.data('deny_cid') || []); that.deny_gid = (that.form_id.data('deny_gid') || []); + that.bang = (that.form_id.data('bang') || ''); + that.update_view(); that.on_submit(); @@ -147,15 +154,31 @@ ACL.prototype.on_showall = function(event) { }; ACL.prototype.on_showgroup = function(event) { - var xid = that.acl_select.children(":selected").val(); + + var xid = that.acl_select.val(); + var cid = ''; + + if(xid.length && xid.substr(0,1) == '^') { + cid = xid.slice(1); + xid = ''; + } // preventDefault() isn't called here as we want state changes from update_view() to be applied to the radiobutton event.stopPropagation(); - that.allow_cid = []; - that.allow_gid = [xid]; - that.deny_cid = []; - that.deny_gid = []; + if (xid.length) { + that.allow_cid = []; + that.allow_gid = [xid]; + that.deny_cid = []; + that.deny_gid = []; + + } + else { + that.allow_cid = [cid]; + that.allow_gid = []; + that.deny_cid = []; + that.deny_gid = []; + } that.update_view(); that.on_submit(); @@ -307,8 +330,26 @@ ACL.prototype.update_view = function(value) { $('#dbtn-jotnets').hide(); $('.profile-jot-net input').attr('disabled', 'disabled'); } + else if (that.allow_gid.length === 0 && that.allow_cid.length === 1 && that.deny_gid.length === 0 && that.deny_cid.length === 0 && value !== 'custom') { + + if(that.bang && that.bang !== that.allow_cid[0]) { + that.update_view('custom'); + return; + } + + that.list.hide(); //hide acl-list + that.info.hide(); //show acl-info + that.selected_id = that.contact_ids[that.allow_cid[0]]; + that.update_select('\\^' + that.selected_id); + + /* jot acl */ + $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock'); + $('#dbtn-jotnets').hide(); + $('.profile-jot-net input').attr('disabled', 'disabled'); + } else { + that.list.show(); //show acl-list datasrc2src('#acl-list-content .list-group-item img[data-src]'); that.info.hide(); //hide acl-info @@ -382,6 +423,21 @@ ACL.prototype.update_view = function(value) { bthide.removeClass("btn-outline-danger").addClass("btn-danger"); $(this).removeClass("groupshow"); } + $(that.contact_uids[id]).each(function(i, v) { + if(uclass == "grouphide") + // we need attr selection here because the id can include an @ (diaspora/friendica xchans) + $('[id="g' + v + '"]').removeClass("groupshow"); + if(uclass !== "") { + var cls = $('[id="g' + v + '"]').attr('class'); + if( cls === undefined) + return true; + var hiding = cls.indexOf('grouphide'); + if(hiding == -1) + $('[id="g' + v + '"]').addClass(uclass); + } + }); + break; + } }); } @@ -415,9 +471,13 @@ ACL.prototype.populate = function(data) { that.group_uids[this.xid] = this.uids; that.group_ids[this.xid] = this.id; } + else { + that.contact_ids[this.xid] = this.id; + } if (this.self === 'abook-self') { that.self[0] = this.xid; } + that.list_content.append(html); }); }; diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js index 660b5f190..27011b4d4 100644 --- a/view/js/autocomplete.js +++ b/view/js/autocomplete.js @@ -40,7 +40,7 @@ function contact_format(item) { var desc = ((item.label) ? item.nick + ' ' + item.label : item.nick); if(typeof desc === 'undefined') desc = ''; if(desc) desc = ' ('+desc+')'; - return "<div class='{0} dropdown-item dropdown-notification clearfix' title='{4}'><img class='menu-img-2' src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{4}</span></div>".format(item.taggable, item.photo, item.name, desc, typeof(item.link) !== 'undefined' ? item.link : desc.replace('(','').replace(')','')); + return "<div class='{0} dropdown-item dropdown-notification clearfix' title='{4}'><img class='menu-img-2' src='{1}' loading='lazy'><span class='font-weight-bold contactname'>{2}</span><span class='dropdown-sub-text'>{4}</span></div>".format(item.taggable, item.photo, item.name, desc, typeof(item.link) !== 'undefined' ? item.link : desc.replace('(','').replace(')','')); } else return "<div>" + item.text + "</div>"; diff --git a/view/js/main.js b/view/js/main.js index 29f7ed7ca..fb7bcb52f 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -30,6 +30,7 @@ var sse_bs_active = false; var sse_offset = 0; var sse_type; var sse_partial_result = false; +var sse_rmids = []; var page_cache = {}; @@ -176,8 +177,7 @@ $(document).ready(function() { $('.notification-content').on('scroll', function() { if(this.scrollTop > this.scrollHeight - this.clientHeight - (this.scrollHeight/7)) { - if(!sse_bs_active) - sse_bs_notifications(sse_type, false, true); + sse_bs_notifications(sse_type, false, true); } }); @@ -545,7 +545,7 @@ function markRead(notifType) { function markItemRead(itemId) { $.get('ping?f=&markItemRead='+itemId); - $('.unseen-wall-indicator-'+itemId).hide(); + $('.unseen-wall-indicator-'+itemId).remove(); } function contextualHelp() { @@ -710,6 +710,9 @@ function updateConvItems(mode,data) { var nmids = $(this).data('b64mids'); nmids.forEach(function(nmid, index) { + + sse_rmids.push(nmid); + if($('.notification[data-b64mid=\'' + nmid + '\']').length) { $('.notification[data-b64mid=\'' + nmid + '\']').each(function() { var n = this.parentElement.id.split('-'); @@ -743,12 +746,6 @@ function updateConvItems(mode,data) { }); - // We are actually dealing with counts in sse_updateNotifications() - // for notifications which are already visible. For the case where - // unseen items were loaded but their notifications are not yet visible - // we need to bootstrap counts here to stay in sync with the DB after - // the first page load. - if(followUpPageLoad) sse_bs_counts(); else @@ -1766,14 +1763,31 @@ function sse_bs_init() { } function sse_bs_counts() { - $.get('/sse_bs',function(obj) { + + + if(sse_bs_active) + return; + + sse_bs_active = true; + + $.ajax({ + type: 'post', + url: '/sse_bs', + data: { sse_rmids } + }).done( function(obj) { console.log(obj); + sse_bs_active = false; + sse_rmids = []; sse_handleNotifications(obj, true, false); }); } function sse_bs_notifications(e, replace, followup) { - sse_bs_active = true; + + if(sse_bs_active) + return; + + var manual = false; if(typeof replace === 'undefined') @@ -1805,17 +1819,23 @@ function sse_bs_notifications(e, replace, followup) { var cn_val = (($('#cn-' + sse_type + '-input').length && sse_partial_result) ? $('#cn-' + sse_type + '-input').val().toString().toLowerCase() : ''); - $.get('/sse_bs/' + sse_type + '/' + sse_offset + '?nquery=' + encodeURIComponent(cn_val), function(obj) { + $("#nav-" + sse_type + "-loading").show(); + + sse_bs_active = true; + + $.ajax({ + type: 'post', + url: '/sse_bs/' + sse_type + '/' + sse_offset, + nquery: encodeURIComponent(cn_val), + data: { sse_rmids } + }).done(function(obj) { console.log('sse: bootstraping ' + sse_type); console.log(obj); - sse_bs_active = false; + sse_rmids = []; + $("#nav-" + sse_type + "-loading").hide(); sse_offset = obj[sse_type].offset; - if(sse_offset < 0) - $("#nav-" + sse_type + "-loading").hide(); - sse_handleNotifications(obj, replace, followup); - }); } else @@ -1836,14 +1856,21 @@ function sse_handleNotifications(obj, replace, followup) { var all_notifications = primary_notifications.concat(secondary_notifications); all_notifications.forEach(function(type, index) { - if(obj[type] && obj[type].count) { + if(typeof obj[type] === typeof undefined) + return true; + + if(obj[type].count) { $('.' + type + '-button').fadeIn(); if(replace || followup) $('.' + type + '-update').html(Number(obj[type].count)); else $('.' + type + '-update').html(Number(obj[type].count) + Number($('.' + type + '-update').html())); } - if(obj[type] && obj[type].notifications.length) + else { + $('.' + type + '-update').html('0'); + $('.' + type + '-button').fadeOut(); + } + if(obj[type].notifications.length) sse_handleNotificationsItems(type, obj[type].notifications, replace, followup); }); @@ -1864,10 +1891,18 @@ function sse_handleNotifications(obj, replace, followup) { }); } + // load more notifications if visible notifications count becomes low + if(sse_type && sse_offset != -1 && $('#nav-' + sse_type + '-menu').children().length <= 20) { + sse_offset = 0; + sse_bs_notifications(sse_type, false, true); + } + + } function sse_handleNotificationsItems(notifyType, data, replace, followup) { - var notifications_tpl = ((notifyType == 'forums') ? decodeURIComponent($("#nav-notifications-forums-template[rel=template]").html()) : decodeURIComponent($("#nav-notifications-template[rel=template]").html())); + + var notifications_tpl = ((notifyType == 'forums') ? decodeURIComponent($("#nav-notifications-forums-template[rel=template]").html().replace('data-src', 'src')) : decodeURIComponent($("#nav-notifications-template[rel=template]").html().replace('data-src', 'src'))); var notify_menu = $("#nav-" + notifyType + "-menu"); var notify_loading = $("#nav-" + notifyType + "-loading"); var notify_count = $("." + notifyType + "-update"); @@ -1878,6 +1913,11 @@ function sse_handleNotificationsItems(notifyType, data, replace, followup) { } $(data).each(function() { + + // do not add a notification if it is already present + if($('#nav-' + notifyType + '-menu .notification[data-b64mid=\'' + this.b64mid + '\']').length) + return true; + html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.addr,this.message,this.when,this.hclass,this.b64mid,this.notify_id,this.thread_top,this.unseen,this.private_forum, encodeURIComponent(this.mids), this.body); notify_menu.append(html); }); @@ -1920,7 +1960,7 @@ function sse_updateNotifications(type, mid) { if(type === 'notify' && (mid !== bParam_mid || sse_type !== 'notify')) return true; - +/* var count = Number($('.' + type + '-update').html()); count--; @@ -1934,6 +1974,7 @@ function sse_updateNotifications(type, mid) { else { $('.' + type + '-update').html(count); } +*/ $('#nav-' + type + '-menu .notification[data-b64mid=\'' + mid + '\']').fadeOut(function() { this.remove(); @@ -1977,4 +2018,5 @@ function sse_setNotificationsStatus() { $('#no_notifications').show(); $('#notifications').hide(); } + } diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 08a6e9d19..545e610b5 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -799,8 +799,6 @@ div.jGrowl div.jGrowl-notification { } .contactname { - font-weight: bold; - color: $font_colour; display: block; overflow: hidden; text-overflow: ellipsis; diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl index 3d05cb455..c58a345e5 100755 --- a/view/tpl/acl_selector.tpl +++ b/view/tpl/acl_selector.tpl @@ -15,12 +15,14 @@ {{if $aclModalDesc}} <div id="acl-dialog-description" class="section-content-info-wrapper">{{$aclModalDesc}}</div> {{/if}} - <label for="acl-select">{{$select_label}}</label> + <label for="acl-select">{{if $aclModalDesc}}<i class="fa fa-send-o"></i> {{/if}}{{$select_label}}</label> <select id="acl-select" name="optionsRadios" class="form-control form-group"> <option id="acl-showall" value="public" {{$public_selected}}>{{$showall}}</option> - {{$groups}} <option id="acl-onlyme" value="onlyme" {{$justme_selected}}>{{$onlyme}}</option> - <option id="acl-custom" value="custom" {{$custom_selected}}>{{$custom}}</option> + {{$groups}} + <optgroup label = "{{$custom_label}}">; + <option id="acl-custom" value="custom" {{$custom_selected}}>{{$custom}}</option> + </optgroup>; </select> {{if $showallOrigin}} @@ -39,8 +41,8 @@ <div class="list-group-item acl-list-item" rel="acl-template" style="display:none"> <div class="acl-item-header clearfix"> - <img class="menu-img-3" data-src="{0}"> - <span class="contactname">{1}</span> + <img class="menu-img-3" data-src="{0}" loading="lazy" /> + <span class="font-weight-bold contactname">{1}</span> <span class="dropdown-sub-text">{6}</span> </div> <button class="acl-button-hide btn btn-sm btn-outline-danger"><i class="fa fa-times"></i> {{$hide}}</button> diff --git a/view/tpl/connection_template.tpl b/view/tpl/connection_template.tpl index f9b46b41e..86a230c7f 100755 --- a/view/tpl/connection_template.tpl +++ b/view/tpl/connection_template.tpl @@ -22,7 +22,7 @@ <div class="section-content-tools-wrapper"> <div class="contact-photo-wrapper" > <a href="{{$contact.url}}" title="{{$contact.img_hover}}" > - <img class="directory-photo-img {{if $contact.classes}}{{$contact.classes}}{{/if}}" src="{{$contact.thumb}}" alt="{{$contact.name}}" /> + <img class="directory-photo-img {{if $contact.classes}}{{$contact.classes}}{{/if}}" src="{{$contact.thumb}}" alt="{{$contact.name}}" loading="lazy" /> </a> {{include "connstatus.tpl" perminfo=$contact.perminfo}} </div> diff --git a/view/tpl/contact_template.tpl b/view/tpl/contact_template.tpl index 73fa5adde..7c8c02ea2 100755 --- a/view/tpl/contact_template.tpl +++ b/view/tpl/contact_template.tpl @@ -1,6 +1,6 @@ <div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" > <div class="contact-entry-photo-wrapper" > - <a href="{{$contact.link}}" title="{{$contact.img_hover}}" ><img class="contact-block-img" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a> + <a href="{{$contact.link}}" title="{{$contact.img_hover}}" ><img class="contact-block-img" src="{{$contact.thumb}}" alt="{{$contact.name}}" loading="lazy" /></a> {{if $contact.perminfo}}{{include "connstatus.tpl" perminfo=$contact.perminfo}}{{/if}} </div> <div class="contact-entry-photo-end" ></div> diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index f48e88006..d7eaefe7e 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -35,7 +35,7 @@ {{/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" /> + <img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" loading="lazy" data-toggle="dropdown" /> {{if $item.thread_author_menu}} <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-toggle="dropdown"></i> <div class="dropdown-menu"> diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl index 21c38829a..113cf2324 100755 --- a/view/tpl/conv_list.tpl +++ b/view/tpl/conv_list.tpl @@ -29,7 +29,7 @@ <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> + <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" loading="lazy" /></a> {{if $item.thread_author_menu}} <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-toggle="dropdown"></i> <div class="dropdown-menu"> diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl index 175d813c5..015f1102d 100755 --- a/view/tpl/direntry.tpl +++ b/view/tpl/direntry.tpl @@ -23,7 +23,7 @@ <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.hash}}" > <div class="contact-photo" id="directory-photo-{{$entry.hash}}" > <a href="{{$entry.profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$entry.hash}}" > - <img class="directory-photo-img" src="{{$entry.photo}}" alt="{{$entry.alttext}}" title="{{$entry.alttext}}" /> + <img class="directory-photo-img" src="{{$entry.photo}}" alt="{{$entry.alttext}}" title="{{$entry.alttext}}" loading="lazy"/> </a> </div> </div> diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl index 4e496b511..36543ccfa 100755 --- a/view/tpl/jot.tpl +++ b/view/tpl/jot.tpl @@ -1,6 +1,6 @@ <input id="invisible-wall-file-upload" type="file" name="files" style="visibility:hidden;position:absolute;top:-50;left:-50;width:0;height:0;" multiple> <input id="invisible-comment-upload" type="file" name="files" style="visibility:hidden;position:absolute;top:-50;left:-50;width:0;height:0;" multiple> -<form id="profile-jot-form" action="{{$action}}" method="post" class="acl-form" data-form_id="profile-jot-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'> +<form id="profile-jot-form" action="{{$action}}" method="post" class="acl-form" data-form_id="profile-jot-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}' data-bang='{{$bang}}'> {{$mimeselect}} {{$layoutselect}} {{if $id_select}} diff --git a/view/tpl/micropro_img.tpl b/view/tpl/micropro_img.tpl index 98f33d119..5bfca615f 100755 --- a/view/tpl/micropro_img.tpl +++ b/view/tpl/micropro_img.tpl @@ -1 +1 @@ -<div class="contact-block-div{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}}><img class="contact-block-img{{if $class}} {{$class}}{{/if}}" src="{{$photo}}" title="{{$title}}" alt="" />{{if $perminfo}}{{include "connstatus.tpl"}}{{/if}}</a></div> +<div class="contact-block-div{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}}><img class="contact-block-img{{if $class}} {{$class}}{{/if}}" src="{{$photo}}" title="{{$title}}" alt="" loading="lazy" />{{if $perminfo}}{{include "connstatus.tpl"}}{{/if}}</a></div> diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl index abfc922f2..1a24ca7c4 100644 --- a/view/tpl/notifications_widget.tpl +++ b/view/tpl/notifications_widget.tpl @@ -142,17 +142,17 @@ {{$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 {6}" href="{0}" title="{13}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-when="{5}"> - <img class="menu-img-3" src="{1}"> - <span class="contactname">{2} <span class="font-weight-normal text-muted">{3}</span></span> - <span class="dropdown-sub-text">{4}</span><br> - <span class="dropdown-sub-text notifications-autotime" title="{5}">{5}</span> + <a class="list-group-item text-decoration-none text-darkclearfix notification {6}" href="{0}" title="{13}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-when="{5}"> + <img class="menu-img-3" data-src="{1}" loading="lazy"> + <div class="contactname"><span class="text-dark font-weight-bold">{2}</span> <span class="text-muted">{3}</span></div> + <span class="text-muted">{4}</span><br> + <span class="text-muted notifications-autotime" title="{5}">{5}</span> </a> </div> <div id="nav-notifications-forums-template" rel="template"> - <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}" data-b64mids='{12}'> + <a class="list-group-item text-decoration-none 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}" data-b64mids='{12}'> <span class="float-right badge badge-secondary">{10}</span> - <img class="menu-img-1" src="{1}"> + <img class="menu-img-1" data-src="{1}" loading="lazy"> <span class="">{2}</span> <i class="fa fa-{11} text-muted"></i> </a> @@ -160,13 +160,13 @@ <div id="notifications" class="border border-bottom-0 rounded navbar-nav collapse"> {{foreach $notifications as $notification}} <div class="rounded list-group list-group-flush collapse {{$notification.type}}-button"> - <a id="notification-link-{{$notification.type}}" class="collapsed list-group-item notification-link" href="#" title="{{$notification.title}}" data-target="#nav-{{$notification.type}}-sub" data-toggle="collapse" data-sse_type="{{$notification.type}}"> + <a id="notification-link-{{$notification.type}}" class="collapsed list-group-item text-decoration-none notification-link" href="#" title="{{$notification.title}}" data-target="#nav-{{$notification.type}}-sub" data-toggle="collapse" data-sse_type="{{$notification.type}}"> <i class="fa fa-fw fa-{{$notification.icon}}"></i> {{$notification.label}} <span class="float-right badge badge-{{$notification.severity}} {{$notification.type}}-update"></span> </a> <div id="nav-{{$notification.type}}-sub" class="list-group list-group-flush border border-left-0 border-top-0 border-right-0 collapse notification-content" data-parent="#notifications" data-sse_type="{{$notification.type}}"> {{if $notification.viewall}} - <a class="list-group-item text-dark" id="nav-{{$notification.type}}-see-all" href="{{$notification.viewall.url}}"> + <a class="list-group-item text-decoration-none text-dark" id="nav-{{$notification.type}}-see-all" href="{{$notification.viewall.url}}"> <i class="fa fa-fw fa-external-link"></i> {{$notification.viewall.label}} </a> {{/if}} diff --git a/view/tpl/photo_top.tpl b/view/tpl/photo_top.tpl index a86aa7f80..16862a8d6 100755 --- a/view/tpl/photo_top.tpl +++ b/view/tpl/photo_top.tpl @@ -1,4 +1,4 @@ <a href="{{$photo.link}}" id="photo-top-photo-link-{{$photo.id}}" title="{{$photo.title}}"> - <img src="{{$photo.src}}" alt="{{if $photo.album.name}}{{$photo.album.name}}{{elseif $photo.desc}}{{$photo.desc}}{{elseif $photo.alt}}{{$photo.alt}}{{else}}{{$photo.unknown}}{{/if}}" title="{{$photo.title}}" id="photo-top-photo-{{$photo.id}}" /> + <img src="{{$photo.src}}" alt="{{if $photo.album.name}}{{$photo.album.name}}{{elseif $photo.desc}}{{$photo.desc}}{{elseif $photo.alt}}{{$photo.alt}}{{else}}{{$photo.unknown}}{{/if}}" title="{{$photo.title}}" id="photo-top-photo-{{$photo.id}}" loading="lazy" /> </a> diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl index 40341a840..3e986ea21 100755 --- a/view/tpl/search_item.tpl +++ b/view/tpl/search_item.tpl @@ -23,7 +23,7 @@ <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" /> + <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" loading="lazy" /> {{if $item.thread_author_menu}} <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-toggle="dropdown"></i> <div class="dropdown-menu"> |