{if sizeof($posts) > 0}
- {foreach $posts as $post}
+
{include "../components/paginator.xml", conf => $paginatorConf}
{else}
{_no_posts_abstract}
diff --git a/Web/static/js/al_comments.js b/Web/static/js/al_comments.js
index 70c7210d..ad398637 100644
--- a/Web/static/js/al_comments.js
+++ b/Web/static/js/al_comments.js
@@ -8,6 +8,8 @@ u(document).on("click", ".comment-reply", function(e) {
let mention = ("[" + (fromGroup ? "club" : "id") + authorId + "|" + authorNm + "], ");
// Substitute pervious mention if present, prepend otherwise
- inputbox.nodes[0].value = inputbox.nodes[0].value.replace(/(^\[([A-Za-z0-9]+)\|([\p{L} 0-9@]+)\], |^)/u, mention);
+ inputbox.nodes.forEach(node => {
+ node.value = node.value.replace(/(^\[([A-Za-z0-9]+)\|([\p{L} 0-9@]+)\], |^)/u, mention);
+ })
inputbox.trigger("focusin");
});
diff --git a/Web/static/js/al_feed.js b/Web/static/js/al_feed.js
index 2831d6f1..7ca8a798 100644
--- a/Web/static/js/al_feed.js
+++ b/Web/static/js/al_feed.js
@@ -84,6 +84,7 @@ u(document).on('click', '#__feed_settings_link', (e) => {
const CURRENT_PERPAGE = Number(__temp_url.searchParams.get('posts') ?? 10)
const CURRENT_PAGE = Number(__temp_url.searchParams.get('p') ?? 1)
const CURRENT_RETURN_BANNED = Number(__temp_url.searchParams.get('return_banned') ?? 0)
+ const CURRENT_AUTO_SCROLL = Number(localStorage.getItem('ux.auto_scroll') ?? 1)
const COUNT = [1, 5, 10, 20, 30, 40, 50]
u('#_feed_settings_container #__content').html(`
@@ -107,11 +108,21 @@ u(document).on('click', '#__feed_settings_link', (e) => {
-
+
|
- ${tr('show_ignored_sources')}
+
+ |
+
+
+
+
+
+
+ |
+
+
|
@@ -268,3 +279,7 @@ u(document).on('click', '#__feed_settings_link', (e) => {
__switchTab('main')
})
+
+u(document).on('change', `input[data-act='localstorage_item']`, (e) => {
+ localStorage.setItem(e.target.name, Number(e.target.checked))
+})
diff --git a/Web/static/js/al_mentions.js b/Web/static/js/al_mentions.js
index 1be77563..d324cca6 100644
--- a/Web/static/js/al_mentions.js
+++ b/Web/static/js/al_mentions.js
@@ -19,7 +19,8 @@ var tooltipTemplate = Handlebars.compile(`
`);
-tippy(".mention", {
+tippy.delegate("body", {
+ target: '.mention',
theme: "light vk",
content: "⌛",
allowHTML: true,
diff --git a/Web/static/js/al_wall.js b/Web/static/js/al_wall.js
index 3dba201d..53617dd4 100644
--- a/Web/static/js/al_wall.js
+++ b/Web/static/js/al_wall.js
@@ -399,6 +399,7 @@ async function OpenVideo(video_arr = [], init_player = true)
details.find('.media-page-wrapper-description b').remove()
u('#ovk-player-info').html(details.html())
+ bsdnHydrate()
}
})
@@ -542,7 +543,8 @@ var tooltipClientNoInfoTemplate = Handlebars.compile(`
`);
-tippy(".client_app", {
+tippy.delegate("body", {
+ target: '.client_app',
theme: "light vk",
content: "⌛",
allowHTML: true,
@@ -2039,6 +2041,10 @@ async function __processPaginatorNextPage(page)
const showMoreObserver = new IntersectionObserver(entries => {
entries.forEach(async x => {
if(x.isIntersecting) {
+ if(Number(localStorage.getItem('ux.auto_scroll') ?? 1) == 0) {
+ return
+ }
+
if(u('.scroll_container').length < 1) {
return
}
@@ -2063,6 +2069,7 @@ const showMoreObserver = new IntersectionObserver(entries => {
const page_number = Number(next_page.html())
await __processPaginatorNextPage(page_number)
+ bsdnHydrate()
u('.paginator:not(.paginator-at-top)').removeClass('lagged')
}
})
diff --git a/locales/en.strings b/locales/en.strings
index 7a84ae09..c1ff0822 100644
--- a/locales/en.strings
+++ b/locales/en.strings
@@ -220,6 +220,7 @@
"all_news" = "All news";
"posts_per_page" = "Number of posts per page";
"show_ignored_sources" = "Show ignored sources";
+"auto_scroll" = "Autoscroll";
"attachment" = "Attachment";
"post_as_group" = "Post as group";
diff --git a/locales/ru.strings b/locales/ru.strings
index 33dd70d1..8a2d4e8c 100644
--- a/locales/ru.strings
+++ b/locales/ru.strings
@@ -205,6 +205,7 @@
"all_news" = "Все новости";
"posts_per_page" = "Количество записей на странице";
"show_ignored_sources" = "Показывать игнорируемые источники";
+"auto_scroll" = "Автоматическая прокрутка";
"attachment" = "Вложение";
"post_as_group" = "От имени сообщества";
"comment_as_group" = "От имени сообщества";