From 02411299482af9dbee9de18c2cf4cdf4f9b6a902 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 3 Sep 2024 22:12:27 +0300 Subject: [PATCH] Added support of admin log filter for extended subscriptions. --- Telegram/Resources/langs/lang.strings | 1 + .../history/admin_log/history_admin_log_filter.cpp | 4 ++++ .../history/admin_log/history_admin_log_filter_value.h | 3 ++- .../history/admin_log/history_admin_log_inner.cpp | 9 ++++++--- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index a7c3d297c0..58568a7715 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -4407,6 +4407,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_admin_log_filter_invite_links" = "Invite links"; "lng_admin_log_filter_members_removed" = "Leaving members"; "lng_admin_log_filter_topics" = "Topics"; +"lng_admin_log_filter_sub_extend" = "Subscription Renewals"; "lng_admin_log_filter_all_admins" = "All users and admins"; "lng_admin_log_filter_actions_admins_subtitle" = "Filter actions by admins"; "lng_admin_log_filter_actions_admins_section" = "Show Actions by All Admins"; diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_filter.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_filter.cpp index d8fd6eada9..f158f8be12 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_filter.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_filter.cpp @@ -50,6 +50,10 @@ EditFlagsDescriptor FilterValueLabels(bool isChannel) { ? tr::lng_admin_log_filter_voice_chats : tr::lng_admin_log_filter_voice_chats_channel)(tr::now), }, + { + Flag::SubExtend, + tr::lng_admin_log_filter_sub_extend(tr::now), + }, }; if (!isChannel) { settings.push_back({ diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_filter_value.h b/Telegram/SourceFiles/history/admin_log/history_admin_log_filter_value.h index 2fc8a5a13c..619f58322d 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_filter_value.h +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_filter_value.h @@ -28,8 +28,9 @@ struct FilterValue final { GroupCall = (1U << 14), Invites = (1U << 15), Topics = (1U << 16), + SubExtend = (1U << 17), - MAX_FIELD = (1U << 16), + MAX_FIELD = (1U << 17), }; using Flags = base::flags; friend inline constexpr bool is_flag_type(Flag) { return true; }; diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp index a53de982aa..b78878335d 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp @@ -572,11 +572,13 @@ void InnerWidget::showFilter(Fn callback) { const auto users = ranges::views::all( peers ) | ranges::views::transform([](not_null p) { - return not_null{ p->asUser() }; + return not_null{ p->asUser() }; }) | ranges::to_vector; callback(FilterValue{ .flags = collectFlags(), - .admins = users, + .admins = (admins.size() == users.size()) + ? std::nullopt + : std::optional(users), }); }); box->addButton(tr::lng_cancel(), [box] { box->closeBox(); }); @@ -835,7 +837,8 @@ void InnerWidget::preloadMore(Direction direction) { | ((f & LocalFlag::Delete) ? Flag::f_delete : empty) | ((f & LocalFlag::GroupCall) ? Flag::f_group_call : empty) | ((f & LocalFlag::Invites) ? Flag::f_invites : empty) - | ((f & LocalFlag::Topics) ? Flag::f_forums : empty); + | ((f & LocalFlag::Topics) ? Flag::f_forums : empty) + | ((f & LocalFlag::SubExtend) ? Flag::f_sub_extend : empty); }(); if (_filter.flags != 0) { flags |= MTPchannels_GetAdminLog::Flag::f_events_filter;