aboutsummaryrefslogtreecommitdiffstats
path: root/view
diff options
context:
space:
mode:
Diffstat (limited to 'view')
-rw-r--r--view/css/bootstrap-red.css8
-rw-r--r--view/css/widgets.css1
-rw-r--r--view/js/acl.js12
-rw-r--r--view/js/main.js200
-rw-r--r--view/js/mod_help.js54
-rw-r--r--view/pdl/mod_admin.pdl6
-rw-r--r--view/pdl/mod_home.pdl3
-rw-r--r--view/pdl/mod_import.pdl8
-rw-r--r--view/pdl/mod_login.pdl6
-rw-r--r--view/php/doubleleft.php2
-rw-r--r--view/theme/redbasic/css/style.css54
-rw-r--r--view/theme/redbasic/js/redbasic.js8
-rw-r--r--view/theme/redbasic/php/theme_init.php3
-rw-r--r--view/tpl/abook_edit.tpl58
-rw-r--r--view/tpl/acl_selector.tpl14
-rw-r--r--view/tpl/activity_filter_widget.tpl4
-rw-r--r--view/tpl/admin_accounts.tpl14
-rw-r--r--view/tpl/admin_channels.tpl8
-rw-r--r--view/tpl/admin_plugins.tpl8
-rw-r--r--view/tpl/admin_plugins_details.tpl2
-rw-r--r--view/tpl/admin_profiles.tpl4
-rw-r--r--view/tpl/admin_queue.tpl2
-rw-r--r--view/tpl/app.tpl16
-rw-r--r--view/tpl/app_inline.tpl6
-rw-r--r--view/tpl/app_install.tpl2
-rw-r--r--view/tpl/app_nav.tpl2
-rw-r--r--view/tpl/app_nav_pinned.tpl2
-rw-r--r--view/tpl/app_order.tpl6
-rw-r--r--view/tpl/attach_edit.tpl6
-rw-r--r--view/tpl/blocklist.tpl8
-rw-r--r--view/tpl/build_query.tpl61
-rw-r--r--view/tpl/cal_calendar.tpl10
-rw-r--r--view/tpl/cal_event.tpl2
-rw-r--r--view/tpl/cdav_addressbook.tpl52
-rw-r--r--view/tpl/cdav_calendar.tpl30
-rw-r--r--view/tpl/cdav_widget_addressbook.tpl12
-rw-r--r--view/tpl/cdav_widget_calendar.tpl28
-rw-r--r--view/tpl/channel.tpl10
-rw-r--r--view/tpl/channel_activities.tpl2
-rw-r--r--view/tpl/channel_activities_photos.tpl2
-rw-r--r--view/tpl/channels.tpl2
-rw-r--r--view/tpl/chat.tpl40
-rw-r--r--view/tpl/chatroom_new.tpl2
-rw-r--r--view/tpl/chatrooms.tpl4
-rw-r--r--view/tpl/cloud_actionspanel.tpl4
-rw-r--r--view/tpl/cloud_directory.tpl58
-rw-r--r--view/tpl/cloud_header.tpl8
-rw-r--r--view/tpl/comment_item.tpl18
-rw-r--r--view/tpl/common_pills.tpl8
-rw-r--r--view/tpl/common_tabs.tpl2
-rw-r--r--view/tpl/connection_template.tpl6
-rw-r--r--view/tpl/connections.tpl10
-rw-r--r--view/tpl/connstatus.tpl2
-rw-r--r--view/tpl/contact_edit.tpl14
-rw-r--r--view/tpl/contact_edit_header.tpl2
-rw-r--r--view/tpl/contact_edit_tools.tpl2
-rw-r--r--view/tpl/conv_item.tpl307
-rw-r--r--view/tpl/conv_list.tpl300
-rw-r--r--view/tpl/cover_photo.tpl4
-rw-r--r--view/tpl/defperms.tpl2
-rw-r--r--view/tpl/directory_header.tpl2
-rw-r--r--view/tpl/direntry.tpl4
-rw-r--r--view/tpl/dreport.tpl2
-rw-r--r--view/tpl/edpost_head.tpl2
-rw-r--r--view/tpl/event.tpl6
-rw-r--r--view/tpl/event_form.tpl38
-rw-r--r--view/tpl/event_item_header.tpl2
-rw-r--r--view/tpl/events-js.tpl12
-rw-r--r--view/tpl/events_cal-js.tpl10
-rw-r--r--view/tpl/events_tools_side.tpl4
-rw-r--r--view/tpl/field_acheckbox.tpl8
-rw-r--r--view/tpl/follow.tpl2
-rw-r--r--view/tpl/generic_addon_settings.tpl2
-rw-r--r--view/tpl/group_edit.tpl4
-rw-r--r--view/tpl/group_side.tpl6
-rw-r--r--view/tpl/help.tpl23
-rw-r--r--view/tpl/hq_controls.tpl2
-rw-r--r--view/tpl/install.tpl2
-rw-r--r--view/tpl/install_checks.tpl8
-rw-r--r--view/tpl/install_db.tpl2
-rw-r--r--view/tpl/install_settings.tpl2
-rw-r--r--view/tpl/invite.tpl2
-rw-r--r--view/tpl/item_attach.tpl2
-rw-r--r--view/tpl/item_categories.tpl2
-rw-r--r--view/tpl/item_filer.tpl2
-rw-r--r--view/tpl/jot-header.tpl22
-rw-r--r--view/tpl/jot.tpl66
-rw-r--r--view/tpl/layoutlist.tpl10
-rw-r--r--view/tpl/like_noshare.tpl4
-rw-r--r--view/tpl/locmanage.tpl6
-rw-r--r--view/tpl/menuedit.tpl4
-rw-r--r--view/tpl/menulist.tpl10
-rw-r--r--view/tpl/messages_widget.tpl12
-rw-r--r--view/tpl/mitemedit.tpl4
-rw-r--r--view/tpl/mitemlist.tpl8
-rw-r--r--view/tpl/myapps.tpl2
-rw-r--r--view/tpl/navbar_default.tpl41
-rw-r--r--view/tpl/navbar_tucson.tpl32
-rw-r--r--view/tpl/notifications_widget.tpl70
-rw-r--r--view/tpl/nwiki_page_history.tpl59
-rw-r--r--view/tpl/oauth.tpl4
-rw-r--r--view/tpl/oauth2.tpl4
-rw-r--r--view/tpl/oauth2testvehicle.tpl2
-rw-r--r--view/tpl/page_display.tpl2
-rw-r--r--view/tpl/page_display_empty.tpl2
-rw-r--r--view/tpl/pdledit_gui_item.tpl2
-rw-r--r--view/tpl/peoplefind.tpl2
-rw-r--r--view/tpl/photo_album.tpl6
-rw-r--r--view/tpl/photo_drop.tpl2
-rw-r--r--view/tpl/photo_view.tpl24
-rw-r--r--view/tpl/photos_recent.tpl2
-rw-r--r--view/tpl/photos_upload.tpl4
-rw-r--r--view/tpl/pinned_item.tpl42
-rw-r--r--view/tpl/posted_date_widget.tpl14
-rw-r--r--view/tpl/profile_advanced.tpl12
-rw-r--r--view/tpl/profile_edit.tpl34
-rw-r--r--view/tpl/profile_listing_header.tpl2
-rw-r--r--view/tpl/profile_photo.tpl4
-rw-r--r--view/tpl/profile_tabs.tpl2
-rw-r--r--view/tpl/profile_vcard.tpl14
-rw-r--r--view/tpl/profile_vcard_short.tpl4
-rw-r--r--view/tpl/regate_post.tpl2
-rw-r--r--view/tpl/saved_searches.tpl2
-rw-r--r--view/tpl/search_item.tpl121
-rw-r--r--view/tpl/searchbox.tpl4
-rw-r--r--view/tpl/settings.tpl2
-rw-r--r--view/tpl/settings_account.tpl2
-rw-r--r--view/tpl/settings_privacy.tpl2
-rw-r--r--view/tpl/sharedwithme.tpl6
-rw-r--r--view/tpl/show_thing.tpl4
-rw-r--r--view/tpl/suggest_friends.tpl4
-rw-r--r--view/tpl/thing_edit.tpl2
-rw-r--r--view/tpl/thing_input.tpl2
-rw-r--r--view/tpl/totp.tpl2
-rw-r--r--view/tpl/uexport.tpl12
-rw-r--r--view/tpl/usermenu.tpl2
-rw-r--r--view/tpl/webpage_export_list.tpl2
-rw-r--r--view/tpl/webpage_import.tpl2
-rw-r--r--view/tpl/webpagelist.tpl10
-rw-r--r--view/tpl/website_portation_tools.tpl4
-rw-r--r--view/tpl/xchan_vcard.tpl2
141 files changed, 1074 insertions, 1331 deletions
diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css
index 8e273dfdb..e494dc960 100644
--- a/view/css/bootstrap-red.css
+++ b/view/css/bootstrap-red.css
@@ -32,15 +32,15 @@ input {
min-width: 0;
}
-#navbar-collapse-1 i {
- font-size: 1.0rem;
-}
-
nav .dropdown-menu {
max-height: 70vh;
overflow: auto;
}
+.navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+}
/* offcanvas */
.offcanvas,
diff --git a/view/css/widgets.css b/view/css/widgets.css
index eb629ee96..f722e3f11 100644
--- a/view/css/widgets.css
+++ b/view/css/widgets.css
@@ -281,7 +281,6 @@ a.wikilist {
width: 2.6rem;
height: 2.6rem;
padding: 0;
- font-size: .9rem;
}
.hq_controls_fixed_bottom_center .btn.rounded-circle {
diff --git a/view/js/acl.js b/view/js/acl.js
index ee6cb062f..a96c39090 100644
--- a/view/js/acl.js
+++ b/view/js/acl.js
@@ -300,7 +300,7 @@ ACL.prototype.update_view = function(value) {
that.update_select('public');
/* jot acl */
- $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-lock').addClass('fa-unlock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('bi-lock').addClass('bi-unlock');
$('#jot-perms-icon').removeClass('jot-lock-warn');
$('#dbtn-jotnets').show();
$('.profile-jot-net input').attr('disabled', false);
@@ -314,7 +314,7 @@ ACL.prototype.update_view = function(value) {
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');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('bi-unlock').addClass('bi-lock');
$('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
@@ -326,7 +326,7 @@ ACL.prototype.update_view = function(value) {
that.update_select('onlyme');
/* jot acl */
- $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('bi-unlock').addClass('bi-lock');
$('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
@@ -349,7 +349,7 @@ ACL.prototype.update_view = function(value) {
}
/* jot acl */
- $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('bi-unlock').addClass('bi-lock');
$('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
@@ -366,12 +366,12 @@ ACL.prototype.update_view = function(value) {
/* jot acl */
if(that.allow_gid.length === 0 && that.allow_cid.length === 0 && that.deny_gid.length === 0 && that.deny_cid.length === 0 && value === 'custom') {
- $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-lock').addClass('fa-unlock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('bi-lock').addClass('bi-unlock');
$('#dbtn-jotnets').show();
$('.profile-jot-net input').attr('disabled', false);
}
else {
- $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('bi-unlock').addClass('bi-lock');
$('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
diff --git a/view/js/main.js b/view/js/main.js
index 7eca7408e..dfec9e0f0 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -93,7 +93,7 @@ $(document).ready(function() {
$(document).on('click focus', '.comment-edit-form textarea', function(e) {
if(! this.autocomplete_handled) {
/* autocomplete @nicknames */
- $(this).editor_autocomplete(baseurl+"/acl?f=&n=1");
+ $(this).editor_autocomplete(baseurl+"/acl?n=1");
/* autocomplete bbcode */
$(this).bbco_autocomplete('bbcode');
@@ -114,7 +114,7 @@ $(document).ready(function() {
}
if ( typeof(window.tao.zin) == 'undefined' ) {
tao.zin = { syslc: '', syslcs: {}, htm: '', me: '', debug: '' };
- tao.zin.axim = '<div class="zinpax fa fa-sync fa-spin"> </div>';
+ tao.zin.axim = '<i class="zinpax bi bi-arrow-repeat"></i>';
$('.navbar-app[href*="/lang"]').attr({"aria-expand": "true", "id": "zintog"})
.removeAttr('href').addClass('zinlcx zinlcxp dropdown dropdown-toggle').css('cursor','pointer');
$('.nav-link[href*="/lang"]').addClass('zinlcxmi zinlcx').removeAttr('href').css('cursor','pointer');
@@ -129,9 +129,9 @@ $(document).ready(function() {
tao.zin.re = JSON.parse(re);
tao.zin.syslc = tao.zin.re.lc;
tao.zin.syslcs = tao.zin.re.lcs;
- tao.zin.htm = '<ul class="zinlcs fa-ul">';
+ tao.zin.htm = '<ul class="zinlcs">';
$.each( tao.zin.syslcs, function( k, v ) {
- tao.zin.htm += '<li><a id="zinlc' + k + '" class="zinlc nav-link fakelink">' + k + ' ' + v + '</a></li>';
+ tao.zin.htm += '<li><a id="zinlc' + k + '" class="zinlc fakelink">' + k + ' ' + v + '</a></li>';
});
tao.zin.htm += '</ul>';
$('.zinpax').remove();
@@ -250,25 +250,24 @@ $(document).ready(function() {
});
function getConversationSettings() {
- $.get('settings/conversation/?f=&aj=1',function(data) {
+ $.get('settings/conversation/?aj=1',function(data) {
$('#conversation_settings_body').html(data);
});
}
function postConversationSettings() {
- $.post(
- 'settings/conversation',
- $('#settings_module_ajax_form').serialize() + "&auto_update=" + next_page
- );
-
if(next_page === 1) {
page_load = true;
}
- $('#conversation_settings').modal('hide');
-
- if(timer) clearTimeout(timer);
- timer = setTimeout(updateInit,100);
+ $.post(
+ 'settings/conversation',
+ $('#settings_module_ajax_form').serialize() + "&auto_update=" + next_page
+ ).done(function() {
+ $('#conversation_settings').modal('hide');
+ toast('Conversation features updated', 'info');
+ updateInit();
+ });
return false;
}
@@ -486,7 +485,7 @@ function insertCommentURL(comment, id) {
if(reply && reply.length) {
reply = bin2hex(reply);
$('body').css('cursor', 'wait');
- $.get('linkinfo?f=&binurl=' + reply, function(data) {
+ $.get('linkinfo?binurl=' + reply, function(data) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == comment) {
tmpStr = "";
@@ -515,16 +514,19 @@ function viewsrc(id) {
}
function showHideComments(id) {
- if( $('#collapsed-comments-' + id).is(':visible')) {
+ if($('#collapsed-comments-' + id).is(':visible')) {
$('#collapsed-comments-' + id + ' .autotime').timeago('dispose');
$('#collapsed-comments-' + id).hide();
- $('#hide-comments-' + id).html(aStr.showmore);
+ $('#hide-comments-label-' + id).html(aStr.showmore);
$('#hide-comments-total-' + id).show();
+ $('#hide-comments-icon-' + id).toggleClass('bi-chevron-down bi-chevron-up');
+
} else {
$('#collapsed-comments-' + id + ' .autotime').timeago();
$('#collapsed-comments-' + id).show();
- $('#hide-comments-' + id).html(aStr.showfewer);
+ $('#hide-comments-label-' + id).html(aStr.showfewer);
$('#hide-comments-total-' + id).hide();
+ $('#hide-comments-icon-' + id).toggleClass('bi-chevron-down bi-chevron-up');
}
}
@@ -566,7 +568,7 @@ function closeMenu(theID) {
}
function markRead(notifType) {
- $.get('notifications?f=&markRead='+notifType);
+ $.get('notifications?markRead='+notifType);
$('.' + notifType + '-button').fadeOut(function() {
$("." + notifType + "-update").html('0');
$('#nav-' + notifType + '-menu').html('');
@@ -579,7 +581,7 @@ function markRead(notifType) {
}
function markItemRead(itemId) {
- $.get('notifications?f=&markItemRead='+itemId);
+ $.get('notifications?markItemRead='+itemId);
$('.unseen-wall-indicator-'+itemId).remove();
}
@@ -835,7 +837,7 @@ function scrollToItem() {
var scrolltoid = $('.collapsed-comments').attr('id').substring(19);
$('#collapsed-comments-' + scrolltoid + ' .autotime').timeago();
$('#collapsed-comments-' + scrolltoid).show();
- $('#hide-comments-' + scrolltoid).html(aStr.showfewer);
+ $('#hide-comments-label-' + scrolltoid).html(aStr.showfewer);
$('#hide-comments-total-' + scrolltoid).hide();
}
$('html, body').animate({ scrollTop: $(this).offset().top - $('nav').outerHeight(true) }, 'slow');
@@ -869,8 +871,8 @@ function collapseHeight() {
startOpen: open,
heightMargin: 50,
collapsedHeight: divmore_height,
- moreLink: '<a href="#" class="divgrow-showmore fakelink">' + aStr.divgrowmore + '</a>',
- lessLink: '<a href="#" class="divgrow-showmore fakelink">' + aStr.divgrowless + '</a>',
+ moreLink: '<a href="#" class="divgrow-showmore fakelink"><i class="bi bi-chevron-down align-middle divgrow-showmore-icon"></i>&nbsp;<span class="divgrow-showmore-label align-middle">' + aStr.divgrowmore + '</span></a>',
+ lessLink: '<a href="#" class="divgrow-showmore fakelink"><i class="bi bi-chevron-up align-middle divgrow-showmore-icon"></i>&nbsp;<span class="divgrow-showmore-label align-middle">' + aStr.divgrowless + '</span></a>',
beforeToggle: function(trigger, element, expanded) {
if(expanded) {
if((($(element).offset().top + divmore_height) - $(window).scrollTop()) < 65 ) {
@@ -1008,7 +1010,7 @@ function liveUpdate(notify_id) {
in_progress = false;
liveRecurse ++;
if(liveRecurse < 10) {
- liveUpdate();
+ liveUpdate(notify_id);
}
else {
console.log('Incomplete data. Too many attempts. Giving up.');
@@ -1144,7 +1146,7 @@ function pageUpdate() {
bParam_page = 1;
}
- update_url = baseurl + '/' + decodeURIComponent(page_query) + '/?f=&aj=1&page=' + bParam_page + extra_args ;
+ update_url = baseurl + '/' + decodeURIComponent(page_query) + '?aj=1&page=' + bParam_page + extra_args ;
$("#page-spinner").show();
update_mode = 'append';
@@ -1225,7 +1227,7 @@ function doreply(parent, ident, owner, hint) {
form.find('input[name=parent]').val(ident);
var i = form.find('button[type=submit]');
var btn = i.html().replace(/<[^>]*>/g, '').trim();
- i.html('<i class="fa fa-reply" ></i> ' + btn);
+ i.html('<i class="bi bi-arrow-90deg-left"></i> ' + btn);
var sel = 'wall-item-body-' + ident.toString();
var quote = window.getSelection().toString().trim();
form.find('textarea').val("@{" + owner + "}" + ((($(window.getSelection().anchorNode).closest("#" + sel).attr("id") != sel) || (quote.length === 0))? " " : "\n[quote]" + quote + "[/quote]\n"));
@@ -1257,7 +1259,7 @@ function doscroll(parent, hidden) {
});
$('html, body').animate({scrollTop:(id.offset().top) - 50}, 'slow');
- $('<a href="javascript:doscrollback(' + pos + ');" id="back-to-reply" title="' + aStr['to_reply'] + '"><i class="fa fa-angle-double-down"></i></a>').insertAfter('#wall-item-ago-' + id.attr('id').replace(/\D/g,''));
+ $('<a href="javascript:doscrollback(' + pos + ');" id="back-to-reply" title="' + aStr['to_reply'] + '"><i class="bi bi-chevron-double-down"></i></a>').insertAfter('#wall-item-ago-' + id.attr('id').replace(/\D/g,''));
}
function doscrollback(pos) {
@@ -1282,7 +1284,7 @@ function dopin(id) {
$('.dropdown-item-pinnable').html($('.dropdown-item-pinnable').html().replace(aStr['unpin_item'],aStr['pin_item']));
$('.wall-item-pinned').remove()
if(i.length == 0) {
- $('<span class="wall-item-pinned" title="' + aStr['pinned'] + '" id="wall-item-pinned-' + id + '"><i class="fa fa-thumb-tack">&nbsp;</i></span>').insertAfter('#wall-item-ago-' + id);
+ $('<span class="wall-item-pinned" title="' + aStr['pinned'] + '" id="wall-item-pinned-' + id + '"><i class="bi bi-pin">&nbsp;</i></span>').insertAfter('#wall-item-ago-' + id);
me.html(me.html().replace(aStr['pin_item'],aStr['unpin_item']));
};
})
@@ -1305,7 +1307,7 @@ function dropItem(url, object, b64mid) {
$(object + ', #pinned-wrapper-' + id).remove();
$('body').css('cursor', 'auto');
- toast(aStr.itemdel, 'info')
+ toast(aStr.itemdel, 'info');
//$.jGrowl(aStr.itemdel, { sticky: false, theme: 'info', life: 3000 });
if (typeof b64mid !== typeof undefined) {
@@ -1357,18 +1359,18 @@ function dostar(ident) {
if(data.result == 1) {
$('#starred-' + ident).addClass('starred');
$('#starred-' + ident).removeClass('unstarred');
- $('#starred-' + ident).addClass('fa-star');
- $('#starred-' + ident).removeClass('fa-star-o');
+ $('#starred-' + ident).addClass('bi-star-fill');
+ $('#starred-' + ident).removeClass('bi-star');
$('#star-' + ident).addClass('hidden');
$('#unstar-' + ident).removeClass('hidden');
- var btn_tpl = '<div class="btn-group" id="star-button-' + ident + '"><button type="button" class="btn btn-outline-secondary border-0 btn-sm wall-item-star" onclick="dostar(' + ident + ');"><i class="fa fa-star"></i></button></div>'
- $('#wall-item-tools-left-' + ident).prepend(btn_tpl);
+ var btn_tpl = '<div class="" id="star-button-' + ident + '"><button type="button" class="btn btn-outline-secondary border-0 wall-item-star" onclick="dostar(' + ident + ');"><i class="bi bi-star"></i></button></div>'
+ $('#wall-item-tools-right-' + ident).prepend(btn_tpl);
}
else {
$('#starred-' + ident).addClass('unstarred');
$('#starred-' + ident).removeClass('starred');
- $('#starred-' + ident).addClass('fa-star-o');
- $('#starred-' + ident).removeClass('fa-star');
+ $('#starred-' + ident).addClass('bi-star');
+ $('#starred-' + ident).removeClass('bi-star-fill');
$('#star-' + ident).removeClass('hidden');
$('#unstar-' + ident).addClass('hidden');
$('#star-button-' + ident).remove();
@@ -1553,7 +1555,7 @@ function contactgroupChangeMember(gid, cid) {
$('body').css('cursor', 'wait');
$.get('contactgroup/' + gid + '/' + cid, function(data) {
$('body').css('cursor', 'auto');
- $('#group-' + gid).toggleClass('fa-check-square-o fa-square-o');
+ $('#group-' + gid).toggleClass('bi-check-square bi-square');
});
}
@@ -1622,11 +1624,6 @@ $(window).scroll(function () {
}
});
-function addhtmltext(data) {
- data = h2b(data);
- addeditortext(data);
-}
-
function loadText(textRegion,data) {
var currentText = $(textRegion).val();
$(textRegion).val(currentText + data);
@@ -1639,123 +1636,6 @@ function addeditortext(data) {
}
}
-function h2b(s) {
- var y = s;
- function rep(re, str) {
- y = y.replace(re,str);
- }
-
- rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
- rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");
- rep(/<span style=\"color:(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
- rep(/<font>(.*?)<\/font>/gi,"$1");
- rep(/<img.*?width=\"(.*?)\".*?height=\"(.*?)\".*?src=\"(.*?)\".*?\/>/gi,"[img=$1x$2]$3[/img]");
- rep(/<img.*?height=\"(.*?)\".*?width=\"(.*?)\".*?src=\"(.*?)\".*?\/>/gi,"[img=$2x$1]$3[/img]");
- rep(/<img.*?src=\"(.*?)\".*?height=\"(.*?)\".*?width=\"(.*?)\".*?\/>/gi,"[img=$3x$2]$1[/img]");
- rep(/<img.*?src=\"(.*?)\".*?width=\"(.*?)\".*?height=\"(.*?)\".*?\/>/gi,"[img=$2x$3]$1[/img]");
- rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
-
- rep(/<ul class=\"listbullet\" style=\"list-style-type\: circle\;\">(.*?)<\/ul>/gi,"[list]$1[/list]");
- rep(/<ul class=\"listnone\" style=\"list-style-type\: none\;\">(.*?)<\/ul>/gi,"[list=]$1[/list]");
- rep(/<ul class=\"listdecimal\" style=\"list-style-type\: decimal\;\">(.*?)<\/ul>/gi,"[list=1]$1[/list]");
- rep(/<ul class=\"listlowerroman\" style=\"list-style-type\: lower-roman\;\">(.*?)<\/ul>/gi,"[list=i]$1[/list]");
- rep(/<ul class=\"listupperroman\" style=\"list-style-type\: upper-roman\;\">(.*?)<\/ul>/gi,"[list=I]$1[/list]");
- rep(/<ul class=\"listloweralpha\" style=\"list-style-type\: lower-alpha\;\">(.*?)<\/ul>/gi,"[list=a]$1[/list]");
- rep(/<ul class=\"listupperalpha\" style=\"list-style-type\: upper-alpha\;\">(.*?)<\/ul>/gi,"[list=A]$1[/list]");
- rep(/<li>(.*?)<\/li>/gi,"[li]$1[/li]");
-
- rep(/<code>(.*?)<\/code>/gi,"[code]$1[/code]");
- rep(/<\/(strong|b)>/gi,"[/b]");
- rep(/<(strong|b)>/gi,"[b]");
- rep(/<\/(em|i)>/gi,"[/i]");
- rep(/<(em|i)>/gi,"[i]");
- rep(/<\/u>/gi,"[/u]");
-
- rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
- rep(/<u>/gi,"[u]");
- rep(/<blockquote[^>]*>/gi,"[quote]");
- rep(/<\/blockquote>/gi,"[/quote]");
- rep(/<hr \/>/gi,"[hr]");
- rep(/<br (.*?)\/>/gi,"\n");
- rep(/<br\/>/gi,"\n");
- rep(/<br>/gi,"\n");
- rep(/<p>/gi,"");
- rep(/<\/p>/gi,"\n");
- rep(/&nbsp;/gi," ");
- rep(/&quot;/gi,"\"");
- rep(/&lt;/gi,"<");
- rep(/&gt;/gi,">");
- rep(/&amp;/gi,"&");
-
- return y;
-}
-
-function b2h(s) {
- var y = s;
- function rep(re, str) {
- y = y.replace(re,str);
- }
-
- rep(/\&/gi,"&amp;");
- rep(/\</gi,"&lt;");
- rep(/\>/gi,"&gt;");
- rep(/\"/gi,"&quot;");
-
- rep(/\n/gi,"<br />");
- rep(/\[b\]/gi,"<strong>");
- rep(/\[\/b\]/gi,"</strong>");
- rep(/\[i\]/gi,"<em>");
- rep(/\[\/i\]/gi,"</em>");
- rep(/\[u\]/gi,"<u>");
- rep(/\[\/u\]/gi,"</u>");
- rep(/\[hr\]/gi,"<hr />");
- rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
- rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
- rep(/\[img=(.*?)x(.*?)\](.*?)\[\/img\]/gi,"<img width=\"$1\" height=\"$2\" src=\"$3\" />");
- rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
-
- rep(/\[zrl=([^\]]+)\](.*?)\[\/zrl\]/gi,"<a href=\"$1" + '?f=&zid=' + zid + "\">$2</a>");
- rep(/\[zrl\](.*?)\[\/zrl\]/gi,"<a href=\"$1" + '?f=&zid=' + zid + "\">$1</a>");
- rep(/\[zmg=(.*?)x(.*?)\](.*?)\[\/zmg\]/gi,"<img width=\"$1\" height=\"$2\" src=\"$3" + '?f=&zid=' + zid + "\" />");
- rep(/\[zmg\](.*?)\[\/zmg\]/gi,"<img src=\"$1" + '?f=&zid=' + zid + "\" />");
-
- rep(/\[list\](.*?)\[\/list\]/gi, '<ul class="listbullet" style="list-style-type: circle;">$1</ul>');
- rep(/\[list=\](.*?)\[\/list\]/gi, '<ul class="listnone" style="list-style-type: none;">$1</ul>');
- rep(/\[list=1\](.*?)\[\/list\]/gi, '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>');
- rep(/\[list=i\](.*?)\[\/list\]/gi,'<ul class="listlowerroman" style="list-style-type: lower-roman;">$1</ul>');
- rep(/\[list=I\](.*?)\[\/list\]/gi, '<ul class="listupperroman" style="list-style-type: upper-roman;">$1</ul>');
- rep(/\[list=a\](.*?)\[\/list\]/gi, '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$1</ul>');
- rep(/\[list=A\](.*?)\[\/list\]/gi, '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$1</ul>');
- rep(/\[li\](.*?)\[\/li\]/gi, '<li>$1</li>');
- rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<span style=\"color: $1;\">$2</span>");
- rep(/\[size=(.*?)\](.*?)\[\/size\]/gi,"<span style=\"font-size: $1;\">$2</span>");
- rep(/\[code\](.*?)\[\/code\]/gi,"<code>$1</code>");
- rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<blockquote>$1</blockquote>");
-
- rep(/\[video\](.*?)\[\/video\]/gi,"<a href=\"$1\">$1</a>");
- rep(/\[audio\](.*?)\[\/audio\]/gi,"<a href=\"$1\">$1</a>");
-
- rep(/\[\&amp\;([#a-z0-9]+)\;\]/gi,'&$1;');
-
- rep(/\<(.*?)(src|href)=\"[^hfm](.*?)\>/gi,'<$1$2="">');
-
- return y;
-}
-
-function zid(s) {
- if((! s.length) || (s.indexOf('zid=') != (-1)))
- return s;
-
- if(! zid.length)
- return s;
-
- var has_params = ((s.indexOf('?') == (-1)) ? false : true);
- var achar = ((has_params) ? '&' : '?');
- s = s + achar + 'f=&zid=' + zid;
-
- return s;
-}
-
function makeid(length) {
var result = '';
var characters = 'abcdef0123456789';
@@ -1801,7 +1681,7 @@ function push_notification(title, body, b64mid) {
function toggleAside() {
if ($('main.region_1-on').length) {
- $('#expand-aside-icon').addClass('fa-arrow-circle-right').removeClass('fa-arrow-circle-left');
+ $('#expand-aside-icon').addClass('bi-arrow-right-circle').removeClass('bi-arrow-left-circle');
$('html, body').css({ 'position': '', 'left': '' });
$('main').removeClass('region_1-on');
$('#region_1').addClass('d-none');
@@ -1809,7 +1689,7 @@ function toggleAside() {
$('#overlay').remove();
}
else {
- $('#expand-aside-icon').removeClass('fa-arrow-circle-right').addClass('fa-arrow-circle-left');
+ $('#expand-aside-icon').removeClass('bi-arrow-right-circle').addClass('bi-arrow-left-circle');
$('html, body').css({ 'position': 'sticky', 'left': '0px'});
$('main').addClass('region_1-on');
$('#region_1').removeClass('d-none');
diff --git a/view/js/mod_help.js b/view/js/mod_help.js
index 9c3591498..abd0d1194 100644
--- a/view/js/mod_help.js
+++ b/view/js/mod_help.js
@@ -1,8 +1,8 @@
function docoTocToggle() {
if ($('#doco-top-toc').is(':visible')) {
- $('#doco-toc-toggle').removeClass('fa-cog').addClass('fa-caret-right');
+ $('#doco-toc-toggle').removeClass('bi-gear').addClass('bi-caret-right');
} else {
- $('#doco-toc-toggle').removeClass('fa-caret-right').addClass('fa-caret-down');
+ $('#doco-toc-toggle').removeClass('bi-caret-right').addClass('bi-caret-down');
}
$('#doco-top-toc').toggle();
@@ -69,54 +69,4 @@ $(document).ready(function () {
var newref = p.protocol + '//' + p.hostname + portstr + p.pathname + p.hash.split('?').shift();
location.replace(newref)
}
-
-
- // Determine language translations available from the language selector menu itself
- var langChoices = [];
- $('.lang-selector').find('.lang-choice').each(function (idx, a) {
- langChoices.push($(a).html());
- });
- // Parse the URL and insert the language code for the loaded language, based
- // on the variable "help_language" that is declared in the help.tpl page template
- var path = window.location.pathname.split('/');
- var pathParts = [];
- var pick_me = true;
- for (var i = 0; i < path.length; i++) {
- if(i === 2 && pick_me ) {
- if(path[i].length > 0) {
- pathParts.push(help_language);
- pick_me = false;
- if($.inArray(path[i], langChoices) < 0) {
- i--;
- }
- }
- } else {
- if(path[i].length > 0) {
- pathParts.push(path[i]);
- }
- }
-
- }
- // Update the address bar to reflect the loaded language
- window.history.replaceState({}, '', '/' + pathParts.join('/'));
-
- // Highlight the language in the language selector that is currently viewed
- $('.lang-selector').find('.lang-choice:contains("' + help_language + '")').addClass('active');
-
- // Construct the links to the available translations based and populate the selector menu
- $('.lang-selector').find('.lang-choice').each(function (idx, a) {
- var langLink = [];
-
- for (var i = 0; i < pathParts.length; i++) {
-
- if(i === 1) {
- langLink.push($(a).html());
- } else {
- langLink.push(pathParts[i]);
- }
-
- }
- $(a).attr('href', '/' + langLink.join('/'));
- });
-
});
diff --git a/view/pdl/mod_admin.pdl b/view/pdl/mod_admin.pdl
index 3c9633a69..39bccd466 100644
--- a/view/pdl/mod_admin.pdl
+++ b/view/pdl/mod_admin.pdl
@@ -1,10 +1,8 @@
+[template]doubleleft[/template]
[region=aside]
+[widget=notifications][var=sys_only]1[/var][/widget]
[widget=admin][/widget]
[/region]
[region=content]
$content
[/region]
-[region=right_aside]
-[widget=notifications][/widget]
-[widget=newmember][/widget]
-[/region]
diff --git a/view/pdl/mod_home.pdl b/view/pdl/mod_home.pdl
index 8b3ff52f8..2660f63e0 100644
--- a/view/pdl/mod_home.pdl
+++ b/view/pdl/mod_home.pdl
@@ -1,3 +1,6 @@
+[region=aside]
+[widget=notifications][var=sys_only]1[/var][/widget]
+[/region]
[region=content]
$content
[/region]
diff --git a/view/pdl/mod_import.pdl b/view/pdl/mod_import.pdl
new file mode 100644
index 000000000..9f0bb4d9a
--- /dev/null
+++ b/view/pdl/mod_import.pdl
@@ -0,0 +1,8 @@
+[region=aside]
+[/region]
+[region=content]
+$content
+[/region]
+[region=right_aside]
+[widget=notifications][/widget]
+[/region]
diff --git a/view/pdl/mod_login.pdl b/view/pdl/mod_login.pdl
new file mode 100644
index 000000000..3065703de
--- /dev/null
+++ b/view/pdl/mod_login.pdl
@@ -0,0 +1,6 @@
+[region=aside]
+[widget=notifications][var=sys_only]1[/var][/widget]
+[/region]
+[region=content]
+$content
+[/region]
diff --git a/view/php/doubleleft.php b/view/php/doubleleft.php
index 2d1571bf8..97b1546dc 100644
--- a/view/php/doubleleft.php
+++ b/view/php/doubleleft.php
@@ -23,7 +23,7 @@
<main>
<div class="content">
<div class="columns">
- <aside id="region_1"><div class="aside_spacer_top_left"></div><div class="aside_spacer_left"><div id="left_aside_wrapper" class="aside_wrapper"><?php if(x($page,'aside')) echo $page['aside']; ?></div></div></aside>
+ <aside id="region_1" class="d-none d-lg-block"><div class="aside_spacer_top_left"></div><div class="aside_spacer_left"><div id="left_aside_wrapper" class="aside_wrapper"><?php if(x($page,'aside')) echo $page['aside']; ?></div></div></aside>
<section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
<div id="pause"></div>
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 0fc158108..ec8ce42b3 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -781,7 +781,7 @@ nav .acpopup {
.shared_header img {
border-radius: var(--bs-border-radius);
- margin-right: .75rem;
+ margin-right: .5rem;
}
.tag1 {
@@ -844,28 +844,27 @@ margin-right: 50px;
.generic-icons,
a .generic-icons {
- font-size: 1rem;
- margin-right: 0.5rem;
+ font-size: 1.2rem;
}
.generic-icons-right {
- font-size: 1rem;
+ font-size: 1.2rem;
margin-left: 0.5rem;
}
.generic-icons-nav {
- font-size: 1rem;
- margin-right: 7px;
+ font-size: 1.2rem;
+ margin-right: 0.5rem;
}
.admin-icons {
- font-size: 1.2em;
- margin-right: 7px;
+ font-size: 1.2rem;
+ margin-right: 0.5rem;
}
.drop-icons,
a .drop-icons {
- font-size: 1rem;
+ font-size: 1.2rem;
text-decoration: none;
cursor: pointer;
}
@@ -895,25 +894,6 @@ a .drop-icons:hover {
list-style-type: none;
}
-table {
- border-spacing: 2px;
- max-width: 100%;
-}
-
-th,td {
- padding: 3px;
-}
-
-#channels > tbody > tr > td, #users > tbody > tr > td {
- max-width: 19.4em;
- overflow: hidden;
-}
-
-/* mail */
-
-img.mail-conv-sender-photo {
- border-radius: var(--bs-border-radius);
-}
/* jot */
@@ -929,6 +909,11 @@ img.mail-conv-sender-photo {
font-weight: bold;
}
+.jot-icons,
+.comment-icon {
+ font-size: 1.2rem;
+}
+
#profile-jot-wrapper {
background-color: var(--bs-body-bg);
border: 1px solid var(--bs-border-color);
@@ -1007,6 +992,19 @@ img.mail-conv-sender-photo {
border-top: 1px dashed #adadad;
}
+
+.hide-comments-icon,
+.divgrow-showmore-icon {
+ font-size: $font_size;
+}
+
+.divgrow-showmore-label,
+.hide-comments-label {
+ text-transform: uppercase;
+ font-size: 0.7rem;
+}
+
+
.wall-item-comment-wrapper {
padding: 7px 10px;
background-color: var(--bs-tertiary-bg);
diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js
index 0f2617cc0..76d6c0854 100644
--- a/view/theme/redbasic/js/redbasic.js
+++ b/view/theme/redbasic/js/redbasic.js
@@ -29,11 +29,11 @@ $(document).ready(function() {
}
if (redbasic_dark_mode == 1) {
- $('#theme-switch-icon').removeClass('fa-moon-o').addClass('fa-sun-o');
+ $('#theme-switch-icon').removeClass('bi-moon').addClass('bi-sun');
$('[data-bs-theme="light"]').attr('data-bs-theme', 'dark');
}
if (redbasic_dark_mode == 0) {
- $('#theme-switch-icon').removeClass('fa-sun-o').addClass('fa-moon-o');
+ $('#theme-switch-icon').removeClass('bi-sun').addClass('bi-moon');
$('[data-bs-theme="dark"]:not(nav)').attr('data-bs-theme', 'light');
}
@@ -84,12 +84,12 @@ $(document).ready(function() {
$('[data-bs-theme="dark"]').attr('data-bs-theme', 'light');
}
localStorage.setItem('redbasic_dark_mode', 0);
- $('#theme-switch-icon').removeClass('fa-sun-o').addClass('fa-moon-o');
+ $('#theme-switch-icon').removeClass('bi-sun').addClass('bi-moon');
}
else {
$('[data-bs-theme="light"]').attr('data-bs-theme', 'dark');
localStorage.setItem('redbasic_dark_mode', 1);
- $('#theme-switch-icon').removeClass('fa-moon-o').addClass('fa-sun-o');
+ $('#theme-switch-icon').removeClass('bi-moon').addClass('bi-sun');
}
$('meta[name=theme-color]').attr('content', $('nav').css('background-color'));
localStorage.setItem('redbasic_theme_color', $('nav').css('background-color'));
diff --git a/view/theme/redbasic/php/theme_init.php b/view/theme/redbasic/php/theme_init.php
index cffe22de6..c26621068 100644
--- a/view/theme/redbasic/php/theme_init.php
+++ b/view/theme/redbasic/php/theme_init.php
@@ -3,7 +3,8 @@ use Zotlabs\Lib\Config;
require_once('view/php/theme_init.php');
-head_add_css('/library/fork-awesome/css/fork-awesome.min.css');
+head_add_css('/vendor/twbs/bootstrap-icons/font/bootstrap-icons.min.css');
+
head_add_css('/library/bootstrap-tagsinput/bootstrap-tagsinput.css');
head_add_css('/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css');
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index 28631ed68..eb55b132a 100644
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -4,7 +4,7 @@
<div class="float-end">
<div class="btn-group">
<button id="connection-dropdown" class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-cog"></i>&nbsp;{{$tools_label}}
+ <i class="bi bi-gear"></i>&nbsp;{{$tools_label}}
</button>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dLabel">
<a class="dropdown-item" href="{{$tools.view.url}}" title="{{$tools.view.title}}">{{$tools.view.label}}</a>
@@ -23,10 +23,10 @@
</div>
{{if $abook_prev || $abook_next}}
<div class="btn-group">
- <a href="connedit/{{$abook_prev}}{{if $section}}?f=&section={{$section}}{{/if}}" class="btn btn-outline-secondary btn-sm{{if ! $abook_prev}} disabled{{/if}}" ><i class="fa fa-backward"></i></a>
+ <a href="connedit/{{$abook_prev}}{{if $section}}?f=&section={{$section}}{{/if}}" class="btn btn-outline-secondary btn-sm{{if ! $abook_prev}} disabled{{/if}}" ><i class="bi fa-backward"></i></a>
{{if $sections}}
<div class="btn-group" >
- <button class="btn btn-outline-secondary btn-sm{{if $is_pending}} disabled{{/if}}" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-bars"></i></button>
+ <button class="btn btn-outline-secondary btn-sm{{if $is_pending}} disabled{{/if}}" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="bi fa-bars"></i></button>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dLabel">
{{foreach $sections as $s}}
<a class="dropdown-item" href="{{$s.url}}" title="{{$s.title}}">{{$s.label}}</a>
@@ -34,7 +34,7 @@
</div>
</div>
{{/if}}
- <a href="connedit/{{$abook_next}}{{if $section}}?f=&section={{$section}}{{/if}}" class="btn btn-outline-secondary btn-sm{{if ! $abook_next}} disabled{{/if}}" ><i class="fa fa-forward"></i></a>
+ <a href="connedit/{{$abook_next}}{{if $section}}?f=&section={{$section}}{{/if}}" class="btn btn-outline-secondary btn-sm{{if ! $abook_next}} disabled{{/if}}" ><i class="bi fa-forward"></i></a>
</div>
{{/if}}
</div>
@@ -48,7 +48,7 @@
<input type="hidden" name="section" value="{{$section}}">
<div class="section-content-wrapper">
- <a href="permcats/{{$permcat_value}}" class="float-end"><i class="fa fa-external-link"></i>&nbsp;{{$permcat_new}}</a>
+ <a href="permcats/{{$permcat_value}}" class="float-end"><i class="bi bi-box-arrow-up-right"></i>&nbsp;{{$permcat_new}}</a>
{{include file="field_select.tpl" field=$permcat}}
<button type="button" class="btn btn-outline-secondary float-end" data-bs-toggle="modal" data-bs-target="#perms_modal">Permissions</button>
<button type="submit" name="done" value="{{$submit}}" class="btn btn-primary">{{$submit}}</button>
@@ -75,16 +75,16 @@
<td>{{$perm.1}}</td>
<td>
{{if $perm.2}}
- <i class="fa fa-check text-success"></i>
+ <i class="bi bi-check-lg text-success"></i>
{{else}}
- <i class="fa fa-times text-danger"></i>
+ <i class="bi bi-x-lg text-danger"></i>
{{/if}}
</td>
<td>
{{if $perm.3}}
- <i class="fa fa-check text-success"></i>
+ <i class="bi bi-check-lg text-success"></i>
{{else}}
- <i class="fa fa-times text-danger"></i>
+ <i class="bi bi-x-lg text-danger"></i>
{{/if}}
</td>
</tr>
@@ -141,14 +141,14 @@
<div id="template-form-vcard-org" class="mb-3 form-vcard-org">
<div class="mb-3 form-vcard-org">
<input type="text" name="org" value="" placeholder="{{$org_label}}">
- <i data-remove="vcard-org" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-org" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
<div id="template-form-vcard-title" class="mb-3 form-vcard-title">
<div class="mb-3 form-vcard-title">
<input type="text" name="title" value="" placeholder="{{$title_label}}">
- <i data-remove="vcard-title" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-title" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
@@ -160,7 +160,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="tel[]" value="" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-email" class="mb-3 form-vcard-email">
@@ -170,7 +170,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="email[]" value="" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-impp" class="mb-3 form-vcard-impp">
@@ -180,7 +180,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="impp[]" value="" placeholder="{{$impp_label}}">
- <i data-remove="vcard-impp" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-impp" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-url" class="mb-3 form-vcard-url">
@@ -190,7 +190,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="url[]" value="" placeholder="{{$url_label}}">
- <i data-remove="vcard-url" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-url" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-adr" class="mb-3 form-vcard-adr">
@@ -201,7 +201,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<label>{{$adr_label}}</label>
- <i data-remove="vcard-adr" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-adr" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div class="mb-3">
<input type="text" name="" value="" placeholder="{{$po_box}}">
@@ -228,14 +228,14 @@
<div id="template-form-vcard-note" class="mb-3 form-vcard-note">
<label>{{$note_label}}</label>
- <i data-remove="vcard-note" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-note" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
<textarea name="note" class="form-control"></textarea>
</div>
<div class="section-content-wrapper-np">
- <div id="vcard-cancel-{{$vcard.id}}" class="vcard-cancel vcard-cancel-btn" data-id="{{$vcard.id}}" data-action="cancel"><i class="fa fa-close"></i></div>
+ <div id="vcard-cancel-{{$vcard.id}}" class="vcard-cancel vcard-cancel-btn" data-id="{{$vcard.id}}" data-action="cancel"><i class="bi bi-x-lg"></i></div>
<div id="vcard-add-field-{{$vcard.id}}" class="dropdown float-end vcard-add-field">
- <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="fa fa-plus"></i> {{$add_field}}</button>
+ <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="bi bi-plus-lg"></i> {{$add_field}}</button>
<ul class="dropdown-menu">
<li class="add-vcard-org"{{if $vcard.org}} style="display: none"{{/if}}><a href="#" data-add="vcard-org" data-id="{{$vcard.id}}" class="add-field" onclick="return false;">{{$org_label}}</a></li>
<li class="add-vcard-title"{{if $vcard.title}} style="display: none"{{/if}}><a href="#" data-add="vcard-title" data-id="{{$vcard.id}}" class="add-field" onclick="return false;">{{$title_label}}</a></li>
@@ -248,11 +248,11 @@
</ul>
</div>
<div id="vcard-header-{{$vcard.id}}" class="vcard-header" data-id="{{$vcard.id}}" data-action="open">
- <i class="vcard-fn-preview fa fa-address-card-o"></i>
+ <i class="vcard-fn-preview bi fa-address-card-o"></i>
<span id="vcard-preview-{{$vcard.id}}" class="vcard-preview">
{{if $vcard.fn}}<span class="vcard-fn-preview">{{$vcard.fn}}</span>{{/if}}
{{if $vcard.emails.0.address}}<span class="vcard-email-preview d-none d-md-table-cell"><a href="mailto:{{$vcard.emails.0.address}}">{{$vcard.emails.0.address}}</a></span>{{/if}}
- {{if $vcard.tels.0}}<span class="vcard-tel-preview d-none d-md-table-cell">{{$vcard.tels.0.nr}} <a class="btn btn-outline-secondary btn-sm" href="tel:{{$vcard.tels.0.nr}}"><i class="fa fa-phone connphone"></i></a></span>{{/if}}
+ {{if $vcard.tels.0}}<span class="vcard-tel-preview d-none d-md-table-cell">{{$vcard.tels.0.nr}} <a class="btn btn-outline-secondary btn-sm" href="tel:{{$vcard.tels.0.nr}}"><i class="bi fa-phone connphone"></i></a></span>{{/if}}
</span>
<input id="vcard-fn-{{$vcard.id}}" class="vcard-fn" type="text" name="fn" value="{{$vcard.fn}}" size="{{$vcard.fn|count_characters:true}}" placeholder="{{$name_label}}">
</div>
@@ -264,7 +264,7 @@
{{if $vcard.org}}
<div class="mb-3 form-vcard-org">
<input type="text" name="org" value="{{$vcard.org}}" size="{{$vcard.org|count_characters:true}}" placeholder="{{$org_label}}">
- <i data-remove="vcard-org" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-org" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/if}}
</div>
@@ -275,7 +275,7 @@
{{if $vcard.title}}
<div class="mb-3 form-vcard-title">
<input type="text" name="title" value="{{$vcard.title}}" size="{{$vcard.title|count_characters:true}}" placeholder="{{$title_label}}">
- <i data-remove="vcard-title" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-title" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/if}}
</div>
@@ -295,7 +295,7 @@
<option value="OTHER"{{if $tel.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="tel[]" value="{{$tel.nr}}" size="{{$tel.nr|count_characters:true}}" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -315,7 +315,7 @@
<option value="OTHER"{{if $email.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="email[]" value="{{$email.address}}" size="{{$email.address|count_characters:true}}" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -334,7 +334,7 @@
<option value="OTHER"{{if $impp.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="impp[]" value="{{$impp.address}}" size="{{$impp.address|count_characters:true}}" placeholder="{{$impp_label}}">
- <i data-remove="vcard-impp" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-impp" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -353,7 +353,7 @@
<option value="OTHER"{{if $url.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="url[]" value="{{$url.address}}" size="{{$url.address|count_characters:true}}" placeholder="{{$url_label}}">
- <i data-remove="vcard-url" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-url" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -373,7 +373,7 @@
<option value="WORK"{{if $adr.type.0 == 'WORK'}} selected="selected"{{/if}}>{{$work}}</option>
<option value="OTHER"{{if $adr.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
- <i data-remove="vcard-adr" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-adr" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div class="mb-3">
<input type="text" name="adr[{{$adr@index}}][]" value="{{$adr.address.0}}" size="{{$adr.address.0|count_characters:true}}" placeholder="{{$po_box}}">
@@ -406,7 +406,7 @@
<div class="form-vcard-note-wrapper">
{{if $vcard.note}}
<label>{{$note_label}}</label>
- <i data-remove="vcard-note" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-note" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
<textarea name="note" class="form-control">{{$vcard.note}}</textarea>
{{/if}}
</div>
diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl
index bc33b8b6f..a1f8aaa6a 100644
--- a/view/tpl/acl_selector.tpl
+++ b/view/tpl/acl_selector.tpl
@@ -4,9 +4,9 @@
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">
- <i id="dialog-perms-icon" class="fa fa-fw"></i> {{$aclModalTitle}}
+ <i id="dialog-perms-icon" class="bi"></i> {{$aclModalTitle}}
{{if $helpUrl}}
- <a target="hubzilla-help" href="{{$helpUrl}}" class="contextual-help-tool" title="Help and documentation"><i class="fa fa-fw fa-question"></i></a>
+ <a target="hubzilla-help" href="{{$helpUrl}}" class="contextual-help-tool" title="Help and documentation"><i class="bi bi-question-lg"></i></a>
{{/if}}
</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
@@ -15,7 +15,7 @@
{{if $aclModalDesc}}
<div id="acl-dialog-description" class="section-content-info-wrapper">{{$aclModalDesc}}</div>
{{/if}}
- <label for="acl-select">{{if $aclModalDesc}}<i class="fa fa-send-o"></i> {{/if}}{{$select_label}}</label>
+ <label for="acl-select">{{if $aclModalDesc}}<i class="bi bi-send"></i> {{/if}}{{$select_label}}</label>
<select id="acl-select" name="optionsRadios" class="form-control mb-3">
<option id="acl-showall" value="public" {{$public_selected}}>{{$showall}}</option>
<option id="acl-onlyme" value="onlyme" {{$justme_selected}}>{{$onlyme}}</option>
@@ -27,13 +27,13 @@
{{if $showallOrigin}}
<div id="acl-info" class="mb-3">
- <i class="fa fa-info-circle"></i>&nbsp;{{$showallOrigin}}
+ <i class="bi bi-info-circle"></i>&nbsp;{{$showallOrigin}}
</div>
{{/if}}
<div id="acl-wrapper">
<div id="acl-list">
- <input class="form-control" type="text" id="acl-search" placeholder="&#xf002;" title="{{$search}}">
+ <input class="form-control" type="text" id="acl-search" placeholder="{{$search}}" title="{{$search}}">
<small class="text-muted">{{$showlimitedDesc}}</small>
<div id="acl-list-content"></div>
</div>
@@ -45,8 +45,8 @@
<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>
- <button class="acl-button-show btn btn-sm btn-outline-success"><i class="fa fa-check"></i> {{$show}}</button>
+ <button class="acl-button-hide btn btn-sm btn-outline-danger"><i class="bi bi-x-lg"></i> {{$hide}}</button>
+ <button class="acl-button-show btn btn-sm btn-outline-success"><i class="bi bi-check-lg"></i> {{$show}}</button>
</div>
</div>
<div class="modal-footer clear">
diff --git a/view/tpl/activity_filter_widget.tpl b/view/tpl/activity_filter_widget.tpl
index 779786828..8dba64381 100644
--- a/view/tpl/activity_filter_widget.tpl
+++ b/view/tpl/activity_filter_widget.tpl
@@ -3,7 +3,7 @@
{{$title}}
{{if $reset}}
<a href="{{$reset.url}}" class="text-muted" title="{{$reset.title}}">
- <i class="fa fa-fw fa-{{$reset.icon}}"></i>
+ <i class="bi bi-{{$reset.icon}}"></i>
</a>
{{/if}}
</h3>
@@ -11,7 +11,7 @@
{{if $name}}
<div id="cid-filter-wrapper" class="notifications-textinput">
<form method="get" action="{{$name.url}}" role="search">
- <div class="text-muted notifications-textinput-filter"><i class="fa fa-fw fa-filter"></i></div>
+ <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
<input id="cid" type="hidden" value="" name="cid" />
<input id="cid-filter" class="form-control form-control-sm{{if $name.sel}} {{$name.sel}}{{/if}}" type="text" value="" placeholder="{{$name.label}}" name="name" title="" />
</form>
diff --git a/view/tpl/admin_accounts.tpl b/view/tpl/admin_accounts.tpl
index 1f5617f00..9a9fbd865 100644
--- a/view/tpl/admin_accounts.tpl
+++ b/view/tpl/admin_accounts.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper-styled" id="adminpage">
+<div class="generic-content-wrapper-styled table-responsive" id="adminpage">
<h1>{{$title}} - {{$page}}</h1>
<form action="{{$baseurl}}/admin/accounts" method="post">
@@ -25,8 +25,8 @@
<td class="">{{$u.reg_atip_n}}</td>
<td class="checkbox_bulkedit"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$n}}" name="pending[]" value="{{$n}}"></td>
<td class="tools">
- <a id="zara_{{$n}}" {{* href="{{$baseurl}}/regmod/allow/{{$n}}" *}} class="zar2s zara btn btn-default btn-xs" title="{{$approve}}"><i class="fa fa-thumbs-o-up admin-icons"></i></a>
- <a id="zard_{{$n}}" {{* href="{{$baseurl}}/regmod/deny/{{$n}}" *}} class="zar2s zard btn btn-default btn-xs" title="{{$deny}}"><i class="fa fa-thumbs-o-down admin-icons"></i></a>
+ <a id="zara_{{$n}}" {{* href="{{$baseurl}}/regmod/allow/{{$n}}" *}} class="zar2s zara btn btn-default btn-xs" title="{{$approve}}"><i class="bi bi-hand-thumbs-up generic-icons"></i></a>
+ <a id="zard_{{$n}}" {{* href="{{$baseurl}}/regmod/deny/{{$n}}" *}} class="zar2s zard btn btn-default btn-xs" title="{{$deny}}"><i class="bi bi-hand-thumbs-down generic-icons"></i></a>
<span id="zarreax_{{$n}}" class="zarreax"></span>
</td>
</tr>
@@ -38,8 +38,8 @@
</table>
<div class="float-end">
<a id="zar2sat" class="btn btn-sm btn-primary" href="javascript:;">{{$sel_tall}}</a>
- <a id="zar2aas" class="zar2xas btn btn-sm btn-success" href="javascript:;"><i class="fa fa-check"></i> {{$sel_aprv}}</a>
- <a id="zar2das" class="zar2xas btn btn-sm btn-danger" href="javascript:;"><i class="fa fa-close"></i> {{$sel_deny}}</a>
+ <a id="zar2aas" class="zar2xas btn btn-sm btn-success" href="javascript:;"><i class="bi bi-check-lg"></i> {{$sel_aprv}}</a>
+ <a id="zar2das" class="zar2xas btn btn-sm btn-danger" href="javascript:;"><i class="bi bi-x-lg"></i> {{$sel_deny}}</a>
</div>
{{else}}
<div class="text-muted">
@@ -78,10 +78,10 @@
<td class="service_class">{{$u.account_service_class}}</td>
<td class="checkbox_bulkedit"><input type="checkbox" class="users_ckbx p-1" id="id_user_{{$u.account_id}}" name="user[]" value="{{$u.account_id}}"><input type="hidden" name="blocked[]" value="{{$u.blocked}}"></td>
<td class="tools">
- <a href="{{$baseurl}}/admin/accounts/delete/{{$u.account_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><i class="fa fa-trash-o admin-icons"></i></a>
+ <a href="{{$baseurl}}/admin/accounts/delete/{{$u.account_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><i class="bi bi-trash admin-icons"></i></a>
</td>
<td class="tools">
- <a href="{{$baseurl}}/admin/accounts/{{if ($u.blocked)}}un{{/if}}block/{{$u.account_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{if ($u.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class="fa fa-ban admin-icons{{if ($u.blocked)}} dim{{/if}}"></i></a>
+ <a href="{{$baseurl}}/admin/accounts/{{if ($u.blocked)}}un{{/if}}block/{{$u.account_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{if ($u.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class="bi fa-ban admin-icons{{if ($u.blocked)}} dim{{/if}}"></i></a>
</td>
</tr>
{{/foreach}}
diff --git a/view/tpl/admin_channels.tpl b/view/tpl/admin_channels.tpl
index 75db77593..ca05313ed 100644
--- a/view/tpl/admin_channels.tpl
+++ b/view/tpl/admin_channels.tpl
@@ -10,7 +10,7 @@
return false;
}
</script>
-<div class = "generic-content-wrapper-styled" id='adminpage'>
+<div class="generic-content-wrapper-styled table-responsive" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<form action="{{$baseurl}}/admin/channels" method="post">
@@ -36,13 +36,13 @@
<td class='channel_address'>{{$c.channel_address}}</td>
<td class="checkbox_bulkedit"><input type="checkbox" class="channels_ckbx p-1" id="id_channel_{{$c.channel_id}}" name="channel[]" value="{{$c.channel_id}}"/></td>
<td class="tools">
- <a href="{{$baseurl}}/admin/channels/block/{{$c.channel_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{if ($c.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class='fa fa-ban admin-icons {{if ($c.blocked)}}text-danger{{/if}}'></i></a>
+ <a href="{{$baseurl}}/admin/channels/block/{{$c.channel_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{if ($c.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class='bi fa-ban admin-icons {{if ($c.blocked)}}text-danger{{/if}}'></i></a>
</td>
<td class="tools">
- <a href="{{$baseurl}}/admin/channels/code/{{$c.channel_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{if ($c.allowcode)}}{{$uncode}}{{else}}{{$code}}{{/if}}'><i class='fa fa-terminal admin-icons {{if ($c.allowcode)}}text-danger{{/if}}'></i></a>
+ <a href="{{$baseurl}}/admin/channels/code/{{$c.channel_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{if ($c.allowcode)}}{{$uncode}}{{else}}{{$code}}{{/if}}'><i class='bi bi-code admin-icons {{if ($c.allowcode)}}text-danger{{/if}}'></i></a>
</td>
<td class="tools">
- <a href="{{$baseurl}}/admin/channels/delete/{{$c.channel_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{$delete}}' onclick="return confirm_delete('{{$c.channel_name}}')"><i class='fa fa-trash-o admin-icons'></i></a>
+ <a href="{{$baseurl}}/admin/channels/delete/{{$c.channel_id}}?t={{$form_security_token}}" class="p-1 text-reset" title='{{$delete}}' onclick="return confirm_delete('{{$c.channel_name}}')"><i class='bi bi-trash admin-icons'></i></a>
</td>
</tr>
{{/foreach}}
diff --git a/view/tpl/admin_plugins.tpl b/view/tpl/admin_plugins.tpl
index 7d413d085..f231da2ad 100644
--- a/view/tpl/admin_plugins.tpl
+++ b/view/tpl/admin_plugins.tpl
@@ -23,10 +23,10 @@
<span class="float-start">{{$repo.name}}</span><span id="update-message-{{$repo.name}}" style="margin-left: 20px;"></span>
</td>
<td style="width: 15%;">
- <button class="btn btn-sm btn-primary float-end" style="margin-left: 10px; margin-right: 10px;" onclick="updateAddonRepo('{{$repo.name}}'); return false;"><i class='fa fa-download'></i>&nbsp;{{$repoUpdateButton}}</button>
+ <button class="btn btn-sm btn-primary float-end" style="margin-left: 10px; margin-right: 10px;" onclick="updateAddonRepo('{{$repo.name}}'); return false;"><i class='bi fa-download'></i>&nbsp;{{$repoUpdateButton}}</button>
</td>
<td style="width: 15%;">
- <button class="btn btn-sm btn-danger float-end" style="margin-left: 10px; margin-right: 0px;" onclick="removeAddonRepo('{{$repo.name}}'); return false;"><i class='fa fa-trash-o'></i>&nbsp;{{$repoRemoveButton}}</button>
+ <button class="btn btn-sm btn-danger float-end" style="margin-left: 10px; margin-right: 0px;" onclick="removeAddonRepo('{{$repo.name}}'); return false;"><i class='bi bi-trash'></i>&nbsp;{{$repoRemoveButton}}</button>
</td>
<div class="clear"></div>
</td></tr>
@@ -50,9 +50,9 @@
<div class="section-content-tools-wrapper" id="pluginslist">
<div class="contact-info plugin {{$p.1}}">
{{if ! $p.2.disabled}}
- <a class='toggleplugin' href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}?a=t&amp;t={{$form_security_token}}' title="{{if $p.1==on}}Disable{{else}}Enable{{/if}}" ><i class='fa {{if $p.1==on}}fa-check-square-o{{else}}fa-square-o{{/if}} admin-icons'></i></a>
+ <a class='toggleplugin' href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}?a=t&amp;t={{$form_security_token}}' title="{{if $p.1==on}}Disable{{else}}Enable{{/if}}" ><i class='bi {{if $p.1==on}}bi-check-square{{else}}bi-square{{/if}} admin-icons'></i></a>
{{else}}
- <i class='fa fa-stop admin-icons'></i>
+ <i class='bi fa-stop admin-icons'></i>
{{/if}}
<a href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}'><span class='name'>{{$p.2.name}}</span></a> - <span class="version">{{$p.2.version}}</span>{{if $p.2.disabled}} {{$disabled}}{{/if}}
{{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}}
diff --git a/view/tpl/admin_plugins_details.tpl b/view/tpl/admin_plugins_details.tpl
index 309fc9569..6b377fe74 100644
--- a/view/tpl/admin_plugins_details.tpl
+++ b/view/tpl/admin_plugins_details.tpl
@@ -1,7 +1,7 @@
<div class = "generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
- <p>{{if ! $info.disabled}}<i class='toggleplugin fa {{if $status==on}}fa-check-square-o{{else}}fa-square-o{{/if}} admin-icons'></i>{{else}}<i class='fa fa-stop admin-icons'></i>{{/if}} {{$info.name}} - {{$info.version}}{{if ! $info.disabled}} : <a href="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/?a=t&amp;t={{$form_security_token}}">{{$action}}</a>{{/if}}</p>
+ <p>{{if ! $info.disabled}}<i class='toggleplugin bi {{if $status==on}}bi-check-square{{else}}bi-square{{/if}} admin-icons'></i>{{else}}<i class='bi fa-stop admin-icons'></i>{{/if}} {{$info.name}} - {{$info.version}}{{if ! $info.disabled}} : <a href="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/?a=t&amp;t={{$form_security_token}}">{{$action}}</a>{{/if}}</p>
{{if $info.disabled}}
<p>{{$disabled}}</p>
diff --git a/view/tpl/admin_profiles.tpl b/view/tpl/admin_profiles.tpl
index 1df3f5492..b19360bfe 100644
--- a/view/tpl/admin_profiles.tpl
+++ b/view/tpl/admin_profiles.tpl
@@ -1,5 +1,5 @@
<div class="generic-content-wrapper">
-<div class="section-title-wrapper"><a title="{{$new}}" class="btn btn-primary btn-sm float-end" href="admin/profs/new"><i class="fa fa-plus-circle"></i>&nbsp;{{$new}}</a><h2>{{$title}}</h2>
+<div class="section-title-wrapper"><a title="{{$new}}" class="btn btn-primary btn-sm float-end" href="admin/profs/new"><i class="bi bi-plus-lg"></i>&nbsp;{{$new}}</a><h2>{{$title}}</h2>
<div class="clear"></div>
</div>
@@ -28,7 +28,7 @@
<table width="100%">
{{foreach $cust_fields as $field}}
-<tr><td>{{$field.field_name}}</td><td>{{$field.field_desc}}</td><td><a class="btn btn-danger btn-sm" href="admin/profs/drop/{{$field.id}}" title="{{$drop}}"><i class="fa fa-trash-o"></i>&nbsp;{{$drop}}</a> <a class="btn btn-sm" title="{{$edit}}" href="admin/profs/{{$field.id}}" ><i class="fa fa-pencil"></i></a></td></tr>
+<tr><td>{{$field.field_name}}</td><td>{{$field.field_desc}}</td><td><a class="btn btn-danger btn-sm" href="admin/profs/drop/{{$field.id}}" title="{{$drop}}"><i class="bi bi-trash"></i>&nbsp;{{$drop}}</a> <a class="btn btn-sm" title="{{$edit}}" href="admin/profs/{{$field.id}}" ><i class="bi bi-pencil"></i></a></td></tr>
{{/foreach}}
</table>
{{/if}}
diff --git a/view/tpl/admin_queue.tpl b/view/tpl/admin_queue.tpl
index 1587bff47..c03fce140 100644
--- a/view/tpl/admin_queue.tpl
+++ b/view/tpl/admin_queue.tpl
@@ -7,7 +7,7 @@
{{foreach $entries as $e}}
-<tr><td>{{$e.total}}</td><td>{{$e.outq_posturl}}</td><td>{{$e.priority}}</td>{{if $expert}}<td><a href="admin/queue?f=&drophub={{$e.eurl}}" title="{{$nukehub}}" class="btn btn-outline-secondary"><i class="fa fa-times"></i><a></td><td><a href="admin/queue?f=&emptyhub={{$e.eurl}}" title="{{$empty}}" class="btn btn-outline-secondary"><i class="fa fa-trash-o"></i></a></td><td><a href="admin/queue?f=&deliverhub={{$e.eurl}}" title="{{$deliverhub}}" class="btn btn-outline-secondary"><i class="fa fa-refresh"></i><a></td>{{/if}}</tr>
+<tr><td>{{$e.total}}</td><td>{{$e.outq_posturl}}</td><td>{{$e.priority}}</td>{{if $expert}}<td><a href="admin/queue?f=&drophub={{$e.eurl}}" title="{{$nukehub}}" class="btn btn-outline-secondary"><i class="bi bi-x-lg"></i><a></td><td><a href="admin/queue?f=&emptyhub={{$e.eurl}}" title="{{$empty}}" class="btn btn-outline-secondary"><i class="bi bi-trash"></i></a></td><td><a href="admin/queue?f=&deliverhub={{$e.eurl}}" title="{{$deliverhub}}" class="btn btn-outline-secondary"><i class="bi fa-refresh"></i><a></td>{{/if}}</tr>
{{/foreach}}
</table>
diff --git a/view/tpl/app.tpl b/view/tpl/app.tpl
index f3f6ae58b..b078aa66d 100644
--- a/view/tpl/app.tpl
+++ b/view/tpl/app.tpl
@@ -3,19 +3,19 @@
{{if $app.type !== 'system'}}
{{if $purchase}}
<div class="app-purchase">
- <a href="{{$app.page}}" class="btn btn-outline-secondary" title="{{$purchase}}" ><i class="fa fa-external"></i></a>
+ <a href="{{$app.page}}" class="btn btn-outline-secondary" title="{{$purchase}}" ><i class="bi bi-box-arrow-up-right"></i></a>
</div>
{{/if}}
{{if $action_label || $update || $delete || $feature}}
<div class="app-tools">
<form action="{{$hosturl}}appman" method="post">
<input type="hidden" name="papp" value="{{$app.papp}}" />
- {{if $action_label}}<button type="submit" name="install" value="{{$action_label}}" class="btn btn-{{if $installed}}outline-secondary{{else}}success{{/if}} btn-sm" title="{{$action_label}}" ><i class="fa fa-fw {{if $installed}}fa-refresh{{else}}fa-arrow-circle-o-down{{/if}}" ></i> {{$action_label}}</button>{{/if}}
- {{if $edit}}<input type="hidden" name="appid" value="{{$app.guid}}" /><button type="submit" name="edit" value="{{$edit}}" class="btn btn-outline-secondary btn-sm" title="{{$edit}}" ><i class="fa fa-fw fa-pencil" ></i></button>{{/if}}
- {{if $delete}}<button type="submit" name="delete" value="{{if $deleted}}{{$undelete}}{{else}}{{$delete}}{{/if}}" class="btn btn-outline-secondary btn-sm" title="{{if $deleted}}{{$undelete}}{{else}}{{$delete}}{{/if}}" ><i class="fa fa-fw fa-trash-o drop-icons"></i></button>{{/if}}
- {{if $settings_url}}<a href="{{$settings_url}}/?f=&rpath={{$rpath}}" class="btn btn-outline-secondary btn-sm"><i class="fa fa-fw fa-cog"></i></a>{{/if}}
- {{if $feature}}<button type="submit" name="feature" value="nav_featured_app" class="btn btn-outline-secondary btn-sm" title="{{if $featured}}{{$remove}}{{else}}{{$add}}{{/if}}"><i class="fa fa-fw fa-star{{if $featured}} text-warning{{/if}}"></i></button>{{/if}}
- {{if $pin}}<button type="submit" name="pin" value="nav_pinned_app" class="btn btn-outline-secondary btn-sm" title="{{if $pinned}}{{$remove_nav}}{{else}}{{$add_nav}}{{/if}}"><i class="fa fa-fw fa-thumb-tack{{if $pinned}} text-success{{/if}}"></i></button>{{/if}}
+ {{if $action_label}}<button type="submit" name="install" value="{{$action_label}}" class="btn btn-{{if $installed}}outline-secondary{{else}}success{{/if}} btn-sm" title="{{$action_label}}" ><i class="bi{{if $installed}} bi-arrow-repeat{{else}} bi-arrow-down-circle{{/if}}" ></i> {{$action_label}}</button>{{/if}}
+ {{if $edit}}<input type="hidden" name="appid" value="{{$app.guid}}" /><button type="submit" name="edit" value="{{$edit}}" class="btn btn-outline-secondary btn-sm" title="{{$edit}}" ><i class="bi bi-pencil" ></i></button>{{/if}}
+ {{if $delete}}<button type="submit" name="delete" value="{{if $deleted}}{{$undelete}}{{else}}{{$delete}}{{/if}}" class="btn btn-outline-secondary btn-sm" title="{{if $deleted}}{{$undelete}}{{else}}{{$delete}}{{/if}}" ><i class="bi bi-trash drop-icons"></i></button>{{/if}}
+ {{if $settings_url}}<a href="{{$settings_url}}/?f=&rpath={{$rpath}}" class="btn btn-outline-secondary btn-sm"><i class="bi bi-gear"></i></a>{{/if}}
+ {{if $feature}}<button type="submit" name="feature" value="nav_featured_app" class="btn btn-outline-secondary btn-sm" title="{{if $featured}}{{$remove}}{{else}}{{$add}}{{/if}}"><i class="bi bi-star{{if $featured}} text-warning{{/if}}"></i></button>{{/if}}
+ {{if $pin}}<button type="submit" name="pin" value="nav_pinned_app" class="btn btn-outline-secondary btn-sm" title="{{if $pinned}}{{$remove_nav}}{{else}}{{$add_nav}}{{/if}}"><i class="bi bi-pin{{if $pinned}} text-success{{/if}}"></i></button>{{/if}}
</form>
</div>
{{/if}}
@@ -27,7 +27,7 @@
<div class="{{if $deleted}} app-deleted{{/if}} mb-3">
<a class="app-icon app-link" href="{{$app.url}}"{{if $app.target}} target="{{$app.target}}"{{/if}}{{if $installed}} data-papp="{{$app.papp}}" data-icon="{{$icon}}" data-url="{{$app.url}}" data-name="{{$app.name}}"{{/if}}>
{{if $icon}}
- <i class="app-icon fa fa-fw fa-{{$icon}}"></i>
+ <i class="app-icon bi bi-{{$icon}}"></i>
{{else}}
<img src="{{$app.photo}}" width="80" height="80" />
{{/if}}
diff --git a/view/tpl/app_inline.tpl b/view/tpl/app_inline.tpl
index fc3675380..678720f5f 100644
--- a/view/tpl/app_inline.tpl
+++ b/view/tpl/app_inline.tpl
@@ -1,7 +1,7 @@
<h3 class="mb-3">{{$app.name}}{{if $app.price}} ({{$app.price}}){{/if}}</h3>
<a class="app-icon" href="{{$app.url}}" >
{{if $icon}}
- <i class="app-icon fa fa-fw fa-{{$icon}} mb-3"></i>
+ <i class="app-icon bi bi-{{$icon}} mb-3"></i>
{{else}}
<img src="{{$app.photo}}" width="80" height="80" class="mb-3" />
{{/if}}
@@ -14,10 +14,10 @@
<form action="{{$hosturl}}appman" method="post">
<input type="hidden" name="papp" value="{{$app.papp}}" />
{{if $action_label}}
- <button type="submit" name="install" value="{{$action_label}}" class="btn btn-{{if $installed}}outline-secondary{{else}}success{{/if}} btn-sm" title="{{$action_label}}" ><i class="fa fa-fw {{if $installed}}fa-refresh{{else}}fa-arrow-circle-o-down{{/if}}" ></i> {{$action_label}}</button>
+ <button type="submit" name="install" value="{{$action_label}}" class="btn btn-{{if $installed}}outline-secondary{{else}}success{{/if}} btn-sm" title="{{$action_label}}" ><i class="bi{{if $installed}} bi-repeat{{else}}bi-arrow-down-circle{{/if}}" ></i> {{$action_label}}</button>
{{/if}}
{{if $purchase && $app.type !== 'system'}}
- <a href="{{$app.page}}" class="btn btn-sm btn-link" title="{{$purchase}}" ><i class="fa fa-external-link"></i></a>
+ <a href="{{$app.page}}" class="btn btn-sm btn-link" title="{{$purchase}}" ><i class="bi bi-box-arrow-up-right"></i></a>
{{/if}}
</form>
</div>
diff --git a/view/tpl/app_install.tpl b/view/tpl/app_install.tpl
index 16b89d350..4783ba977 100644
--- a/view/tpl/app_install.tpl
+++ b/view/tpl/app_install.tpl
@@ -8,6 +8,6 @@
<input type="hidden" name="papp" value="{{$papp.papp}}" />
<input type="hidden" name="return_path" value="{{$return_path}}" />
<button type="submit" name="install" value="install" class="btn btn-success">
- <i class="fa fa-fw fa-arrow-circle-o-down"></i> {{$install}}
+ <i class="bi bi-arrow-down-circle"></i> {{$install}}
</button>
</form>
diff --git a/view/tpl/app_nav.tpl b/view/tpl/app_nav.tpl
index a8489382e..c91a0c9af 100644
--- a/view/tpl/app_nav.tpl
+++ b/view/tpl/app_nav.tpl
@@ -1 +1 @@
-<a class="nav-link{{if $app.active}} active{{/if}}" href="{{$app.url}}" data-papp="{{$app.papp}}" data-icon="{{$icon}}" data-url="{{$app.url}}" data-name="{{$app.name}}">{{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>
+<a class="nav-link{{if $app.active}} active{{/if}}" href="{{$app.url}}" data-papp="{{$app.papp}}" data-icon="{{$icon}}" data-url="{{$app.url}}" data-name="{{$app.name}}">{{if $icon}}<i class="generic-icons-nav bi bi-{{$icon}}"></i>{{else}}<img src="{{$app.photo}}" width="16" height="16" style="margin-right:9px;"/>{{/if}}{{$app.name}}</a>
diff --git a/view/tpl/app_nav_pinned.tpl b/view/tpl/app_nav_pinned.tpl
index bf942dd48..aaaea86ff 100644
--- a/view/tpl/app_nav_pinned.tpl
+++ b/view/tpl/app_nav_pinned.tpl
@@ -1,6 +1,6 @@
<a class="navbar-app nav-link{{if $app.active}} active{{/if}}" href="{{$app.url}}" title="{{$app.name}}">
{{if $icon}}
- <i class="fa fa-fw fa-{{$icon}}"></i>
+ <i class="bi bi-{{$icon}} generic-icons"></i>
<span class="d-lg-none">{{$app.name}}</span>
{{else}}
<img src="{{$app.photo}}" width="16" height="16" />
diff --git a/view/tpl/app_order.tpl b/view/tpl/app_order.tpl
index 53c770cb7..4552e8e37 100644
--- a/view/tpl/app_order.tpl
+++ b/view/tpl/app_order.tpl
@@ -1,3 +1,3 @@
-<a href="{{$hosturl}}appman/{{$app.guid}}/moveup{{if $mode == 'nav-order-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 $mode == 'nav-order-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>
+<a href="{{$hosturl}}appman/{{$app.guid}}/moveup{{if $mode == 'nav-order-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 bi bi-arrow-up"></i></a>
+<a href="{{$hosturl}}appman/{{$app.guid}}/movedown{{if $mode == 'nav-order-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 bi bi-arrow-down"></i></a>
+{{if $icon}}<i class="generic-icons-nav bi bi-{{$icon}}"></i>{{else}}<img src="{{$app.photo}}" width="16" height="16" style="margin-right:9px;"/>{{/if}}{{$app.name}}<br>
diff --git a/view/tpl/attach_edit.tpl b/view/tpl/attach_edit.tpl
index 0de4404ec..591db6709 100644
--- a/view/tpl/attach_edit.tpl
+++ b/view/tpl/attach_edit.tpl
@@ -8,16 +8,16 @@
<div id="attach-edit-tools-share" class="btn-group mb-3">
{{if !$isadir}}
<a href="/rpost?attachment=[attachment]{{$file.hash}},{{$file.revision}}[/attachment]" id="attach-btn" class="btn btn-outline-secondary btn-sm" title="{{$attach_btn_title}}">
- <i class="fa fa-share-square-o jot-icons"></i>
+ <i class="bi bi-download jot-icons"></i>
</a>
{{/if}}
<button id="link-btn" class="btn btn-outline-secondary btn-sm" type="button" onclick="openClose('link-code');" title="{{$link_btn_title}}">
- <i class="fa fa-link jot-icons"></i>
+ <i class="bi bi-link-45deg jot-icons"></i>
</button>
</div>
<div id="attach-edit-perms" class="btn-group float-end">
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$permset}}" type="button">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}} jot-icons"></i>
</button>
<button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit">
{{$submit}}
diff --git a/view/tpl/blocklist.tpl b/view/tpl/blocklist.tpl
index 0d859166e..1d62ee1d6 100644
--- a/view/tpl/blocklist.tpl
+++ b/view/tpl/blocklist.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper">
{{if $editor}}
<div class="float-end">
- <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('block-editor');"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$create}}</button>
+ <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('block-editor');"><i class="bi bi-pencil-square-o"></i>&nbsp;{{$create}}</button>
</div>
{{/if}}
<h2>{{$title}}</h2>
@@ -40,17 +40,17 @@
</td>
<td class="webpage-list-tool">
{{if $edit}}
- <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="fa fa-pencil"></i></a>
+ <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="bi bi-pencil"></i></a>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $item.bb_element}}
- <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="fa fa-share-square-o"></i></a>
+ <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="bi bi-download"></i></a>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $edit}}
- <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#block-list-item-{{$item.url}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#block-list-item-{{$item.url}}'); return false;"><i class="bi bi-trash drop-icons"></i></a>
{{/if}}
</td>
<td class="d-none d-md-table-cell">
diff --git a/view/tpl/build_query.tpl b/view/tpl/build_query.tpl
index af70a9595..b009d4c9c 100644
--- a/view/tpl/build_query.tpl
+++ b/view/tpl/build_query.tpl
@@ -41,36 +41,37 @@
var bParam_unseen = "{{$unseen}}";
function buildCmd() {
- var udargs = ((page_load) ? "/load" : "");
- var bCmd = bParam_cmd + udargs + "?f=" ;
- if(bParam_uid) bCmd = bCmd + "&p=" + bParam_uid;
- if(bParam_cmin != (-1)) bCmd = bCmd + "&cmin=" + bParam_cmin;
- if(bParam_cmax != (-1)) bCmd = bCmd + "&cmax=" + bParam_cmax;
- if(bParam_gid != 0) { bCmd = bCmd + "&gid=" + bParam_gid; } else
- if(bParam_cid != 0) { bCmd = bCmd + "&cid=" + bParam_cid; }
- if(bParam_star != 0) bCmd = bCmd + "&star=" + bParam_star;
- if(bParam_liked != 0) bCmd = bCmd + "&liked=" + bParam_liked;
- if(bParam_conv!= 0) bCmd = bCmd + "&conv=" + bParam_conv;
- if(bParam_spam != 0) bCmd = bCmd + "&spam=" + bParam_spam;
- if(bParam_new != 0) bCmd = bCmd + "&new=" + bParam_new;
- if(bParam_wall != 0) bCmd = bCmd + "&wall=" + bParam_wall;
- if(bParam_list != 0) bCmd = bCmd + "&list=" + bParam_list;
- if(bParam_fh != 0) bCmd = bCmd + "&fh=" + bParam_fh;
- if(bParam_dm != 0) bCmd = bCmd + "&dm=" + bParam_dm;
- if(bParam_search != "") bCmd = bCmd + "&search=" + bParam_search;
- if(bParam_xchan != "") bCmd = bCmd + "&xchan=" + bParam_xchan;
- if(bParam_order != "") bCmd = bCmd + "&order=" + bParam_order;
- if(bParam_file != "") bCmd = bCmd + "&file=" + bParam_file;
- if(bParam_cats != "") bCmd = bCmd + "&cat=" + bParam_cats;
- if(bParam_tags != "") bCmd = bCmd + "&tag=" + bParam_tags;
- if(bParam_dend != "") bCmd = bCmd + "&dend=" + bParam_dend;
- if(bParam_dbegin != "") bCmd = bCmd + "&dbegin=" + bParam_dbegin;
- if(bParam_mid != "") bCmd = bCmd + "&mid=" + bParam_mid;
- if(bParam_verb != "") bCmd = bCmd + "&verb=" + bParam_verb;
- if(bParam_net != "") bCmd = bCmd + "&net=" + bParam_net;
- if(bParam_page != 1) bCmd = bCmd + "&page=" + bParam_page;
- if(bParam_pf != 0) bCmd = bCmd + "&pf=" + bParam_pf;
- if(bParam_unseen != 0) bCmd = bCmd + "&unseen=" + bParam_unseen;
+ let udargs = ((page_load) ? "/load" : "");
+ let bCmd = bParam_cmd + udargs;
+
+ if(bParam_uid) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "p=" + bParam_uid;
+ if(bParam_cmin != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmin=" + bParam_cmin;
+ if(bParam_cmax != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmax=" + bParam_cmax;
+ if(bParam_gid != 0) { bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "gid=" + bParam_gid; } else
+ if(bParam_cid != 0) { bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cid=" + bParam_cid; }
+ if(bParam_star != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "star=" + bParam_star;
+ if(bParam_liked != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "liked=" + bParam_liked;
+ if(bParam_conv!= 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "conv=" + bParam_conv;
+ if(bParam_spam != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "spam=" + bParam_spam;
+ if(bParam_new != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "new=" + bParam_new;
+ if(bParam_wall != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "wall=" + bParam_wall;
+ if(bParam_list != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "list=" + bParam_list;
+ if(bParam_fh != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "fh=" + bParam_fh;
+ if(bParam_dm != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dm=" + bParam_dm;
+ if(bParam_search != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "search=" + bParam_search;
+ if(bParam_xchan != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "xchan=" + bParam_xchan;
+ if(bParam_order != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "order=" + bParam_order;
+ if(bParam_file != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "file=" + bParam_file;
+ if(bParam_cats != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cat=" + bParam_cats;
+ if(bParam_tags != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "tag=" + bParam_tags;
+ if(bParam_dend != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dend=" + bParam_dend;
+ if(bParam_dbegin != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dbegin=" + bParam_dbegin;
+ if(bParam_mid != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "mid=" + bParam_mid;
+ if(bParam_verb != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "verb=" + bParam_verb;
+ if(bParam_net != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "net=" + bParam_net;
+ if(bParam_page != 1) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "page=" + bParam_page;
+ if(bParam_pf != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "pf=" + bParam_pf;
+ if(bParam_unseen != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "unseen=" + bParam_unseen;
return(bCmd);
}
diff --git a/view/tpl/cal_calendar.tpl b/view/tpl/cal_calendar.tpl
index 2f3140ce3..437cd8363 100644
--- a/view/tpl/cal_calendar.tpl
+++ b/view/tpl/cal_calendar.tpl
@@ -85,12 +85,12 @@ function updateSize() {
<div class="section-title-wrapper">
<div class="float-end">
<div class="btn-group">
- <button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="fa fa-backward"></i></button>
- <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><span id="events-spinner" class="spinner s"></span><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>
+ <button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="bi bi-chevron-left"></i></button>
+ <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><span id="events-spinner" class="spinner s"></span><i class="bi bi-crosshair" style="display: none; padding: 0.065rem;"></i></button>
+ <button id="next-btn" class="btn btn-outline-secondary btn-sm" title="{{$next}}"><i class="bi bi-chevron-right"></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>
+ <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="bi bi-arrows-angle-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="bi bi-arrows-angle-contract"></i></button>
</div>
<h2 id="title"></h2>
<div class="clear"></div>
diff --git a/view/tpl/cal_event.tpl b/view/tpl/cal_event.tpl
index 0719d5262..7be5d225d 100644
--- a/view/tpl/cal_event.tpl
+++ b/view/tpl/cal_event.tpl
@@ -6,7 +6,7 @@
</div>
{{$event.html}}
<div class="event-buttons">
- {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="btn btn-sm btn-outline-secondary border-0 plink-event-link"><i class="fa fa-external-link"></i></a>{{/if}}
+ {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="btn btn-sm btn-outline-secondary border-0 plink-event-link"><i class="bi bi-box-arrow-up-right"></i></a>{{/if}}
</div>
<div class="clear"></div>
</div>
diff --git a/view/tpl/cdav_addressbook.tpl b/view/tpl/cdav_addressbook.tpl
index ab0b43ffc..617096096 100644
--- a/view/tpl/cdav_addressbook.tpl
+++ b/view/tpl/cdav_addressbook.tpl
@@ -72,14 +72,14 @@ $(document).ready(function() {
<div id="template-form-vcard-org" class="mb-3 form-vcard-org">
<div class="mb-3 form-vcard-org">
<input type="text" name="org" value="" placeholder="{{$org_label}}">
- <i data-remove="vcard-org" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-org" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
<div id="template-form-vcard-title" class="mb-3 form-vcard-title">
<div class="mb-3 form-vcard-title">
<input type="text" name="title" value="" placeholder="{{$title_label}}">
- <i data-remove="vcard-title" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-title" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
@@ -91,7 +91,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="tel[]" value="" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-email" class="mb-3 form-vcard-email">
@@ -101,7 +101,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="email[]" value="" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-impp" class="mb-3 form-vcard-impp">
@@ -111,7 +111,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="impp[]" value="" placeholder="{{$impp_label}}">
- <i data-remove="vcard-impp" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-impp" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-url" class="mb-3 form-vcard-url">
@@ -121,7 +121,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="url[]" value="" placeholder="{{$url_label}}">
- <i data-remove="vcard-url" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-url" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-adr" class="mb-3 form-vcard-adr">
@@ -132,7 +132,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<label>{{$adr_label}}</label>
- <i data-remove="vcard-adr" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-adr" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div class="mb-3">
<input type="text" name="" value="" placeholder="{{$po_box}}">
@@ -159,20 +159,20 @@ $(document).ready(function() {
<div id="template-form-vcard-note" class="mb-3 form-vcard-note">
<label>{{$note_label}}</label>
- <i data-remove="vcard-note" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-note" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
<textarea name="note" class="form-control"></textarea>
</div>
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <button type="button" class="btn btn-success btn-sm float-end" onclick="openClose('create_form')"><i class="fa fa-plus-circle"></i> {{$add_card}}</button>
+ <button type="button" class="btn btn-success btn-sm float-end" onclick="openClose('create_form')"><i class="bi bi-plus-lg"></i> {{$add_card}}</button>
<h2>{{$displayname}}</h2>
</div>
<div id="create_form" class="section-content-tools-wrapper">
<form id="card_form_new" method="post" action="">
<input type="hidden" name="target" value="{{$id}}">
<div class="dropdown float-end">
- <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="fa fa-plus"></i> {{$add_field}}</button>
+ <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="bi bi-plus-lg"></i> {{$add_field}}</button>
<div class="dropdown-menu dropdown-menu-end">
<a class="dropdown-item add-vcard-org add-field" style="display: none" href="#" data-add="vcard-org" data-id="new">{{$org_label}}</a>
<a class="dropdown-item add-vcard-title add-field" style="display: none" href="#" data-add="vcard-title" data-id="new">{{$title_label}}</a>
@@ -188,7 +188,7 @@ $(document).ready(function() {
<div class="vcard-fn-create mb-3">
<div class="form-vcard-fn-wrapper">
<div class="mb-3 form-vcard-fn">
- <div class="vcard-nophoto"><i class="fa fa-user"></i></div><input type="text" name="fn" value="" placeholder="{{$name_label}}">
+ <div class="vcard-nophoto"><i class="bi bi-person"></i></div><input type="text" name="fn" value="" placeholder="{{$name_label}}">
</div>
</div>
</div>
@@ -197,7 +197,7 @@ $(document).ready(function() {
<div class="form-vcard-org-wrapper">
<div class="mb-3 form-vcard-org">
<input type="text" name="org" value="" placeholder="{{$org_label}}">
- <i data-remove="vcard-org" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-org" data-id="new" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
</div>
@@ -206,7 +206,7 @@ $(document).ready(function() {
<div class="form-vcard-title-wrapper">
<div class="mb-3 form-vcard-title">
<input type="text" name="title" value="" placeholder="{{$title_label}}">
- <i data-remove="vcard-title" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-title" data-id="new" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
</div>
@@ -221,7 +221,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="tel[]" value="" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="new" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
</div>
@@ -236,7 +236,7 @@ $(document).ready(function() {
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="email[]" value="" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="new" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
</div>
</div>
@@ -272,9 +272,9 @@ $(document).ready(function() {
<input type="hidden" name="target" value="{{$id}}">
<input type="hidden" name="uri" value="{{$card.uri}}">
<div class="section-content-wrapper-np">
- <div id="vcard-cancel-{{$card.id}}" class="vcard-cancel vcard-cancel-btn" data-id="{{$card.id}}" data-action="cancel"><i class="fa fa-close"></i></div>
+ <div id="vcard-cancel-{{$card.id}}" class="vcard-cancel vcard-cancel-btn" data-id="{{$card.id}}" data-action="cancel"><i class="bi bi-x-lg"></i></div>
<div id="vcard-add-field-{{$card.id}}" class="dropdown float-end vcard-add-field">
- <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="fa fa-plus"></i> {{$add_field}}</button>
+ <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="bi bi-plus-lg"></i> {{$add_field}}</button>
<div class="dropdown-menu dropdown-menu-end">
<a class="dropdown-item add-vcard-org add-field"{{if $card.org}} style="display: none"{{/if}} href="#" data-add="vcard-org" data-id="{{$card.id}}">{{$org_label}}</a>
<a class="dropdown-item add-vcard-title add-field"{{if $card.title}} style="display: none"{{/if}} href="#" data-add="vcard-title" data-id="{{$card.id}}">{{$title_label}}</a>
@@ -287,7 +287,7 @@ $(document).ready(function() {
</div>
</div>
<div id="vcard-header-{{$card.id}}" class="vcard-header" data-id="{{$card.id}}" data-action="open">
- {{if $card.photo}}<img class="vcard-photo" src="{{$card.photo}}" width="32px" height="32px">{{else}}<div class="vcard-nophoto"><i class="fa fa-user"></i></div>{{/if}}
+ {{if $card.photo}}<img class="vcard-photo" src="{{$card.photo}}" width="32px" height="32px">{{else}}<div class="vcard-nophoto"><i class="bi bi-person"></i></div>{{/if}}
<span id="vcard-preview-{{$card.id}}" class="vcard-preview">
{{if $card.fn}}<span class="vcard-fn-preview">{{$card.fn}}</span>{{/if}}
{{if $card.emails.0.address}}<span class="vcard-email-preview hidden-xs">{{$card.emails.0.address}}</span>{{/if}}
@@ -303,7 +303,7 @@ $(document).ready(function() {
{{if $card.org}}
<div class="mb-3 form-vcard-org">
<input type="text" name="org" value="{{$card.org}}" size="{{$card.org|count_characters:true}}" placeholder="{{$org_label}}">
- <i data-remove="vcard-org" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-org" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/if}}
</div>
@@ -314,7 +314,7 @@ $(document).ready(function() {
{{if $card.title}}
<div class="mb-3 form-vcard-title">
<input type="text" name="title" value="{{$card.title}}" size="{{$card.title|count_characters:true}}" placeholder="{{$title_label}}">
- <i data-remove="vcard-title" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-title" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/if}}
</div>
@@ -334,7 +334,7 @@ $(document).ready(function() {
<option value="OTHER"{{if $tel.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="tel[]" value="{{$tel.nr}}" size="{{$tel.nr|count_characters:true}}" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -354,7 +354,7 @@ $(document).ready(function() {
<option value="OTHER"{{if $email.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="email[]" value="{{$email.address}}" size="{{$email.address|count_characters:true}}" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -373,7 +373,7 @@ $(document).ready(function() {
<option value="OTHER"{{if $impp.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="impp[]" value="{{$impp.address}}" size="{{$impp.address|count_characters:true}}" placeholder="{{$impp_label}}">
- <i data-remove="vcard-impp" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-impp" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -392,7 +392,7 @@ $(document).ready(function() {
<option value="OTHER"{{if $url.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="url[]" value="{{$url.address}}" size="{{$url.address|count_characters:true}}" placeholder="{{$url_label}}">
- <i data-remove="vcard-url" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-url" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -412,7 +412,7 @@ $(document).ready(function() {
<option value="WORK"{{if $adr.type.0 == 'WORK'}} selected="selected"{{/if}}>{{$work}}</option>
<option value="OTHER"{{if $adr.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
- <i data-remove="vcard-adr" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-adr" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div class="mb-3">
<input type="text" name="adr[{{$adr@index}}][]" value="{{$adr.address.0}}" size="{{$adr.address.0|count_characters:true}}" placeholder="{{$po_box}}">
@@ -445,7 +445,7 @@ $(document).ready(function() {
<div class="form-vcard-note-wrapper">
{{if $card.note}}
<label>{{$note_label}}</label>
- <i data-remove="vcard-note" data-id="{{$card.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-note" data-id="{{$card.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
<textarea name="note" class="form-control">{{$card.note}}</textarea>
{{/if}}
</div>
diff --git a/view/tpl/cdav_calendar.tpl b/view/tpl/cdav_calendar.tpl
index 5d8c6115f..cd2e45b8c 100644
--- a/view/tpl/cdav_calendar.tpl
+++ b/view/tpl/cdav_calendar.tpl
@@ -106,7 +106,7 @@ $(document).ready(function() {
if(! $('#l2s').length)
$('#id_title_wrapper').prepend('<span id="l2s" class="float-end"></span>');
- $('#l2s').html('<a href="' + event.extendedProps.plink[0] + '" target="_blank"><i class="fa fa-external-link"></i> ' + event.extendedProps.plink[1] + '</a>');
+ $('#l2s').html('<a href="' + event.extendedProps.plink[0] + '" target="_blank"><i class="bi bi-box-arrow-up-right"></i> ' + event.extendedProps.plink[1] + '</a>');
}
else {
$('#l2s').remove();
@@ -349,7 +349,7 @@ $(document).ready(function() {
$('.section-content-tools-wrapper, #event_form_wrapper').show();
$('#id_title_wrapper').prepend('<span id="l2s" class="float-end"></span>');
- $('#l2s').html('<a href="' + resource.plink[0] + '" target="_blank"><i class="fa fa-external-link"></i> ' + resource.plink[1] + '</a>');
+ $('#l2s').html('<a href="' + resource.plink[0] + '" target="_blank"><i class="bi bi-box-arrow-up-right"></i> ' + resource.plink[1] + '</a>');
event_id = resource.id;
event_uri = resource.event_hash;
@@ -411,7 +411,7 @@ function add_remove_json_source(source, color, editable, status) {
var selector = '#calendar-btn-' + id;
if(status === undefined)
- status = 'fa-calendar-check-o';
+ status = 'bi-calendar-check';
if(status === 'drop') {
eventSource.remove();
@@ -419,16 +419,16 @@ function add_remove_json_source(source, color, editable, status) {
return;
}
- if($(selector).hasClass('fa-calendar-o')) {
+ if($(selector).hasClass('bi-calendar')) {
calendar.addEventSource({ id: id, url: source, color: color, editable: editable });
- $(selector).removeClass('fa-calendar-o');
+ $(selector).removeClass('bi-calendar');
$(selector).addClass(status);
$.get('/cdav/calendar/switch/' + id + '/1');
}
else {
eventSource.remove();
$(selector).removeClass(status);
- $(selector).addClass('fa-calendar-o');
+ $(selector).addClass('bi-calendar');
$.get('/cdav/calendar/switch/' + id + '/0');
}
}
@@ -559,11 +559,11 @@ function reset_form() {
function on_more() {
if($('#more_block').hasClass('open')) {
- $('#event_more').html('<i class="fa fa-caret-down"></i> {{$more}}');
+ $('#event_more').html('<i class="bi bi-caret-down"></i> {{$more}}');
$('#more_block').removeClass('open').hide();
}
else {
- $('#event_more').html('<i class="fa fa-caret-up"></i> {{$less}}');
+ $('#event_more').html('<i class="bi bi-caret-up"></i> {{$less}}');
$('#more_block').addClass('open').show();
}
}
@@ -589,12 +589,12 @@ function exportDate() {
<a class="dropdown-item" href="#" onclick="changeView('listDay'); return false;">{{$list_day}}</a>
</div>
<div class="btn-group">
- <button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="fa fa-backward"></i></button>
- <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><span id="events-spinner" class="spinner s"></span><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>
+ <button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="bi bi-chevron-left"></i></button>
+ <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><span id="events-spinner" class="spinner s"></span><i class="bi bi-crosshair" style="display: none; padding: 0.065rem;"></i></button>
+ <button id="next-btn" class="btn btn-outline-secondary btn-sm" title="{{$next}}"><i class="bi bi-chevron-right"></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>
+ <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="bi bi-arrows-angle-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="bi bi-arrows-angle-contract"></i></button>
</div>
</div>
<h2 id="title"></h2>
@@ -643,8 +643,8 @@ function exportDate() {
</div>
<div class="mb-3">
<div class="float-end">
- <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-bs-toggle="modal" data-bs-target="#aclModal"><i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i></button>
+ <button id="event_more" type="button" class="btn btn-outline-secondary btn-sm"><i class="bi bi-caret-down"></i> {{$more}}</button>
+ <button id="dbtn-acl" class="btn btn-outline-secondary btn-sm d-none" type="button" data-bs-toggle="modal" data-bs-target="#aclModal"><i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i></button>
<button id="event_submit" type="button" value="" class="btn btn-primary btn-sm"></button>
</div>
diff --git a/view/tpl/cdav_widget_addressbook.tpl b/view/tpl/cdav_widget_addressbook.tpl
index fdaa26710..54b0a84d5 100644
--- a/view/tpl/cdav_widget_addressbook.tpl
+++ b/view/tpl/cdav_widget_addressbook.tpl
@@ -3,11 +3,11 @@
{{foreach $addressbooks as $addressbook}}
<div id="addressbook-{{$addressbook.id}}" class="ml-3">
<div class="mb-3">
- <i class="fa fa-user generic-icons"></i><a href="/cdav/addressbook/{{$addressbook.id}}">{{$addressbook.displayname}}</a>
+ <i class="bi bi-person generic-icons"></i><a href="/cdav/addressbook/{{$addressbook.id}}">{{$addressbook.displayname}}</a>
<div class="float-end">
- <i id="edit-icon" class="fa fa-pencil fakelink generic-icons" onclick="openClose('edit-addressbook-{{$addressbook.id}}')"></i>
- <a href="/cdav/addressbooks/{{$addressbook.ownernick}}/{{$addressbook.uri}}/?export"><i id="download-icon" class="fa fa-cloud-download fakelink generic-icons"></i></a>
- <a href="#" onclick="dropItem('/cdav/addressbook/drop/{{$addressbook.id}}', '#addressbook-{{$addressbook.id}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <i id="edit-icon" class="bi bi-pencil fakelink generic-icons" onclick="openClose('edit-addressbook-{{$addressbook.id}}')"></i>
+ <a href="/cdav/addressbooks/{{$addressbook.ownernick}}/{{$addressbook.uri}}/?export"><i id="download-icon" class="bi bi-download fakelink generic-icons"></i></a>
+ <a href="#" onclick="dropItem('/cdav/addressbook/drop/{{$addressbook.id}}', '#addressbook-{{$addressbook.id}}'); return false;"><i class="bi bi-trash drop-icons"></i></a>
</div>
</div>
<div id="edit-addressbook-{{$addressbook.id}}" class="sub-menu" style="display: none;">
@@ -30,7 +30,7 @@
<h3>{{$tools_label}}</h3>
<ul class="nav nav-pills flex-column">
<li class="nav-item">
- <a class="nav-link" href="#" onclick="openClose('create-addressbook'); return false;"><i class="fa fa-user-plus generic-icons"></i> {{$create_label}}</a>
+ <a class="nav-link" href="#" onclick="openClose('create-addressbook'); return false;"><i class="bi bi-person-plus generic-icons"></i> {{$create_label}}</a>
</li>
<div id="create-addressbook" class="sub-menu-wrapper">
<div class="sub-menu">
@@ -43,7 +43,7 @@
</div>
</div>
<li class="nav-item">
- <a class="nav-link" href="#" onclick="openClose('upload-form'); return false;"><i class="fa fa-cloud-upload generic-icons"></i> {{$import_label}}</a>
+ <a class="nav-link" href="#" onclick="openClose('upload-form'); return false;"><i class="bi bi-upload generic-icons"></i> {{$import_label}}</a>
</li>
<div id="upload-form" class="sub-menu-wrapper">
<div class="sub-menu">
diff --git a/view/tpl/cdav_widget_calendar.tpl b/view/tpl/cdav_widget_calendar.tpl
index b076a3320..aff01197f 100644
--- a/view/tpl/cdav_widget_calendar.tpl
+++ b/view/tpl/cdav_widget_calendar.tpl
@@ -3,9 +3,9 @@
{{foreach $channel_calendars as $channel_calendar}}
<div id="calendar-{{$channel_calendar.calendarid}}">
<div class="ml-3{{if !$channel_calendar@last}} mb-3{{/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 cursor-pointer" onclick="add_remove_json_source('{{$channel_calendar.json_source}}', '{{$channel_calendar.color}}', {{$channel_calendar.editable}})" style="color: {{$channel_calendar.color}};"></i>{{$channel_calendar.displayname}}
+ <i id="calendar-btn-{{$channel_calendar.calendarid}}" class="bi {{if $channel_calendar.switch}}bi-calendar-check{{else}}bi-calendar{{/if}} generic-icons-nav cursor-pointer" 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-end">
- <a class="text-reset" href="#" onclick="exportDate(); return false;"><i id="download-icon" class="fa fa-cloud-download cursor-pointer generic-icons-right"></i></a>
+ <a class="text-reset" href="#" onclick="exportDate(); return false;"><i id="download-icon" class="bi bi-download cursor-pointer generic-icons-right"></i></a>
</div>
</div>
</div>
@@ -18,20 +18,20 @@
{{foreach $my_calendars as $calendar}}
<div id="calendar-{{$calendar.calendarid}}">
<div class="ml-3{{if !$calendar@last}} mb-3{{/if}}">
- <i id="calendar-btn-{{$calendar.calendarid}}" class="fa {{if $calendar.switch}}fa-calendar-check-o{{else}}fa-calendar-o{{/if}} generic-icons cursor-pointer" onclick="add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}})" style="color: {{$calendar.color}};"></i>{{$calendar.displayname}}
+ <i id="calendar-btn-{{$calendar.calendarid}}" class="bi {{if $calendar.switch}}bi-calendar-check{{else}}bi-calendar{{/if}} generic-icons-nav cursor-pointer" onclick="add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}})" style="color: {{$calendar.color}};"></i>{{$calendar.displayname}}
<div class="float-end">
- <i id="edit-icon" class="fa fa-pencil cursor-pointer generic-icons" onclick="openClose('edit-calendar-{{$calendar.calendarid}}')"></i>
- <a class="text-reset" href="/cdav/calendars/{{$calendar.ownernick}}/{{$calendar.uri}}/?export"><i id="download-icon" class="fa fa-cloud-download cursor-pointer generic-icons"></i></a>
- <i id="share-icon" class="fa fa-share-alt cursor-pointer generic-icons" onclick="openClose('share-calendar-{{$calendar.calendarid}}')"></i>
- <a class="text-reset" href="#" onclick="var drop = dropItem('/cdav/calendar/drop/{{$calendar.calendarid}}/{{$calendar.instanceid}}', '#calendar-{{$calendar.calendarid}}'); if(drop) { add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}}, 'drop'); } return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <i id="edit-icon" class="bi bi-pencil cursor-pointer generic-icons-right" onclick="openClose('edit-calendar-{{$calendar.calendarid}}')"></i>
+ <a class="text-reset" href="/cdav/calendars/{{$calendar.ownernick}}/{{$calendar.uri}}/?export"><i id="download-icon" class="bi bi-download cursor-pointer generic-icons-right"></i></a>
+ <i id="share-icon" class="bi bi-share cursor-pointer generic-icons-right" onclick="openClose('share-calendar-{{$calendar.calendarid}}')"></i>
+ <a class="text-reset" href="#" onclick="var drop = dropItem('/cdav/calendar/drop/{{$calendar.calendarid}}/{{$calendar.instanceid}}', '#calendar-{{$calendar.calendarid}}'); if(drop) { add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}}, 'drop'); } return false;"><i class="bi bi-trash generic-icons-right"></i></a>
</div>
<div id="share-calendar-{{$calendar.calendarid}}" class="sub-menu" style="display: none; border-color: {{$calendar.color}};">
{{if $calendar.sharees}}
{{foreach $calendar.sharees as $sharee}}
<div id="sharee-{{$calendar.calendarid}}-{{$sharee@iteration}}" class="mb-3">
- <i class="fa fa-share generic-icons"></i>{{$sharee.name}}&nbsp;{{$sharee.access}}
+ <i class="bi bi-share generic-icons-right"></i>{{$sharee.name}}&nbsp;{{$sharee.access}}
<div class="float-end">
- <a class="text-reset" href="#" onclick="dropItem('/cdav/calendar/dropsharee/{{$calendar.calendarid}}/{{$calendar.instanceid}}/{{$sharee.hash}}', '#sharee-{{$calendar.calendarid}}-{{$sharee@iteration}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <a class="text-reset" href="#" onclick="dropItem('/cdav/calendar/dropsharee/{{$calendar.calendarid}}/{{$calendar.instanceid}}/{{$sharee.hash}}', '#sharee-{{$calendar.calendarid}}-{{$sharee@iteration}}'); return false;"><i class="bi bi-trash generic-icons-right"></i></a>
</div>
</div>
{{/foreach}}
@@ -80,10 +80,10 @@
<h3>{{$shared_calendars_label}}</h3>
{{foreach $shared_calendars as $calendar}}
<div id="shared-calendar-{{$calendar.calendarid}}" class="ml-3{{if !$calendar@last}} mb-3{{/if}}">
- <i id="calendar-btn-{{$calendar.calendarid}}" class="fa {{if $calendar.switch}}{{if $calendar.access == 'read-write'}}fa-calendar-check-o{{else}}fa-calendar-times-o{{/if}}{{else}}fa-calendar-o{{/if}} generic-icons cursor-pointer" onclick="add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}}, {{if $calendar.access == 'read-write'}}'fa-calendar-check-o'{{else}}'fa-calendar-times-o'{{/if}})" style="color: {{$calendar.color}};"></i>{{$calendar.displayname}} ({{$calendar.sharer}})
+ <i id="calendar-btn-{{$calendar.calendarid}}" class="bi {{if $calendar.switch}}{{if $calendar.access == 'read-write'}}bi-calendar-check{{else}}bi-calendar-x{{/if}}{{else}}bi-calendar{{/if}} generic-icons-nav cursor-pointer" onclick="add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}}, {{if $calendar.access == 'read-write'}}'bi-calendar-check'{{else}}'bi-calendar-x'{{/if}})" style="color: {{$calendar.color}};"></i>{{$calendar.displayname}} ({{$calendar.sharer}})
<div class="float-end">
- <a class="text-reset" href="/cdav/calendars/{{$calendar.ownernick}}/{{$calendar.uri}}/?export"><i id="download-icon" class="fa fa-cloud-download cursor-pointer generic-icons"></i></a>
- <a class="text-reset" href="#" onclick="var drop = dropItem('/cdav/calendar/drop/{{$calendar.calendarid}}/{{$calendar.instanceid}}', '#shared-calendar-{{$calendar.calendarid}}'); if(drop) { add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}}, 'drop'); } return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <a class="text-reset" href="/cdav/calendars/{{$calendar.ownernick}}/{{$calendar.uri}}/?export"><i id="download-icon" class="bi bi-download cursor-pointer generic-icons-right"></i></a>
+ <a class="text-reset" href="#" onclick="var drop = dropItem('/cdav/calendar/drop/{{$calendar.calendarid}}/{{$calendar.instanceid}}', '#shared-calendar-{{$calendar.calendarid}}'); if(drop) { add_remove_json_source('{{$calendar.json_source}}', '{{$calendar.color}}', {{$calendar.editable}}, 'drop'); } return false;"><i class="bi bi-trash generic-icons-right"></i></a>
</div>
</div>
{{/foreach}}
@@ -94,7 +94,7 @@
<h3>{{$tools_label}}</h3>
<div class="nav nav-pills flex-column">
<li class="nav-item">
- <a class="nav-link text-reset" href="#" onclick="openClose('create-calendar'); return false;"><i class="fa fa-calendar-plus-o generic-icons"></i> {{$create_label}}</a>
+ <a class="nav-link text-reset" href="#" onclick="openClose('create-calendar'); return false;"><i class="bi bi-calendar-plus generic-icons-nav"></i> {{$create_label}}</a>
</li>
<div id="create-calendar" class="sub-menu-wrapper">
<div class="sub-menu">
@@ -111,7 +111,7 @@
</div>
</div>
<li class="nav-item">
- <a class="nav-link text-reset" href="#" onclick="openClose('upload-form'); return false;"><i class="fa fa-cloud-upload generic-icons"></i> {{$import_label}}</a>
+ <a class="nav-link text-reset" href="#" onclick="openClose('upload-form'); return false;"><i class="bi bi-upload generic-icons-nav"></i> {{$import_label}}</a>
</li>
<div id="upload-form" class="sub-menu-wrapper">
<div class="sub-menu">
diff --git a/view/tpl/channel.tpl b/view/tpl/channel.tpl
index 04278fbf4..ade8e5126 100644
--- a/view/tpl/channel.tpl
+++ b/view/tpl/channel.tpl
@@ -3,11 +3,11 @@
{{if $channel.default_links}}
{{if $channel.default}}
<div>
- <i class="fa fa-check-square-o"></i>&nbsp;{{$msg_default}}
+ <i class="bi bi-check-square"></i>&nbsp;{{$msg_default}}
</div>
{{else}}
<a href="manage/{{$channel.channel_id}}/default" class="make-default-link">
- <i class="fa fa-square-o"></i>&nbsp;{{$msg_make_default}}
+ <i class="bi bi-square"></i>&nbsp;{{$msg_make_default}}
</a>
{{/if}}
{{/if}}
@@ -17,10 +17,10 @@
</div>
<h3>
{{if $selected == $channel.channel_id}}
- <i class="fa fa-circle text-success" title="{{$msg_selected}}"></i>
+ <i class="bi bi-circle-fill text-success" title="{{$msg_selected}}"></i>
{{/if}}
{{if $channel.delegate}}
- <i class="fa fa-arrow-circle-right" title="{{$delegated_desc}}"></i>
+ <i class="bi fa-arrow-circle-right" title="{{$delegated_desc}}"></i>
{{/if}}
{{if $selected != $channel.channel_id}}<a href="{{$channel.link}}" title="{{$channel.channel_name}}">{{/if}}
{{$channel.channel_name}}
@@ -37,7 +37,7 @@
<div class="channel-notifications-wrapper">
{{if !$channel.delegate}}
<div class="channel-notification">
- <i class="fa fa-fw fa-user{{if $channel.intros != 0}} text-danger{{/if}}"></i>
+ <i class="bi bi-person{{if $channel.intros != 0}} text-danger{{/if}}"></i>
{{if $channel.intros != 0}}<a href='manage/{{$channel.channel_id}}/connections/ifpending'>{{/if}}{{$channel.intros|string_format:$intros_format}}{{if $channel.intros != 0}}</a>{{/if}}
</div>
{{/if}}
diff --git a/view/tpl/channel_activities.tpl b/view/tpl/channel_activities.tpl
index 3ec37e235..72c654b60 100644
--- a/view/tpl/channel_activities.tpl
+++ b/view/tpl/channel_activities.tpl
@@ -1,5 +1,5 @@
<div class="mb-1 text-uppercase">
- <a href="{{$url}}"><i class="fa fa-fw fa-{{$icon}} generic-icons-nav"></i>{{$label}}</a>
+ <a href="{{$url}}"><i class="bi bi-{{$icon}} generic-icons-nav"></i>{{$label}}</a>
</div>
<div class="row row-cols-1 row-cols-sm-3 g-4 mb-4">
{{foreach $items as $i}}
diff --git a/view/tpl/channel_activities_photos.tpl b/view/tpl/channel_activities_photos.tpl
index cba157627..171b511d7 100644
--- a/view/tpl/channel_activities_photos.tpl
+++ b/view/tpl/channel_activities_photos.tpl
@@ -1,5 +1,5 @@
<div class="mb-1 text-uppercase">
- <a href="{{$url}}"><i class="fa fa-fw fa-{{$icon}} generic-icons-nav"></i>{{$label}}</a>
+ <a href="{{$url}}"><i class="bi bi-{{$icon}} generic-icons-nav"></i>{{$label}}</a>
</div>
<div id="photo-album" class="mb-4">
{{foreach $items as $i}}
diff --git a/view/tpl/channels.tpl b/view/tpl/channels.tpl
index 60bc85933..92cd9dd8c 100644
--- a/view/tpl/channels.tpl
+++ b/view/tpl/channels.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <a class="btn btn-success btn-sm float-end" href="{{$create.0}}" title="{{$create.1}}"><i class="fa fa-plus-circle"></i>&nbsp;{{$create.2}}</a>
+ <a class="btn btn-success btn-sm float-end" href="{{$create.0}}" title="{{$create.1}}"><i class="bi bi-plus-lg"></i>&nbsp;{{$create.2}}</a>
<h2>{{$header}}</h2>
</div>
<div class="section-content-wrapper-np">
diff --git a/view/tpl/chat.tpl b/view/tpl/chat.tpl
index a0e528894..620839ec8 100644
--- a/view/tpl/chat.tpl
+++ b/view/tpl/chat.tpl
@@ -5,11 +5,11 @@
<form id="chat-destroy" method="post" action="chat">
<input type="hidden" name="room_name" value="{{$room_name}}" />
<input type="hidden" name="action" value="drop" />
- <button class="btn btn-danger btn-sm" type="submit" name="submit" value="{{$drop}}" onclick="return confirmDelete();"><i class="fa fa-trash-o"></i>&nbsp;{{$drop}}</button>
+ <button class="btn btn-danger btn-sm" type="submit" name="submit" value="{{$drop}}" onclick="return confirmDelete();"><i class="bi bi-trash"></i>&nbsp;{{$drop}}</button>
</form>
{{/if}}
- <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(); adjustFullscreenTopBarHeight();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false); adjustInlineTopBarHeight();"><i class="fa fa-compress"></i></button>
+ <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(); adjustFullscreenTopBarHeight();"><i class="bi fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false); adjustInlineTopBarHeight();"><i class="bi fa-compress"></i></button>
</div>
<h2>{{$room_name}}</h2>
<div class="clear"></div>
@@ -30,60 +30,60 @@
</div>
<div id="chat-submit-wrapper" class="clearfix">
<div id="chat-submit" class="dropup float-end">
- <button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown"><i class="fa fa-cog"></i></button>
+ <button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown"><i class="bi bi-gear"></i></button>
<button class="btn btn-primary btn-sm" type="submit" id="chat-submit" name="submit" value="{{$submit}}">{{$submit}}</button>
<div class="dropdown-menu dropdown-menu-end">
- <a class="dropdown-item" href="{{$baseurl}}/chatsvc?f=&room_id={{$room_id}}&status=online"><i class="fa fa-circle online"></i>&nbsp;{{$online}}</a>
- <a class="dropdown-item" href="{{$baseurl}}/chatsvc?f=&room_id={{$room_id}}&status=away"><i class="fa fa-circle away"></i>&nbsp;{{$away}}</a>
- <a class="dropdown-item" href="{{$baseurl}}/chat/{{$nickname}}/{{$room_id}}/leave"><i class="fa fa-circle leave"></i>&nbsp;{{$leave}}</a>
+ <a class="dropdown-item" href="{{$baseurl}}/chatsvc?f=&room_id={{$room_id}}&status=online"><i class="bi bi-circle-fill online"></i>&nbsp;{{$online}}</a>
+ <a class="dropdown-item" href="{{$baseurl}}/chatsvc?f=&room_id={{$room_id}}&status=away"><i class="bi bi-circle-fill away"></i>&nbsp;{{$away}}</a>
+ <a class="dropdown-item" href="{{$baseurl}}/chat/{{$nickname}}/{{$room_id}}/leave"><i class="bi bi-circle-fill leave"></i>&nbsp;{{$leave}}</a>
<div class="dropdown-divider"></div>
- <a id="toggle-notifications" class="dropdown-item" href="" onclick="toggleChatNotifications(); return false;"><i id="toggle-notifications-icon" class="fa fa-bell-slash-o"></i>&nbsp;Toggle notifications</a>
- <a id="toggle-notifications-audio" class="dropdown-item disabled" href="" onclick="toggleChatNotificationAudio(); return false;"><i id="toggle-notifications-audio-icon" class="fa fa-volume-off"></i>&nbsp;Toggle sound</a>
+ <a id="toggle-notifications" class="dropdown-item" href="" onclick="toggleChatNotifications(); return false;"><i id="toggle-notifications-icon" class="bi fa-bell-slash-o"></i>&nbsp;Toggle notifications</a>
+ <a id="toggle-notifications-audio" class="dropdown-item disabled" href="" onclick="toggleChatNotificationAudio(); return false;"><i id="toggle-notifications-audio-icon" class="bi fa-volume-off"></i>&nbsp;Toggle sound</a>
{{if $bookmark_link}}
<div class="dropdown-divider"></div>
- <a class="dropdown-item" href="{{$bookmark_link}}" target="_blank" ><i class="fa fa-bookmark"></i>&nbsp;{{$bookmark}}</a>
+ <a class="dropdown-item" href="{{$bookmark_link}}" target="_blank" ><i class="bi fa-bookmark"></i>&nbsp;{{$bookmark}}</a>
{{/if}}
</div>
</div>
<div id="chat-tools" class="btn-toolbar">
<div class="btn-group me-2">
<button id="main-editor-bold" class="btn btn-outline-secondary btn-sm" title="{{$bold}}" onclick="inserteditortag('b', 'chatText'); return false;">
- <i class="fa fa-bold jot-icons"></i>
+ <i class="bi bi-type-bold jot-icons"></i>
</button>
<button id="main-editor-italic" class="btn btn-outline-secondary btn-sm" title="{{$italic}}" onclick="inserteditortag('i', 'chatText'); return false;">
- <i class="fa fa-italic jot-icons"></i>
+ <i class="bi bi-type-italic jot-icons"></i>
</button>
<button id="main-editor-underline" class="btn btn-outline-secondary btn-sm" title="{{$underline}}" onclick="inserteditortag('u', 'chatText'); return false;">
- <i class="fa fa-underline jot-icons"></i>
+ <i class="bi bi-type-underline jot-icons"></i>
</button>
<button id="main-editor-quote" class="btn btn-outline-secondary btn-sm" title="{{$quote}}" onclick="inserteditortag('quote', 'chatText'); return false;">
- <i class="fa fa-quote-left jot-icons"></i>
+ <i class="bi bi-quote jot-icons"></i>
</button>
<button id="main-editor-code" class="btn btn-outline-secondary btn-sm" title="{{$code}}" onclick="inserteditortag('code', 'chatText'); return false;">
- <i class="fa fa-terminal jot-icons"></i>
+ <i class="bi bi-code jot-icons"></i>
</button>
</div>
<div class="btn-group me-2 d-none d-md-flex">
<button id="chat-link-wrapper" class="btn btn-outline-secondary btn-sm" onclick="chatJotGetLink(); return false;" >
- <i id="chat-link" class="fa fa-link jot-icons" title="{{$insert}}" ></i>
+ <i id="chat-link" class="bi bi-link-45deg jot-icons" title="{{$insert}}" ></i>
</button>
</div>
{{if $feature_encrypt}}
<div class="btn-group me-2 d-none d-md-flex">
<button id="chat-encrypt-wrapper" class="btn btn-outline-secondary btn-sm" onclick="sodium_encrypt('#chatText'); return false;">
- <i id="chat-encrypt" class="fa fa-key jot-icons" title="{{$encrypt}}" ></i>
+ <i id="chat-encrypt" class="bi bi-key jot-icons" title="{{$encrypt}}" ></i>
</button>
</div>
{{/if}}
<div class="btn-group dropup d-md-none">
<button type="button" id="more-tools" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
- <i id="more-tools-icon" class="fa fa-cog jot-icons"></i>
+ <i id="more-tools-icon" class="bi bi-gear jot-icons"></i>
</button>
<div class="dropdown-menu">
- <a class="dropdown-item" href="#" onclick="chatJotGetLink(); return false;" ><i class="fa fa-link"></i>&nbsp;{{$insert}}</a>
+ <a class="dropdown-item" href="#" onclick="chatJotGetLink(); return false;" ><i class="bi bi-link-45deg"></i>&nbsp;{{$insert}}</a>
{{if $feature_encrypt}}
<div class="dropdown-divider"></div>
- <a class="dropdown-item" href="#" onclick="sodium_encrypt('#chatText'); return false;"><i class="fa fa-key"></i>&nbsp;{{$encrypt}}</a>
+ <a class="dropdown-item" href="#" onclick="sodium_encrypt('#chatText'); return false;"><i class="bi bi-key"></i>&nbsp;{{$encrypt}}</a>
{{/if}}
</div>
</div>
diff --git a/view/tpl/chatroom_new.tpl b/view/tpl/chatroom_new.tpl
index 2977563f9..c2eac418a 100644
--- a/view/tpl/chatroom_new.tpl
+++ b/view/tpl/chatroom_new.tpl
@@ -3,7 +3,7 @@
{{include file="field_input.tpl" field=$name}}
{{include file="field_input.tpl" field=$chat_expire}}
<div class="btn-group float-end">
- <button id="dbtn-acl" class="btn btn-outline-secondary" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$permissions}}" onclick="return false;" ><i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i></button>
+ <button id="dbtn-acl" class="btn btn-outline-secondary" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$permissions}}" onclick="return false;" ><i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i></button>
<button id="dbtn-submit" class="acl-submit btn btn-primary" type="submit" name="submit" value="{{$submit}}" data-formid="chatroom-new-form">{{$submit}}</button>
</div>
<div class="clear"></div>
diff --git a/view/tpl/chatrooms.tpl b/view/tpl/chatrooms.tpl
index 88c42882c..7948152f6 100644
--- a/view/tpl/chatrooms.tpl
+++ b/view/tpl/chatrooms.tpl
@@ -1,7 +1,7 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper clearfix">
{{if $is_owner}}
- <button type="button" class="btn btn-success btn-sm float-end acl-form-trigger" onclick="openClose('chatroom-new');" data-form_id="chatroom-new-form"><i class="fa fa-plus-circle"></i>&nbsp;{{$newroom}}</button>
+ <button type="button" class="btn btn-success btn-sm float-end acl-form-trigger" onclick="openClose('chatroom-new');" data-form_id="chatroom-new-form"><i class="bi bi-plus-lg"></i>&nbsp;{{$newroom}}</button>
{{/if}}
<h2>{{$header}}</h2>
</div>
@@ -23,7 +23,7 @@
<td>{{$room.cr_expire}}&nbsp;min</td>
<td class="chatrooms-index-tool{{if $room.allow_cid || $room.allow_gid || $room.deny_cid || $room.deny_gid}} dropdown float-end{{/if}}">
{{if $room.allow_cid || $room.allow_gid || $room.deny_cid || $room.deny_gid}}
- <i class="fa fa-lock lockview" data-bs-toggle="dropdown" onclick="lockview('chatroom',{{$room.cr_id}});"></i>
+ <i class="bi bi-lock lockview" data-bs-toggle="dropdown" onclick="lockview('chatroom',{{$room.cr_id}});"></i>
<ul id="panel-{{$room.cr_id}}" class="lockview-panel dropdown-menu"></ul>
{{/if}}
</td>
diff --git a/view/tpl/cloud_actionspanel.tpl b/view/tpl/cloud_actionspanel.tpl
index 53e509a83..67e95177d 100644
--- a/view/tpl/cloud_actionspanel.tpl
+++ b/view/tpl/cloud_actionspanel.tpl
@@ -11,7 +11,7 @@
<div class="btn-group">
{{if $lockstate}}
<button class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" type="button">
- <i class="jot-perms-icon fa fa-{{$lockstate}}"></i>
+ <i class="jot-perms-icon bi bi-{{$lockstate}}"></i>
</button>
{{/if}}
<button class="btn btn-primary btn-sm float-end" type="submit" value="{{$folder_submit}}">{{$folder_submit}}</button>
@@ -37,7 +37,7 @@
<div class="btn-group">
{{if $lockstate}}
<button class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" type="button">
- <i class="jot-perms-icon fa fa-{{$lockstate}}"></i>
+ <i class="jot-perms-icon bi bi-{{$lockstate}}"></i>
</button>
{{/if}}
<button id="upload-submit" class="btn btn-primary btn-sm float-end">{{$upload_submit}}</button>
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index 9b8d85ab4..ec2d1afe1 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -9,7 +9,7 @@
<div class="card h-100">
<a href="{{$parentpath}}" class="text-decoration-none">
<div class="d-flex align-items-center justify-content-center m-1" style="height: 4.5rem;">
- <i class="fa fa-fw fa-level-up fa-5x" style="font-size: 4rem"></i>
+ <i class="bi bi-arrow-90deg-up" style="font-size: 4rem"></i>
</div>
<div class="card-footer text-center">
<small class="text-muted text-truncate">..</small>
@@ -26,7 +26,7 @@
{{if $item.photo_icon}}
<img src="{{$item.photo_icon}}" class="rounded" alt="{{$item.photo_icon}}" title="{{$item.size_formatted}}" style="max-height: 4rem; width: auto; max-width: 100%;">
{{else}}
- <i class="fa fa-fw {{$item.icon_from_type}}" title="{{$item.size_formatted}}" style="font-size: 4rem"></i>
+ <i class="bi {{$item.icon_from_type}}" title="{{$item.size_formatted}}" style="font-size: 4rem"></i>
{{/if}}
</div>
<div class="card-footer text-truncate text-center">
@@ -52,7 +52,7 @@
{{if $parentpath}}
<tr id="cloud-index-up" class="cloud-index{{if ! $is_root_folder}} attach-drop{{/if}}"{{if ! $is_root_folder}} data-folder="{{$folder_parent}}"/{{/if}}>
<td></td>
- <td><i class="fa fa-level-up"></i></td>
+ <td><i class="bi bi-arrow-90deg-up"></i></td>
<td colspan="6"><a href="{{$parentpath}}" title="{{$parent}}" class="p-2" draggable="false">..</a></td>
</tr>
<tr class="cloud-tools">
@@ -75,25 +75,25 @@
{{if $is_owner}}
<div class="dropdown">
<button class="btn btn-warning btn-sm" id="multi-dropdown-button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-fw fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">{{$bulk_actions_label}}</span>
+ <i class="bi fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">{{$bulk_actions_label}}</span>
</button>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdown-button">
{{if $is_owner}}
- <a id="cloud-multi-tool-perms-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-lock"></i> {{$adjust_permissions_label}}</a>
+ <a id="cloud-multi-tool-perms-btn" class="dropdown-item" href="#"><i class="bi bi-lock"></i> {{$adjust_permissions_label}}</a>
{{/if}}
- <a id="cloud-multi-tool-move-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-copy"></i> {{$move_copy_label}}</a>
- <a id="cloud-multi-tool-categories-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-asterisk"></i> {{$categories_label}}</a>
- <a id="cloud-multi-tool-download-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
- <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> {{$delete_label}}</a>
+ <a id="cloud-multi-tool-move-btn" class="dropdown-item" href="#"><i class="bi fa-copy"></i> {{$move_copy_label}}</a>
+ <a id="cloud-multi-tool-categories-btn" class="dropdown-item" href="#"><i class="bi fa-asterisk"></i> {{$categories_label}}</a>
+ <a id="cloud-multi-tool-download-btn" class="dropdown-item" href="#"><i class="bi bi-download"></i> {{$download_label}}</a>
+ <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="bi bi-trash"></i> {{$delete_label}}</a>
</div>
</div>
{{else if $is_admin}}
<div class="dropdown">
<button class="btn btn-warning btn-sm" id="multi-dropdown-button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-fw fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">{{$bulk_actions_label}}</span>
+ <i class="bi fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">{{$bulk_actions_label}}</span>
</button>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdown-button">
- <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> {{$admin_delete_label}}</a>
+ <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="bi bi-trash"></i> {{$admin_delete_label}}</a>
</div>
</div>
{{/if}}
@@ -123,7 +123,7 @@
<div id="attach-multi-edit-perms" class="btn-group float-end">
{{if $is_owner}}
<button id="multi-dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$permset}}" type="button">
- <i id="multi-jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons jot-perms-icon"></i>
+ <i id="multi-jot-perms-icon" class="bi bi-{{$lockstate}} jot-icons jot-perms-icon"></i>
</button>
{{/if}}
<button id="multi-dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit">
@@ -146,12 +146,12 @@
</div>
{{/if}}
</td>
- <td><i class="fa {{$item.icon_from_type}}" title="{{$item.type}}"></i></td>
+ <td><i class="bi {{$item.icon_from_type}} generic-icons" title="{{$item.type}}"></i></td>
<td><a href="{{$item.rel_path}}" class="p-2" draggable="false">{{$item.name}}</a></td>
<td>{{$item.terms}}</td>
<td class="cloud-index-tool p-2">
{{if $item.lockstate == 'lock'}}
- <i class="fa fa-lock lockview" data-bs-toggle="dropdown" onclick="lockview('attach',{{$item.attach_id}});"></i>
+ <i class="bi bi-lock lockview" data-bs-toggle="dropdown" onclick="lockview('attach',{{$item.attach_id}});"></i>
<ul id="panel-{{$item.attach_id}}" class="lockview-panel dropdown-menu dropdown-menu-end"></ul>
{{/if}}
</td>
@@ -159,41 +159,41 @@
{{if ($is_owner || ($item.is_creator && $has_perms)) && $item.attach_id}}
<div class="dropdown">
<button class="btn btn-link btn-sm" id="dropdown-button-{{$item.attach_id}}" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-fw fa-ellipsis-v"></i>
+ <i class="bi bi-three-dots-vertical"></i>
</button>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdown-button-{{$item.attach_id}}">
- <a id="cloud-tool-info-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-info-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-info"></i> {{$info_label}}</a>
+ <a id="cloud-tool-info-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-info-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-info-lg generic-icons-nav"></i>{{$info_label}}</a>
{{if $is_owner}}
- <a id="cloud-tool-perms-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-perms-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-{{$item.lockstate}}"></i> {{$adjust_permissions_label}}</a>
+ <a id="cloud-tool-perms-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-perms-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-{{$item.lockstate}} generic-icons-nav"></i>{{$adjust_permissions_label}}</a>
{{/if}}
- <a id="cloud-tool-rename-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-rename-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-pencil"></i> {{$rename_label}}</a>
- <a id="cloud-tool-move-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-move-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-copy"></i> {{$move_copy_label}}</a>
- <a id="cloud-tool-categories-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-categories-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-asterisk"></i> {{$categories_label}}</a>
+ <a id="cloud-tool-rename-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-rename-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-pencil generic-icons-nav"></i>{{$rename_label}}</a>
+ <a id="cloud-tool-move-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-move-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-copy generic-icons-nav"></i>{{$move_copy_label}}</a>
+ <a id="cloud-tool-categories-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-categories-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-asterisk generic-icons-nav"></i>{{$categories_label}}</a>
{{if $item.collection}}
- <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
+ <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-download generic-icons-nav"></i>{{$download_label}}</a>
{{else}}
{{if $is_owner}}
- <a id="cloud-tool-share-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-share-btn" href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-share-square-o"></i> {{$post_label}}</a>
+ <a id="cloud-tool-share-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-share-btn" href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]" data-id="{{$item.attach_id}}"><i class="bi bi-arrow-90deg-right generic-icons-nav"></i>{{$post_label}}</a>
{{/if}}
- <a download="{{$item.name}}" id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
+ <a download="{{$item.name}}" id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="bi bi-download generic-icons-nav"></i>{{$download_label}}</a>
{{/if}}
- <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-trash-o"></i> {{$delete_label}}</a>
+ <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-trash generic-icons-nav"></i>{{$delete_label}}</a>
</div>
</div>
{{else}}
{{if $is_admin || $item.attach_id}}
<div class="dropdown">
<button class="btn btn-link btn-sm" id="dropdown-button-{{$item.attach_id}}" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-fw fa-ellipsis-v"></i>
+ <i class="bi bi-three-dots-vertical"></i>
</button>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdown-button-{{$item.attach_id}}">
{{if $item.collection}}
- <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
+ <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-download"></i> {{$download_label}}</a>
{{else}}
- <a id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
+ <a id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="bi bi-download"></i> {{$download_label}}</a>
{{/if}}
{{if $is_admin}}
- <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-trash-o"></i> {{$admin_delete_label}}</a>
+ <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="bi bi-trash"></i> {{$admin_delete_label}}</a>
{{/if}}
</div>
</div>
@@ -255,7 +255,7 @@
<div id="attach-edit-perms-{{$item.attach_id}}" class="btn-group float-end">
{{if $is_owner}}
<button id="dbtn-acl-{{$item.attach_id}}" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$permset}}" type="button">
- <i id="jot-perms-icon-{{$item.attach_id}}" class="fa fa-{{$item.lockstate}} jot-icons jot-perms-icon"></i>
+ <i id="jot-perms-icon-{{$item.attach_id}}" class="bi bi-{{$item.lockstate}} jot-icons jot-perms-icon"></i>
</button>
{{/if}}
<button id="dbtn-submit-{{$item.attach_id}}" class="btn btn-primary btn-sm" type="submit" name="submit">
diff --git a/view/tpl/cloud_header.tpl b/view/tpl/cloud_header.tpl
index 48ada325f..43645a9f5 100644
--- a/view/tpl/cloud_header.tpl
+++ b/view/tpl/cloud_header.tpl
@@ -1,12 +1,12 @@
<div class="section-title-wrapper">
<div class="float-end">
- <a href="cloud_tiles/{{$cpath}}" class="btn btn-sm btn-outline-secondary"><i class="fa fa-fw {{if $tiles}}fa-th-list{{else}}fa-th-large{{/if}}"></i></a>
+ <a href="cloud_tiles/{{$cpath}}" class="btn btn-sm btn-outline-secondary"><i class="bi {{if $tiles}}bi-list{{else}}bi-grid{{/if}}"></i></a>
{{if $actionspanel}}
{{if $is_owner}}
- <a href="/sharedwithme" class="btn btn-sm btn-outline-secondary"><i class="fa fa-cloud-download"></i>&nbsp;{{$shared}}</a>
+ <a href="/sharedwithme" class="btn btn-sm btn-outline-secondary"><i class="bi bi-download"></i>&nbsp;{{$shared}}</a>
{{/if}}
- <button id="files-create-btn" class="btn btn-sm btn-primary" onclick="openClose('files-mkdir-tools'); closeMenu('files-upload-tools');"><i class="fa fa-folder-o"></i>&nbsp;{{$create}}</button>
- <button id="files-upload-btn" class="btn btn-sm btn-success" onclick="openClose('files-upload-tools'); closeMenu('files-mkdir-tools');"><i class="fa fa-plus-circle"></i>&nbsp;{{$upload}}</button>
+ <button id="files-create-btn" class="btn btn-sm btn-primary" onclick="openClose('files-mkdir-tools'); closeMenu('files-upload-tools');"><i class="bi bi-folder"></i>&nbsp;{{$create}}</button>
+ <button id="files-upload-btn" class="btn btn-sm btn-success" onclick="openClose('files-upload-tools'); closeMenu('files-mkdir-tools');"><i class="bi bi-plus-lg"></i>&nbsp;{{$upload}}</button>
{{/if}}
</div>
diff --git a/view/tpl/comment_item.tpl b/view/tpl/comment_item.tpl
index 891d901c9..76b756846 100644
--- a/view/tpl/comment_item.tpl
+++ b/view/tpl/comment_item.tpl
@@ -23,35 +23,35 @@
<div id="comment-edit-bb-{{$id}}" class="btn-toolbar float-start">
<div class="btn-group me-2">
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$edbold}}" onclick="insertbbcomment('{{$comment}}','b', {{$id}}); return false;">
- <i class="fa fa-bold comment-icon"></i>
+ <i class="bi bi-type-bold comment-icon"></i>
</button>
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$editalic}}" onclick="insertbbcomment('{{$comment}}','i', {{$id}}); return false;">
- <i class="fa fa-italic comment-icon"></i>
+ <i class="bi bi-type-italic comment-icon"></i>
</button>
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$eduline}}" onclick="insertbbcomment('{{$comment}}','u', {{$id}}); return false;">
- <i class="fa fa-underline comment-icon"></i>
+ <i class="bi bi-type-underline comment-icon"></i>
</button>
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$edquote}}" onclick="insertbbcomment('{{$comment}}','quote', {{$id}}); return false;">
- <i class="fa fa-quote-left comment-icon"></i>
+ <i class="bi bi-quote comment-icon"></i>
</button>
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$edcode}}" onclick="insertbbcomment('{{$comment}}','code', {{$id}}); return false;">
- <i class="fa fa-terminal comment-icon"></i>
+ <i class="bi bi-code comment-icon"></i>
</button>
</div>
<div class="btn-group me-2">
{{if $can_upload}}
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$edatt}}" onclick="insertCommentAttach('{{$comment}}',{{$id}}); return false;">
- <i class="fa fa-paperclip comment-icon"></i>
+ <i class="bi bi-paperclip comment-icon"></i>
</button>
{{/if}}
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$edurl}}" onclick="insertCommentURL('{{$comment}}',{{$id}}); return false;">
- <i class="fa fa-link comment-icon"></i>
+ <i class="bi bi-link-45deg comment-icon"></i>
</button>
</div>
{{if $feature_encrypt}}
<div class="btn-group me-2">
<button class="btn btn-outline-secondary btn-sm border-0" title="{{$encrypt}}" onclick="sodium_encrypt('#comment-edit-text-' + '{{$id}}'); return false;">
- <i class="fa fa-key comment-icon"></i>
+ <i class="bi bi-key comment-icon"></i>
</button>
</div>
{{/if}}
@@ -60,7 +60,7 @@
<div class="btn-group float-end" id="comment-edit-submit-wrapper-{{$id}}">
{{if $preview}}
<button id="comment-edit-presubmit-{{$id}}" class="btn btn-outline-secondary btn-sm" onclick="preview_comment({{$id}}); return false;" title="{{$preview}}">
- <i class="fa fa-eye comment-icon" ></i>
+ <i class="bi bi-eye comment-icon" ></i>
</button>
{{/if}}
<button id="comment-edit-submit-{{$id}}" class="btn btn-primary btn-sm" type="submit" name="button-submit" onclick="post_comment({{$id}}); return false;">{{$submit}}</button>
diff --git a/view/tpl/common_pills.tpl b/view/tpl/common_pills.tpl
index e2b018d26..73534221f 100644
--- a/view/tpl/common_pills.tpl
+++ b/view/tpl/common_pills.tpl
@@ -2,20 +2,20 @@
{{foreach $pills as $p}}
<li class="nav-item hover-fx-show"{{if $p.id}} id="{{$p.id}}"{{/if}}>
<a class="nav-link{{if $p.sel}} {{$p.sel}}{{/if}}" href="{{$p.url}}"{{if $p.title}} title="{{$p.title}}"{{/if}}{{if $p.sub}} onclick="{{if $p.sel}}closeOpen('{{$p.id}}_sub');{{else}}openClose('{{$p.id}}_sub');{{/if}} return false;"{{/if}}>
- {{if $p.icon}}<i class="fa fa-fw fa-{{$p.icon}}"></i>{{/if}}
+ {{if $p.icon}}<i class="bi bi-{{$p.icon}} generic-icons-nav"></i>{{/if}}
{{if $p.img}}<img class="menu-img-1" src="{{$p.img}}">{{/if}}
{{$p.label}}
- {{if $p.sub}}<i class="fa fa-fw fa-caret-down hover-fx-hide"></i>{{/if}}
+ {{if $p.sub}}<i class="bi bi-caret-down hover-fx-hide"></i>{{/if}}
</a>
{{if $p.sub}}
<ul class="nav nav-pills flex-column ml-4" id="{{$p.id}}_sub"{{if !$p.sel}} style="display: none;"{{/if}}>
{{foreach $p.sub as $ps}}
<li class="nav-item"{{if $ps.id}} id="{{$ps.id}}"{{/if}}>
<a class="nav-link{{if $ps.sel}} {{$ps.sel}}{{/if}}" href="{{$ps.url}}"{{if $ps.title}} title="{{$ps.title}}"{{/if}}>
- {{if $ps.icon}}<i class="fa fa-fw fa-{{$ps.icon}}"></i>{{/if}}
+ {{if $ps.icon}}<i class="bi bi-{{$ps.icon}}"></i>{{/if}}
{{if $ps.img}}<img class="menu-img-1" src="{{$ps.img}}">{{/if}}
{{$ps.label}}
- {{if $ps.lock}}<i class="fa fa-{{$ps.lock}} text-muted"></i>{{/if}}
+ {{if $ps.lock}}<i class="bi bi-{{$ps.lock}} text-muted"></i>{{/if}}
</a>
</li>
{{/foreach}}
diff --git a/view/tpl/common_tabs.tpl b/view/tpl/common_tabs.tpl
index 429cc561d..f2b968fc8 100644
--- a/view/tpl/common_tabs.tpl
+++ b/view/tpl/common_tabs.tpl
@@ -7,7 +7,7 @@
</div>
<div class="d-md-none dropdown clearfix" style="position:fixed; right:7px; top:4.5rem; z-index:1020">
<button type="button" class="btn btn-outline-secondary btn-sm float-end" data-bs-toggle="dropdown">
- <i class="fa fa-bars"></i>
+ <i class="bi fa-bars"></i>
</button>
<div class="dropdown-menu dropdown-menu-end">
{{foreach $tabs as $tab}}
diff --git a/view/tpl/connection_template.tpl b/view/tpl/connection_template.tpl
index ffd02f352..5ae290da8 100644
--- a/view/tpl/connection_template.tpl
+++ b/view/tpl/connection_template.tpl
@@ -8,13 +8,13 @@
{{/if}}
<span id="contact-role-{{$contact.id}}" class="badge rounded-pill bg-warning text-dark me-1" title="{{$role_label}}">{{$contact.role}}</span>
<button type="button" class="btn btn-outline-secondary btn-sm contact-edit" title="{{$contact.edit_hover}}" data-id="{{$contact.id}}">
- <i class="fa fa-fw fa-pencil contact-edit-icon-{{$contact.id}}"></i>
+ <i class="bi bi-pencil contact-edit-icon-{{$contact.id}}"></i>
<div class="spinner-wrapper contact-edit-rotator-{{$contact.id}}" style="vertical-align: text-bottom; margin-right: 2px"><div class="spinner s"></div></div>
{{$contact.edit}}
</button>
</div>
- <h3>{{if $contact.public_forum}}<i class="fa fa-comments-o" title="{{$group_label}}"></i>&nbsp;{{/if}}<a href="{{$contact.url}}" title="{{$contact.img_hover}}" >{{$contact.name}}</a>{{if $contact.phone}}&nbsp;<a class="btn btn-outline-secondary btn-sm" href="tel:{{$contact.phone}}" title="{{$contact.call}}"><i class="fa fa-phone connphone"></i></a>{{/if}}</h3>
+ <h3>{{if $contact.public_forum}}<i class="bi fa-comments-o" title="{{$group_label}}"></i>&nbsp;{{/if}}<a href="{{$contact.url}}" title="{{$contact.img_hover}}" >{{$contact.name}}</a>{{if $contact.phone}}&nbsp;<a class="btn btn-outline-secondary btn-sm" href="tel:{{$contact.phone}}" title="{{$contact.call}}"><i class="bi fa-phone connphone"></i></a>{{/if}}</h3>
</div>
<div class="section-content-tools-wrapper">
<div class="contact-photo-wrapper" >
@@ -45,7 +45,7 @@
</div>
{{/if}}
{{if $contact.connect}}
- <a href="{{$contact.follow}}" class="btn btn-success btn-sm" title="{{$contact.connect_hover}}"><i class="fa fa-plus"></i> {{$contact.connect}}</a>
+ <a href="{{$contact.follow}}" class="btn btn-success btn-sm" title="{{$contact.connect_hover}}"><i class="bi bi-plus-lg"></i> {{$contact.connect}}</a>
{{/if}}
</div>
diff --git a/view/tpl/connections.tpl b/view/tpl/connections.tpl
index 5fb6b0007..8617f6034 100644
--- a/view/tpl/connections.tpl
+++ b/view/tpl/connections.tpl
@@ -2,13 +2,13 @@
<div class="section-title-wrapper clearfix">
<div class="dropdown float-end">
<button type="button" class="btn btn-success btn-sm" onclick="openClose('contacts-follow-form'); closeMenu('contacts-search-form'); $('#contacts-follow').focus();">
- <i class="fa fa-plus"></i>&nbsp;Add
+ <i class="bi bi-plus-lg"></i>&nbsp;Add
</button>
<button type="button" class="btn btn-primary btn-sm" onclick="openClose('contacts-search-form'); closeMenu('contacts-follow-form'); $('#contacts-search').focus();">
- <i class="fa fa-search"></i>&nbsp;{{$label}}
+ <i class="bi bi-search"></i>&nbsp;{{$label}}
</button>
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{$sort}}">
- <i class="fa fa-filter"></i>
+ <i class="bi bi-funnel"></i>
</button>
<div class="dropdown-menu dropdown-menu-end">
{{foreach $tabs as $menu}}
@@ -23,7 +23,7 @@
<div class="input-group mb-3">
<input type="text" name="search" id="contacts-search" class="form-control" onfocus="this.select();" value="{{$search}}" placeholder="{{$desc}}" />
<input type="hidden" name="search_xchan" id="contacts-search-xchan" value=""/>
- <button id="contacts-search-submit" class="btn btn-primary" type="submit"><i class="fa fa-fw fa-search"></i></button>
+ <button id="contacts-search-submit" class="btn btn-primary" type="submit"><i class="bi bi-search"></i></button>
</div>
</form>
</div>
@@ -36,7 +36,7 @@
<form action="follow" method="post">
<div class="input-group mb-3">
<input class="form-control" id="contacts-follow" type="text" name="url" title="Examples: bob@example.com, https://example.com/barbara" placeholder="Enter channel address">
- <button class="btn btn-success" type="submit" name="submit" value="Connect" title="Connect"><i class="fa fa-fw fa-plus"></i></button>
+ <button class="btn btn-success" type="submit" name="submit" value="Connect" title="Connect"><i class="bi bi-plus-lg"></i></button>
</div>
</form>
</div>
diff --git a/view/tpl/connstatus.tpl b/view/tpl/connstatus.tpl
index 30f450820..c6b1c9b40 100644
--- a/view/tpl/connstatus.tpl
+++ b/view/tpl/connstatus.tpl
@@ -1 +1 @@
-<i class="fa fa-circle oneway-overlay text-{{if $perminfo.connpermcount == 3}}success{{elseif $perminfo.connpermcount > 0}}warning{{else}}danger{{/if}}" title="{{$perminfo.connperms}}"></i>
+<i class="bi bi-circle-fill oneway-overlay text-{{if $perminfo.connpermcount == 3}}success{{elseif $perminfo.connpermcount > 0}}warning{{else}}danger{{/if}}" title="{{$perminfo.connperms}}"></i>
diff --git a/view/tpl/contact_edit.tpl b/view/tpl/contact_edit.tpl
index 46bdbba80..188b1bfa7 100644
--- a/view/tpl/contact_edit.tpl
+++ b/view/tpl/contact_edit.tpl
@@ -15,7 +15,7 @@
{{$compare_label}}
</button>
<a href="permcats/{{$permcat_value}}" class="btn btn-sm btn-outline-primary">
- <i class="fa fa-external-link"></i>&nbsp;{{$permcat_new}}
+ <i class="bi bi-box-arrow-up-right"></i>&nbsp;{{$permcat_new}}
</a>
<table id="perms-table" class="table table-hover table-sm mt-3" style="display: {{if $sub_section == 'perms'}}table{{else}}none{{/if}};">
<thead>
@@ -31,16 +31,16 @@
<td>{{$perm.1}}</td>
<td>
{{if $perm.2}}
- <i class="fa fa-check text-success"></i>
+ <i class="bi bi-check-lg text-success"></i>
{{else}}
- <i class="fa fa-times text-danger"></i>
+ <i class="bi bi-x-lg text-danger"></i>
{{/if}}
</td>
<td>
{{if $perm.3}}
- <i class="fa fa-check text-success"></i>
+ <i class="bi bi-check-lg text-success"></i>
{{else}}
- <i class="fa fa-times text-danger"></i>
+ <i class="bi bi-x-lg text-danger"></i>
{{/if}}
</td>
</tr>
@@ -66,7 +66,7 @@
{{include file="field_checkbox.tpl" field=$group}}
{{/foreach}}
<a href="group/new" class="btn btn-sm btn-outline-primary">
- <i class="fa fa-external-link"></i>&nbsp;{{$pgroups_label}}
+ <i class="bi bi-box-arrow-up-right"></i>&nbsp;{{$pgroups_label}}
</a>
</div>
</div>
@@ -85,7 +85,7 @@
<div class="section-content-tools-wrapper">
{{$profile_select}}
<a href="profiles" class="btn btn-sm btn-outline-primary">
- <i class="fa fa-external-link"></i>&nbsp;{{$profiles_label}}
+ <i class="bi bi-box-arrow-up-right"></i>&nbsp;{{$profiles_label}}
</a>
</div>
</div>
diff --git a/view/tpl/contact_edit_header.tpl b/view/tpl/contact_edit_header.tpl
index 997d294bd..8ec6054a3 100644
--- a/view/tpl/contact_edit_header.tpl
+++ b/view/tpl/contact_edit_header.tpl
@@ -4,6 +4,6 @@
</a>
</div>
<div class="m-1">
- <div class="text-truncate h3 m-0"><strong>{{if $is_group}}<i class="fa fa-comments-o" title="{{$group_label}}"></i> {{/if}}{{$name}}</strong></div>
+ <div class="text-truncate h3 m-0"><strong>{{if $is_group}}<i class="bi fa-comments-o" title="{{$group_label}}"></i> {{/if}}{{$name}}</strong></div>
<div class="text-truncate text-muted">{{$addr}}</div>
</div>
diff --git a/view/tpl/contact_edit_tools.tpl b/view/tpl/contact_edit_tools.tpl
index 2d0b8a8cf..788c75b99 100644
--- a/view/tpl/contact_edit_tools.tpl
+++ b/view/tpl/contact_edit_tools.tpl
@@ -1,5 +1,5 @@
<button id="contact-tools" class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-cog"></i>&nbsp;{{$tools_label}}
+ <i class="bi bi-gear"></i>&nbsp;{{$tools_label}}
</button>
<div class="dropdown-menu">
<a class="dropdown-item contact-tool" href="#" title="{{$tools.refresh.title}}" data-cmd="refresh">{{$tools.refresh.label}}</a>
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 61886c3ee..b3e927d3f 100644
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -1,6 +1,6 @@
{{if $item.comment_firstcollapsed}}
-<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 id="hide-comments-outer-{{$item.parent}}" class="hide-comments-outer fakelink small" onclick="showHideComments({{$item.id}});">
+ <i id="hide-comments-icon-{{$item.id}}" class="bi bi-chevron-down align-middle hide-comments-icon"></i> <span id="hide-comments-label-{{$item.id}}" class="hide-comments-label align-middle">{{$item.hide_text}}</span>&nbsp;<span id="hide-comments-total-{{$item.id}}" class="hide-comments-label align-middle">{{$item.num_comments}}</span>
</div>
<div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
{{/if}}
@@ -18,7 +18,7 @@
{{$item.event}}
</div>
{{/if}}
- {{if $item.title && !$item.event}}
+ {{if $item.title && $item.toplevel && !$item.event}}
<div class="p-2{{if $item.is_new}} bg-primary text-white{{/if}} wall-item-title h3{{if !$item.photo}} rounded-top{{/if}}" id="wall-item-title-{{$item.id}}">
{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})" rel="nofollow">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}
</div>
@@ -27,29 +27,29 @@
{{/if}}
{{/if}}
<div class="p-2 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}} clearfix">
- <div class="text-end float-end">
+ <div class="lh-sm text-end float-end">
<div class="wall-item-ago opacity-75" id="wall-item-ago-{{$item.id}}">
- {{if $item.editedtime}}
- <i class="fa fa-pencil"></i>
+ {{if $item.location}}
+ {{$item.location}}
{{/if}}
{{if $item.delayed}}
- <i class="fa fa-clock-o"></i>
+ <i class="bi bi-clock"></i>
{{/if}}
- {{if $item.location}}
- <small class="wall-item-location p-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</small>
+ {{if $item.editedtime}}
+ <i class="bi bi-pencil"></i>
{{/if}}
{{if $item.verified}}
- <i class="fa fa-check text-success" title="{{$item.verified}}"></i>
+ <i class="bi bi-shield-check" title="{{$item.verified}}"></i>
{{elseif $item.forged}}
- <i class="fa fa-exclamation text-danger" title="{{$item.forged}}"></i>
+ <i class="bi bi-shield-exclamation text-danger" title="{{$item.forged}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
</div>
{{if $item.thr_parent_uuid}}
- <a href="javascript:doscroll('{{$item.thr_parent_uuid}}',{{$item.parent}});" class="ms-3" title="{{$item.top_hint}}"><i class="fa fa-angle-double-up"></i></a>
+ <a href="javascript:doscroll('{{$item.thr_parent_uuid}}',{{$item.parent}});" class="ms-3" title="{{$item.top_hint}}"><i class="bi bi-chevron-double-up"></i></a>
{{/if}}
{{if $item.pinned}}
- <div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="fa fa-thumb-tack"></i></div>
+ <div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="bi bi-pin-fill"></i></div>
{{/if}}
</div>
<div class="float-start wall-item-info pe-2" id="wall-item-info-{{$item.id}}" >
@@ -59,10 +59,10 @@
{{/if}}
<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-bs-toggle="dropdown" />
{{if $item.author_is_group_actor}}
- <i class="fa fa-comments-o wall-item-photo-group-actor" title="{{$item.author_is_group_actor}}"></i>
+ <i class="bi bi-chat-quote-fill wall-item-photo-group-actor" title="{{$item.author_is_group_actor}}"></i>
{{/if}}
{{if $item.thread_author_menu}}
- <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
+ <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
<div class="dropdown-menu">
{{foreach $item.thread_author_menu as $mitem}}
<a class="dropdown-item{{if $mitem.class}} {{$mitem.class}}{{/if}}" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}}{{if $mitem.data}} {{$mitem.data}}{{/if}}>{{$mitem.title}}</a>
@@ -74,7 +74,7 @@
<div class="wall-item-author">
{{if $item.lock}}
<div class="float-start dropdown wall-item-lock">
- <i class="fa {{if $item.locktype == 2}}fa-envelope-o{{else if $item.locktype == 1}}fa-lock{{else}}fa-unlock{{/if}} lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-bs-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
+ <i class="bi {{if $item.locktype == 2}}bi-envelope{{else if $item.locktype == 1}}bi-lock{{else}}bi-unlock{{/if}} lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-bs-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
<div id="panel-{{$item.id}}" class="dropdown-menu"></div>
</div>
{{/if}}
@@ -101,159 +101,14 @@
</div>
</div>
{{/if}}
- <div class="p-2 clearfix wall-item-tools">
- <div class="float-end wall-item-tools-right">
- <div class="btn-group">
- <div id="like-rotator-{{$item.id}}" class="spinner-wrapper">
- <div class="spinner s"></div>
- </div>
- </div>
- {{if $item.toplevel && $item.emojis && $item.reactions}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-react-{{$item.id}}">
- <i class="fa fa-smile-o"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end">
- {{foreach $item.reactions as $react}}
- <a class="dropdown-item clearfix" href="#" onclick="jotReact({{$item.id}},'{{$react}}'); return false;"><img class="menu-img-2" src="/images/emoji/{{$react}}.png" alt="{{$react}}" /></a>
- {{/foreach}}
- </div>
- </div>
- {{/if}}
- {{if $item.moderate}}
- <a href="moderate/{{$item.id}}/approve" onclick="moderate_approve({{$item.id}}); return false;" class="btn btn-sm btn-outline-success"><i class="fa fa-check" ></i> {{$item.moderate_approve}}</a>
- <a href="moderate/{{$item.id}}/drop" onclick="moderate_drop({{$item.id}}); return false;" class="btn btn-sm btn-outline-danger"><i class="fa fa-trash-o" ></i> {{$item.moderate_delete}}</a>
- {{else}}
- <div class="btn-group">
- {{if $item.like}}
- <button type="button" title="{{$item.like.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'like'); return false;">
- <i class="fa fa-thumbs-o-up{{if $item.my_responses.like}} ivoted{{/if}}" ></i>
- </button>
- {{/if}}
- {{if $item.dislike}}
- <button type="button" title="{{$item.dislike.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'dislike'); return false;">
- <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|escape:javascript}}');">
- <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-bs-toggle="dropdown" id="wall-item-attend-menu-{{$item.id}}" title="{{$item.attend_title}}">
- <i class="fa fa-calendar-check-o"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end">
- <a class="dropdown-item" href="#" title="{{$item.attend.0}}" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;">
- <i class="item-act-list fa fa-check{{if $item.my_responses.attend}} ivoted{{/if}}" ></i> {{$item.attend.0}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.attend.1}}" onclick="itemAddToCal({{$item.id}}), dolike({{$item.id}},'attendno'); return false;">
- <i class="item-act-list fa fa-times{{if $item.my_responses.attendno}} ivoted{{/if}}" ></i> {{$item.attend.1}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.attend.2}}" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendmaybe'); return false;">
- <i class="item-act-list fa fa-question{{if $item.my_responses.attendmaybe}} ivoted{{/if}}" ></i> {{$item.attend.2}}
- </a>
- </div>
- </div>
- {{/if}}
- {{if $item.canvote}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-consensus-menu-{{$item.id}}" title="{{$item.vote_title}}">
- <i class="fa fa-check-square-o"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-consensus-menu-{{$item.id}}">
- <a class="dropdown-item" href="#" title="{{$item.conlabels.0}}" onclick="dolike({{$item.id}},'agree'); return false;">
- <i class="item-act-list fa fa-check{{if $item.my_responses.agree}} ivoted{{/if}}" ></i> {{$item.conlabels.0}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.conlabels.1}}" onclick="dolike({{$item.id}},'disagree'); return false;">
- <i class="item-act-list fa fa-times{{if $item.my_responses.disagree}} ivoted{{/if}}" ></i> {{$item.conlabels.1}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.conlabels.2}}" onclick="dolike({{$item.id}},'abstain'); return false;">
- <i class="item-act-list fa fa-question{{if $item.my_responses.abstain}} ivoted{{/if}}" ></i> {{$item.conlabels.2}}
- </a>
- </div>
- </div>
- {{/if}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
- <i class="fa fa-cog"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}">
- {{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}}
- {{if $item.edpost}}
- <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav fa fa-fw fa-pencil"></i>{{$item.edpost.1}}</a>
- {{/if}}
- {{if $item.tagger}}
- <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a>
- {{/if}}
- {{if $item.filer}}
- <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a>
- {{/if}}
- {{if $item.pinnable}}
- <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$item.id}}); return false;" id="item-pinnable-{{$item.id}}"><i class="generic-icons-nav fa fa-fw fa-thumb-tack"></i>{{$item.pinme}}</a>
- {{/if}}
- {{if $item.bookmark}}
- <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a>
- {{/if}}
- {{if $item.addtocal}}
- <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
- {{/if}}
- {{if $item.star}}
- <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw{{if $item.star.isstarred}} starred fa-star{{else}} unstarred fa-star-o{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
- {{/if}}
- {{if $item.thread_action_menu}}
- {{foreach $item.thread_action_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}} ><i class="generic-icons-nav fa fa-fw fa-{{$mitem.icon}}"></i>{{$mitem.title}}</a>
- {{/foreach}}
- {{/if}}
- {{if $item.drop.dropping}}
- <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}', '{{$item.mid}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a>
- {{/if}}
- {{if $item.dropdown_extras}}
- <div class="dropdown-divider"></div>
- {{$item.dropdown_extras}}
- {{/if}}
- {{if $item.edpost && $item.dreport}}
- <div class="dropdown-divider"></div>
- <a class="dropdown-item" href="dreport/{{$item.dreport_link}}">{{$item.dreport}}</a>
- {{/if}}
- {{if $item.settings}}
- <div class="dropdown-divider"></div>
- <a class="dropdown-item conversation-settings-link" href="" data-bs-toggle="modal" data-bs-target="#conversation_settings">{{$item.settings}}</a>
- {{/if}}
- </div>
- </div>
- </div>
- {{/if}}
- </div>
-
- {{if $item.responses || $item.attachments}}
+ <div class="p-2 wall-item-tools d-flex justify-content-between">
<div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-{{$item.id}}">
- {{if $item.star && $item.star.isstarred}}
- <div class="" id="star-button-{{$item.id}}">
- <button type="button" class="btn btn-outline-secondary border-0 btn-sm wall-item-star" onclick="dostar({{$item.id}});"><i class="fa fa-star"></i></button>
- </div>
- {{/if}}
- {{if $item.attachments}}
- <div class="">
- <button type="button" class="btn btn-outline-secondary border-0 btn-sm wall-item-attach" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-paperclip"></i></button>
- <div class="dropdown-menu">{{$item.attachments}}</div>
- </div>
- {{/if}}
{{foreach $item.responses as $verb=>$response}}
- {{if $response.count}}
+ {{if $item.reactions_allowed || (!$item.reactions_allowed && $response.count)}}
<div class="">
- <button type="button" title="{{$response.count}} {{$response.button.label}}" class="btn btn-outline-secondary border-0 btn-sm wall-item-{{$response.button.class}}"{{if $response.modal}} data-bs-toggle="modal" data-bs-target="#{{$verb}}Modal-{{$item.id}}"{{else}} data-bs-toggle="dropdown"{{/if}} id="wall-item-{{$verb}}-{{$item.id}}"><i class="fa fa-{{$response.button.icon}}"></i> {{$response.count}}</button>
+ <button type="button" title="{{$response.count}} {{$response.button.label}}" class="btn btn-sm btn-outline-secondary border-0 wall-item-{{$response.button.class}}"{{if $response.modal}} data-bs-toggle="modal" data-bs-target="#{{$verb}}Modal-{{$item.id}}"{{else if $response.count}} data-bs-toggle="dropdown"{{elseif $item.reactions_allowed}} onclick="{{$response.button.onclick}}({{$item.id}},'{{$verb}}'); return false;"{{/if}} id="wall-item-{{$verb}}-{{$item.id}}">
+ <i class="bi bi-{{$response.button.icon}} generic-icons"></i>{{if $response.count}}<span style="display: inline-block; margin-top: -.25rem;" class="align-top{{if $item.my_responses.$verb}} text-decoration-underline{{/if}}">{{$response.count}}</span>{{/if}}
+ </button>
{{if $response.modal}}
<div class="modal" id="{{$verb}}Modal-{{$item.id}}">
<div class="modal-dialog">
@@ -262,8 +117,17 @@
<h3 class="modal-title">{{$response.count}} {{$response.button.label}}</h3>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
</div>
+ {{if $item.reactions_allowed && !($verb === 'announce' && $item.my_responses.$verb)}} {{** undo announce is not yet supported **}}
+ <div class="modal-header">
+ <a href="#" class="text-reset" onclick="{{$response.button.onclick}}({{$item.id}},'{{$verb}}'); return false;">{{if $item.my_responses.$verb}}- {{$item.reaction_str.1}}{{else}}+ {{$item.reaction_str.0}}{{/if}}</a>
+ </div>
+ {{/if}}
<div class="modal-body response-list">
- <ul class="nav nav-pills flex-column">{{foreach $response.list as $liker}}<li class="nav-item">{{$liker}}</li>{{/foreach}}</ul>
+ <ul class="nav nav-pills flex-column">
+ {{foreach $response.list as $liker}}
+ {{$liker}}
+ {{/foreach}}
+ </ul>
</div>
<div class="modal-footer clear">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">{{$item.modal_dismiss}}</button>
@@ -272,13 +136,118 @@
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{{else}}
- <div class="dropdown-menu">{{foreach $response.list as $liker}}{{$liker}}{{/foreach}}</div>
+ <div class="dropdown-menu">
+ {{if $item.reactions_allowed && !($verb === 'announce' && $item.my_responses.$verb)}} {{** undo announce is not yet supported **}}
+ <div class="dropdown-item">
+ <a href="#" class="text-reset" onclick="{{$response.button.onclick}}({{$item.id}},'{{$verb}}'); return false;">{{if $item.my_responses.$verb}}- {{$item.reaction_str.1}}{{else}}+ {{$item.reaction_str.0}}{{/if}}</a>
+ </div>
+ <div class="dropdown-divider"></div>
+ {{/if}}
+ {{foreach $response.list as $liker}}{{$liker}}{{/foreach}}
+ </div>
{{/if}}
</div>
{{/if}}
{{/foreach}}
+ {{if $item.toplevel && $item.emojis && $item.reactions}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0" data-bs-toggle="dropdown" id="wall-item-react-{{$item.id}}">
+ <i class="bi bi-emoji-smile generic-icons"></i>
+ </button>
+ <div class="dropdown-menu dropdown-menu-start container text-center w-25">
+ <div class="row g-0">
+ {{foreach $item.reactions as $react}}
+ <div class="col-3 p-2">
+ <a class="" href="#" onclick="jotReact({{$item.id}},'{{$react}}'); return false;"><img class="menu-img-1" src="/images/emoji/{{$react}}.png" alt="{{$react}}" /></a>
+ </div>
+ {{/foreach}}
+ </div>
+ </div>
+ </div>
+ {{/if}}
+ <div class="">
+ <div id="like-rotator-{{$item.id}}" class="spinner-wrapper">
+ <div class="spinner s"></div>
+ </div>
+ </div>
+ </div>
+ <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-{{$item.id}}">
+ {{if $item.moderate}}
+ <a href="moderate/{{$item.id}}/approve" onclick="moderate_approve({{$item.id}}); return false;" class="btn btn-sm btn-outline-success"><i class="bi bi-check-lg" ></i> {{$item.moderate_approve}}</a>
+ <a href="moderate/{{$item.id}}/drop" onclick="moderate_drop({{$item.id}}); return false;" class="btn btn-sm btn-outline-danger"><i class="bi bi-trash" ></i> {{$item.moderate_delete}}</a>
+ {{else}}
+ {{if $item.star && $item.star.isstarred}}
+ <div class="" id="star-button-{{$item.id}}">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0 wall-item-star" onclick="dostar({{$item.id}});"><i class="bi bi-star generic-icons"></i></button>
+ </div>
+ {{/if}}
+ {{if $item.attachments}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0 wall-item-attach" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="bi bi-paperclip generic-icons"></i></button>
+ <div class="dropdown-menu dropdown-menu-end">{{$item.attachments}}</div>
+ </div>
+ {{/if}}
+ {{if $item.reply_to}}
+ <button type="button" title="{{$item.reply_to.0}}" class="btn btn-sm btn-outline-secondary border-0" onclick="doreply({{$item.parent}}, {{$item.id}}, '{{$item.author_id}}', '{{$item.reply_to.2}} {{$item.name|escape:javascript}}');">
+ <i class="bi bi-arrow-90deg-left generic-icons" ></i>
+ </button>
+ {{/if}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0" data-bs-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
+ <i class="bi bi-three-dots-vertical generic-icons"></i>
+ </button>
+ <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}">
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav bi bi-arrow-90deg-right" 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 bi bi-box-arrow-up-right"></i>{{$item.plink.title}}</a>
+ {{/if}}
+ {{if $item.edpost}}
+ <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav bi bi-pencil"></i>{{$item.edpost.1}}</a>
+ {{/if}}
+ {{if $item.tagger}}
+ <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav bi bi-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a>
+ {{/if}}
+ {{if $item.filer}}
+ <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav bi bi-folder-plus" title="{{$item.filer}}"></i>{{$item.filer}}</a>
+ {{/if}}
+ {{if $item.pinnable}}
+ <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$item.id}}); return false;" id="item-pinnable-{{$item.id}}"><i class="generic-icons-nav bi bi-pin"></i>{{$item.pinme}}</a>
+ {{/if}}
+ {{if $item.bookmark}}
+ <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav bi bi-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a>
+ {{/if}}
+ {{if $item.addtocal}}
+ <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav bi bi-calendar-plus" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
+ {{/if}}
+ {{if $item.star}}
+ <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav bi{{if $item.star.isstarred}} starred bi-star-fill{{else}} unstarred bi-star{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
+ {{/if}}
+ {{if $item.thread_action_menu}}
+ {{foreach $item.thread_action_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}} ><i class="generic-icons-nav bi bi-{{$mitem.icon}}"></i>{{$mitem.title}}</a>
+ {{/foreach}}
+ {{/if}}
+ {{if $item.drop.dropping}}
+ <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}', '{{$item.mid}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav bi bi-trash"></i>{{$item.drop.delete}}</a>
+ {{/if}}
+ {{if $item.dropdown_extras}}
+ <div class="dropdown-divider"></div>
+ {{$item.dropdown_extras}}
+ {{/if}}
+ {{if $item.edpost && $item.dreport}}
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item" href="dreport/{{$item.dreport_link}}">{{$item.dreport}}</a>
+ {{/if}}
+ {{if $item.settings}}
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item conversation-settings-link" href="" data-bs-toggle="modal" data-bs-target="#conversation_settings">{{$item.settings}}</a>
+ {{/if}}
+ </div>
+ </div>
+ {{/if}}
</div>
- {{/if}}
</div>
</div>
</div>
diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl
index 374c3f53f..388a952f2 100644
--- a/view/tpl/conv_list.tpl
+++ b/view/tpl/conv_list.tpl
@@ -1,9 +1,3 @@
-{{if $item.comment_firstcollapsed}}
-<div 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}}" data-b64mids='{{$item.mids}}'>
<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}}" >
@@ -27,29 +21,26 @@
{{/if}}
{{/if}}
<div class="p-2 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="text-end float-end">
+ <div class="lh-sm text-end float-end">
<div class="wall-item-ago opacity-75" id="wall-item-ago-{{$item.id}}">
- {{if $item.editedtime}}
- <i class="fa fa-pencil"></i>
+ {{if $item.location}}
+ {{$item.location}}
{{/if}}
{{if $item.delayed}}
- <i class="fa fa-clock-o"></i>
+ <i class="bi bi-clock"></i>
{{/if}}
- {{if $item.location}}
- <small class="wall-item-location p-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</small>
+ {{if $item.editedtime}}
+ <i class="bi bi-pencil"></i>
{{/if}}
{{if $item.verified}}
- <i class="fa fa-check text-success" title="{{$item.verified}}"></i>
+ <i class="bi bi-shield-check" title="{{$item.verified}}"></i>
{{elseif $item.forged}}
- <i class="fa fa-exclamation text-danger" title="{{$item.forged}}"></i>
+ <i class="bi bi-shield-exclamation text-danger" title="{{$item.forged}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
</div>
- {{if $item.thr_parent}}
- <a href="javascript:doscroll('{{$item.thr_parent}}',{{$item.parent}});" class="ms-3" title="{{$item.top_hint}}"><i class="fa fa-angle-double-up"></i></a>
- {{/if}}
{{if $item.pinned}}
- <div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="fa fa-thumb-tack"></i></div>
+ <div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="bi bi-pin-fill"></i></div>
{{/if}}
</div>
<div class="float-start wall-item-info pe-2" id="wall-item-info-{{$item.id}}" >
@@ -59,10 +50,10 @@
{{/if}}
<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-bs-toggle="dropdown" />
{{if $item.author_is_group_actor}}
- <i class="fa fa-comments-o wall-item-photo-group-actor" title="{{$item.author_is_group_actor}}"></i>
+ <i class="bi bi-chat-quote-fill wall-item-photo-group-actor" title="{{$item.author_is_group_actor}}"></i>
{{/if}}
{{if $item.thread_author_menu}}
- <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
+ <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
<div class="dropdown-menu">
{{foreach $item.thread_author_menu as $mitem}}
<a class="dropdown-item{{if $mitem.class}} {{$mitem.class}}{{/if}}" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}}{{if $mitem.data}} {{$mitem.data}}{{/if}}>{{$mitem.title}}</a>
@@ -74,7 +65,7 @@
<div class="wall-item-author">
{{if $item.lock}}
<div class="float-start dropdown wall-item-lock">
- <i class="fa {{if $item.locktype == 2}}fa-envelope-o{{else if $item.locktype == 1}}fa-lock{{else}}fa-unlock{{/if}} lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-bs-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
+ <i class="bi {{if $item.locktype == 2}}bi-envelope{{else if $item.locktype == 1}}bi-lock{{else}}bi-unlock{{/if}} lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-bs-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
<div id="panel-{{$item.id}}" class="dropdown-menu"></div>
</div>
{{/if}}
@@ -96,165 +87,49 @@
{{/if}}
{{if $item.has_tags}}
<div class="p-2 wall-item-tools clearfix">
-
<div class="body-tags">
<span class="tag">{{$item.mentions}} {{$item.tags}} {{$item.categories}} {{$item.folders}}</span>
</div>
</div>
{{/if}}
- <div class="p-2 clearfix wall-item-tools">
- <div class="float-end wall-item-tools-right">
- {{if $item.toplevel && $item.emojis && $item.reactions}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-react-{{$item.id}}">
- <i class="fa fa-smile-o"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end">
- {{foreach $item.reactions as $react}}
- <a class="dropdown-item clearfix" href="#" onclick="jotReact({{$item.id}},'{{$react}}'); return false;"><img class="menu-img-2" src="/images/emoji/{{$react}}.png" alt="{{$react}}" /></a>
- {{/foreach}}
- </div>
- </div>
- {{/if}}
- <div class="btn-group">
- {{if $item.like}}
- <button type="button" title="{{$item.like.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'like'); return false;">
- <i class="fa fa-thumbs-o-up{{if $item.my_responses.like}} ivoted{{/if}}" ></i>
- </button>
- {{/if}}
- {{if $item.dislike}}
- <button type="button" title="{{$item.dislike.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'dislike'); return false;">
- <i class="fa fa-thumbs-o-down{{if $item.my_responses.dislike}} ivoted{{/if}}" ></i>
- </button>
- {{/if}}
- {{if $item.isevent}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-attend-menu-{{$item.id}}" title="{{$item.attend_title}}">
- <i class="fa fa-calendar-check-o"></i>
- </button>
- <div class="dropdown-menu">
- <a class="dropdown-item" href="#" title="{{$item.attend.0}}" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;">
- <i class="item-act-list fa fa-check{{if $item.my_responses.attend}} ivoted{{/if}}" ></i> {{$item.attend.0}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.attend.1}}" onclick="itemAddToCal({{$item.id}}), dolike({{$item.id}},'attendno'); return false;">
- <i class="item-act-list fa fa-times{{if $item.my_responses.attendno}} ivoted{{/if}}" ></i> {{$item.attend.1}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.attend.2}}" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendmaybe'); return false;">
- <i class="item-act-list fa fa-question{{if $item.my_responses.attendmaybe}} ivoted{{/if}}" ></i> {{$item.attend.2}}
- </a>
- </div>
- </div>
- {{/if}}
- {{if $item.canvote}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-consensus-menu-{{$item.id}}" title="{{$item.vote_title}}">
- <i class="fa fa-check-square-o"></i>
- </button>
- <div class="dropdown-menu" role="menu" aria-labelledby="wall-item-consensus-menu-{{$item.id}}">
- <a class="dropdown-item" href="#" title="{{$item.conlabels.0}}" onclick="dolike({{$item.id}},'agree'); return false;">
- <i class="item-act-list fa fa-check{{if $item.my_responses.agree}} ivoted{{/if}}" ></i> {{$item.conlabels.0}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.conlabels.1}}" onclick="dolike({{$item.id}},'disagree'); return false;">
- <i class="item-act-list fa fa-times{{if $item.my_responses.disagree}} ivoted{{/if}}" ></i> {{$item.conlabels.1}}
- </a>
- <a class="dropdown-item" href="#" title="{{$item.conlabels.2}}" onclick="dolike({{$item.id}},'abstain'); return false;">
- <i class="item-act-list fa fa-question{{if $item.my_responses.abstain}} ivoted{{/if}}" ></i> {{$item.conlabels.2}}
- </a>
- </div>
- </div>
- {{/if}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
- <i class="fa fa-cog"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}">
- {{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}}
- {{if $item.edpost}}
- <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav fa fa-fw fa-pencil"></i>{{$item.edpost.1}}</a>
- {{/if}}
- {{if $item.tagger}}
- <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a>
- {{/if}}
- {{if $item.filer}}
- <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a>
- {{/if}}
- {{if $item.bookmark}}
- <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a>
- {{/if}}
- {{if $item.addtocal}}
- <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
- {{/if}}
- {{if $item.star}}
- <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw{{if $item.star.isstarred}} starred fa-star{{else}} unstarred fa-star-o{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
- {{/if}}
- {{if $item.thread_action_menu}}
- {{foreach $item.thread_action_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}} ><i class="generic-icons-nav fa fa-fw fa-{{$mitem.icon}}"></i>{{$mitem.title}}</a>
- {{/foreach}}
- {{/if}}
- {{if $item.drop.dropping}}
- <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}', '{{$item.mid}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a>
- {{/if}}
- {{if $item.edpost && $item.dreport}}
- <div class="dropdown-divider"></div>
- <a class="dropdown-item" href="dreport/{{$item.dreport_link}}">{{$item.dreport}}</a>
- {{/if}}
- {{if $item.settings}}
- <div class="dropdown-divider"></div>
- <a class="dropdown-item conversation-settings-link" href="" data-bs-toggle="modal" data-bs-target="#conversation_settings">{{$item.settings}}</a>
- {{/if}}
- </div>
- </div>
- </div>
- </div>
- <div id="like-rotator-{{$item.id}}" class="like-rotator"></div>
- <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-{{$item.id}}">
- {{if $item.star && $item.star.isstarred}}
- <div class="" id="star-button-{{$item.id}}">
- <button type="button" class="btn btn-outline-secondary btn-sm border-0 wall-item-star" onclick="dostar({{$item.id}});"><i class="fa fa-star"></i></button>
- </div>
- {{/if}}
- {{if $item.attachments}}
- <div class="">
- <button type="button" class="btn btn-outline-secondary btn-sm border-0 wall-item-attach" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-paperclip"></i></button>
- <ul class="dropdown-menu" role="menu" aria-labelledby="attachment-menu-{{$item.id}}">{{$item.attachments}}</ul>
- </div>
- {{/if}}
+ <div class="p-2 wall-item-tools d-flex justify-content-between">
+ <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-{{$item.id}}">
<div class="wall-item-list-comments btn-group">
- <a class="btn btn-outline-secondary btn-sm border-0 wall-item-comments" href="{{$item.viewthread}}" title="{{$item.comment_count_txt.label}}{{if $item.list_unseen_txt}}, {{$item.list_unseen_txt.label}}{{/if}}">
- <i class="fa fa-comment-o"></i> {{$item.comment_count_txt.count}}{{if $item.unseen_comments}}<span class="unseen-wall-indicator-{{$item.id}}">, <i class="fa fa-eye-slash"></i> {{$item.list_unseen_txt.count}}</span>{{/if}}
+ <a class="btn btn-sm btn-outline-secondary border-0 wall-item-comments" href="{{$item.viewthread}}" title="{{$item.comment_count_txt.label}}{{if $item.list_unseen_txt}}, {{$item.list_unseen_txt.label}}{{/if}}">
+ <i class="bi bi-chat generic-icons"></i>{{if $item.comment_count_txt.count}}<span style="display: inline-block; margin-top: -.25rem;" class="align-top">{{$item.comment_count_txt.count}}</span>{{/if}}{{if $item.unseen_comments}}, <i class="bi bi-eye-slash generic-icons"></i><span class="unseen-wall-indicator-{{$item.id}} align-top" style="display: inline-block; margin-top: -.25rem;">{{$item.list_unseen_txt.count}}</span>{{/if}}
</a>
</div>
- {{if $item.unseen_comments}}
+ {{**if $item.unseen_comments}}
<div class="unseen-wall-indicator-{{$item.id}} btn-group">
- <button class="btn btn-outline-secondary btn-sm border-0" title="{{$item.markseen}}" onclick="markItemRead({{$item.id}}); return false;">
- <i class="fa fa-check-square-o"></i>
+ <button class="btn btn-sm btn-outline-secondary border-0" title="{{$item.markseen}}" onclick="markItemRead({{$item.id}}); return false;">
+ <i class="bi bi-check-square generic-icons"></i>
</button>
</div>
- {{/if}}
- {{if $item.responses }}
+ {{/if**}}
{{foreach $item.responses as $verb=>$response}}
- {{if $response.count}}
+ {{if $item.reactions_allowed || (!$item.reactions_allowed && $response.count)}}
<div class="">
- <button type="button" class="btn btn-outline-secondary btn-sm border-0 wall-item-{{$response.button.class}}"{{if $response.modal}} data-bs-toggle="modal" data-bs-target="#{{$verb}}Modal-{{$item.id}}"{{else}} data-bs-toggle="dropdown"{{/if}} id="wall-item-{{$verb}}-{{$item.id}}"><i class="fa fa-{{$response.button.icon}}"></i> {{$response.count}}</button>
- {{if $response.modal}}
+ <button type="button" title="{{$response.count}} {{$response.button.label}}" class="btn btn-sm btn-outline-secondary border-0 wall-item-{{$response.button.class}}"{{if $response.modal}} data-bs-toggle="modal" data-bs-target="#{{$verb}}Modal-{{$item.id}}"{{else if $response.count}} data-bs-toggle="dropdown"{{elseif $item.reactions_allowed}} onclick="{{$response.button.onclick}}({{$item.id}},'{{$verb}}'); return false;"{{/if}} id="wall-item-{{$verb}}-{{$item.id}}">
+ <i class="bi bi-{{$response.button.icon}} generic-icons"></i>{{if $response.count}}<span style="display: inline-block; margin-top: -.25rem;" class="align-top{{if $item.my_responses.$verb}} text-decoration-underline{{/if}}">{{$response.count}}</span>{{/if}}
+ </button> {{if $response.modal}}
<div class="modal" id="{{$verb}}Modal-{{$item.id}}">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
- <h4 class="modal-title">{{$response.count}} {{$response.button.label}}</h4>
+ <h3 class="modal-title">{{$response.count}} {{$response.button.label}}</h3>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
</div>
+ {{if $item.reactions_allowed && !($verb === 'announce' && $item.my_responses.$verb)}} {{** undo announce is not yet supported **}}
+ <div class="modal-header">
+ <a href="#" class="text-reset" onclick="{{$response.button.onclick}}({{$item.id}},'{{$verb}}'); return false;">{{if $item.my_responses.$verb}}- {{$item.reaction_str.1}}{{else}}+ {{$item.reaction_str.0}}{{/if}}</a>
+ </div>
+ {{/if}}
<div class="modal-body response-list">
- <ul class="nav nav-pills flex-column">{{foreach $response.list as $liker}}<li class="nav-item">{{$liker}}</li>{{/foreach}}</ul>
+ <ul class="nav nav-pills flex-column">
+ {{foreach $response.list as $liker}}
+ {{$liker}}
+ {{/foreach}}
+ </ul>
</div>
<div class="modal-footer clear">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">{{$item.modal_dismiss}}</button>
@@ -263,17 +138,114 @@
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{{else}}
- <div class="dropdown-menu">{{foreach $response.list as $liker}}{{$liker}}{{/foreach}}</div>
+ <div class="dropdown-menu">
+ {{if $item.reactions_allowed && !($verb === 'announce' && $item.my_responses.$verb)}} {{** undo announce is not yet supported **}}
+ <div class="dropdown-item">
+ <a href="#" class="text-reset" onclick="{{$response.button.onclick}}({{$item.id}},'{{$verb}}'); return false;">{{if $item.my_responses.$verb}}- {{$item.reaction_str.1}}{{else}}+ {{$item.reaction_str.0}}{{/if}}</a>
+ </div>
+ <div class="dropdown-divider"></div>
+ {{/if}}
+ {{foreach $response.list as $liker}}{{$liker}}{{/foreach}}
+ </div>
{{/if}}
</div>
{{/if}}
{{/foreach}}
+ {{if $item.toplevel && $item.emojis && $item.reactions}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0" data-bs-toggle="dropdown" id="wall-item-react-{{$item.id}}">
+ <i class="bi bi-emoji-smile generic-icons"></i>
+ </button>
+ <div class="dropdown-menu dropdown-menu-start container text-center w-25">
+ <div class="row g-0">
+ {{foreach $item.reactions as $react}}
+ <div class="col-3 p-2">
+ <a class="" href="#" onclick="jotReact({{$item.id}},'{{$react}}'); return false;"><img class="menu-img-1" src="/images/emoji/{{$react}}.png" alt="{{$react}}" /></a>
+ </div>
+ {{/foreach}}
+ </div>
+ </div>
+ </div>
+ {{/if}}
+ <div class="">
+ <div id="like-rotator-{{$item.id}}" class="spinner-wrapper">
+ <div class="spinner s"></div>
+ </div>
+ </div>
+ </div>
+ <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-{{$item.id}}">
+ {{if $item.moderate}}
+ <a href="moderate/{{$item.id}}/approve" onclick="moderate_approve({{$item.id}}); return false;" class="btn btn-sm btn-outline-success"><i class="bi bi-check-lg" ></i> {{$item.moderate_approve}}</a>
+ <a href="moderate/{{$item.id}}/drop" onclick="moderate_drop({{$item.id}}); return false;" class="btn btn-sm btn-outline-danger"><i class="bi bi-trash" ></i> {{$item.moderate_delete}}</a>
+ {{else}}
+ {{if $item.star && $item.star.isstarred}}
+ <div class="" id="star-button-{{$item.id}}">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0 wall-item-star" onclick="dostar({{$item.id}});"><i class="bi bi-star generic-icons"></i></button>
+ </div>
+ {{/if}}
+ {{if $item.attachments}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0 wall-item-attach" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="bi bi-paperclip generic-icons"></i></button>
+ <div class="dropdown-menu dropdown-menu-end">{{$item.attachments}}</div>
+ </div>
+ {{/if}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0" data-bs-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
+ <i class="bi bi-three-dots-vertical generic-icons"></i>
+ </button>
+ <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}">
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav bi bi-arrow-90deg-right" 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 bi bi-box-arrow-up-right"></i>{{$item.plink.title}}</a>
+ {{/if}}
+ {{if $item.edpost}}
+ <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav bi bi-pencil"></i>{{$item.edpost.1}}</a>
+ {{/if}}
+ {{if $item.tagger}}
+ <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav bi bi-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a>
+ {{/if}}
+ {{if $item.filer}}
+ <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav bi bi-folder-plus" title="{{$item.filer}}"></i>{{$item.filer}}</a>
+ {{/if}}
+ {{if $item.pinnable}}
+ <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$item.id}}); return false;" id="item-pinnable-{{$item.id}}"><i class="generic-icons-nav bi bi-pin"></i>{{$item.pinme}}</a>
+ {{/if}}
+ {{if $item.bookmark}}
+ <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav bi bi-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a>
+ {{/if}}
+ {{if $item.addtocal}}
+ <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav bi bi-calendar-plus" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
+ {{/if}}
+ {{if $item.star}}
+ <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav bi{{if $item.star.isstarred}} starred bi-star-fill{{else}} unstarred bi-star{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
+ {{/if}}
+ {{if $item.thread_action_menu}}
+ {{foreach $item.thread_action_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}} ><i class="generic-icons-nav bi bi-{{$mitem.icon}}"></i>{{$mitem.title}}</a>
+ {{/foreach}}
+ {{/if}}
+ {{if $item.drop.dropping}}
+ <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}', '{{$item.mid}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav bi bi-trash"></i>{{$item.drop.delete}}</a>
+ {{/if}}
+ {{if $item.dropdown_extras}}
+ <div class="dropdown-divider"></div>
+ {{$item.dropdown_extras}}
+ {{/if}}
+ {{if $item.edpost && $item.dreport}}
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item" href="dreport/{{$item.dreport_link}}">{{$item.dreport}}</a>
+ {{/if}}
+ {{if $item.settings}}
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item conversation-settings-link" href="" data-bs-toggle="modal" data-bs-target="#conversation_settings">{{$item.settings}}</a>
+ {{/if}}
+ </div>
+ </div>
{{/if}}
</div>
</div>
</div>
</div>
</div>
-{{if $item.comment_lastcollapsed}}
-</div>
-{{/if}}
diff --git a/view/tpl/cover_photo.tpl b/view/tpl/cover_photo.tpl
index 7bc72158b..dd0d3dbee 100644
--- a/view/tpl/cover_photo.tpl
+++ b/view/tpl/cover_photo.tpl
@@ -16,7 +16,7 @@
$('#embedPhotoModalBodyAlbumDialog').html('\
<div><div class="nav nav-pills flex-column">\n\
<li class="nav-item"><a class="nav-link" href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
- <i class="fa fa-chevron-left"></i>&nbsp\n\
+ <i class="bi fa-chevron-left"></i>&nbsp\n\
{{$modaldiffalbum}}\n\
</a>\n\
</li>\n\
@@ -111,7 +111,7 @@
<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}}
+ <i id="embed-photo" class="bi bi-file-image"></i> {{$select}}
</button>
</div>
</div>
diff --git a/view/tpl/defperms.tpl b/view/tpl/defperms.tpl
index 5e15a43c9..3e8224483 100644
--- a/view/tpl/defperms.tpl
+++ b/view/tpl/defperms.tpl
@@ -17,7 +17,7 @@
<p>{{$permnote_self}}</p>
</div>
{{if $permcat_enable}}
- <a href="permcats" class="float-end"><i class="fa fa-plus"></i>&nbsp;{{$permcat_new}}</a>
+ <a href="permcats" class="float-end"><i class="bi bi-plus-lg"></i>&nbsp;{{$permcat_new}}</a>
{{include file="field_select.tpl" field=$permcat}}
{{/if}}
diff --git a/view/tpl/directory_header.tpl b/view/tpl/directory_header.tpl
index a261762ac..50c29eab9 100644
--- a/view/tpl/directory_header.tpl
+++ b/view/tpl/directory_header.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper clearfix">
<div class="btn-group float-end">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{$sort}}">
- <i class="fa fa-sort"></i>
+ <i class="bi bi-arrow-down-up"></i>
</button>
<div class="dropdown-menu dropdown-menu-end">
<a class="dropdown-item" href="directory?f=&order=date{{$suggest}}">{{$date}}</a>
diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl
index 16df987f4..79d66d3aa 100644
--- a/view/tpl/direntry.tpl
+++ b/view/tpl/direntry.tpl
@@ -11,10 +11,10 @@
<a class="directory-ignore btn btn-info btn-sm" href="{{$entry.ignlink}}"> {{$entry.ignore_label}}</a>
{{/if}}
{{if $entry.connect}}
- <a class="btn btn-success btn-sm" href="{{$entry.connect}}"><i class="fa fa-plus connect-icon"></i> {{$entry.conn_label}}</a>
+ <a class="btn btn-success btn-sm" href="{{$entry.connect}}"><i class="bi bi-plus-lg connect-icon"></i> {{$entry.conn_label}}</a>
{{/if}}
</div>
- <h3>{{if $entry.public_forum}}<i class="fa fa-comments-o" title="{{$entry.forum_label}} @{{$entry.nickname}}+"></i>&nbsp;{{/if}}<a href='{{$entry.profile_link}}' >{{$entry.name}}</a>{{if $entry.online}}&nbsp;<i class="fa fa-asterisk online-now" title="{{$entry.online}}"></i>{{/if}}</h3>
+ <h3>{{if $entry.public_forum}}<i class="bi bi-chat-quote" title="{{$entry.forum_label}} @{{$entry.nickname}}+"></i>&nbsp;{{/if}}<a href='{{$entry.profile_link}}' >{{$entry.name}}</a>{{if $entry.online}}&nbsp;<i class="bi fa-asterisk online-now" title="{{$entry.online}}"></i>{{/if}}</h3>
</div>
<div class="section-content-tools-wrapper directory-collapse">
<div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.hash}}" >
diff --git a/view/tpl/dreport.tpl b/view/tpl/dreport.tpl
index a24608f58..0b8cfdb11 100644
--- a/view/tpl/dreport.tpl
+++ b/view/tpl/dreport.tpl
@@ -3,7 +3,7 @@
{{if $table == 'item'}}
<div class="dropdown float-end">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{$options}}">
- <i class="fa fa-cog"></i>
+ <i class="bi bi-gear"></i>
</button>
<div class="dropdown-menu">
<a href="dreport/push?mid={{$mid}}" class="dropdown-item">{{$push}}</a>
diff --git a/view/tpl/edpost_head.tpl b/view/tpl/edpost_head.tpl
index b8b1cdbc5..b77b1c910 100644
--- a/view/tpl/edpost_head.tpl
+++ b/view/tpl/edpost_head.tpl
@@ -5,7 +5,7 @@
<button id="dbtn-cancel" class="btn btn-warning btn-sm" onclick="itemCancel(); return false;">{{$cancel}}</button>
{{/if}}
{{if $delete}}
- <a href="item/drop/{{$id}}" id="delete-btn" class="btn btn-sm btn-danger" onclick="return confirmDelete();"><i class="fa fa-trash-o"></i>&nbsp;{{$delete}}</a>
+ <a href="item/drop/{{$id}}" id="delete-btn" class="btn btn-sm btn-danger" onclick="return confirmDelete();"><i class="bi bi-trash"></i>&nbsp;{{$delete}}</a>
{{/if}}
</div>
<h2>{{$title}}</h2>
diff --git a/view/tpl/event.tpl b/view/tpl/event.tpl
index 91dc53421..610ce7404 100644
--- a/view/tpl/event.tpl
+++ b/view/tpl/event.tpl
@@ -6,9 +6,9 @@
</div>
{{$event.html}}
<div class="event-buttons">
- {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="btn btn-sm btn-outline-secondary border-0 plink-event-link"><i class="fa fa-external-link" ></i></a>{{/if}}
- {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="btn btn-sm btn-outline-secondary border-0 edit-event-link"><i class="fa fa-pencil"></i></a>{{/if}}
- {{if $event.drop}}<a href="{{$event.drop.0}}" title="{{$event.drop.1}}" class="btn btn-sm btn-outline-secondary border-0 drop-event-link"><i class="fa fa-trash-o"></i></a>{{/if}}
+ {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="btn btn-sm btn-outline-secondary border-0 plink-event-link"><i class="bi bi-box-arrow-up-right" ></i></a>{{/if}}
+ {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="btn btn-sm btn-outline-secondary border-0 edit-event-link"><i class="bi bi-pencil"></i></a>{{/if}}
+ {{if $event.drop}}<a href="{{$event.drop.0}}" title="{{$event.drop.1}}" class="btn btn-sm btn-outline-secondary border-0 drop-event-link"><i class="bi bi-trash"></i></a>{{/if}}
</div>
<div class="clear"></div>
</div>
diff --git a/view/tpl/event_form.tpl b/view/tpl/event_form.tpl
index c56c5d82f..43c6942e1 100644
--- a/view/tpl/event_form.tpl
+++ b/view/tpl/event_form.tpl
@@ -40,30 +40,30 @@
<div id="comment-edit-bb-desc" class="btn-toolbar">
<div class='btn-group me-2'>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edbold}}" onclick="insertbbcomment('none','b', 'desc');">
- <i class="fa fa-bold comment-icon"></i>
+ <i class="bi bi-type-bold comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$editalic}}" onclick="insertbbcomment('none','i', 'desc');">
- <i class="fa fa-italic comment-icon"></i>
+ <i class="bi bi-type-italic comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$eduline}}" onclick="insertbbcomment('none','u', 'desc');">
- <i class="fa fa-underline comment-icon"></i>
+ <i class="bi bi-type-underline comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edquote}}" onclick="insertbbcomment('none','quote','desc');">
- <i class="fa fa-quote-left comment-icon"></i>
+ <i class="bi bi-quote comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edcode}}" onclick="insertbbcomment('none','code', 'desc');">
- <i class="fa fa-terminal comment-icon"></i>
+ <i class="bi bi-code comment-icon"></i>
</button>
</div>
<div class='btn-group'>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edimg}}" onclick="insertbbcomment('none','img', 'desc');">
- <i class="fa fa-camera comment-icon"></i>
+ <i class="bi fa-camera comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edurl}}" onclick="insertbbcomment('none','url', 'desc');">
- <i class="fa fa-link comment-icon"></i>
+ <i class="bi bi-link-45deg comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edvideo}}" onclick="insertbbcomment('none','video', 'desc');">
- <i class="fa fa-video-camera comment-icon"></i>
+ <i class="bi fa-video-camera comment-icon"></i>
</button>
</div>
</div>
@@ -78,33 +78,33 @@
<div id="comment-edit-bb-loc" class="btn-toolbar">
<div class='btn-group me-2'>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edbold}}" onclick="insertbbcomment('none','b', 'loc');">
- <i class="fa fa-bold comment-icon"></i>
+ <i class="bi bi-type-bold comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$editalic}}" onclick="insertbbcomment('none','i', 'loc');">
- <i class="fa fa-italic comment-icon"></i>
+ <i class="bi bi-type-italic comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$eduline}}" onclick="insertbbcomment('none','u', 'loc');">
- <i class="fa fa-underline comment-icon"></i>
+ <i class="bi bi-type-underline comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edquote}}" onclick="insertbbcomment('none','quote','loc');">
- <i class="fa fa-quote-left comment-icon"></i>
+ <i class="bi bi-quote comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edcode}}" onclick="insertbbcomment('none','code', 'loc');">
- <i class="fa fa-terminal comment-icon"></i>
+ <i class="bi bi-code comment-icon"></i>
</button>
</div>
<div class='btn-group'>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edimg}}" onclick="insertbbcomment('none','img', 'loc');">
- <i class="fa fa-camera comment-icon"></i>
+ <i class="bi fa-camera comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edurl}}" onclick="insertbbcomment('none','url', 'loc');">
- <i class="fa fa-link comment-icon"></i>
+ <i class="bi bi-link-45deg comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$edvideo}}" onclick="insertbbcomment('none','video', 'loc');">
- <i class="fa fa-video-camera comment-icon"></i>
+ <i class="bi fa-video-camera comment-icon"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$mapper}}" onclick="insertbbcomment('none','map','loc');">
- <i class="fa fa-globe comment-icon"></i>
+ <i class="bi bi-globe comment-icon"></i>
</button>
</div>
@@ -117,9 +117,9 @@
<button type="button" class="btn btn-outline-secondary btn-sm" onclick="openClose('advanced');">{{$advanced}}</button>
<div class="btn-group float-end">
- <button id="event-edit-preview-btn" class="btn btn-outline-secondary btn-sm" type="button" title="{{$preview}}" onclick="doEventPreview();"><i class="fa fa-eye" ></i></button>
+ <button id="event-edit-preview-btn" class="btn btn-outline-secondary btn-sm" type="button" title="{{$preview}}" onclick="doEventPreview();"><i class="bi bi-eye" ></i></button>
{{if ! $eid}}
- <button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$perms_label}}"><i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i></button>
+ <button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$perms_label}}"><i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i></button>
{{/if}}
<button id="event-submit" class="btn btn-primary btn-sm" type="submit" name="submit">{{$submit}}</button>
</div>
diff --git a/view/tpl/event_item_header.tpl b/view/tpl/event_item_header.tpl
index e81db48a1..1c8fe034c 100644
--- a/view/tpl/event_item_header.tpl
+++ b/view/tpl/event_item_header.tpl
@@ -1,5 +1,5 @@
<div class="event-item-title">
- <h3><i class="fa fa-calendar"></i>&nbsp;{{$title}}</h3>
+ <h3><i class="bi fa-calendar"></i>&nbsp;{{$title}}</h3>
</div>
{{if $oneday && $allday}}
<span class="dtstart">{{$dtstart_dt}}</span>
diff --git a/view/tpl/events-js.tpl b/view/tpl/events-js.tpl
index 5aa5b7ef8..e2c3167f4 100644
--- a/view/tpl/events-js.tpl
+++ b/view/tpl/events-js.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper">
<div class="float-end">
<div class="dropdown">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown"><i class="fa fa-cog"></i>&nbsp;{{$view_label}}</button>
+ <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown"><i class="bi bi-gear"></i>&nbsp;{{$view_label}}</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'month'); return false;">{{$month}}</a>
<a class="dropdown-item" href="#" onclick="changeView('changeView', 'agendaWeek'); return false;">{{$week}}</a>
@@ -10,12 +10,12 @@
</div>
<button class="btn btn-success btn-sm" onclick="openClose('form');">{{$new_event.1}}</button>
<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 class="btn btn-outline-secondary btn-sm" onclick="changeView('prev', false);" title="{{$prev}}"><i class="bi 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="bi 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="bi 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>
+ <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="bi fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="bi fa-compress"></i></button>
</div>
</div>
<h2 id="title"></h2>
diff --git a/view/tpl/events_cal-js.tpl b/view/tpl/events_cal-js.tpl
index a56c8b348..8f3104e34 100644
--- a/view/tpl/events_cal-js.tpl
+++ b/view/tpl/events_cal-js.tpl
@@ -3,12 +3,12 @@
<div class="section-title-wrapper">
<div class="float-end">
<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 class="btn btn-outline-secondary btn-sm" onclick="changeView('prev', false);" title="{{$prev}}"><i class="bi 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="bi 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="bi 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>
+ <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="bi fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="bi fa-compress"></i></button>
</div>
<h2 id="title"></h2>
<div class="clear"></div>
diff --git a/view/tpl/events_tools_side.tpl b/view/tpl/events_tools_side.tpl
index bad1038a3..02dc12008 100644
--- a/view/tpl/events_tools_side.tpl
+++ b/view/tpl/events_tools_side.tpl
@@ -1,8 +1,8 @@
<div class="widget">
<h3>{{$title}}</h3>
<ul class="nav nav-pills flex-column">
- <li class="nav-item"><a class="nav-link" href="#" onclick="exportDate(); return false;"><i class="fa fa-arrow-circle-o-down"></i>&nbsp;{{$export}}</a></li>
- <li class="nav-item"><a class="nav-link" href="#" onclick="openClose('event-upload-form'); return false;"><i class="fa fa-arrow-circle-o-up"></i>&nbsp;{{$import}}</a></li>
+ <li class="nav-item"><a class="nav-link" href="#" onclick="exportDate(); return false;"><i class="bi fa-arrow-circle-o-down"></i>&nbsp;{{$export}}</a></li>
+ <li class="nav-item"><a class="nav-link" href="#" onclick="openClose('event-upload-form'); return false;"><i class="bi fa-arrow-circle-o-up"></i>&nbsp;{{$import}}</a></li>
</ul>
<div id="event-upload-form" class="sub-menu-wrapper">
<div class="sub-menu">
diff --git a/view/tpl/field_acheckbox.tpl b/view/tpl/field_acheckbox.tpl
index 44f65fefd..7e2a92769 100644
--- a/view/tpl/field_acheckbox.tpl
+++ b/view/tpl/field_acheckbox.tpl
@@ -8,9 +8,9 @@
<span class="text-nowrap text-danger">
{{$inherited}}
{{if $field.7}}
- <i class="fa fa-check-square-o"></i>
+ <i class="bi bi-check-square"></i>
{{else}}
- <i class="fa fa-square-o"></i>
+ <i class="bi bi-square"></i>
{{/if}}
</span>
{{/if}}
@@ -18,9 +18,9 @@
<td>
{{if $is_system_role}}
{{if $field.3}}
- <i class="fa fa-check-square-o"></i>
+ <i class="bi bi-check-square"></i>
{{else}}
- <i class="fa fa-square-o"></i>
+ <i class="bi bi-square"></i>
{{/if}}
{{else}}
<input type="checkbox" name="{{$field.0}}" value="{{$field.4}}" {{if $field.3}}checked="checked"{{/if}} />
diff --git a/view/tpl/follow.tpl b/view/tpl/follow.tpl
index 7adbc03ec..6c8c524c2 100644
--- a/view/tpl/follow.tpl
+++ b/view/tpl/follow.tpl
@@ -3,7 +3,7 @@
<form action="follow" method="post" />
<div class="input-group">
<input class="form-control" type="text" name="url" title="{{$hint}}" placeholder="{{$desc}}" />
- <button class="btn btn-success" type="submit" name="submit" value="{{$follow}}" title="{{$follow}}"><i class="fa fa-fw fa-plus"></i></button>
+ <button class="btn btn-success" type="submit" name="submit" value="{{$follow}}" title="{{$follow}}"><i class="bi bi-plus-lg"></i></button>
</div>
</form>
{{if $abook_usage_message}}
diff --git a/view/tpl/generic_addon_settings.tpl b/view/tpl/generic_addon_settings.tpl
index aed8276da..685099807 100644
--- a/view/tpl/generic_addon_settings.tpl
+++ b/view/tpl/generic_addon_settings.tpl
@@ -5,7 +5,7 @@
{{if $addon.1|substr:0:1 === '<'}}
{{$addon.1}}
{{else}}
- <i class="fa fa-gear"></i> {{$addon.1}}
+ <i class="bi fa-gear"></i> {{$addon.1}}
{{/if}}
</a>
</h3>
diff --git a/view/tpl/group_edit.tpl b/view/tpl/group_edit.tpl
index f6ab1e594..0e22c50eb 100644
--- a/view/tpl/group_edit.tpl
+++ b/view/tpl/group_edit.tpl
@@ -1,8 +1,8 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="float-end">
- <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>
+ <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="bi fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="bi fa-compress"></i></button>
</div>
<h2>{{$title}}</h2>
</div>
diff --git a/view/tpl/group_side.tpl b/view/tpl/group_side.tpl
index 979d20aa5..a4d9c305e 100644
--- a/view/tpl/group_side.tpl
+++ b/view/tpl/group_side.tpl
@@ -5,17 +5,17 @@
{{foreach $groups as $group}}
<li class="nav-item nav-item-hack">
{{if $group.cid}}
- <i id="group-{{$group.id}}" class="widget-nav-pills-checkbox fa fa-fw {{if $group.ismember}}fa-check-square-o{{else}}fa-square-o{{/if}}" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"></i>
+ <i id="group-{{$group.id}}" class="widget-nav-pills-checkbox bi {{if $group.ismember}}bi-check-square{{else}}bi-square{{/if}}" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"></i>
{{/if}}
{{if $group.edit}}
- <a href="{{$group.edit.href}}" class="nav-link{{if $group.selected}} active{{/if}} widget-nav-pills-icons" title="{{$edittext}}"><i class="fa fa-fw fa-pencil"></i></a>
+ <a href="{{$group.edit.href}}" class="nav-link{{if $group.selected}} active{{/if}} widget-nav-pills-icons" title="{{$edittext}}"><i class="bi bi-pencil"></i></a>
{{/if}}
<a class="nav-link{{if $group.selected}} active{{/if}}" href="{{$group.href}}">{{$group.text}}</a>
</li>
{{/foreach}}
{{if $createtext}}
<li class="nav-item">
- <a class="nav-link" href="group/new" title="{{$createtext}}" ><i class="fa fa-external-link"></i> {{$createtext}}</a>
+ <a class="nav-link" href="group/new" title="{{$createtext}}" ><i class="bi bi-box-arrow-up-right"></i> {{$createtext}}</a>
</li>
{{/if}}
</ul>
diff --git a/view/tpl/help.tpl b/view/tpl/help.tpl
index ba61a43ce..68e1c6694 100644
--- a/view/tpl/help.tpl
+++ b/view/tpl/help.tpl
@@ -1,24 +1,16 @@
<div id="help-content" class="generic-content-wrapper">
<div class="clearfix section-title-wrapper">
- <div class="float-end">
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown">
- <i class="fa fa-language" style="font-size: 1.4em;"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end flex-column lang-selector">
- <a class="dropdown-item lang-choice" href="/help">de</a>
- <a class="dropdown-item lang-choice" href="/help">en</a>
- <a class="dropdown-item lang-choice" href="/help">es</a>
- <a class="dropdown-item lang-choice" href="/help">fr</a>
- </div>
- </div>
- </div>
<h2>{{$module->get_page_title()}}</h2>
</div>
+ {{if $module->missing_translation()}}
+ <div class="notice section-content-info-wrapper">
+ {{$module->missing_translation_message()}}
+ </div>
+ {{/if}}
<div class="section-content-wrapper" id="doco-content">
<h3 id="doco-top-toc-heading">
<span class="fakelink" onclick="docoTocToggle(); return false;">
- <i class="fa fa-fw fa-caret-right fakelink" id="doco-toc-toggle"></i>
+ <i class="bi bi-caret-right fakelink" id="doco-toc-toggle"></i>
{{$module->get_toc_heading()}}
</span>
</h3>
@@ -26,6 +18,3 @@
{{$module->render_content()}}
</div>
</div>
-<script>
- var help_language = '{{$module->lang["language"]}}'
-</script>
diff --git a/view/tpl/hq_controls.tpl b/view/tpl/hq_controls.tpl
index 0d433c2c2..83c62cb1d 100644
--- a/view/tpl/hq_controls.tpl
+++ b/view/tpl/hq_controls.tpl
@@ -1,7 +1,7 @@
<div class="mb-3 hq_controls{{if $wrapper_class}} {{$wrapper_class}}{{/if}}">
{{foreach $entries as $e}}
<button class="{{$e.class}} rounded-circle{{if $entry_class}} {{$entry_class}}{{/if}}" type="{{$e.type}}" title="{{$e.label}}"{{if $e.extra}} {{$e.extra}}{{/if}}>
- {{if $e.icon}}<i class="fa fa-{{$e.icon}}"></i>{{/if}}
+ {{if $e.icon}}<i class="bi bi-{{$e.icon}}"></i>{{/if}}
</button>
{{/foreach}}
</div>
diff --git a/view/tpl/install.tpl b/view/tpl/install.tpl
index 56faa0527..e2c420e6f 100644
--- a/view/tpl/install.tpl
+++ b/view/tpl/install.tpl
@@ -3,7 +3,7 @@
<h1>{{$title}}</h1>
<hr class="my-4">
{{if $icon}}
- <h2><i class="fa fa-{{$icon}}"></i>&nbsp; {{$pass}}</h2>
+ <h2><i class="bi bi-{{$icon}}"></i>&nbsp; {{$pass}}</h2>
{{/if}}
</div>
diff --git a/view/tpl/install_checks.tpl b/view/tpl/install_checks.tpl
index 8bbb9f26d..f9743d02a 100644
--- a/view/tpl/install_checks.tpl
+++ b/view/tpl/install_checks.tpl
@@ -2,12 +2,12 @@
<div class="jumbotron">
<h1>{{$title}}</h1>
<hr class="my-4">
- <h2><i class="fa fa-heartbeat"></i>&nbsp; {{$pass}}</h2>
+ <h2><i class="bi fa-heartbeat"></i>&nbsp; {{$pass}}</h2>
</div>
<form action="{{$baseurl}}/index.php?q=setup" method="post">
<table class="table">
{{foreach $checks as $check}}
- <tr><td{{if ! $check.status}} class="text-danger"{{/if}}>{{$check.title}}</td><td><i class="fa {{if $check.status}}fa-check-square-o{{else}}{{if $check.required}}fa-square-o{{else}}fa-exclamation text-danger{{/if}}{{/if}}"></i></td><td>{{if $check.required}}(required){{/if}}</td></tr>
+ <tr><td{{if ! $check.status}} class="text-danger"{{/if}}>{{$check.title}}</td><td><i class="bi {{if $check.status}}bi-check-square{{else}}{{if $check.required}}bi-square{{else}}fa-exclamation text-danger{{/if}}{{/if}}"></i></td><td>{{if $check.required}}(required){{/if}}</td></tr>
{{if $check.help}}
<tr><td colspan="3" class="border-top-0 pt-0 pb-0"><div class="alert alert-info">{{$check.help}}</div></td></tr>
{{/if}}
@@ -20,10 +20,10 @@
{{if $passed}}
<input type="hidden" name="pass" value="2">
- <button class="btn btn-success" type="submit"><i class="fa fa-check"></i> {{$next}}</button>
+ <button class="btn btn-success" type="submit"><i class="bi bi-check-lg"></i> {{$next}}</button>
{{else}}
<input type="hidden" name="pass" value="1">
- <button class="btn btn-warning" type="submit"><i class="fa fa-refresh"></i> {{$reload}}</button>
+ <button class="btn btn-warning" type="submit"><i class="bi fa-refresh"></i> {{$reload}}</button>
{{/if}}
</form>
</div>
diff --git a/view/tpl/install_db.tpl b/view/tpl/install_db.tpl
index 8b9023443..c8e6af808 100644
--- a/view/tpl/install_db.tpl
+++ b/view/tpl/install_db.tpl
@@ -2,7 +2,7 @@
<div class="jumbotron">
<h1>{{$title}}</h1>
<hr class="my-4">
- <h2><i class="fa fa-database"></i>&nbsp; {{$pass}}</h2>
+ <h2><i class="bi fa-database"></i>&nbsp; {{$pass}}</h2>
</div>
<div class="alert alert-info">
{{$info_01}}<br>
diff --git a/view/tpl/install_settings.tpl b/view/tpl/install_settings.tpl
index b62f8508b..8ee78425d 100644
--- a/view/tpl/install_settings.tpl
+++ b/view/tpl/install_settings.tpl
@@ -2,7 +2,7 @@
<div class="jumbotron">
<h1>{{$title}}</h1>
<hr class="my-4">
- <h2><i class="fa fa-cogs"></i>&nbsp; {{$pass}}</h2>
+ <h2><i class="bi bi-gears"></i>&nbsp; {{$pass}}</h2>
</div>
{{if $status}}
diff --git a/view/tpl/invite.tpl b/view/tpl/invite.tpl
index 08c984a5e..fd1ce3134 100644
--- a/view/tpl/invite.tpl
+++ b/view/tpl/invite.tpl
@@ -67,7 +67,7 @@
'<style> '+
' .zai_h0 { font-size: 1.2rem; display: inline; }'+
' .zai_hi { background: #ffc107; font-weight: bold; }'+
- ' .zai_fa { margin: 0 0.2em 0 1em; }'+
+ ' .zai_bi { margin: 0 0.2em 0 1em; }'+
' .zai_lcc, .zai_qmc, .zuiqmid { font-family: monospace; text-transform: uppercase; }'+
' .zai_lcc5 { display: none; }'+
' .zai_ax { margin-inline: 8rem; }'+
diff --git a/view/tpl/item_attach.tpl b/view/tpl/item_attach.tpl
index 95e38c0bd..a1c7f8606 100644
--- a/view/tpl/item_attach.tpl
+++ b/view/tpl/item_attach.tpl
@@ -1,5 +1,5 @@
{{if $attaches}}
{{foreach $attaches as $a}}
-<a class="dropdown-item" href="{{$a.url}}" title="{{$a.title}}"><i class="fa {{$a.icon}} attach-icons"></i>&nbsp;{{$a.label}}</a>
+<a class="dropdown-item" href="{{$a.url}}" title="{{$a.title}}"><i class="bi {{$a.icon}} attach-icons"></i>&nbsp;{{$a.label}}</a>
{{/foreach}}
{{/if}}
diff --git a/view/tpl/item_categories.tpl b/view/tpl/item_categories.tpl
index 68f8944bc..c585c9802 100644
--- a/view/tpl/item_categories.tpl
+++ b/view/tpl/item_categories.tpl
@@ -1,7 +1,7 @@
{{if $categories}}
<!--div class="categorytags"-->
{{foreach $categories as $cat}}
-<span class="item-category badge rounded-pill bg-warning text-dark"><i class="fa fa-asterisk"></i>&nbsp;{{if $cat.url}}<a class="text-dark" href="{{$cat.url}}">{{$cat.term}}</a>{{else}}{{$cat.term}}{{/if}}</span>
+<span class="item-category badge rounded-pill bg-warning text-dark"><i class="bi bi-asterisk"></i>&nbsp;{{if $cat.url}}<a class="text-dark" href="{{$cat.url}}">{{$cat.term}}</a>{{else}}{{$cat.term}}{{/if}}</span>
{{/foreach}}
<!--/div-->
{{/if}}
diff --git a/view/tpl/item_filer.tpl b/view/tpl/item_filer.tpl
index 3ecf9aa41..8f8e6f69f 100644
--- a/view/tpl/item_filer.tpl
+++ b/view/tpl/item_filer.tpl
@@ -1,7 +1,7 @@
{{if $categories}}
<!--div class="filesavetags"-->
{{foreach $categories as $cat}}
-<span class="item-category badge rounded-pill bg-danger"><i class="fa fa-folder-o"></i>&nbsp;{{$cat.term}}&nbsp;<a href="{{$cat.removelink}}" class="text-white" title="{{$remove}}" onClick="itemFilerRm({{$cat.id}}, '{{$cat.term}}'); return false;"><i class="fa fa-close"></i></a></span>
+<span class="item-category badge rounded-pill bg-danger"><i class="bi bi-folder"></i>&nbsp;{{$cat.term}}&nbsp;<a href="{{$cat.removelink}}" class="text-white" title="{{$remove}}" onClick="itemFilerRm({{$cat.id}}, '{{$cat.term}}'); return false;"><i class="bi bi-x-lg"></i></a></span>
{{/foreach}}
<!--/div-->
{{/if}}
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index ca3cabd61..2c60b7c22 100644
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -184,7 +184,6 @@ var activeCommentText = '';
}
function jotGetExpiry() {
- //reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
$('#expiryModal').modal('show');
$('#expiry-modal-OKButton').on('click', function() {
reply=$('#expiration-date').val();
@@ -196,7 +195,6 @@ var activeCommentText = '';
}
function jotGetPubDate() {
- //reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
$('#createdModal').modal('show');
$('#created-modal-OKButton').on('click', function() {
reply=$('#created-date').val();
@@ -376,32 +374,22 @@ var activeCommentText = '';
timer = setTimeout(updateInit,1000);
}
- function toggleVoting() {
- if($('#jot-consensus').val() > 0) {
- $('#jot-consensus').val(0);
- $('#profile-voting, #profile-voting-sub').removeClass('fa-check-square-o').addClass('fa-square-o');
- }
- else {
- $('#jot-consensus').val(1);
- $('#profile-voting, #profile-voting-sub').removeClass('fa-square-o').addClass('fa-check-square-o');
- }
- }
-
function toggleNoComment() {
if($('#jot-nocomment').val() > 0) {
$('#jot-nocomment').val(0);
- $('#profile-nocomment, #profile-nocomment-sub').removeClass('fa-comments-o').addClass('fa-comments');
+ $('#profile-nocomment, #profile-nocomment-sub').removeClass('bi-chat').addClass('bi-chat-dots');
$('#profile-nocomment-wrapper').attr('title', '{{$nocomment_enabled|escape:'javascript'}}');
}
else {
$('#jot-nocomment').val(1);
- $('#profile-nocomment, #profile-nocomment-sub').removeClass('fa-comments').addClass('fa-comments-o');
+ $('#profile-nocomment, #profile-nocomment-sub').removeClass('bi-chat-dots').addClass('bi-chat');
$('#profile-nocomment-wrapper').attr('title', '{{$nocomment_disabled|escape:'javascript'}}');
}
}
function jotReact(id,icon) {
if(id && icon) {
+ $('#like-rotator-' + id).show();
$.get('{{$baseurl}}/react?f=&postid=' + id + '&emoji=' + icon);
if(timer) clearTimeout(timer);
timer = setTimeout(updateInit,1000);
@@ -431,7 +419,7 @@ var activeCommentText = '';
$('#embedPhotoModalBodyAlbumDialog').html('\
<div><div class="nav nav-pills flex-column">\n\
<li class="nav-item"><a class="nav-link" href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
- <i class="fa fa-chevron-left"></i>&nbsp\n\
+ <i class="bi bi-chevron-left"></i>&nbsp\n\
{{$modaldiffalbum}}\n\
</a>\n\
</li>\n\
@@ -534,7 +522,7 @@ var activeCommentText = '';
}
function jotAddOption() {
- var option = '<div class="jot-poll-option mb-3"><input class="w-100 border-0" name="poll_answers[]" type="text" value="" placeholder="Option"><div class="poll-option-close"><i class="fa fa-close"></i></div></div>';
+ var option = '<div class="jot-poll-option mb-3"><input class="w-100 border-0" name="poll_answers[]" type="text" value="" placeholder="Option"><div class="poll-option-close"><i class="bi bi-x-lg"></i></div></div>';
$('#jot-poll-options').append(option);
}
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index d80e8d066..294750398 100644
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -53,11 +53,11 @@
<div id="jot-text-wrap">
<div id="profile-jot-tools" class="btn-group d-none">
{{if $is_owner}}
- <a id="profile-jot-settings" class="btn btn-outline-secondary btn-sm border-0" href="/settings/editor/?f=&rpath=/{{$return_path}}" tabindex="4"><i class="fa fa-cog"></i></a>
+ <a id="profile-jot-settings" class="btn btn-outline-secondary btn-sm border-0" href="/settings/editor/?f=&rpath=/{{$return_path}}" tabindex="4"><i class="bi bi-gear"></i></a>
{{/if}}
{{if $reset}}
<button type="button" id="profile-jot-reset" class="btn btn-outline-secondary btn-sm border-0" title="{{$reset}}" tabindex="-1" onclick="itemCancel(); return false;">
- <i class="fa fa-close"></i>
+ <i class="bi bi-x-lg"></i>
</button>
{{/if}}
</div>
@@ -81,7 +81,7 @@
<div id="jot-poll-tools" class="clearfix">
<div id="poll-tools-left" class="float-start">
<button id="jot-add-option" class="btn btn-outline-secondary btn-sm" type="button">
- <i class="fa fa-plus"></i> {{$poll_add_option_label}}
+ <i class="bi bi-plus-lg"></i> {{$poll_add_option_label}}
</button>
</div>
<div id="poll-tools-right" class="float-end">
@@ -101,19 +101,19 @@
{{if $bbcode}}
<div class="btn-group me-2">
<button type="button" id="main-editor-bold" class="btn btn-outline-secondary btn-sm border-0" title="{{$bold}}" onclick="inserteditortag('b', 'profile-jot-text'); return false;">
- <i class="fa fa-bold jot-icons"></i>
+ <i class="bi bi-type-bold jot-icons"></i>
</button>
<button type="button" id="main-editor-italic" class="btn btn-outline-secondary btn-sm border-0" title="{{$italic}}" onclick="inserteditortag('i', 'profile-jot-text'); return false;">
- <i class="fa fa-italic jot-icons"></i>
+ <i class="bi bi-type-italic jot-icons"></i>
</button>
<button type="button" id="main-editor-underline" class="btn btn-outline-secondary btn-sm border-0" title="{{$underline}}" onclick="inserteditortag('u', 'profile-jot-text'); return false;">
- <i class="fa fa-underline jot-icons"></i>
+ <i class="bi bi-type-underline jot-icons"></i>
</button>
<button type="button" id="main-editor-quote" class="btn btn-outline-secondary btn-sm border-0" title="{{$quote}}" onclick="inserteditortag('quote', 'profile-jot-text'); return false;">
- <i class="fa fa-quote-left jot-icons"></i>
+ <i class="bi bi-quote jot-icons"></i>
</button>
<button type="button" id="main-editor-code" class="btn btn-outline-secondary btn-sm border-0" title="{{$code}}" onclick="inserteditortag('code', 'profile-jot-text'); return false;">
- <i class="fa fa-terminal jot-icons"></i>
+ <i class="bi bi-code jot-icons"></i>
</button>
</div>
{{/if}}
@@ -121,29 +121,29 @@
<div class="btn-group me-2 d-none d-lg-flex">
{{if $writefiles}}
<button type="button" id="wall-file-upload" class="btn btn-outline-secondary btn-sm border-0" title="{{$attach}}" >
- <i id="wall-file-upload-icon" class="fa fa-paperclip jot-icons"></i>
+ <i id="wall-file-upload-icon" class="bi bi-paperclip jot-icons"></i>
</button>
{{/if}}
{{if $weblink}}
<button type="button" id="profile-link-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$weblink}}" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;">
- <i id="profile-link" class="fa fa-link jot-icons"></i>
+ <i id="profile-link" class="bi bi-link-45deg jot-icons"></i>
</button>
{{/if}}
{{if $embedPhotos}}
<button type="button" id="embed-photo-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$embedPhotos}}" onclick="initializeEmbedPhotoDialog();return false;">
- <i id="embed-photo" class="fa fa-file-image-o jot-icons"></i>
+ <i id="embed-photo" class="bi bi-file-image jot-icons"></i>
</button>
{{/if}}
</div>
<div class="btn-group me-2 d-none d-lg-flex">
{{if $setloc}}
<button type="button" id="profile-location-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$setloc}}" onclick="jotGetLocation();return false;">
- <i id="profile-location" class="fa fa-globe jot-icons"></i>
+ <i id="profile-location" class="bi bi-geo-alt-fill jot-icons"></i>
</button>
{{/if}}
{{if $clearloc}}
<button type="button" id="profile-nolocation-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$clearloc}}" onclick="jotClearLocation();return false;" disabled="disabled">
- <i id="profile-nolocation" class="fa fa-circle-o jot-icons"></i>
+ <i id="profile-nolocation" class="bi bi-geo-alt jot-icons"></i>
</button>
{{/if}}
{{else}}
@@ -151,25 +151,25 @@
{{/if}}
{{if $feature_expire}}
<button type="button" id="profile-expire-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$expires}}" onclick="jotGetExpiry();return false;">
- <i id="profile-expires" class="fa fa-eraser jot-icons"></i>
+ <i id="profile-expires" class="bi bi-eraser jot-icons"></i>
</button>
{{/if}}
{{if $feature_future}}
<button type="button" id="profile-future-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$future_txt}}" onclick="jotGetPubDate();return false;">
- <i id="profile-future" class="fa fa-clock-o jot-icons"></i>
+ <i id="profile-future" class="bi bi-clock jot-icons"></i>
</button>
{{/if}}
{{if $feature_encrypt}}
<button type="button" id="profile-encrypt-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$encrypt}}" onclick="sodium_encrypt('#profile-jot-text'); return false;">
- <i id="profile-encrypt" class="fa fa-key jot-icons"></i>
+ <i id="profile-encrypt" class="bi bi-key jot-icons"></i>
</button>
{{/if}}
<button type="button" id="profile-poll-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$poll}}" onclick="initPoll();">
- <i id="profile-poll" class="fa fa-bar-chart jot-icons"></i>
+ <i id="profile-poll" class="bi bi-bar-chart jot-icons"></i>
</button>
{{if $feature_nocomment}}
<button type="button" id="profile-nocomment-wrapper" class="btn btn-outline-secondary btn-sm border-0" title="{{$nocommenttitle}}" onclick="toggleNoComment();return false;">
- <i id="profile-nocomment" class="fa fa-comments jot-icons"></i>
+ <i id="profile-nocomment" class="bi bi-chat-dots jot-icons"></i>
</button>
{{/if}}
{{if $custommoretoolsbuttons}}
@@ -179,38 +179,38 @@
{{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $custommoretoolsdropdown}}
<div class="btn-group d-lg-none">
<button type="button" id="more-tools" class="btn btn-outline-secondary btn-sm border-0 dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
- <i id="more-tools-icon" class="fa fa-cog jot-icons"></i>
+ <i id="more-tools-icon" class="bi bi-gear jot-icons"></i>
</button>
<div class="dropdown-menu">
{{if $visitor}}
{{if $writefiles}}
- <a class="dropdown-item" id="wall-file-upload-sub" href="#" ><i class="fa fa-paperclip"></i>&nbsp;{{$attach}}</a>
+ <a class="dropdown-item" id="wall-file-upload-sub" href="#" ><i class="bi bi-paperclip"></i>&nbsp;{{$attach}}</a>
{{/if}}
{{if $weblink}}
- <a class="dropdown-item" href="#" onclick="jotGetLink(); return false;"><i class="fa fa-link"></i>&nbsp;{{$weblink}}</a>
+ <a class="dropdown-item" href="#" onclick="jotGetLink(); return false;"><i class="bi bi-link-45deg"></i>&nbsp;{{$weblink}}</a>
{{/if}}
{{if $embedPhotos}}
- <a class="dropdown-item" href="#" onclick="initializeEmbedPhotoDialog(); return false;"><i class="fa fa-file-image-o jot-icons"></i>&nbsp;{{$embedPhotos}}</a>
+ <a class="dropdown-item" href="#" onclick="initializeEmbedPhotoDialog(); return false;"><i class="bi bi-file-image jot-icons"></i>&nbsp;{{$embedPhotos}}</a>
{{/if}}
{{if $setloc}}
- <a class="dropdown-item" href="#" onclick="jotGetLocation(); return false;"><i class="fa fa-globe"></i>&nbsp;{{$setloc}}</a>
+ <a class="dropdown-item" href="#" onclick="jotGetLocation(); return false;"><i class="bi bi-geo-alt-fill"></i>&nbsp;{{$setloc}}</a>
{{/if}}
{{if $clearloc}}
- <a class="dropdown-item" href="#" onclick="jotClearLocation(); return false;"><i class="fa fa-circle-o"></i>&nbsp;{{$clearloc}}</a>
+ <a class="dropdown-item" href="#" onclick="jotClearLocation(); return false;"><i class="bi bi-geo-alt"></i>&nbsp;{{$clearloc}}</a>
{{/if}}
{{/if}}
{{if $feature_expire}}
- <a class="dropdown-item" href="#" onclick="jotGetExpiry(); return false;"><i class="fa fa-eraser"></i>&nbsp;{{$expires}}</a>
+ <a class="dropdown-item" href="#" onclick="jotGetExpiry(); return false;"><i class="bi bi-eraser"></i>&nbsp;{{$expires}}</a>
{{/if}}
{{if $feature_future}}
- <a class="dropdown-item" href="#" onclick="jotGetPubDate();return false;"><i class="fa fa-clock-o"></i>&nbsp;{{$future_txt}}</a>
+ <a class="dropdown-item" href="#" onclick="jotGetPubDate();return false;"><i class="bi bi-clock"></i>&nbsp;{{$future_txt}}</a>
{{/if}}
{{if $feature_encrypt}}
- <a class="dropdown-item" href="#" onclick="sodium_encrypt('#profile-jot-text'); return false;"><i class="fa fa-key"></i>&nbsp;{{$encrypt}}</a>
+ <a class="dropdown-item" href="#" onclick="sodium_encrypt('#profile-jot-text'); return false;"><i class="bi bi-key"></i>&nbsp;{{$encrypt}}</a>
{{/if}}
- <a class="dropdown-item" href="#" onclick="initPoll(); return false"><i id="profile-poll" class="fa fa-bar-chart jot-icons"></i>&nbsp;{{$poll}}</a>
+ <a class="dropdown-item" href="#" onclick="initPoll(); return false"><i id="profile-poll" class="bi bi-bar-chart jot-icons"></i>&nbsp;{{$poll}}</a>
{{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>
+ <a class="dropdown-item" href="#" onclick="toggleNoComment(); return false;"><i id="profile-nocomment-sub" class="bi bi-chat"></i>&nbsp;{{$nocommenttitlesub}}</a>
{{/if}}
<hr />
{{$custommoretoolsdropdown}}
@@ -231,17 +231,17 @@
{{/foreach}}
{{if $preview}}
<button type="button" class="btn btn-outline-secondary btn-sm" onclick="preview_post();return false;" title="{{$preview}}">
- <i class="fa fa-eye jot-icons" ></i>
+ <i class="bi bi-eye jot-icons" ></i>
</button>
{{/if}}
{{if $jotnets}}
<button type="button" id="dbtn-jotnets" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#jotnetsModal" type="button" title="{{$jotnets_label}}" style="{{if $lockstate == 'lock'}}display: none;{{/if}}">
- <i class="fa fa-share-alt jot-icons"></i>
+ <i class="bi bi-share jot-icons"></i>
</button>
{{/if}}
{{if $showacl}}
<button type="button" id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" title="{{$permset}}" type="button" data-form_id="profile-jot-form">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons{{if $bang}} jot-lock-warn{{/if}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}} jot-icons{{if $bang}} jot-lock-warn{{/if}}"></i>
</button>
{{/if}}
<button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" tabindex="3" name="button-submit">{{$share}}</button>
@@ -258,7 +258,7 @@
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" id="expiryModalLabel">{{$jotnets_label}}</h3>
- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true">&times;</button>
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
</div>
<div class="modal-body">
{{$jotnets}}
diff --git a/view/tpl/layoutlist.tpl b/view/tpl/layoutlist.tpl
index 723452839..288d38ec3 100644
--- a/view/tpl/layoutlist.tpl
+++ b/view/tpl/layoutlist.tpl
@@ -2,8 +2,8 @@
<div class="section-title-wrapper">
{{if $editor}}
<div class="float-end">
- <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('layout-editor');"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$create}}</button>
- <a href="{{$help.url}}" target="_blank" class="btn btn-sm btn-warning" title="{{$help.title}}"><i class="fa fa-info"></i>&nbsp;{{$help.text}}</a>
+ <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('layout-editor');"><i class="bi bi-pencil-square-o"></i>&nbsp;{{$create}}</button>
+ <a href="{{$help.url}}" target="_blank" class="btn btn-sm btn-warning" title="{{$help.title}}"><i class="bi fa-info"></i>&nbsp;{{$help.text}}</a>
</div>
{{/if}}
<h2>{{$title}}</h2>
@@ -42,17 +42,17 @@
</td>
<td class="webpage-list-tool">
{{if $edit}}
- <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="fa fa-pencil"></i></a>
+ <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="bi bi-pencil"></i></a>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $item.bb_element}}
- <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="fa fa-share-square-o"></i></a>
+ <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="bi bi-download"></i></a>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $edit}}
- <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#layout-list-item-{{$item.url}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#layout-list-item-{{$item.url}}'); return false;"><i class="bi bi-trash drop-icons"></i></a>
{{/if}}
</td>
<td class="d-none d-md-table-cell">
diff --git a/view/tpl/like_noshare.tpl b/view/tpl/like_noshare.tpl
index e83b885fe..e79b71609 100644
--- a/view/tpl/like_noshare.tpl
+++ b/view/tpl/like_noshare.tpl
@@ -1,5 +1,5 @@
<div class="wall-item-like-buttons" id="wall-item-like-buttons-{{$id}}">
- <i class="fa fa-thumbs-o-up item-tool btn btn-outline-secondary" title="{{$likethis}}" onclick="dolike({{$id}},'like'); return false"></i>
- <i class="fa fa-thumbs-o-down item-tool btn btn-outline-secondary" title="{{$nolike}}" onclick="dolike({{$id}},'dislike'); return false"></i>
+ <i class="bi fa-thumbs-o-up item-tool btn btn-outline-secondary" title="{{$likethis}}" onclick="dolike({{$id}},'like'); return false"></i>
+ <i class="bi fa-thumbs-o-down item-tool btn btn-outline-secondary" title="{{$nolike}}" onclick="dolike({{$id}},'dislike'); return false"></i>
<div id="like-rotator-{{$id}}" class="like-rotator"></div>
</div>
diff --git a/view/tpl/locmanage.tpl b/view/tpl/locmanage.tpl
index 70426dd3e..53b71a5ea 100644
--- a/view/tpl/locmanage.tpl
+++ b/view/tpl/locmanage.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <button class="btn btn-success btn-sm float-end" onclick="window.location.href='/locs/f=&sync=1'; return false;"><i class="fa fa-refresh"></i>&nbsp;{{$sync}}</button>
+ <button class="btn btn-success btn-sm float-end" onclick="window.location.href='/locs/f=&sync=1'; return false;"><i class="bi fa-refresh"></i>&nbsp;{{$sync}}</button>
<h2>{{$header}}</h2>
</div>
<div class="section-content-wrapper-np">
@@ -23,10 +23,10 @@
<tr class="locs-index-row">
<td>{{$hub.hubloc_addr}}</td>
<td class="d-none d-md-table-cell">{{$hub.hubloc_url}}</td>
- <td>{{if $hub.hubloc_primary}}<i class="fa fa-check-square-o"></i>{{else}}<i class="fa fa-square-o primehub" onclick="primehub({{$hub.hubloc_id}}); return false;"></i>{{/if}}</td>
+ <td>{{if $hub.hubloc_primary}}<i class="bi bi-check-square"></i>{{else}}<i class="bi bi-square primehub" onclick="primehub({{$hub.hubloc_id}}); return false;"></i>{{/if}}</td>
<td>
{{if $hub.hubloc_url != $base_url}}
- <i class="fa fa-trash-o drophub" onclick="drophub({{$hub.hubloc_id}}); return false;"></i>
+ <i class="bi bi-trash drophub" onclick="drophub({{$hub.hubloc_id}}); return false;"></i>
{{/if}}
</td>
</tr>
diff --git a/view/tpl/menuedit.tpl b/view/tpl/menuedit.tpl
index ad698f2c9..862143ec1 100644
--- a/view/tpl/menuedit.tpl
+++ b/view/tpl/menuedit.tpl
@@ -3,7 +3,7 @@
<div class="section-title-wrapper">
{{if $menu_edit_link}}
<div class="float-end">
- <a href="{{$menu_edit_link}}" title="{{$hintedit}}" class="btn btn-sm btn-success"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$editcontents}}</a>
+ <a href="{{$menu_edit_link}}" title="{{$hintedit}}" class="btn btn-sm btn-success"><i class="bi bi-pencil-square-o"></i>&nbsp;{{$editcontents}}</a>
</div>
{{/if}}
<h2>{{$header}}</h2>
@@ -23,7 +23,7 @@
{{include file="field_checkbox.tpl" field=$menu_bookmark}}
<div class="menuedit-submit-wrapper mb-3 float-end" >
- <button type="submit" name="submit" class="btn btn-primary">{{$submit}}&nbsp;<i class="fa fa-caret-right"></i></button>
+ <button type="submit" name="submit" class="btn btn-primary">{{$submit}}&nbsp;<i class="bi bi-caret-right"></i></button>
</div>
<div class="clear"></div>
</form>
diff --git a/view/tpl/menulist.tpl b/view/tpl/menulist.tpl
index a173cd5f9..f37e7738e 100644
--- a/view/tpl/menulist.tpl
+++ b/view/tpl/menulist.tpl
@@ -1,7 +1,7 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="float-end">
- <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('menu-creator');"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$hintnew}}</button>
+ <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('menu-creator');"><i class="bi bi-pencil-square-o"></i>&nbsp;{{$hintnew}}</button>
</div>
<h2>{{$title}}</h2>
<div class="clear"></div>
@@ -24,12 +24,12 @@
</tr>
{{foreach $menus as $m }}
<tr id="menu-list-item-{{$m.menu_id}}">
- <td>{{if $m.bookmark}}<i class="fa fa-bookmark menu-list-tool" title="{{$bmark}}" ></i>{{/if}}</td>
+ <td>{{if $m.bookmark}}<i class="bi fa-bookmark menu-list-tool" title="{{$bmark}}" ></i>{{/if}}</td>
<td><a href="mitem/{{$nick}}/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintcontent}}">{{$m.menu_name}}</a></td>
<td>{{$m.menu_desc}}</td>
- <td class="menu-list-tool"><a href="menu/{{$nick}}/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintedit}}"><i class="fa fa-pencil"></i></a></td>
- <td class="menu-list-tool"><a href="rpost?attachment={{$m.element}}" title="{{$share}}"><i class="fa fa-share-square-o"></i></a></td>
- <td class="menu-list-tool"><a href="#" title="{{$hintdrop}}" onclick="dropItem('menu/{{$nick}}/{{$m.menu_id}}/drop{{if $sys}}?f=&sys=1{{/if}}', '#menu-list-item-{{$m.menu_id}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a></td>
+ <td class="menu-list-tool"><a href="menu/{{$nick}}/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintedit}}"><i class="bi bi-pencil"></i></a></td>
+ <td class="menu-list-tool"><a href="rpost?attachment={{$m.element}}" title="{{$share}}"><i class="bi bi-download"></i></a></td>
+ <td class="menu-list-tool"><a href="#" title="{{$hintdrop}}" onclick="dropItem('menu/{{$nick}}/{{$m.menu_id}}/drop{{if $sys}}?f=&sys=1{{/if}}', '#menu-list-item-{{$m.menu_id}}'); return false;"><i class="bi bi-trash drop-icons"></i></a></td>
<td class="d-none d-md-table-cell">{{$m.menu_created}}</td>
<td class="d-none d-md-table-cell">{{$m.menu_edited}}</td>
</tr>
diff --git a/view/tpl/messages_widget.tpl b/view/tpl/messages_widget.tpl
index 9b6c6d03b..52a9b96f4 100644
--- a/view/tpl/messages_widget.tpl
+++ b/view/tpl/messages_widget.tpl
@@ -1,24 +1,24 @@
<ul class="nav nav-tabs nav-fill clearfix">
<li class="nav-item">
<a class="nav-link active messages-type" href="#" title="{{$strings.messages_title}}" data-messages_type="">
- <i class="fa fa-fw fa-comment-o"></i>
+ <i class="bi bi-chat generic-icons"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link messages-type" href="#" title="{{$strings.direct_messages_title}}" data-messages_type="direct">
- <i class="fa fa-fw fa-envelope-o"></i>
+ <i class="bi bi-envelope generic-icons"></i>
</a>
</li>
{{if $feature_star}}
<li class="nav-item">
<a class="nav-link messages-type" href="#" title="{{$strings.starred_messages_title}}" data-messages_type="starred">
- <i class="fa fa-fw fa-star"></i>
+ <i class="bi bi-star generic-icons"></i>
</a>
</li>
{{/if}}
<li class="nav-item">
<a class="nav-link messages-type" href="#" title="{{$strings.notice_messages_title}}" data-messages_type="notification">
- <i class="fa fa-fw fa-exclamation"></i>
+ <i class="bi bi-exclamation-circle generic-icons"></i>
</a>
</li>
</ul>
@@ -49,9 +49,9 @@
</div>
<div id="messages-container" class="list-group list-group-flush" data-offset="10">
<div id="messages-author-container" class="list-group-item notifications-textinput">
- <div class="text-muted notifications-textinput-filter"><i class="fa fa-fw fa-filter"></i></div>
+ <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
<input id="messages-author" type="text" class="form-control form-control-sm" placeholder="{{$strings.filter}}">
- <div id="messages-author-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="fa fa-times"></i></div>
+ <div id="messages-author-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
</div>
{{foreach $entries as $e}}
<a href="{{$e.href}}" class="list-group-item list-group-item-action message" data-b64mid="{{$e.b64mid}}">
diff --git a/view/tpl/mitemedit.tpl b/view/tpl/mitemedit.tpl
index c973e8cbd..77260576a 100644
--- a/view/tpl/mitemedit.tpl
+++ b/view/tpl/mitemedit.tpl
@@ -25,10 +25,10 @@
<div class="float-end mb-3">
<div class="btn-group">
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i>
</button>
{{if $submit_more}}
- <button class="btn btn-primary btn-sm" type="submit" name="submit-more" value="{{$submit_more}}">{{$submit_more}}&nbsp;<i class="fa fa-caret-right"></i></button>
+ <button class="btn btn-primary btn-sm" type="submit" name="submit-more" value="{{$submit_more}}">{{$submit_more}}&nbsp;<i class="bi bi-caret-right"></i></button>
{{/if}}
<button class="btn btn-primary btn-sm" type="submit" name="submit" value="{{$submit}}">{{$submit}}</button>
</div>
diff --git a/view/tpl/mitemlist.tpl b/view/tpl/mitemlist.tpl
index a430e18cc..e134baa17 100644
--- a/view/tpl/mitemlist.tpl
+++ b/view/tpl/mitemlist.tpl
@@ -1,7 +1,7 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="float-end">
- <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('menu-element-creator');"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$hintnew}}</button>
+ <button id="webpage-create-btn" class="btn btn-sm btn-success" onclick="openClose('menu-element-creator');"><i class="bi bi-pencil-square-o"></i>&nbsp;{{$hintnew}}</button>
</div>
<h2>{{$title}} {{if $menudesc}}{{$menudesc}}{{else}}{{$menuname}}{{/if}}</h2>
<div class="clear"></div>
@@ -23,9 +23,9 @@
<tr id="mitem-list-item-{{$m.mitem_id}}">
<td width="1%">{{$m.mitem_desc}}</td>
<td width="96%"><a href="{{$m.mitem_link}}">{{$m.mitem_link}}</a></td>
- <td width="1%" class="mitem-list-tool dropdown">{{if $m.allow_cid || $m.allow_gid || $m.deny_cid || $m.deny_gid}}<i class="fa fa-lock lockview" data-bs-toggle="dropdown" onclick="lockview('menu_item',{{$m.mitem_id}});" ></i><ul id="panel-{{$m.mitem_id}}" class="lockview-panel dropdown-menu"></ul>{{/if}}</td>
- <td width="1%" class="mitem-list-tool"><a href="mitem/{{$nick}}/{{$menu_id}}/{{$m.mitem_id}}" title="{{$hintedit}}"><i class="fa fa-pencil"></i></a></td>
- <td width="1%" class="mitem-list-tool"><a href="#" title="{{$hintdrop}}" onclick="dropItem('mitem/{{$nick}}/{{$menu_id}}/{{$m.mitem_id}}/drop', '#mitem-list-item-{{$m.mitem_id}}, #pmenu-item-{{$m.mitem_id}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a></td>
+ <td width="1%" class="mitem-list-tool dropdown">{{if $m.allow_cid || $m.allow_gid || $m.deny_cid || $m.deny_gid}}<i class="bi bi-lock lockview" data-bs-toggle="dropdown" onclick="lockview('menu_item',{{$m.mitem_id}});" ></i><ul id="panel-{{$m.mitem_id}}" class="lockview-panel dropdown-menu"></ul>{{/if}}</td>
+ <td width="1%" class="mitem-list-tool"><a href="mitem/{{$nick}}/{{$menu_id}}/{{$m.mitem_id}}" title="{{$hintedit}}"><i class="bi bi-pencil"></i></a></td>
+ <td width="1%" class="mitem-list-tool"><a href="#" title="{{$hintdrop}}" onclick="dropItem('mitem/{{$nick}}/{{$menu_id}}/{{$m.mitem_id}}/drop', '#mitem-list-item-{{$m.mitem_id}}, #pmenu-item-{{$m.mitem_id}}'); return false;"><i class="bi bi-trash drop-icons"></i></a></td>
</tr>
{{/foreach}}
</table>
diff --git a/view/tpl/myapps.tpl b/view/tpl/myapps.tpl
index 404ab73d3..d11dad59f 100644
--- a/view/tpl/myapps.tpl
+++ b/view/tpl/myapps.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper clearfix">
{{if $authed}}
{{if $create}}
- <a href="appman" class="float-end btn btn-success btn-sm"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$create}}</a>
+ <a href="appman" class="float-end btn btn-success btn-sm"><i class="bi bi-pencil-square"></i>&nbsp;{{$create}}</a>
{{elseif $manage}}
<a href="apps/edit{{if $cat.0}}/?f=&cat={{$cat.0}}{{/if}}" class="float-end btn btn-primary btn-sm">{{$manage}}</a>
{{/if}}
diff --git a/view/tpl/navbar_default.tpl b/view/tpl/navbar_default.tpl
index d8b8e2f74..050301d02 100644
--- a/view/tpl/navbar_default.tpl
+++ b/view/tpl/navbar_default.tpl
@@ -5,7 +5,7 @@
<div class="dropdown">
<div class="cursor-pointer usermenu" data-bs-toggle="dropdown">
<img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}" class="rounded">
- <i class="navbar-text fa fa-caret-down"></i>
+ <i class="navbar-text bi bi-caret-down-fill"></i>
</div>
{{if $is_owner}}
<div class="dropdown-menu" {{$color_mode}}>
@@ -20,7 +20,7 @@
{{/if}}
{{if $nav.channels}}
{{foreach $nav.channels as $chan}}
- <a class="dropdown-item" href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem"><i class="fa fa-circle{{if $localuser == $chan.channel_id}} text-success{{else}} invisible{{/if}}"></i> {{$chan.channel_name}}</a>
+ <a class="dropdown-item" href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem"><i class="bi bi-circle-fill{{if $localuser == $chan.channel_id}} text-success{{else}} invisible{{/if}}"></i> {{$chan.channel_name}}</a>
{{/foreach}}
{{/if}}
{{if $nav.profiles}}
@@ -59,7 +59,7 @@
{{if $settings_url}}
<div id="nav-app-settings-link-wrapper" class="navbar-nav">
<a id="nav-app-settings-link" href="{{$settings_url}}/?f=&rpath={{$url}}" class="nav-link">
- <i class="fa fa-fw fa-cog"></i>
+ <i class="bi bi-gear"></i>
</a>
</div>
{{/if}}
@@ -71,19 +71,19 @@
<div class="navbar-toggler-right">
{{if $nav.help.6}}
<button id="context-help-btn" class="navbar-toggler border-0" type="button" onclick="contextualHelp(); return false;">
- <i class="fa fa-question-circle"></i>
+ <i class="bi bi-question-circle-fill generic-icons"></i>
</button>
{{/if}}
<button id="expand-aside" type="button" class="d-lg-none navbar-toggler border-0">
- <i class="fa fa-arrow-circle-right" id="expand-aside-icon"></i>
+ <i class="bi bi-arrow-right-circle generic-icons" id="expand-aside-icon"></i>
</button>
{{if $localuser || $nav.pubs}}
<button id="notifications-btn-1" type="button" class="navbar-toggler border-0 notifications-btn">
- <i id="notifications-btn-icon-1" class="fa fa-exclamation-circle notifications-btn-icon"></i>
+ <i id="notifications-btn-icon-1" class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i>
</button>
{{/if}}
<button id="menu-btn" class="navbar-toggler border-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#app-bin">
- <i class="fa fa-bars"></i>
+ <i class="bi bi-three-dots-vertical generic-icons"></i>
</button>
</div>
<div class="collapse navbar-collapse justify-content-between" id="navbar-collapse-1">
@@ -125,16 +125,16 @@
</div>
</li>
<li class="nav-item" id="nav-search-btn">
- <a class="nav-link" href="#nav-search" title="{{$nav.search.3}}" onclick="openMenu('nav-search'); closeMenu('nav-search-btn'); $('#nav-search-text').focus(); return false;"><i class="fa fa-fw fa-search"></i></a>
+ <a class="nav-link" href="#nav-search" title="{{$nav.search.3}}" onclick="openMenu('nav-search'); closeMenu('nav-search-btn'); $('#nav-search-text').focus(); return false;"><i class="bi bi-search generic-icons"></i></a>
</li>
{{if $nav.help.6}}
<li class="nav-item dropdown {{$sel.help}}">
- <a class="nav-link {{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="fa fa-fw fa-question-circle"></i></a>
+ <a class="nav-link {{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="bi bi-question-circle-fill"></i></a>
</li>
{{/if}}
{{if $localuser || $nav.pubs}}
<li id="notifications-btn" class="nav-item d-xl-none">
- <a class="nav-link notifications-btn" href="#"><i id="notifications-btn-icon" class="fa fa-exclamation-circle notifications-btn-icon"></i></a>
+ <a class="nav-link notifications-btn" href="#"><i id="notifications-btn-icon" class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i></a>
</li>
{{/if}}
{{if $navbar_apps}}
@@ -145,7 +145,7 @@
{{/foreach}}
{{/if}}
<li class="nav-item dropdown" id="app-menu">
- <a class="nav-link" href="#" data-bs-toggle="offcanvas" data-bs-target="#app-bin" aria-controls="app-bin"><i class="fa fa-fw fa-bars"></i></a>
+ <a class="nav-link" href="#" data-bs-toggle="offcanvas" data-bs-target="#app-bin" aria-controls="app-bin"><i class="bi bi-three-dots-vertical generic-icons"></i></a>
</li>
</ul>
</div>
@@ -153,8 +153,8 @@
<div id="contextual-help-content" class="contextual-help-content">
{{$nav.help.5}}
<div class="float-end">
- <a class="btn btn-primary btn-sm" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}"><i class="fa fa-question"></i>&nbsp;{{$fulldocs}}</a>
- <a class="contextual-help-tool" href="#" onclick="contextualHelp(); return false;"><i class="fa fa-times"></i></a>
+ <a class="btn btn-primary btn-sm" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}"><i class="bi bi-question"></i>&nbsp;{{$fulldocs}}</a>
+ <a class="contextual-help-tool" href="#" onclick="contextualHelp(); return false;"><i class="bi bi-x-lg"></i></a>
</div>
</div>
{{/if}}
@@ -192,11 +192,11 @@
</div>
{{/if}}
</div>
- <i id="app-bin-trash" class="fa fa-2x fa-fw fa-trash-o d-none"></i>
+ <i id="app-bin-trash" class="bi bi-trash d-none"></i>
{{/if}}
<div class="hstack gap-1">
{{if $theme_switch_icon}}
- <button id="theme-switch" type="button" class="btn btn-outline-secondary border-0"><i id="theme-switch-icon" class="fa fa-{{$theme_switch_icon}}-o"></i></button>
+ <button id="theme-switch" type="button" class="btn btn-outline-secondary border-0"><i id="theme-switch-icon" class="bi bi-{{$theme_switch_icon}}"></i></button>
{{/if}}
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
@@ -219,12 +219,13 @@
</div>
<div id="nav-app-bin-container" class="d-lg-none nav nav-pills flex-column">
{{foreach $navbar_apps as $navbar_app}}
- {{$navbar_app|replace:'fa':'generic-icons-nav fa'}}
+ {{$navbar_app|replace:'generic-icons':'generic-icons-nav'}}
{{/foreach}}
</div>
+
{{/if}}
{{if $is_owner}}
- <div class="text-uppercase text-muted nav-link">
+ <div class="text-uppercase dropdown-header text-muted">
{{$featured_apps}}
</div>
<div id="app-bin-container" data-token="{{$form_security_token}}" class="nav nav-pills flex-column">
@@ -234,7 +235,7 @@
</div>
<hr>
<div class="nav nav-pills flex-column">
- <a class="nav-link" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus"></i>{{$addapps}}</a>
+ <a class="nav-link" href="/apps"><i class="generic-icons-nav bi bi-plus-lg"></i>{{$addapps}}</a>
</div>
{{else}}
<div class="text-uppercase text-muted nav-link">
@@ -372,7 +373,7 @@
}
})
.done( function() {
- $('<li><a class="navbar-app nav-link" href="' + app_url + '"><i class="fa fa-fw fa-' + app_icon + '"></i></li>').insertBefore('#app-menu');
+ $('<li><a class="navbar-app nav-link" href="' + app_url + '"><i class="bi bi-' + app_icon + '"></i></li>').insertBefore('#app-menu');
});
});
@@ -406,7 +407,7 @@
}
})
.done( function() {
- $('<a class="dropdown-item" href="' + app_url + '"><i class="generic-icons-nav fa fa-fw fa-' + app_icon + '"></i>' + app_name + '</a>').appendTo('#app-bin-container');
+ $('<a class="dropdown-item" href="' + app_url + '"><i class="generic-icons-nav bi bi-' + app_icon + '"></i>' + app_name + '</a>').appendTo('#app-bin-container');
});
});
diff --git a/view/tpl/navbar_tucson.tpl b/view/tpl/navbar_tucson.tpl
index bb67ff31c..53fc0343a 100644
--- a/view/tpl/navbar_tucson.tpl
+++ b/view/tpl/navbar_tucson.tpl
@@ -21,7 +21,7 @@
<div class="dropdown">
<div class="fakelink usermenu" data-bs-toggle="dropdown">
<img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}">
- <i class="fa fa-caret-down"></i>
+ <i class="bi bi-caret-down"></i>
</div>
{{if $is_owner}}
<div class="dropdown-menu">
@@ -33,7 +33,7 @@
{{/if}}
{{if $nav.channels}}
{{foreach $nav.channels as $chan}}
- <a class="dropdown-item" href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem"><i class="fa fa-circle{{if $localuser == $chan.channel_id}} text-success{{else}} invisible{{/if}}"></i> {{$chan.channel_name}}</a>
+ <a class="dropdown-item" href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem"><i class="bi bi-circle-fill{{if $localuser == $chan.channel_id}} text-success{{else}} invisible{{/if}}"></i> {{$chan.channel_name}}</a>
{{/foreach}}
{{/if}}
{{if $nav.profiles}}
@@ -74,19 +74,19 @@
<div class="navbar-toggler-right">
{{if $nav.help.6}}
<button id="context-help-btn" class="navbar-toggler border-0" type="button" onclick="contextualHelp(); return false;">
- <i class="fa fa-question-circle"></i>
+ <i class="bi bi-question-lg-circle"></i>
</button>
{{/if}}
<button id="expand-aside" type="button" class="d-lg-none navbar-toggler border-0" data-bs-toggle="offcanvas" data-bs-target="#region_1">
- <i class="fa fa-arrow-circle-right" id="expand-aside-icon"></i>
+ <i class="bi fa-arrow-circle-right" id="expand-aside-icon"></i>
</button>
{{if $localuser || $nav.pubs}}
<button id="notifications-btn-1" type="button" class="navbar-toggler border-0 notifications-btn">
- <i id="notifications-btn-icon-1" class="fa fa-exclamation-circle notifications-btn-icon"></i>
+ <i id="notifications-btn-icon-1" class="bi fa-exclamation-circle notifications-btn-icon"></i>
</button>
{{/if}}
<button id="menu-btn" class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-collapse-2">
- <i class="fa fa-bars"></i>
+ <i class="bi fa-bars"></i>
</button>
</div>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
@@ -128,16 +128,16 @@
</div>
</li>
<li class="nav-item" id="nav-search-btn">
- <a class="nav-link" href="#nav-search" title="{{$nav.search.3}}" onclick="openMenu('nav-search'); closeMenu('nav-search-btn'); $('#nav-search-text').focus(); return false;"><i class="fa fa-fw fa-search"></i></a>
+ <a class="nav-link" href="#nav-search" title="{{$nav.search.3}}" onclick="openMenu('nav-search'); closeMenu('nav-search-btn'); $('#nav-search-text').focus(); return false;"><i class="bi bi-search"></i></a>
</li>
{{if $nav.help.6}}
<li class="nav-item dropdown {{$sel.help}}">
- <a class="nav-link {{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="fa fa-fw fa-question-circle"></i></a>
+ <a class="nav-link {{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="bi bi-question-lg-circle"></i></a>
</li>
{{/if}}
{{if $localuser || $nav.pubs}}
<li id="notifications-btn" class="nav-item d-xl-none">
- <a class="nav-link text-white notifications-btn" href="#"><i id="notifications-btn-icon" class="fa fa-exclamation-circle notifications-btn-icon"></i></a>
+ <a class="nav-link text-white notifications-btn" href="#"><i id="notifications-btn-icon" class="bi fa-exclamation-circle notifications-btn-icon"></i></a>
</li>
{{/if}}
{{if $channel_menu && $channel_apps.0}}
@@ -158,7 +158,7 @@
{{/foreach}}
{{/if}}
<li class="nav-item dropdown" id="app-menu">
- <a class="nav-link" href="#" data-bs-toggle="dropdown"><i class="fa fa-fw fa-bars"></i></a>
+ <a class="nav-link" href="#" data-bs-toggle="dropdown"><i class="bi fa-bars"></i></a>
<div id="dropdown-menu" class="dropdown-menu dropdown-menu-end">
{{if $channel_apps.0 && ! $channel_menu}}
{{foreach $channel_apps as $channel_app}}
@@ -178,8 +178,8 @@
{{/if}}
{{if $is_owner}}
<div class="dropdown-divider"></div>
- <a class="dropdown-item" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus-circle"></i>{{$addapps}}</a>
- <a class="dropdown-item" href="/apporder"><i class="generic-icons-nav fa fa-fw fa-sort"></i>{{$orderapps}}</a>
+ <a class="dropdown-item" href="/apps"><i class="generic-icons-nav bi bi-plus-lg"></i>{{$addapps}}</a>
+ <a class="dropdown-item" href="/apporder"><i class="generic-icons-nav bi fa-sort"></i>{{$orderapps}}</a>
{{/if}}
</div>
</li>
@@ -207,8 +207,8 @@
{{/if}}
{{if $is_owner}}
<div class="dropdown-divider"></div>
- <a class="nav-link" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus-circle"></i>{{$addapps}}</a>
- <a class="nav-link" href="/apporder"><i class="generic-icons-nav fa fa-fw fa-sort"></i>{{$orderapps}}</a>
+ <a class="nav-link" href="/apps"><i class="generic-icons-nav bi bi-plus-lg"></i>{{$addapps}}</a>
+ <a class="nav-link" href="/apporder"><i class="generic-icons-nav bi fa-sort"></i>{{$orderapps}}</a>
{{/if}}
</div>
</div>
@@ -216,8 +216,8 @@
<div id="contextual-help-content" class="contextual-help-content">
{{$nav.help.5}}
<div class="float-end">
- <a class="btn btn-primary btn-sm" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}"><i class="fa fa-question"></i>&nbsp;{{$fulldocs}}</a>
- <a class="contextual-help-tool" href="#" onclick="contextualHelp(); return false;"><i class="fa fa-times"></i></a>
+ <a class="btn btn-primary btn-sm" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}"><i class="bi bi-question-lg"></i>&nbsp;{{$fulldocs}}</a>
+ <a class="contextual-help-tool" href="#" onclick="contextualHelp(); return false;"><i class="bi bi-x-lg"></i></a>
</div>
</div>
{{/if}}
diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl
index a9d98dae9..97901e052 100644
--- a/view/tpl/notifications_widget.tpl
+++ b/view/tpl/notifications_widget.tpl
@@ -5,6 +5,7 @@
var sse_partial_result = false;
var sse_rmids = [];
var sse_fallback_interval;
+ var sse_sys_only = {{$sys_only}};
$(document).ready(function() {
let notifications_parent;
@@ -219,8 +220,9 @@
}
function sse_bs_counts() {
- if(sse_bs_active)
+ if(sse_bs_active || sse_sys_only) {
return;
+ }
sse_bs_active = true;
@@ -238,10 +240,11 @@
function sse_bs_notifications(e, replace, followup) {
- if(sse_bs_active)
+ if(sse_bs_active || sse_sys_only) {
return;
+ }
- var manual = false;
+ let manual = false;
if(typeof replace === 'undefined')
replace = e.data.replace;
@@ -302,9 +305,27 @@
function sse_handleNotifications(obj, replace, followup) {
- var primary_notifications = ['dm', 'home', 'intros', 'register', 'notify', 'files'];
- var secondary_notifications = ['network', 'forums', 'all_events', 'pubs'];
- var all_notifications = primary_notifications.concat(secondary_notifications);
+ // notice and info
+
+ if(obj.notice) {
+ $(obj.notice.notifications).each(function() {
+ toast(this, 'danger');
+ });
+ }
+
+ if(obj.info) {
+ $(obj.info.notifications).each(function(){
+ toast(this, 'info');
+ });
+ }
+
+ if (sse_sys_only) {
+ return;
+ }
+
+ let primary_notifications = ['dm', 'home', 'intros', 'register', 'notify', 'files'];
+ let secondary_notifications = ['network', 'forums', 'all_events', 'pubs'];
+ let all_notifications = primary_notifications.concat(secondary_notifications);
all_notifications.forEach(function(type, index) {
if(typeof obj[type] === typeof undefined)
@@ -312,7 +333,6 @@
var count = Number(obj[type].count);
-
if(obj[type].count) {
$('.' + type + '-button').fadeIn();
if(replace || followup) {
@@ -336,20 +356,6 @@
sse_setNotificationsStatus();
- // notice and info
-
- if(obj.notice) {
- $(obj.notice.notifications).each(function() {
- toast(this, 'danger');
- });
- }
-
- if(obj.info) {
- $(obj.info.notifications).each(function(){
- toast(this, 'info');
- });
- }
-
// load more notifications if visible notifications count becomes low
if(sse_type && sse_offset != -1 && $('#nav-' + sse_type + '-menu').children(':not(.tt-filter-active)').length < 15) {
sse_bs_notifications(sse_type, false, true);
@@ -464,12 +470,12 @@
});
if(primary_available) {
- $('.notifications-btn-icon').removeClass('fa-exclamation-circle');
- $('.notifications-btn-icon').addClass('fa-exclamation-triangle');
+ $('.notifications-btn-icon').removeClass('bi-exclamation-circle');
+ $('.notifications-btn-icon').addClass('bi-exclamation-triangle');
}
else {
- $('.notifications-btn-icon').removeClass('fa-exclamation-triangle');
- $('.notifications-btn-icon').addClass('fa-exclamation-circle');
+ $('.notifications-btn-icon').removeClass('bi-exclamation-triangle');
+ $('.notifications-btn-icon').addClass('bi-exclamation-circle');
}
if(any_available) {
@@ -533,6 +539,7 @@
}
</script>
+{{if !$sys_only}}
<div id="notifications_wrapper" class="mb-4">
<div id="no_notifications" class="d-xl-none">
{{$no_notifications}}<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
@@ -565,7 +572,7 @@
<div class="rounded-top rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse {{$notification.type}}-button">
<a id="notification-link-{{$notification.type}}" class="collapsed list-group-item justify-content-between align-items-center d-flex fakelink stretched-link notification-link" href="#" title="{{$notification.title}}" data-bs-target="#nav-{{$notification.type}}-sub" data-bs-toggle="collapse" data-sse_type="{{$notification.type}}">
<div>
- <i class="fa fa-fw fa-{{$notification.icon}}"></i>
+ <i class="bi bi-{{$notification.icon}} generic-icons-nav"></i>
{{$notification.label}}
</div>
<span class="badge bg-{{$notification.severity}} {{$notification.type}}-update"></span>
@@ -574,25 +581,25 @@
<div id="nav-{{$notification.type}}-sub" class="rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse notification-content" data-bs-parent="#notifications" data-sse_type="{{$notification.type}}">
{{if $notification.viewall}}
<a class="list-group-item list-group-item-action text-decoration-none" id="nav-{{$notification.type}}-see-all" href="{{$notification.viewall.url}}">
- <i class="fa fa-fw fa-external-link"></i> {{$notification.viewall.label}}
+ <i class="bi bi-box-arrow-up-right generic-icons-nav"></i> {{$notification.viewall.label}}
</a>
{{/if}}
{{if $notification.markall}}
<div class="list-group-item list-group-item-action cursor-pointer" id="nav-{{$notification.type}}-mark-all" onclick="markRead('{{$notification.type}}'); return false;">
- <i class="fa fa-fw fa-check"></i> {{$notification.markall.label}}
+ <i class="bi bi-check-circle generic-icons-nav"></i> {{$notification.markall.label}}
</div>
{{/if}}
{{if $notification.filter}}
{{if $notification.filter.posts_label}}
<div class="list-group-item list-group-item-action cursor-pointer" id="tt-{{$notification.type}}-only">
- <i class="fa fa-fw fa-filter"></i> {{$notification.filter.posts_label}}
+ <i class="bi bi-funnel generic-icons-nav"></i> {{$notification.filter.posts_label}}
</div>
{{/if}}
{{if $notification.filter.name_label}}
<div class="list-group-item clearfix notifications-textinput" id="cn-{{$notification.type}}-only">
- <div class="text-muted notifications-textinput-filter"><i class="fa fa-fw fa-filter"></i></div>
+ <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
<input id="cn-{{$notification.type}}-input" type="text" class="notification-filter form-control form-control-sm" placeholder="{{$notification.filter.name_label}}">
- <div id="cn-{{$notification.type}}-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="fa fa-times"></i></div>
+ <div id="cn-{{$notification.type}}-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
</div>
{{/if}}
{{/if}}
@@ -604,3 +611,4 @@
{{/foreach}}
</div>
</div>
+{{/if}}
diff --git a/view/tpl/nwiki_page_history.tpl b/view/tpl/nwiki_page_history.tpl
deleted file mode 100644
index 6926cca2d..000000000
--- a/view/tpl/nwiki_page_history.tpl
+++ /dev/null
@@ -1,59 +0,0 @@
-<style>
- .diff {
- width:100%;
- word-break: break-all;
- }
-
- .diff td{
- padding:0 0.667em;
- vertical-align:top;
- white-space:pre;
- white-space:pre-wrap;
- font-family:Consolas,'Courier New',Courier,monospace;
- font-size:1.0em;
- line-height:1.333;
- }
-
- .diff span{
- display:block;
- min-height:1.333em;
- margin-top:-1px;
- padding:0 3px;
- }
-
- * html .diff span{
- height:1.333em;
- }
-
- .diff span:first-child{
- margin-top:0;
- }
-
- .diffDeleted span{
- border:1px solid rgb(255,192,192);
- background:rgb(255,224,224);
- }
-
- .diffInserted span{
- border:1px solid rgb(192,255,192);
- background:rgb(224,255,224);
- }
-</style>
-<table class="" style="width: 100%;">
- {{foreach $pageHistory as $commit}}
- <tr class="wikis-index-row"><td>
- <table id="rev-{{$commit.revision}}" onclick="$('#details-{{$commit.revision}}').show()" style="width: 100%;">
- <tr><td width="10%">{{$date_lbl}}</td><td width="70%">{{$commit.date}}</td>
- <td rowspan="3" width="20%" align="right">
- {{if $permsWrite}}
- <button id="revert-{{$commit.revision}}" class="btn btn-danger btn-sm" onclick="wiki_revert_page('{{$commit.revision}}')">{{$revert_btn}}</button>
- <br><br>
- {{/if}}
- <button id="compare-{{$commit.revision}}" class="btn btn-warning btn-sm" onclick="wiki_compare_page('{{$commit.revision}}')">{{$compare_btn}}</button>
- </td></tr>
- <tr><td>{{$name_lbl}}</td><td>{{$commit.name}}</td></tr>
- <tr><td>{{$msg_label}}</td><td>{{$commit.title}}</td></tr>
- </table>
- </td></tr>
- {{/foreach}}
-</table> \ No newline at end of file
diff --git a/view/tpl/oauth.tpl b/view/tpl/oauth.tpl
index 881e22e99..97bd4b610 100644
--- a/view/tpl/oauth.tpl
+++ b/view/tpl/oauth.tpl
@@ -25,8 +25,8 @@
{{/if}}
{{/if}}
{{if $app.my}}
- <a href="{{$baseurl}}/oauth/edit/{{$app.client_id}}" title="{{$edit}}"><i class="fa fa-pencil btn btn-outline-secondary"></i></a>
- <a href="{{$baseurl}}/oauth/delete/{{$app.client_id}}?t={{$form_security_token}}" title="{{$delete}}"><i class="fa fa-trash-o btn btn-outline-secondary"></i></a>
+ <a href="{{$baseurl}}/oauth/edit/{{$app.client_id}}" title="{{$edit}}"><i class="bi bi-pencil btn btn-outline-secondary"></i></a>
+ <a href="{{$baseurl}}/oauth/delete/{{$app.client_id}}?t={{$form_security_token}}" title="{{$delete}}"><i class="bi bi-trash btn btn-outline-secondary"></i></a>
{{/if}}
</div>
{{/foreach}}
diff --git a/view/tpl/oauth2.tpl b/view/tpl/oauth2.tpl
index a5b48ffce..a23ded2f7 100644
--- a/view/tpl/oauth2.tpl
+++ b/view/tpl/oauth2.tpl
@@ -25,8 +25,8 @@
{{/if}}
{{/if}}
{{if $app.my}}
- <a href="{{$baseurl}}/oauth2/edit/{{$app.client_id}}" title="{{$edit}}"><i class="fa fa-pencil btn btn-outline-secondary"></i></a>
- <a href="{{$baseurl}}/oauth2/delete/{{$app.client_id}}?t={{$form_security_token}}" title="{{$delete}}"><i class="fa fa-trash-o btn btn-outline-secondary"></i></a>
+ <a href="{{$baseurl}}/oauth2/edit/{{$app.client_id}}" title="{{$edit}}"><i class="bi bi-pencil btn btn-outline-secondary"></i></a>
+ <a href="{{$baseurl}}/oauth2/delete/{{$app.client_id}}?t={{$form_security_token}}" title="{{$delete}}"><i class="bi bi-trash btn btn-outline-secondary"></i></a>
{{/if}}
</div>
</form>
diff --git a/view/tpl/oauth2testvehicle.tpl b/view/tpl/oauth2testvehicle.tpl
index ce46b58c0..5447934af 100644
--- a/view/tpl/oauth2testvehicle.tpl
+++ b/view/tpl/oauth2testvehicle.tpl
@@ -7,7 +7,7 @@
{{$baseurl}}/{{$ept.0}}/?{{foreach $ept.1 as $field}}{{$field.0}}={{$field.1}}&<input type="hidden" name="{{$field.0}}" value="{{$field.1}}" />{{/foreach}}
<br>
<button type="submit" name="{{$ept.2}}_submit" value="submit" class="btn btn-med" title="">Submit</button>
- <span style="display: {{if $ept.5}}inline{{else}}none{{/if}}; font-size: 2em;">&nbsp;<i class="fa fa-check"></i></span>
+ <span style="display: {{if $ept.5}}inline{{else}}none{{/if}}; font-size: 2em;">&nbsp;<i class="bi bi-check-lg"></i></span>
</form>
</div>
{{/foreach}}
diff --git a/view/tpl/page_display.tpl b/view/tpl/page_display.tpl
index 589de0b41..e8c9c0e27 100644
--- a/view/tpl/page_display.tpl
+++ b/view/tpl/page_display.tpl
@@ -11,7 +11,7 @@
<div class="page-body">{{$body}}</div>
{{if $edit_link}}
<div class="position-fixed bottom-0 end-0 m-3">
- <a href="{{$edit_link}}" class="btn btn-lg btn-primary rounded-circle"><i class="fa fa-pencil"></i></a>
+ <a href="{{$edit_link}}" class="btn btn-lg btn-primary rounded-circle"><i class="bi bi-pencil"></i></a>
</div>
{{/if}}
</div>
diff --git a/view/tpl/page_display_empty.tpl b/view/tpl/page_display_empty.tpl
index 5a3bdc530..44baec361 100644
--- a/view/tpl/page_display_empty.tpl
+++ b/view/tpl/page_display_empty.tpl
@@ -1,6 +1,6 @@
{{$body}}
{{if $edit_link}}
<div class="position-fixed bottom-0 end-0 m-3">
- <a href="{{$edit_link}}" class="btn btn-lg btn-primary rounded-circle"><i class="fa fa-pencil"></i></a>
+ <a href="{{$edit_link}}" class="btn btn-lg btn-primary rounded-circle"><i class="bi bi-pencil"></i></a>
</div>
{{/if}}
diff --git a/view/tpl/pdledit_gui_item.tpl b/view/tpl/pdledit_gui_item.tpl
index 9d0095ed4..1a3de7e15 100644
--- a/view/tpl/pdledit_gui_item.tpl
+++ b/view/tpl/pdledit_gui_item.tpl
@@ -12,7 +12,7 @@
{{if $entry.type !== 'content'}}
<button type="button" class="btn btn-sm btn-outline-primary pdledit_gui_item_src{{if $disable_controls}} disabled{{/if}}">Edit</button>
<button type="button" class="btn btn-sm btn-outline-danger pdledit_gui_item_remove{{if $disable_controls}} disabled{{/if}}">Remove</button>
- <i class="fa fa-fw fa-arrows-alt m-2 float-end cursor-pointer pdledit_gui_item_handle"></i>
+ <i class="bi fa-arrows-alt m-2 float-end cursor-pointer pdledit_gui_item_handle"></i>
{{/if}}
</div>
</div>
diff --git a/view/tpl/peoplefind.tpl b/view/tpl/peoplefind.tpl
index 1dc02e4c3..dcab0fa5f 100644
--- a/view/tpl/peoplefind.tpl
+++ b/view/tpl/peoplefind.tpl
@@ -3,7 +3,7 @@
<form action="directory" method="post" />
<div class="input-group mb-3">
<input class="form-control" type="text" name="search" title="{{$hint}}{{if $advanced_search}}{{$advanced_hint}}{{/if}}" placeholder="{{$desc}}" />
- <button class="btn btn-outline-secondary" type="submit" name="submit"><i class="fa fa-fw fa-search"></i></button>
+ <button class="btn btn-outline-secondary" type="submit" name="submit"><i class="bi bi-search"></i></button>
</div>
</form>
<ul class="nav nav-pills flex-column">
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index d01260f07..bff7c7e65 100644
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -2,14 +2,14 @@
<div class="section-title-wrapper">
<div class="float-end">
{{if $order}}
- <a class="btn btn-outline-secondary btn-sm" href="{{$order.1}}" title="{{$order.0}}"><i class="fa fa-sort"></i></a>
+ <a class="btn btn-outline-secondary btn-sm" href="{{$order.1}}" title="{{$order.0}}"><i class="bi bi-arrow-down-up"></i></a>
{{/if}}
<div class="btn-group btn-group">
{{if $album_edit.1}}
- <i class="fa fa-pencil btn btn-outline-secondary btn-sm" title="{{$album_edit.0}}" onclick="openClose('photo-album-edit-wrapper'); closeMenu('photo-upload-form');"></i>
+ <i class="bi bi-pencil btn btn-outline-secondary btn-sm" title="{{$album_edit.0}}" onclick="openClose('photo-album-edit-wrapper'); closeMenu('photo-upload-form');"></i>
{{/if}}
{{if $can_post}}
- <button class="btn btn-sm btn-success btn-sm" title="{{$usage}}" onclick="openClose('photo-upload-form'); {{if $album_edit.1}}closeMenu('photo-album-edit-wrapper');{{/if}}"><i class="fa fa-plus-circle"></i>&nbsp;{{$upload.0}}</button>
+ <button class="btn btn-sm btn-success btn-sm" title="{{$usage}}" onclick="openClose('photo-upload-form'); {{if $album_edit.1}}closeMenu('photo-album-edit-wrapper');{{/if}}"><i class="bi bi-plus-lg"></i>&nbsp;{{$upload.0}}</button>
{{/if}}
</div>
</div>
diff --git a/view/tpl/photo_drop.tpl b/view/tpl/photo_drop.tpl
index 664e5338c..dde7d9d0d 100644
--- a/view/tpl/photo_drop.tpl
+++ b/view/tpl/photo_drop.tpl
@@ -1,3 +1,3 @@
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$id}}" >
- <a class="btn btn-outline-secondary btn-sm" href="#" onclick="dropItem('item/drop/{{$id}}', '#wall-item-outside-wrapper-{{$id}}'); return false;" title="{{$delete}}" ><i class="fa fa-trash-o"></i></a>
+ <a class="btn btn-outline-secondary btn-sm" href="#" onclick="dropItem('item/drop/{{$id}}', '#wall-item-outside-wrapper-{{$id}}'); return false;" title="{{$delete}}" ><i class="bi bi-trash"></i></a>
</div>
diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl
index 473e34123..5dc5fb32d 100644
--- a/view/tpl/photo_view.tpl
+++ b/view/tpl/photo_view.tpl
@@ -5,35 +5,35 @@
{{if $tools || $map || $edit}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown">
- <i class="fa fa-cog"></i>&nbsp;{{$tools_label}}
+ <i class="bi bi-gear"></i>&nbsp;{{$tools_label}}
</button>
<div class="dropdown-menu dropdown-menu-end flex-column">
{{if $tools}}
- <a class="dropdown-item" href="{{$tools.profile.0}}"><i class="fa fa-user"></i>&nbsp;{{$tools.profile.1}}</a>
- <a class="dropdown-item" href="{{$tools.cover.0}}"><i class="fa fa-picture-o"></i>&nbsp;{{$tools.cover.1}}</a>
+ <a class="dropdown-item" href="{{$tools.profile.0}}"><i class="bi bi-person"></i>&nbsp;{{$tools.profile.1}}</a>
+ <a class="dropdown-item" href="{{$tools.cover.0}}"><i class="bi bi-image"></i>&nbsp;{{$tools.cover.1}}</a>
{{/if}}
{{if $map}}
- <a class="dropdown-item" href="#" onclick="var pos = $('#photo-map').css('position'); if(pos === 'absolute') { $('#photo-map').css( { position: 'relative', left: 'auto', top: 'auto' }); } else { $('#photo-map').css( { position: 'absolute', left: '-9999px', top: '-9999px' }); } return false; " ><i class="fa fa-globe"></i>&nbsp;{{$map_text}}</a>
+ <a class="dropdown-item" href="#" onclick="var pos = $('#photo-map').css('position'); if(pos === 'absolute') { $('#photo-map').css( { position: 'relative', left: 'auto', top: 'auto' }); } else { $('#photo-map').css( { position: 'absolute', left: '-9999px', top: '-9999px' }); } return false; " ><i class="bi bi-globe"></i>&nbsp;{{$map_text}}</a>
{{/if}}
{{if $edit}}
- <a class="dropdown-item acl-form-trigger" href="#" title="" onclick="openClose('photo-edit'); return false;" data-form_id="photo_edit_form"><i class="fa fa-pencil"></i>&nbsp;{{$edit.edit}}</a>
+ <a class="dropdown-item acl-form-trigger" href="#" title="" onclick="openClose('photo-edit'); return false;" data-form_id="photo_edit_form"><i class="bi bi-pencil"></i>&nbsp;{{$edit.edit}}</a>
{{/if}}
</div>
</div>
{{/if}}
{{if $lock}}
<div class="btn-group">
- <button id="lockview" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" title="{{$lock}}" onclick="lockview('photo',{{$id}});" ><i class="fa fa-lock"></i></button>
+ <button id="lockview" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" title="{{$lock}}" onclick="lockview('photo',{{$id}});" ><i class="bi bi-lock"></i></button>
<ul id="panel-{{$id}}" class="lockview-panel dropdown-menu dropdown-menu-end"></ul>
</div>
{{/if}}
{{if $prevlink || $nextlink}}
<div class="btn-group">
{{if $prevlink}}
- <a href="{{$prevlink.0}}" class="btn btn-outline-secondary btn-sm" title="{{$prevlink.1}}"><i class="fa fa-backward"></i></a>
+ <a href="{{$prevlink.0}}" class="btn btn-outline-secondary btn-sm" title="{{$prevlink.1}}"><i class="bi bi-chevron-left"></i></a>
{{/if}}
{{if $nextlink}}
- <a href="{{$nextlink.0}}" class="btn btn-outline-secondary btn-sm" title="{{$nextlink.1}}"><i class="fa fa-forward"></i></a>
+ <a href="{{$nextlink.0}}" class="btn btn-outline-secondary btn-sm" title="{{$nextlink.1}}"><i class="bi bi-chevron-right"></i></a>
{{/if}}
</div>
{{/if}}
@@ -91,7 +91,7 @@
<div class="mb-3 btn-group float-end">
{{if $edit.aclselect}}
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$edit.lockstate}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$edit.lockstate}}"></i>
</button>
{{/if}}
<button id="tool-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$edit.submit}}</button>
@@ -107,7 +107,7 @@
<div class="photo-item-tools-left" id="in-this-photo">
<span id="in-this-photo-text">{{$tag_hdr}}</span>
{{foreach $tags as $t}}
- {{$t.0}}{{if $edit}}<span id="tag-remove">&nbsp;<a href="{{$t.1}}" onclick="return confirmDelete();"><i class="fa fa-times"></i></a>&nbsp;</span>{{/if}}
+ {{$t.0}}{{if $edit}}<span id="tag-remove">&nbsp;<a href="{{$t.1}}" onclick="return confirmDelete();"><i class="bi bi-x-lg"></i></a>&nbsp;</span>{{/if}}
{{/foreach}}
</div>
{{/if}}
@@ -151,10 +151,10 @@
{{if $likebuttons}}
<div class="photo-item-tools-right btn-group float-end">
<button type="button" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$likebuttons.id}},'like'); return false">
- <i class="fa fa-thumbs-o-up" title="{{$likebuttons.likethis}}"></i>
+ <i class="bi bi-hand-thumbs-up" title="{{$likebuttons.likethis}}"></i>
</button>
<button type="button" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$likebuttons.id}},'dislike'); return false">
- <i class="fa fa-thumbs-o-down" title="{{$likebuttons.nolike}}"></i>
+ <i class="bi bi-hand-thumbs-down" title="{{$likebuttons.nolike}}"></i>
</button>
</div>
<div id="like-rotator-{{$likebuttons.id}}" class="photo-like-rotator float-end"></div>
diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl
index fe770d72e..dcba530ef 100644
--- a/view/tpl/photos_recent.tpl
+++ b/view/tpl/photos_recent.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper">
<div class="float-end">
{{if $can_post}}
- <button class="btn btn-sm btn-success acl-form-trigger" title="{{$usage}}" onclick="openClose('photo-upload-form');" data-form_id="photos-upload-form"><i class="fa fa-plus-circle"></i>&nbsp;{{$upload.0}}</button>
+ <button class="btn btn-sm btn-success acl-form-trigger" title="{{$usage}}" onclick="openClose('photo-upload-form');" data-form_id="photos-upload-form"><i class="bi bi-plus-lg"></i>&nbsp;{{$upload.0}}</button>
{{/if}}
</div>
<h2>{{$title}}</h2>
diff --git a/view/tpl/photos_upload.tpl b/view/tpl/photos_upload.tpl
index 72f6c4611..f5097c8a7 100644
--- a/view/tpl/photos_upload.tpl
+++ b/view/tpl/photos_upload.tpl
@@ -26,7 +26,7 @@
<div class="btn-group">
{{if $lockstate}}
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i>
</button>
{{/if}}
<button id="dbtn-submit" class="btn btn-primary btn-sm">{{$submit}}</button>
@@ -44,7 +44,7 @@
<div id="photos-upload-perms" class="btn-group pull-right">
{{if $lockstate}}
<button class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i>
</button>
{{/if}}
<div class="float-end">
diff --git a/view/tpl/pinned_item.tpl b/view/tpl/pinned_item.tpl
index ece386b72..90905a145 100644
--- a/view/tpl/pinned_item.tpl
+++ b/view/tpl/pinned_item.tpl
@@ -34,7 +34,7 @@
<div class="wall-item-photo-wrapper{{if $owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$id}}">
<img src="{{$thumb}}" class="fakelink wall-item-photo{{$sparkle}} u-photo p-name" id="wall-item-photo-{{$id}}" alt="{{$name}}" loading="lazy" data-bs-toggle="dropdown" />
{{if $thread_author_menu}}
- <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
+ <i class="bi bi-caret-down wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
<div class="dropdown-menu">
{{foreach $thread_author_menu as $mitem}}
<a class="dropdown-item{{if $mitem.class}} {{$mitem.class}}{{/if}}" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}}{{if $mitem.data}} {{$mitem.data}}{{/if}}>{{$mitem.title}}</a>
@@ -50,22 +50,22 @@
<div class="text-end ms-auto">
<div class="wall-item-ago text-nowrap opacity-75" id="wall-item-ago-{{$id}}">
{{if $editedtime}}
- <i class="fa fa-pencil"></i>
+ <i class="bi bi-pencil"></i>
{{/if}}
{{if $delayed}}
- <i class="fa fa-clock-o"></i>
+ <i class="bi fa-clock-o"></i>
{{/if}}
{{if $location}}
<small class="wall-item-location p-location" id="wall-item-location-{{$id}}">{{$location}}</small>
{{/if}}
{{if $verified}}
- <i class="fa fa-check text-success" title="{{$verified}}"></i>
+ <i class="bi bi-check-lg text-success" title="{{$verified}}"></i>
{{elseif $forged}}
- <i class="fa fa-exclamation text-danger" title="{{$forged}}"></i>
+ <i class="bi fa-exclamation text-danger" title="{{$forged}}"></i>
{{/if}}
<small class="autotime" title="{{$isotime}}"><time class="dt-published" datetime="{{$isotime}}">{{$localtime}}</time>{{if $editedtime}}&nbsp;{{$editedtime}}{{/if}}{{if $expiretime}}&nbsp;{{$expiretime}}{{/if}}</small>
</div>
- <div class="wall-item-pinned" title="{{$pinned}}" id="wall-item-pinned-{{$id}}"><i class="fa fa-thumb-tack"></i></div>
+ <div class="wall-item-pinned" title="{{$pinned}}" id="wall-item-pinned-{{$id}}"><i class="bi fa-thumb-tack"></i></div>
</div>
</div>
{{if $divider}}
@@ -96,17 +96,17 @@
{{if $isevent}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="pinned-item-attend-menu-{{$id}}" title="{{$attend_title}}">
- <i class="fa fa-calendar-check-o"></i>
+ <i class="bi fa-calendar-check-o"></i>
</button>
<div class="dropdown-menu dropdown-menu-end">
<a class="dropdown-item" href="#" title="{{$attend.0}}" onclick="itemAddToCal({{$id}}); dolike({{$id}},'attendyes'); return false;">
- <i class="item-act-list fa fa-check{{if $my_responses.attend}} ivoted{{/if}}" ></i> {{$attend.0}}
+ <i class="item-act-list bi bi-check-lg{{if $my_responses.attend}} ivoted{{/if}}" ></i> {{$attend.0}}
</a>
<a class="dropdown-item" href="#" title="{{$attend.1}}" onclick="itemAddToCal({{$id}}), dolike({{$id}},'attendno'); return false;">
- <i class="item-act-list fa fa-times{{if $my_responses.attendno}} ivoted{{/if}}" ></i> {{$attend.1}}
+ <i class="item-act-list bi bi-x-lg{{if $my_responses.attendno}} ivoted{{/if}}" ></i> {{$attend.1}}
</a>
<a class="dropdown-item" href="#" title="{{$attend.2}}" onclick="itemAddToCal({{$id}}); dolike({{$id}},'attendmaybe'); return false;">
- <i class="item-act-list fa fa-question{{if $my_responses.attendmaybe}} ivoted{{/if}}" ></i> {{$attend.2}}
+ <i class="item-act-list bi bi-question-lg{{if $my_responses.attendmaybe}} ivoted{{/if}}" ></i> {{$attend.2}}
</a>
</div>
</div>
@@ -114,40 +114,40 @@
{{if $canvote}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="pinned-item-consensus-menu-{{$id}}" title="{{$vote_title}}">
- <i class="fa fa-check-square-o"></i>
+ <i class="bi bi-check-square"></i>
</button>
<div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-consensus-menu-{{$id}}">
<a class="dropdown-item" href="#" title="{{$conlabels.0}}" onclick="dolike({{$id}},'agree'); return false;">
- <i class="item-act-list fa fa-check{{if $my_responses.agree}} ivoted{{/if}}" ></i> {{$conlabels.0}}
+ <i class="item-act-list bi bi-check-lg{{if $my_responses.agree}} ivoted{{/if}}" ></i> {{$conlabels.0}}
</a>
<a class="dropdown-item" href="#" title="{{$conlabels.1}}" onclick="dolike({{$id}},'disagree'); return false;">
- <i class="item-act-list fa fa-times{{if $my_responses.disagree}} ivoted{{/if}}" ></i> {{$conlabels.1}}
+ <i class="item-act-list bi bi-x-lg{{if $my_responses.disagree}} ivoted{{/if}}" ></i> {{$conlabels.1}}
</a>
<a class="dropdown-item" href="#" title="{{$conlabels.2}}" onclick="dolike({{$id}},'abstain'); return false;">
- <i class="item-act-list fa fa-question{{if $my_responses.abstain}} ivoted{{/if}}" ></i> {{$conlabels.2}}
+ <i class="item-act-list bi bi-question-lg{{if $my_responses.abstain}} ivoted{{/if}}" ></i> {{$conlabels.2}}
</a>
</div>
</div>
{{/if}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="pinned-item-menu-{{$id}}">
- <i class="fa fa-cog"></i>
+ <i class="bi bi-gear"></i>
</button>
<div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-{{$id}}">
{{if $share}}
- <a class="dropdown-item" href="#" onclick="jotShare({{$id}},{{$item_type}}); return false;"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$share.0}}"></i>{{$share.0}}</a>
+ <a class="dropdown-item" href="#" onclick="jotShare({{$id}},{{$item_type}}); return false;"><i class="generic-icons-nav bi fa-retweet" title="{{$share.0}}"></i>{{$share.0}}</a>
{{/if}}
{{if $embed}}
- <a class="dropdown-item" href="#" onclick="jotEmbed({{$id}},{{$item_type}}); return false;"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$embed.0}}"></i>{{$embed.0}}</a>
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$id}},{{$item_type}}); return false;"><i class="generic-icons-nav bi fa-share" title="{{$embed.0}}"></i>{{$embed.0}}</a>
{{/if}}
{{if $plink}}
- <a class="dropdown-item" href="{{$plink.href}}" title="{{$plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$plink.title}}</a>
+ <a class="dropdown-item" href="{{$plink.href}}" title="{{$plink.title}}" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right"></i>{{$plink.title}}</a>
{{/if}}
{{if $pinme}}
- <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$id}}); return false;"><i class="generic-icons-nav fa fa-fw fa-thumb-tack"></i>{{$pinme}}</a>
+ <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$id}}); return false;"><i class="generic-icons-nav bi fa-thumb-tack"></i>{{$pinme}}</a>
{{/if}}
{{if $hide}}
- <a class="dropdown-item" href="#" onclick="dopinhide({{$id}}); return false;" class="u-url"><i class="generic-icons-nav fa fa-fw fa-remove"></i>{{$hide}}</a>
+ <a class="dropdown-item" href="#" onclick="dopinhide({{$id}}); return false;" class="u-url"><i class="generic-icons-nav bi fa-remove"></i>{{$hide}}</a>
{{/if}}
</div>
</div>
@@ -159,7 +159,7 @@
<div class="wall-item-tools-left btn-group" id="pinned-item-tools-left-{{$id}}">
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-bs-toggle="dropdown" id="pinned-attachment-menu-{{$id}}">
- <i class="fa fa-paperclip"></i>
+ <i class="bi bi-paperclip"></i>
</button>
<div class="dropdown-menu">{{$attachments}}</div>
</div>
diff --git a/view/tpl/posted_date_widget.tpl b/view/tpl/posted_date_widget.tpl
index fb43c744b..41007a6fe 100644
--- a/view/tpl/posted_date_widget.tpl
+++ b/view/tpl/posted_date_widget.tpl
@@ -2,18 +2,18 @@
function toggle_posted_date_button() {
if($('#posted-date-dropdown').is(':visible')) {
- $('#posted-date-icon').removeClass('fa-caret-up');
- $('#posted-date-icon').addClass('fa-cog');
+ $('#posted-date-icon').removeClass('bi-chevron-up');
+ $('#posted-date-icon').addClass('bi-chevron-down');
$('#posted-date-dropdown').hide();
}
else {
- $('#posted-date-icon').addClass('fa-caret-up');
- $('#posted-date-icon').removeClass('fa-cog');
+ $('#posted-date-icon').addClass('bi-chevron-up');
+ $('#posted-date-icon').removeClass('bi-chevron-down');
$('#posted-date-dropdown').show();
}
}
</script>
-
+
<div id="datebrowse-sidebar" class="widget">
<h3>{{$title}}</h3>
@@ -24,7 +24,7 @@ function toggle_posted_date_button() {
</ul>
<div id="posted-date-dropdown" style="display: none;">
<ul id="posted-date-selector-drop" class="nav nav-pills flex-column">
- {{/if}}
+ {{/if}}
<li class="nav-item" id="posted-date-selector-year-{{$y}}">
<a class="nav-link" href="#" onclick="openClose('posted-date-selector-{{$y}}'); return false;">{{$y}}</a>
</li>
@@ -40,7 +40,7 @@ function toggle_posted_date_button() {
{{/foreach}}
{{if $cutoff}}
</div>
- <button class="btn btn-outline-secondary btn-sm" onclick="toggle_posted_date_button(); return false;"><i id="posted-date-icon" class="fa fa-cog"></i></button>
+ <button class="btn btn-outline-secondary btn-sm" onclick="toggle_posted_date_button(); return false;"><i id="posted-date-icon" class="bi bi-chevron-down"></i></button>
{{/if}}
</ul>
</div>
diff --git a/view/tpl/profile_advanced.tpl b/view/tpl/profile_advanced.tpl
index 2ee5e9d09..333d9b98c 100644
--- a/view/tpl/profile_advanced.tpl
+++ b/view/tpl/profile_advanced.tpl
@@ -12,13 +12,13 @@
{{if $profile.canlike}}
<div class="btn-group">
<button type="button" class="btn btn-success btn-sm" onclick="doprofilelike('profile/' + '{{$profile.profile_guid}}','like'); return false;" title="{{$profile.likethis}}" >
- <i class="fa fa-thumbs-o-up" title="{{$profile.likethis}}"></i>
+ <i class="bi fa-thumbs-o-up" title="{{$profile.likethis}}"></i>
</button>
</div>
{{/if}}
{{if $editmenu.multi}}
<div class="btn-group">
- <a class="btn btn-primary btn-sm dropdown-toggle" data-bs-toggle="dropdown" href="#" ><i class="fa fa-pencil"></i>&nbsp;{{$editmenu.edit.3}}</a>
+ <a class="btn btn-primary btn-sm dropdown-toggle" data-bs-toggle="dropdown" href="#" ><i class="bi bi-pencil"></i>&nbsp;{{$editmenu.edit.3}}</a>
<div class="dropdown-menu dropdown-menu-end">
{{foreach $editmenu.menu.entries as $e}}
<a class="dropdown-item" href="profiles/{{$e.id}}"><img class="menu-img-1" src='{{$e.photo}}'> {{$e.profile_name}}</a>
@@ -30,12 +30,12 @@
</div>
{{elseif $editmenu}}
<div class="btn-group">
- <a class="btn btn-primary btn-sm" href="{{$editmenu.edit.0}}" ><i class="fa fa-pencil"></i>&nbsp;{{$editmenu.edit.3}}</a>
+ <a class="btn btn-primary btn-sm" href="{{$editmenu.edit.0}}" ><i class="bi bi-pencil"></i>&nbsp;{{$editmenu.edit.3}}</a>
</div>
{{/if}}
{{** if $exportlink}}
<div class="btn-group">
- <a class="btn btn-outline-secondary btn-sm" href="{{$exportlink}}" ><i class="fa fa-vcard"></i>&nbsp;{{$export}}</a>
+ <a class="btn btn-outline-secondary btn-sm" href="{{$exportlink}}" ><i class="bi fa-vcard"></i>&nbsp;{{$export}}</a>
</div>
{{/if **}}
</div>
@@ -113,7 +113,7 @@
{{if $f == 'marital'}}
{{if $profile.marital}}
<dl id="aprofile-marital" class="aprofile">
- <dt><span class="heart"><i class="fa fa-heart"></i>&nbsp;</span>{{$profile.marital.0}}</dt>
+ <dt><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>{{$profile.marital.0}}</dt>
<dd>{{$profile.marital.1}}{{if in_array('partner',$fields)}}{{if $profile.marital.partner}} ({{$profile.marital.partner}}){{/if}}{{/if}}{{if in_array('howlong',$fields)}}{{if $profile.howlong}} {{$profile.howlong}}{{/if}}{{/if}}</dd>
</dl>
{{/if}}
@@ -319,7 +319,7 @@
<a href="{{$item.editurl}}" >{{$item.term}}</a>
{{if $profile.canlike}}<br />
<button type="button" class="btn btn-outline-secondary btn-sm" onclick="doprofilelike('thing/' + '{{$item.term_hash}}','like'); return false;" title="{{$likethis}}" >
- <i class="fa fa-thumbs-o-up" title="{{$likethis}}"></i>
+ <i class="bi fa-thumbs-o-up" title="{{$likethis}}"></i>
</button>
{{/if}}
{{if $item.like_count}}
diff --git a/view/tpl/profile_edit.tpl b/view/tpl/profile_edit.tpl
index 5c48f4bd3..4d24e0a0f 100644
--- a/view/tpl/profile_edit.tpl
+++ b/view/tpl/profile_edit.tpl
@@ -2,17 +2,17 @@
<div class="section-title-wrapper">
<div class="dropdown float-end" id="profile-edit-links">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-cog"></i>&nbsp;{{$tools_label}}
+ <i class="bi bi-gear"></i>&nbsp;{{$tools_label}}
</button>
<div class="dropdown-menu dropdown-menu-end">
- <a class="dropdown-item" href="profile_photo/{{$profile_id}}" id="profile-photo_upload-link" title="{{$profpic}}"><i class="fa fa-fw fa-user"></i>&nbsp;{{$profpic}}</a>
+ <a class="dropdown-item" href="profile_photo/{{$profile_id}}" id="profile-photo_upload-link" title="{{$profpic}}"><i class="bi bi-person"></i>&nbsp;{{$profpic}}</a>
{{if $is_default}}
- <a class="dropdown-item" href="cover_photo" id="cover-photo_upload-link" title="{{$coverpic}}"><i class="fa fa-fw fa-picture-o"></i>&nbsp;{{$coverpic}}</a>
+ <a class="dropdown-item" href="cover_photo" id="cover-photo_upload-link" title="{{$coverpic}}"><i class="bi bi-image"></i>&nbsp;{{$coverpic}}</a>
{{/if}}
{{if ! $is_default}}
- <a class="dropdown-item" href="profperm/{{$profile_id}}" id="profile-edit-visibility-link" title="{{$editvis}}"><i class="fa fa-fw fa-pencil"></i>&nbsp;{{$editvis}}</a>
+ <a class="dropdown-item" href="profperm/{{$profile_id}}" id="profile-edit-visibility-link" title="{{$editvis}}"><i class="bi bi-pencil"></i>&nbsp;{{$editvis}}</a>
{{/if}}
- <a class="dropdown-item" href="thing" id="profile-edit-thing-link" title="{{$addthing}}"><i class="fa fa-fw fa-plus-circle"></i>&nbsp;{{$addthing}}</a>
+ <a class="dropdown-item" href="thing" id="profile-edit-thing-link" title="{{$addthing}}"><i class="bi bi-plus-lg"></i>&nbsp;{{$addthing}}</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="profile/{{$profile_id}}/view" id="profile-edit-view-link" title="{{$viewprof}}">{{$viewprof}}</a>
{{if $multi_profiles}}
@@ -26,7 +26,7 @@
{{/if}}
{{if ! $is_default}}
<div class="dropdown-divider"></div>
- <a class="dropdown-item" href="{{$profile_drop_link}}" id="profile-edit-drop-link" title="{{$del_prof}}" onclick="return confirmDelete();"><i class="fa fa-trash-o"></i>&nbsp;{{$del_prof}}</a>
+ <a class="dropdown-item" href="{{$profile_drop_link}}" id="profile-edit-drop-link" title="{{$del_prof}}" onclick="return confirmDelete();"><i class="bi bi-trash"></i>&nbsp;{{$del_prof}}</a>
{{/if}}
</div>
</div>
@@ -114,7 +114,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="tel[]" value="" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-email" class="mb-3 form-vcard-email">
@@ -124,7 +124,7 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="email[]" value="" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div id="template-form-vcard-impp" class="mb-3 form-vcard-impp">
@@ -134,13 +134,13 @@
<option value="OTHER">{{$other}}</option>
</select>
<input type="text" name="impp[]" value="" placeholder="{{$impp_label}}">
- <i data-remove="vcard-impp" data-id="" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-impp" data-id="" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
<div class="section-content-wrapper-np">
- <div id="vcard-cancel-{{$vcard.id}}" class="vcard-cancel vcard-cancel-btn" data-id="{{$vcard.id}}" data-action="cancel"><i class="fa fa-close"></i></div>
+ <div id="vcard-cancel-{{$vcard.id}}" class="vcard-cancel vcard-cancel-btn" data-id="{{$vcard.id}}" data-action="cancel"><i class="bi bi-x-lg"></i></div>
<div id="vcard-add-field-{{$vcard.id}}" class="dropdown float-end vcard-add-field">
- <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="fa fa-plus"></i> {{$add_field}}</button>
+ <button data-bs-toggle="dropdown" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"><i class="bi bi-plus-lg"></i> {{$add_field}}</button>
<ul class="dropdown-menu">
<li class="add-vcard-tel"><a href="#" data-add="vcard-tel" data-id="{{$vcard.id}}" class="add-field" onclick="return false;">{{$tel_label}}</a></li>
<li class="add-vcard-email"><a href="#" data-add="vcard-email" data-id="{{$vcard.id}}" class="add-field" onclick="return false;">{{$email_label}}</a></li>
@@ -148,11 +148,11 @@
</ul>
</div>
<div id="vcard-header-{{$vcard.id}}" class="vcard-header" data-id="{{$vcard.id}}" data-action="open">
- <i class="vcard-fn-preview fa fa-address-card-o"></i>
+ <i class="vcard-fn-preview bi fa-address-card-o"></i>
<span id="vcard-preview-{{$vcard.id}}" class="vcard-preview">
{{if $vcard.fn}}<span class="vcard-fn-preview">{{$vcard.fn}}</span>{{/if}}
{{if $vcard.emails.0.address}}<span class="vcard-email-preview hidden-xs"><a href="mailto:{{$vcard.emails.0.address}}">{{$vcard.emails.0.address}}</a></span>{{/if}}
- {{if $vcard.tels.0}}<span class="vcard-tel-preview hidden-xs">{{$vcard.tels.0.nr}}{{if $is_mobile}} <a class="btn btn-outline-secondary btn-sm" href="tel:{{$vcard.tels.0.nr}}"><i class="fa fa-phone connphone"></i></a>{{/if}}</span>{{/if}}
+ {{if $vcard.tels.0}}<span class="vcard-tel-preview hidden-xs">{{$vcard.tels.0.nr}}{{if $is_mobile}} <a class="btn btn-outline-secondary btn-sm" href="tel:{{$vcard.tels.0.nr}}"><i class="bi fa-phone connphone"></i></a>{{/if}}</span>{{/if}}
</span>
<input id="vcard-fn-{{$vcard.id}}" class="vcard-fn" type="text" name="fn" value="{{$vcard.fn}}" size="{{$vcard.fn|count_characters:true}}" placeholder="{{$name_label}}">
</div>
@@ -172,7 +172,7 @@
<option value="OTHER"{{if $tel.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="tel[]" value="{{$tel.nr}}" size="{{$tel.nr|count_characters:true}}" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-tel" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -192,7 +192,7 @@
<option value="OTHER"{{if $email.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="email[]" value="{{$email.address}}" size="{{$email.address|count_characters:true}}" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-email" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -211,7 +211,7 @@
<option value="OTHER"{{if $impp.type.0 == 'OTHER'}} selected="selected"{{/if}}>{{$other}}</option>
</select>
<input type="text" name="impp[]" value="{{$impp.address}}" size="{{$impp.address|count_characters:true}}" placeholder="{{$impp_label}}">
- <i data-remove="vcard-impp" data-id="{{$vcard.id}}" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
+ <i data-remove="vcard-impp" data-id="{{$vcard.id}}" class="bi bi-trash remove-field drop-icons fakelink"></i>
</div>
{{/foreach}}
{{/if}}
@@ -283,7 +283,7 @@
<div class="section-content-tools-wrapper">
{{if $fields.marital }}
<div id="profile-edit-marital-wrapper" class="mb-3 field" >
- <label id="profile-edit-marital-label" for="profile-edit-marital" ><span class="heart"><i class="fa fa-heart"></i>&nbsp;</span>{{$lbl_marital}}</label>
+ <label id="profile-edit-marital-label" for="profile-edit-marital" ><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>{{$lbl_marital}}</label>
{{if $advanced}}
{{$marital}}
{{else}}
diff --git a/view/tpl/profile_listing_header.tpl b/view/tpl/profile_listing_header.tpl
index 4fa2d6783..6e9b17ab7 100644
--- a/view/tpl/profile_listing_header.tpl
+++ b/view/tpl/profile_listing_header.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <a class="btn btn-success btn-sm float-end" href="{{$cr_new_link}}" id="profile-listing-new-link" title="{{$cr_new}}" ><i class="fa fa-plus-circle"></i>&nbsp;{{$cr_new}}</a>
+ <a class="btn btn-success btn-sm float-end" href="{{$cr_new_link}}" id="profile-listing-new-link" title="{{$cr_new}}" ><i class="bi bi-plus-lg"></i>&nbsp;{{$cr_new}}</a>
<h2>{{$header}}</h2>
</div>
<div class="section-content-wrapper">
diff --git a/view/tpl/profile_photo.tpl b/view/tpl/profile_photo.tpl
index c8f5b939a..61cfa13de 100644
--- a/view/tpl/profile_photo.tpl
+++ b/view/tpl/profile_photo.tpl
@@ -30,7 +30,7 @@
<button id="embed-photo-wrapper" type="button"
class="btn btn-default btn-outline-success float-end me-1" title="{{$embedPhotos}}"
onclick="initializeEmbedPhotoDialog();">
- <i id="embed-photo" class="fa fa-file-image-o"></i> {{$select}}
+ <i id="embed-photo" class="bi bi-file-image"></i> {{$select}}
</button>
<button type="submit" class="btn btn-outline-danger" name="remove" id="profile-photo-remove">
{{$remove}}
@@ -81,7 +81,7 @@
$('#embedPhotoModalBodyAlbumDialog').html('\
<div><div class="nav nav-pills flex-column">\n\
<li class="nav-item"><a class="nav-link" href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
- <i class="fa fa-chevron-left"></i>&nbsp\n\
+ <i class="bi fa-chevron-left"></i>&nbsp\n\
{{$modaldiffalbum}}\n\
</a>\n\
</li>\n\
diff --git a/view/tpl/profile_tabs.tpl b/view/tpl/profile_tabs.tpl
index 3cabad83d..a635b84d8 100644
--- a/view/tpl/profile_tabs.tpl
+++ b/view/tpl/profile_tabs.tpl
@@ -1,3 +1,3 @@
{{foreach $tabs as $tab}}
-<a class="nav-link{{if $tab.sel}} {{$tab.sel}}{{/if}}" href="{{$tab.url}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}><i class="fa fa-fw fa-{{$tab.icon}} generic-icons-nav"></i>{{$tab.label}}</a>
+<a class="nav-link{{if $tab.sel}} {{$tab.sel}}{{/if}}" href="{{$tab.url}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}><i class="bi bi-{{$tab.icon}} generic-icons-nav"></i>{{$tab.label}}</a>
{{/foreach}}
diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl
index de08cfc19..27067df31 100644
--- a/view/tpl/profile_vcard.tpl
+++ b/view/tpl/profile_vcard.tpl
@@ -6,12 +6,12 @@
</div>
{{if $connect}}
<a href="{{$connect_url}}" class="btn btn-success btn-sm m-2 position-absolute top-0 end-0" rel="nofollow">
- <i class="fa fa-plus"></i> {{$connect}}
+ <i class="bi bi-plus-lg"></i> {{$connect}}
</a>
{{/if}}
<div id="profile-cover-text" class="p-2 position-absolute bottom-0 w-100">
<div class="text-truncate h3 mb-0 lh-sm">
- <strong class="text-white fn p-name">{{$profile.fullname}}{{if $profile.online}}<i class="fa fa-fw fa-circle text-success ps-2" title="{{$profile.online}}"></i>{{/if}}</strong>
+ <strong class="text-white fn p-name">{{$profile.fullname}}{{if $profile.online}}<i class="bi bi-circle-fill text-success ps-2" title="{{$profile.online}}"></i>{{/if}}</strong>
</div>
<div class="text-truncate">
<span class="text-white p-adr">{{$profile.reddress}}</span>
@@ -19,7 +19,7 @@
</div>
{{if $editmenu.multi}}
<div class="dropdown position-absolute bottom-0 end-0 m-2">
- <a class="profile-edit-side-link text-white" data-bs-toggle="dropdown" href="#" ><i class="fa fa-pencil" title="{{$editmenu.edit.1}}"></i></a>
+ <a class="profile-edit-side-link text-white" data-bs-toggle="dropdown" href="#" ><i class="bi bi-pencil" title="{{$editmenu.edit.1}}"></i></a>
<div class="dropdown-menu dropdown-menu-end" role="menu">
{{foreach $editmenu.menu.entries as $e}}
<a href="profiles/{{$e.id}}" class="dropdown-item"><img class="menu-img-1" src='{{$e.photo}}'> {{$e.profile_name}}</a>
@@ -31,11 +31,11 @@
</div>
{{elseif $editmenu}}
<div class="position-absolute bottom-0 end-0 m-2">
- <a class="profile-edit-side-link text-white" href="{{$editmenu.edit.0}}" ><i class="fa fa-pencil" title="{{$editmenu.edit.1}}"></i></a>
+ <a class="profile-edit-side-link text-white" href="{{$editmenu.edit.0}}" ><i class="bi bi-pencil" title="{{$editmenu.edit.1}}"></i></a>
</div>
{{else}}
<div class="position-absolute bottom-0 end-0 m-2">
- <a class="profile-edit-side-link text-white" href="profile/{{$profile.channel_address}}" ><i class="fa fa-external-link" title="{{$editmenu.edit.1}}"></i></a>
+ <a class="profile-edit-side-link text-white" href="profile/{{$profile.channel_address}}" ><i class="bi bi-box-arrow-up-right" title="{{$editmenu.edit.1}}"></i></a>
</div>
{{/if}}
</div>
@@ -83,12 +83,12 @@
{{if $gender}}
<dl class="mb-0 pb-1 rounded">
<dt class="gender-label">{{$gender}}</dt>
- <dd class="p-gender">{{if $profile.gender_icon}}<i class="fa fa-{{$profile.gender_icon}}"></i>&nbsp;{{/if}}{{$profile.gender}}</dd>
+ <dd class="p-gender">{{if $profile.gender_icon}}<i class="bi bi-{{$profile.gender_icon}}"></i>&nbsp;{{/if}}{{$profile.gender}}</dd>
</dl>
{{/if}}
{{if $marital}}
<dl class="mb-0 pb-1 rounded">
- <dt class="marital-label"><span class="heart"><i class="fa fa-heart"></i>&nbsp;</span>{{$marital}}</dt>
+ <dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>{{$marital}}</dt>
<dd class="marital-text">{{$profile.marital}}</dd>
</dl>
{{/if}}
diff --git a/view/tpl/profile_vcard_short.tpl b/view/tpl/profile_vcard_short.tpl
index 5d87d52c6..16e10e6b3 100644
--- a/view/tpl/profile_vcard_short.tpl
+++ b/view/tpl/profile_vcard_short.tpl
@@ -1,7 +1,7 @@
{{$contact_block}}
{{if $connect}}
- <div class="connect-btn-wrapper"><a href="{{$connect_url}}" class="btn btn-block btn-success btn-sm"><i class="fa fa-plus"></i> {{$connect}}</a></div>
+ <div class="connect-btn-wrapper"><a href="{{$connect_url}}" class="btn btn-block btn-success btn-sm"><i class="bi bi-plus-lg"></i> {{$connect}}</a></div>
{{/if}}
@@ -26,7 +26,7 @@
{{if $gender}}<dl class="mf"><dt class="gender-label">{{$gender}}</dt> <dd class="x-gender">{{$profile.gender}}</dd></dl>{{/if}}
- {{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart"><i class="fa fa-heart"></i>&nbsp;</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
+ {{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
{{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url">{{$profile.homepage}}</dd></dl>{{/if}}
diff --git a/view/tpl/regate_post.tpl b/view/tpl/regate_post.tpl
index eccea9084..1e7d98928 100644
--- a/view/tpl/regate_post.tpl
+++ b/view/tpl/regate_post.tpl
@@ -4,7 +4,7 @@
</div>
<div class="section-content-wrapper">
<div class="section-content-success-wrapper">
- <div class="h3"><i class="fa fa-check"></i> {{$strings.0}}</div>
+ <div class="h3"><i class="bi bi-check-lg"></i> {{$strings.0}}</div>
</div>
<div class="section-content-warning-wrapper">
{{$strings.2}}
diff --git a/view/tpl/saved_searches.tpl b/view/tpl/saved_searches.tpl
index ff2d044ef..1330bd3ad 100644
--- a/view/tpl/saved_searches.tpl
+++ b/view/tpl/saved_searches.tpl
@@ -4,7 +4,7 @@
<ul id="saved-search-list" class="nav nav-pills flex-column">
{{foreach $saved as $search}}
<li class="nav-item nav-item-hack" id="search-term-{{$search.id}}">
- <a class="nav-link widget-nav-pills-icons" title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" href="{{$search.dellink}}"><i id="dropfa-floppy-od-search-term-{{$search.id}}" class="fa fa-trash-o drop-icons" ></i></a>
+ <a class="nav-link widget-nav-pills-icons" title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" href="{{$search.dellink}}"><i id="dropfa-floppy-od-search-term-{{$search.id}}" class="bi bi-trash drop-icons" ></i></a>
<a id="saved-search-term-{{$search.id}}" class="nav-link{{if $search.selected}} active{{/if}}" href="{{$search.srchlink}}">{{$search.displayterm}}</a>
</li>
{{/foreach}}
diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl
index 2c4aab9f4..07d20b9ec 100644
--- a/view/tpl/search_item.tpl
+++ b/view/tpl/search_item.tpl
@@ -21,29 +21,26 @@
{{/if}}
{{/if}}
<div class="p-2 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="text-end float-end">
+ <div class="lh-sm text-end float-end">
<div class="wall-item-ago opacity-75" id="wall-item-ago-{{$item.id}}">
- {{if $item.editedtime}}
- <i class="fa fa-pencil"></i>
+ {{if $item.location}}
+ {{$item.location}}
{{/if}}
{{if $item.delayed}}
- <i class="fa fa-clock-o"></i>
+ <i class="bi bi-clock"></i>
{{/if}}
- {{if $item.location}}
- <small class="wall-item-location p-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</small>
+ {{if $item.editedtime}}
+ <i class="bi bi-pencil"></i>
{{/if}}
{{if $item.verified}}
- <i class="fa fa-check text-success" title="{{$item.verified}}"></i>
+ <i class="bi bi-shield-check" title="{{$item.verified}}"></i>
{{elseif $item.forged}}
- <i class="fa fa-exclamation text-danger" title="{{$item.forged}}"></i>
+ <i class="bi bi-shield-exclamation text-danger" title="{{$item.forged}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
</div>
- {{if $item.thr_parent}}
- <a href="javascript:doscroll('{{$item.thr_parent}}',{{$item.parent}});" class="ms-3" title="{{$item.top_hint}}"><i class="fa fa-angle-double-up"></i></a>
- {{/if}}
{{if $item.pinned}}
- <div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="fa fa-thumb-tack"></i></div>
+ <div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="bi bi-pin-fill"></i></div>
{{/if}}
</div>
<div class="float-start wall-item-info pe-2" id="wall-item-info-{{$item.id}}" >
@@ -53,10 +50,10 @@
{{/if}}
<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-bs-toggle="dropdown" />
{{if $item.author_is_group_actor}}
- <i class="fa fa-comments-o wall-item-photo-group-actor" title="{{$item.author_is_group_actor}}"></i>
+ <i class="bi bi-chat-quote-fill wall-item-photo-group-actor" title="{{$item.author_is_group_actor}}"></i>
{{/if}}
{{if $item.thread_author_menu}}
- <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
+ <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
<div class="dropdown-menu">
{{foreach $item.thread_author_menu as $mitem}}
<a class="dropdown-item{{if $mitem.class}} {{$mitem.class}}{{/if}}" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}}{{if $mitem.data}} {{$mitem.data}}{{/if}}>{{$mitem.title}}</a>
@@ -68,12 +65,12 @@
<div class="wall-item-author">
{{if $item.previewing}}
<div class="float-start me-1 preview-indicator">
- <i class="fa fa-eye" title="{{$item.preview_lbl}}"></i>
+ <i class="bi bi-eye" title="{{$item.preview_lbl}}"></i>
</div>
{{/if}}
{{if $item.lock}}
<div class="float-start dropdown wall-item-lock">
- <i class="fa {{if $item.locktype == 2}}fa-envelope-o{{else if $item.locktype == 1}}fa-lock{{else}}fa-unlock{{/if}} lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-bs-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
+ <i class="bi {{if $item.locktype == 2}}bi-envelope{{else if $item.locktype == 1}}bi-lock{{else}}bi-unlock{{/if}} lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-bs-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
<div id="panel-{{$item.id}}" class="dropdown-menu"></div>
</div>
{{/if}}
@@ -101,49 +98,83 @@
</div>
{{/if}}
<div class="p-2 clearfix wall-item-tools">
- <div class="float-end wall-item-tools-right">
- <div class="btn-group">
- <div id="like-rotator-{{$item.id}}" class="spinner-wrapper">
- <div class="spinner s"></div>
- </div>
- </div>
- {{if $item.mode === 'moderate'}}
- <a href="moderate/{{$item.id}}/approve" class="btn btn-outline-success btn-sm">{{$item.approve}}</a>
- <a href="moderate/{{$item.id}}/drop" class="btn btn-outline-danger btn-sm">{{$item.delete}}</a>
+ <div class="float-end wall-item-tools-right hstack gap-1" id="wall-item-tools-right-{{$item.id}}">
+ {{if $item.moderate}}
+ <a href="moderate/{{$item.id}}/approve" onclick="moderate_approve({{$item.id}}); return false;" class="btn btn-sm btn-outline-success"><i class="bi bi-check-lg" ></i> {{$item.moderate_approve}}</a>
+ <a href="moderate/{{$item.id}}/drop" onclick="moderate_drop({{$item.id}}); return false;" class="btn btn-sm btn-outline-danger"><i class="bi bi-trash" ></i> {{$item.moderate_delete}}</a>
{{else}}
- {{if $item.star || $item.thread_action_menu || $item.drop.dropping}}
- <div class="btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown">
- <i class="fa fa-cog"></i>
+ {{if $item.star && $item.star.isstarred}}
+ <div class="" id="star-button-{{$item.id}}">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0 wall-item-star" onclick="dostar({{$item.id}});"><i class="bi bi-star generic-icons"></i></button>
+ </div>
+ {{/if}}
+ {{if $item.attachments}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0 wall-item-attach" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="bi bi-paperclip generic-icons"></i></button>
+ <div class="dropdown-menu dropdown-menu-end">{{$item.attachments}}</div>
+ </div>
+ {{/if}}
+ {{if $item.reply_to}}
+ <button type="button" title="{{$item.reply_to.0}}" class="btn btn-sm btn-outline-secondary border-0" onclick="doreply({{$item.parent}}, {{$item.id}}, '{{$item.author_id}}', '{{$item.reply_to.2}} {{$item.name|escape:javascript}}');">
+ <i class="bi bi-arrow-90deg-left generic-icons" ></i>
+ </button>
+ {{/if}}
+ <div class="">
+ <button type="button" class="btn btn-sm btn-outline-secondary border-0" data-bs-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
+ <i class="bi bi-three-dots-vertical generic-icons"></i>
</button>
- <div class="dropdown-menu dropdown-menu-end">
+ <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}">
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav bi bi-arrow-90deg-right" 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 bi bi-box-arrow-up-right"></i>{{$item.plink.title}}</a>
+ {{/if}}
+ {{if $item.edpost}}
+ <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav bi bi-pencil"></i>{{$item.edpost.1}}</a>
+ {{/if}}
+ {{if $item.tagger}}
+ <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav bi bi-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a>
+ {{/if}}
+ {{if $item.filer}}
+ <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav bi bi-folder-plus" title="{{$item.filer}}"></i>{{$item.filer}}</a>
+ {{/if}}
+ {{if $item.pinnable}}
+ <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$item.id}}); return false;" id="item-pinnable-{{$item.id}}"><i class="generic-icons-nav bi bi-pin"></i>{{$item.pinme}}</a>
+ {{/if}}
+ {{if $item.bookmark}}
+ <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav bi bi-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a>
+ {{/if}}
+ {{if $item.addtocal}}
+ <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav bi bi-calendar-plus" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
+ {{/if}}
{{if $item.star}}
- <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="fa fa-fw{{if $item.star.isstarred}} starred fa-star{{else}} unstarred fa-star-o{{/if}} generic-icons-nav" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
+ <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav bi{{if $item.star.isstarred}} starred bi-star-fill{{else}} unstarred bi-star{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
{{/if}}
{{if $item.thread_action_menu}}
{{foreach $item.thread_action_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}} ><i class="fa fa-fw fa-{{$mitem.icon}} generic-icons-nav"></i>{{$mitem.title}}</a>
+ <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}} ><i class="generic-icons-nav bi bi-{{$mitem.icon}}"></i>{{$mitem.title}}</a>
{{/foreach}}
{{/if}}
{{if $item.drop.dropping}}
- <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}', '{{$item.mid}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a>
+ <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}', '{{$item.mid}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav bi bi-trash"></i>{{$item.drop.delete}}</a>
+ {{/if}}
+ {{if $item.dropdown_extras}}
+ <div class="dropdown-divider"></div>
+ {{$item.dropdown_extras}}
+ {{/if}}
+ {{if $item.edpost && $item.dreport}}
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item" href="dreport/{{$item.dreport_link}}">{{$item.dreport}}</a>
+ {{/if}}
+ {{if $item.settings}}
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item conversation-settings-link" href="" data-bs-toggle="modal" data-bs-target="#conversation_settings">{{$item.settings}}</a>
{{/if}}
</div>
</div>
{{/if}}
- {{/if}}
- </div>
- {{if $item.star && $item.star.isstarred}}
- <div class="btn-group" id="star-button-{{$item.id}}">
- <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like" onclick="dostar({{$item.id}});"><i class="fa fa-star"></i></button>
- </div>
- {{/if}}
- {{if $item.attachments}}
- <div class="wall-item-tools-left btn-group">
- <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-paperclip"></i></button>
- <div class="dropdown-menu">{{$item.attachments}}</div>
</div>
- {{/if}}
</div>
</div>
{{if $item.conv}}
diff --git a/view/tpl/searchbox.tpl b/view/tpl/searchbox.tpl
index c6bbcee82..b3159de0e 100644
--- a/view/tpl/searchbox.tpl
+++ b/view/tpl/searchbox.tpl
@@ -2,9 +2,9 @@
<input type="hidden" name="f" value="" />
<div id="{{$id}}" class="input-group">
<input class="form-control" type="text" name="search" id="search-text" value="{{$s}}" onclick="this.submit();" />
- <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-outline-secondary" id="search-submit" value="{{$search_label}}"><i class="bi bi-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-outline-secondary" id="search-save" value="{{$save_label}}"><i class="bi fa-floppy-o"></i></button>
{{/if}}
</div>
</form>
diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
index 2c617834a..334b41603 100644
--- a/view/tpl/settings.tpl
+++ b/view/tpl/settings.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <a title="{{$removechannel}}" class="btn btn-danger btn-sm float-end" href="removeme"><i class="fa fa-trash-o"></i>&nbsp;{{$removeme}}</a>
+ <a title="{{$removechannel}}" class="btn btn-danger btn-sm float-end" href="removeme"><i class="bi bi-trash"></i>&nbsp;{{$removeme}}</a>
<h2>{{$ptitle}}</h2>
<div class="clear"></div>
</div>
diff --git a/view/tpl/settings_account.tpl b/view/tpl/settings_account.tpl
index 0280b2962..c6d3d7bcc 100644
--- a/view/tpl/settings_account.tpl
+++ b/view/tpl/settings_account.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <a title="{{$removeaccount}}" class="btn btn-danger btn-sm float-end" href="removeaccount"><i class="fa fa-trash-o"></i>&nbsp;{{$removeme}}</a>
+ <a title="{{$removeaccount}}" class="btn btn-danger btn-sm float-end" href="removeaccount"><i class="bi bi-trash"></i>&nbsp;{{$removeme}}</a>
<h2>{{$title}}</h2>
<div class="clear"></div>
</div>
diff --git a/view/tpl/settings_privacy.tpl b/view/tpl/settings_privacy.tpl
index 03224ae65..2541d307d 100644
--- a/view/tpl/settings_privacy.tpl
+++ b/view/tpl/settings_privacy.tpl
@@ -28,7 +28,7 @@
</div>
<div class="modal-body">
<div class="multi-collapse collapse show">
- <h2 class="text-danger mb-3"><i class="fa fa-warning"></i> {{$permission_limits_warning.0}}</h2>
+ <h2 class="text-danger mb-3"><i class="bi fa-warning"></i> {{$permission_limits_warning.0}}</h2>
<h3 class="mb-3">{{$permission_limits_warning.1}}</h3>
<button type="button" class="btn btn-primary" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="collapseExample">{{$permission_limits_warning.2}}</button>
</div>
diff --git a/view/tpl/sharedwithme.tpl b/view/tpl/sharedwithme.tpl
index 653077196..7f37726a7 100644
--- a/view/tpl/sharedwithme.tpl
+++ b/view/tpl/sharedwithme.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <a href="/sharedwithme/dropall" onclick="return confirmDelete();" class="btn btn-sm btn-outline-secondary float-end"><i class="fa fa-trash-o"></i>&nbsp;{{$dropall}}</a>
+ <a href="/sharedwithme/dropall" onclick="return confirmDelete();" class="btn btn-sm btn-outline-secondary float-end"><i class="bi bi-trash"></i>&nbsp;{{$dropall}}</a>
<h2>{{$header}}</h2>
</div>
<div class="section-content-wrapper-np">
@@ -14,9 +14,9 @@
</tr>
{{foreach $items as $item}}
<tr id="cloud-index-{{$item.id}}">
- <td><i class="fa {{$item.objfiletypeclass}}" title="{{$item.objfiletype}}"></i></td>
+ <td><i class="bi {{$item.objfiletypeclass}}" title="{{$item.objfiletype}}"></i></td>
<td><a href="{{$item.objurl}}">{{$item.objfilename}}</a>{{if $item.unseen}}&nbsp;<span class="badge badge-pill badge-success">{{$label_new}}</span>{{/if}}</td>
- <td class="cloud-index-tool"><a href="#" title="{{$drop}}" onclick="dropItem('/sharedwithme/{{$item.id}}/drop', '#cloud-index-{{$item.id}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a></td>
+ <td class="cloud-index-tool"><a href="#" title="{{$drop}}" onclick="dropItem('/sharedwithme/{{$item.id}}/drop', '#cloud-index-{{$item.id}}'); return false;"><i class="bi bi-trash drop-icons"></i></a></td>
<td class="d-none d-md-table-cell">{{$item.objfilesize}}</td>
<td class="d-none d-md-table-cell">{{$item.objedited}}</td>
</tr>
diff --git a/view/tpl/show_thing.tpl b/view/tpl/show_thing.tpl
index 7aee4e8b2..c586d7d91 100644
--- a/view/tpl/show_thing.tpl
+++ b/view/tpl/show_thing.tpl
@@ -9,8 +9,8 @@
</div>
{{if $canedit}}
<div class="thing-edit-links">
- <a href="thing/edit/{{$thing.obj_obj}}" title="{{$edit}}" class="btn btn-outline-secondary" ><i class="fa fa-pencil thing-edit-icon"></i></a>
- <a href="thing/drop/{{$thing.obj_obj}}" onclick="return confirmDelete();" title="{{$delete}}" class="btn btn-outline-secondary" ><i class="fa fa-trash-o drop-icons"></i></a>
+ <a href="thing/edit/{{$thing.obj_obj}}" title="{{$edit}}" class="btn btn-outline-secondary" ><i class="bi bi-pencil thing-edit-icon"></i></a>
+ <a href="thing/drop/{{$thing.obj_obj}}" onclick="return confirmDelete();" title="{{$delete}}" class="btn btn-outline-secondary" ><i class="bi bi-trash drop-icons"></i></a>
</div>
<div class="thing-edit-links-end"></div>
{{/if}}
diff --git a/view/tpl/suggest_friends.tpl b/view/tpl/suggest_friends.tpl
index 95f24cd63..ef2a108b0 100644
--- a/view/tpl/suggest_friends.tpl
+++ b/view/tpl/suggest_friends.tpl
@@ -4,13 +4,13 @@
<img src="{{$entry.photo}}" alt="{{$entry.name}}" width="80" height="80" title="{{$entry.name}} [{{$entry.profile}}]" />
</a>
</div>
- <a href="{{$entry.ignlnk}}" title="{{$entry.ignore}}" class="profile-match-ignore" onclick="return confirmDelete();" ><i class="fa fa-times drop-icons btn btn-outline-secondary"></i></a>
+ <a href="{{$entry.ignlnk}}" title="{{$entry.ignore}}" class="profile-match-ignore" onclick="return confirmDelete();" ><i class="bi bi-x-lg drop-icons btn btn-outline-secondary"></i></a>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="{{$entry.url}}" title="{{$entry.name}}">{{$entry.name}}</a>
</div>
<div class="profile-match-end"></div>
{{if $entry.connlnk}}
- <div class="profile-match-connect btn btn-outline-secondary"><a href="{{$entry.connlnk}}" title="{{$entry.conntxt}}"><i class="fa fa-plus connect-icon"></i> {{$entry.conntxt}}</a></div>
+ <div class="profile-match-connect btn btn-outline-secondary"><a href="{{$entry.connlnk}}" title="{{$entry.conntxt}}"><i class="bi bi-plus-lg connect-icon"></i> {{$entry.conntxt}}</a></div>
{{/if}}
</div>
diff --git a/view/tpl/thing_edit.tpl b/view/tpl/thing_edit.tpl
index 8067bec43..d78615d95 100644
--- a/view/tpl/thing_edit.tpl
+++ b/view/tpl/thing_edit.tpl
@@ -31,7 +31,7 @@
{{if $lockstate}}
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i>
</button>
{{/if}}
diff --git a/view/tpl/thing_input.tpl b/view/tpl/thing_input.tpl
index 12e99969f..9eeca625c 100644
--- a/view/tpl/thing_input.tpl
+++ b/view/tpl/thing_input.tpl
@@ -31,7 +31,7 @@
{{if $lockstate}}
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-bs-toggle="modal" data-bs-target="#aclModal" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}}"></i>
+ <i id="jot-perms-icon" class="bi bi-{{$lockstate}}"></i>
</button>
{{/if}}
diff --git a/view/tpl/totp.tpl b/view/tpl/totp.tpl
index 1f3b1cfc7..2fb885c05 100644
--- a/view/tpl/totp.tpl
+++ b/view/tpl/totp.tpl
@@ -9,7 +9,7 @@
<body>
<nav class="navbar bg-body-tertiary">
<div class="container-sm">
- <span class="navbar-brand"><i class="fa fa-fw fa-hubzilla"></i>{{$header}}</span>
+ <span class="navbar-brand"><i class="bi fa-hubzilla"></i>{{$header}}</span>
</div>
</nav>
<main class="container-sm mt-4">
diff --git a/view/tpl/uexport.tpl b/view/tpl/uexport.tpl
index 2b7967970..099a574e8 100644
--- a/view/tpl/uexport.tpl
+++ b/view/tpl/uexport.tpl
@@ -8,7 +8,7 @@
<p>
{{$channel_info}}
</p>
- <a href="uexport/channel" class="btn btn-outline-primary"><i class="fa fa-download"></i> {{$channel_title}}</a>
+ <a href="uexport/channel" class="btn btn-outline-primary"><i class="bi fa-download"></i> {{$channel_title}}</a>
</p>
<p class="mb-3">
<h3>{{$content_title}}</h3>
@@ -17,7 +17,7 @@
{{$items_extra_info}}
</p>
{{foreach $years as $year}}
- <a href="uexport/{{$year}}" class="btn btn-outline-primary"><i class="fa fa-download"></i> {{$year}}</a>
+ <a href="uexport/{{$year}}" class="btn btn-outline-primary"><i class="bi fa-download"></i> {{$year}}</a>
{{/foreach}}
</p>
<p class="mb-3">
@@ -26,7 +26,7 @@
{{$wikis_info}}
{{$items_extra_info}}
</p>
- <a href="uexport/wikis" class="btn btn-outline-primary"><i class="fa fa-download"></i> {{$wikis_title}}</a>
+ <a href="uexport/wikis" class="btn btn-outline-primary"><i class="bi fa-download"></i> {{$wikis_title}}</a>
</p>
<p class="mb-3">
<h3>{{$webpages_title}}</h3>
@@ -34,7 +34,7 @@
{{$webpages_info}}
{{$items_extra_info}}
</p>
- <a href="uexport/webpages" class="btn btn-outline-primary"><i class="fa fa-download"></i> {{$webpages_title}}</a>
+ <a href="uexport/webpages" class="btn btn-outline-primary"><i class="bi fa-download"></i> {{$webpages_title}}</a>
</p>
<p class="mb-3">
<h3>{{$events_title}}</h3>
@@ -42,7 +42,7 @@
{{$events_info}}
{{$items_extra_info}}
</p>
- <a href="uexport/events" class="btn btn-outline-primary"><i class="fa fa-download"></i> {{$events_title}}</a>
+ <a href="uexport/events" class="btn btn-outline-primary"><i class="bi fa-download"></i> {{$events_title}}</a>
</p>
<p class="mb-3">
<h3>{{$chatrooms_title}}</h3>
@@ -50,7 +50,7 @@
{{$chatrooms_info}}
{{$items_extra_info}}
</p>
- <a href="uexport/chatrooms" class="btn btn-outline-primary"><i class="fa fa-download"></i> {{$chatrooms_title}}</a>
+ <a href="uexport/chatrooms" class="btn btn-outline-primary"><i class="bi fa-download"></i> {{$chatrooms_title}}</a>
</p>
</div>
</div>
diff --git a/view/tpl/usermenu.tpl b/view/tpl/usermenu.tpl
index 5a316e806..26ba5d9fc 100644
--- a/view/tpl/usermenu.tpl
+++ b/view/tpl/usermenu.tpl
@@ -2,7 +2,7 @@
<div id="pmenu-{{$id}}" class="pmenu{{if !$class}} widget{{else}} {{$class}}{{/if}}">
{{/if}}
{{if $menu.menu_desc}}
- <h3 class="pmenu-title">{{$menu.menu_desc}}{{if $edit}} <a href="mitem/{{$nick}}/{{$menu.menu_id}}" title="{{$edit}}"><i class="fa fa-pencil fakelink" title="{{$edit}}"></i></a>{{/if}}</h3>
+ <h3 class="pmenu-title">{{$menu.menu_desc}}{{if $edit}} <a href="mitem/{{$nick}}/{{$menu.menu_id}}" title="{{$edit}}"><i class="bi bi-pencil fakelink" title="{{$edit}}"></i></a>{{/if}}</h3>
{{/if}}
{{if $items}}
<ul class="pmenu-body{{if $wrap || !$class}} nav nav-pills flex-column{{elseif !$wrap || $class}} {{$class}}{{/if}}">
diff --git a/view/tpl/webpage_export_list.tpl b/view/tpl/webpage_export_list.tpl
index 6360500d8..5458b2b0b 100644
--- a/view/tpl/webpage_export_list.tpl
+++ b/view/tpl/webpage_export_list.tpl
@@ -10,7 +10,7 @@
</div>
<div id="import-website-content-wrapper" class="section-content-wrapper">
<div class="float-start">
- <button id="toggle-select-all" class="btn btn-sm btn-primary" onclick="checkedAll(window.isChecked); return false;"><i class="fa fa-check"></i>&nbsp;Toggle Select All</button>
+ <button id="toggle-select-all" class="btn btn-sm btn-primary" onclick="checkedAll(window.isChecked); return false;"><i class="bi bi-check-lg"></i>&nbsp;Toggle Select All</button>
</div>
<div class="clear"></div>
<hr>
diff --git a/view/tpl/webpage_import.tpl b/view/tpl/webpage_import.tpl
index 5af42ea04..76d78477d 100644
--- a/view/tpl/webpage_import.tpl
+++ b/view/tpl/webpage_import.tpl
@@ -10,7 +10,7 @@
</div>
<div id="import-website-content-wrapper" class="section-content-wrapper">
<div class="float-start">
- <button id="toggle-select-all" class="btn btn-sm btn-primary" onclick="checkedAll(window.isChecked); return false;"><i class="fa fa-check"></i>&nbsp;Toggle Select All</button>
+ <button id="toggle-select-all" class="btn btn-sm btn-primary" onclick="checkedAll(window.isChecked); return false;"><i class="bi bi-check-lg"></i>&nbsp;Toggle Select All</button>
</div>
<div class="clear"></div>
<h4>Scanned Pages</h4>
diff --git a/view/tpl/webpagelist.tpl b/view/tpl/webpagelist.tpl
index 995a73930..0e3cbb714 100644
--- a/view/tpl/webpagelist.tpl
+++ b/view/tpl/webpagelist.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper">
{{if $editor}}
<div class="float-end">
- <button id="webpage-create-btn" class="btn btn-sm btn-success acl-form-trigger" onclick="openClose('webpage-editor');" data-form_id="profile-jot-form"><i class="fa fa-pencil-square-o"></i>&nbsp;{{$create}}</button>
+ <button id="webpage-create-btn" class="btn btn-sm btn-success acl-form-trigger" onclick="openClose('webpage-editor');" data-form_id="profile-jot-form"><i class="bi bi-plus-lg"></i>&nbsp;{{$create}}</button>
</div>
{{/if}}
<h2>{{$listtitle}}</h2>
@@ -41,23 +41,23 @@
</td>
<td class="webpage-list-tool dropdown">
{{if $item.lockstate=='lock'}}
- <i class="fa fa-lock lockview" data-bs-toggle="dropdown" onclick="lockview('item',{{$item.url}});" ></i>
+ <i class="bi bi-lock lockview" data-bs-toggle="dropdown" onclick="lockview('item',{{$item.url}});" ></i>
<ul id="panel-{{$item.url}}" class="lockview-panel dropdown-menu"></ul>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $edit}}
- <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="fa fa-pencil"></i></a>
+ <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="bi bi-pencil"></i></a>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $item.bb_element}}
- <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="fa fa-share-square-o"></i></a>
+ <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="bi bi-download"></i></a>
{{/if}}
</td>
<td class="webpage-list-tool">
{{if $edit}}
- <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#webpage-list-item-{{$item.url}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>
+ <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#webpage-list-item-{{$item.url}}'); return false;"><i class="bi bi-trash drop-icons"></i></a>
{{/if}}
</td>
<td class="d-none d-md-table-cell">
diff --git a/view/tpl/website_portation_tools.tpl b/view/tpl/website_portation_tools.tpl
index f27d67ca2..2318fb285 100644
--- a/view/tpl/website_portation_tools.tpl
+++ b/view/tpl/website_portation_tools.tpl
@@ -1,6 +1,6 @@
<div id="website-portation-tools" class="widget">
<div class="nav nav-pills flex-column">
- <a class="nav-link" href="#" onclick="openClose('import-form'); return false;"><i class="fa fa-cloud-upload generic-icons"></i> {{$import_label}}</a>
+ <a class="nav-link" href="#" onclick="openClose('import-form'); return false;"><i class="bi bi-upload generic-icons"></i> {{$import_label}}</a>
<div id="import-form" class="sub-menu-wrapper">
<div class="sub-menu">
<form enctype="multipart/form-data" method="post" action="">
@@ -25,7 +25,7 @@
</div>
</div>
<div class="nav nav-pills flex-column">
- <a class="nav-link" href="#" onclick="openClose('export-form'); openClose('export-cloud-form'); return false;"><i class="fa fa-share-square-o generic-icons"></i> {{$export_label}}</a>
+ <a class="nav-link" href="#" onclick="openClose('export-form'); openClose('export-cloud-form'); return false;"><i class="bi bi-download generic-icons"></i> {{$export_label}}</a>
<div id="export-form" class="sub-menu-wrapper">
<div class="sub-menu">
<form enctype="multipart/form-data" method="post" action="">
diff --git a/view/tpl/xchan_vcard.tpl b/view/tpl/xchan_vcard.tpl
index 473cda7ad..194b1394e 100644
--- a/view/tpl/xchan_vcard.tpl
+++ b/view/tpl/xchan_vcard.tpl
@@ -15,7 +15,7 @@
{{if $connect}}
<div class="mt-2">
<a href="follow?f=&url={{$follow}}&interactive=1" class="btn btn-success btn-sm" rel="nofollow">
- <i class="fa fa-plus"></i> {{$connect}}
+ <i class="bi bi-plus-lg"></i> {{$connect}}
</a>
</div>
{{/if}}