From 43e5b2d28bc782f84c852c0d6016feb8a6319a79 Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Tue, 26 May 2020 11:58:18 +0000 Subject: [PATCH] right sidebar: Remove "GROUP PMs" section. We remove the "GROUP PMs" section that used to be in the lower right sidebar. Most of this is straightforward code removal. A couple quick notes: - The message fetching code now just calls `huddle_data.process_loaded_messages`, which we still need for search suggestions. We removed `activity.process_loaded_messages`. - The `huddle_data.process_loaded_messages` function no longer needs to return `need_resize`. - In `resize.js` we now just calculate `res.buddy_list_wrapper_max_height` directly from `usable_height`. --- frontend_tests/node_tests/activity.js | 105 +------------------- frontend_tests/node_tests/general.js | 4 +- static/js/activity.js | 121 ------------------------ static/js/click_handlers.js | 16 +--- static/js/huddle_data.js | 5 - static/js/list_util.js | 2 +- static/js/message_events.js | 5 +- static/js/message_fetch.js | 4 +- static/js/resize.js | 37 +------- static/js/ui_init.js | 1 - static/styles/left-sidebar.scss | 7 +- static/styles/night_mode.scss | 1 - static/styles/right-sidebar.scss | 51 ++-------- static/templates/group_pms.hbs | 14 --- templates/zerver/app/right_sidebar.html | 7 -- tools/linter_lib/custom_check.py | 2 - 16 files changed, 26 insertions(+), 356 deletions(-) delete mode 100644 static/templates/group_pms.hbs diff --git a/frontend_tests/node_tests/activity.js b/frontend_tests/node_tests/activity.js index 98be5e60a2..d73f246386 100644 --- a/frontend_tests/node_tests/activity.js +++ b/frontend_tests/node_tests/activity.js @@ -132,9 +132,6 @@ people.add_active_user(zoe); people.add_active_user(me); people.initialize_current_user(me.user_id); -const real_update_huddles = activity.update_huddles; -activity.update_huddles = () => {}; - const presence_info = new Map(); presence_info.set(alice.user_id, { status: 'inactive' }); presence_info.set(fred.user_id, { status: 'active' }); @@ -176,7 +173,8 @@ run_test('sort_users', () => { ]); }); -run_test('process_loaded_messages', () => { +run_test('huddle_data.process_loaded_messages', () => { + // TODO: move this to a module for just testing `huddle_data` const huddle1 = 'jill@zulip.com,norbert@zulip.com'; const timestamp1 = 1382479029; // older @@ -211,56 +209,13 @@ run_test('process_loaded_messages', () => { }, ]; - activity.process_loaded_messages(messages); + huddle_data.process_loaded_messages(messages); const user_ids_string1 = people.emails_strings_to_user_ids_string(huddle1); const user_ids_string2 = people.emails_strings_to_user_ids_string(huddle2); assert.deepEqual(huddle_data.get_huddles(), [user_ids_string2, user_ids_string1]); }); -run_test('full_huddle_name', () => { - function full_name(emails_string) { - const user_ids_string = people.emails_strings_to_user_ids_string(emails_string); - return activity.full_huddle_name(user_ids_string); - } - - assert.equal( - full_name('alice@zulip.com,jill@zulip.com'), - 'Alice Smith, Jill Hill'); - - assert.equal( - full_name('alice@zulip.com,fred@zulip.com,jill@zulip.com'), - 'Alice Smith, Fred Flintstone, Jill Hill'); -}); - -run_test('short_huddle_name', () => { - function short_name(emails_string) { - const user_ids_string = people.emails_strings_to_user_ids_string(emails_string); - return activity.short_huddle_name(user_ids_string); - } - - assert.equal( - short_name('alice@zulip.com'), - 'Alice Smith'); - - assert.equal( - short_name('alice@zulip.com,jill@zulip.com'), - 'Alice Smith, Jill Hill'); - - assert.equal( - short_name('alice@zulip.com,fred@zulip.com,jill@zulip.com'), - 'Alice Smith, Fred Flintstone, Jill Hill'); - - assert.equal( - short_name('alice@zulip.com,fred@zulip.com,jill@zulip.com,mark@zulip.com'), - 'Alice Smith, Fred Flintstone, Jill Hill, + 1 other'); - - assert.equal( - short_name('alice@zulip.com,fred@zulip.com,jill@zulip.com,mark@zulip.com,norbert@zulip.com'), - 'Alice Smith, Fred Flintstone, Jill Hill, + 2 others'); - -}); - presence.presence_info = new Map(); presence.presence_info.set(alice.user_id, { status: activity.IDLE }); presence.presence_info.set(fred.user_id, { status: activity.ACTIVE }); @@ -354,31 +309,6 @@ run_test('PM_update_dom_counts', () => { assert.equal(value.text(), ''); }); -run_test('group_update_dom_counts', () => { - const value = $.create('alice-fred-value'); - const count = $.create('alice-fred-count'); - const pm_key = alice.user_id.toString() + "," + fred.user_id.toString(); - const li_selector = "li.group-pms-sidebar-entry[data-user-ids='" + pm_key + "']"; - const li = $(li_selector); - count.set_find_results('.value', value); - li.set_find_results('.count', count); - count.set_parent(li); - - const counts = new Map(); - counts.set(pm_key, 5); - li.addClass('group-pms-sidebar-entry'); - - activity.update_dom_with_unread_counts({pm_count: counts}); - assert(li.hasClass('group-with-count')); - assert.equal(value.text(), "5"); - - counts.set(pm_key, 0); - - activity.update_dom_with_unread_counts({pm_count: counts}); - assert(!li.hasClass('group-with-count')); - assert.equal(value.text(), ''); -}); - run_test('handlers', () => { // This is kind of weak coverage; we are mostly making sure that // keys and clicks got mapped to functions that don't crash. @@ -652,8 +582,6 @@ run_test('realm_presence_disabled', () => { activity.redraw_user(); activity.build_user_sidebar(); - - real_update_huddles(); }); run_test('clear_search', () => { @@ -706,34 +634,11 @@ run_test('searching', () => { assert.equal(activity.searching(), false); }); -run_test('update_huddles_and_redraw', () => { - const value = $.create('alice-fred-value'); - const count = $.create('alice-fred-count'); - const pm_key = alice.user_id.toString() + "," + fred.user_id.toString(); - const li_selector = "li.group-pms-sidebar-entry[data-user-ids='" + pm_key + "']"; - const li = $(li_selector); - count.set_find_results('.value', value); - li.set_find_results('.count', count); - count.set_parent(li); - - const real_get_huddles = huddle_data.get_huddles; - huddle_data.get_huddles = () => ['1,2']; - activity.update_huddles = real_update_huddles; - activity.redraw(); - assert.equal($('#group-pm-list').hasClass('show'), false); - page_params.realm_presence_disabled = false; - activity.redraw(); - assert.equal($('#group-pm-list').hasClass('show'), true); - huddle_data.get_huddles = () => []; - activity.redraw(); - assert.equal($('#group-pm-list').hasClass('show'), false); - huddle_data.get_huddles = real_get_huddles; - activity.update_huddles = function () {}; -}); - reset_setup(); run_test('update_presence_info', () => { + page_params.realm_presence_disabled = false; + const server_time = 500; const info = { website: { diff --git a/frontend_tests/node_tests/general.js b/frontend_tests/node_tests/general.js index d9eb536417..924c610cc8 100644 --- a/frontend_tests/node_tests/general.js +++ b/frontend_tests/node_tests/general.js @@ -416,7 +416,7 @@ run_test('insert_message', () => { assert.equal(message_store.get(new_message.id), undefined); - helper.redirect('activity', 'process_loaded_messages'); + helper.redirect('huddle_data', 'process_loaded_messages'); helper.redirect('message_util', 'add_new_messages'); helper.redirect('notifications', 'received_messages'); helper.redirect('resize', 'resize_page_components'); @@ -433,9 +433,9 @@ run_test('insert_message', () => { // the code invokes various objects when a new message // comes in: assert.deepEqual(helper.events, [ + 'huddle_data.process_loaded_messages', 'message_util.add_new_messages', 'message_util.add_new_messages', - 'activity.process_loaded_messages', 'unread_ui.update_unread_counts', 'resize.resize_page_components', 'unread_ops.process_visible', diff --git a/static/js/activity.js b/static/js/activity.js index 41a57bfdf2..4aa06b763b 100644 --- a/static/js/activity.js +++ b/static/js/activity.js @@ -1,6 +1,3 @@ -const render_group_pms = require('../templates/group_pms.hbs'); -const huddle_data = require("./huddle_data"); - /* Helpers for detecting user activity and managing user idle states */ @@ -42,43 +39,18 @@ function update_pm_count_in_dom(count_span, value_span, count) { value_span.text(count); } -function update_group_count_in_dom(count_span, value_span, count) { - const li = count_span.parent(); - - if (count === 0) { - count_span.hide(); - li.removeClass("group-with-count"); - value_span.text(''); - return; - } - - count_span.show(); - li.addClass("group-with-count"); - value_span.text(count); -} - function get_pm_list_item(user_id) { return buddy_list.find_li({ key: user_id, }); } -function get_group_list_item(user_ids_string) { - return $("li.group-pms-sidebar-entry[data-user-ids='" + user_ids_string + "']"); -} - function set_pm_count(user_ids_string, count) { const count_span = get_pm_list_item(user_ids_string).find('.count'); const value_span = count_span.find('.value'); update_pm_count_in_dom(count_span, value_span, count); } -function set_group_count(user_ids_string, count) { - const count_span = get_group_list_item(user_ids_string).find('.count'); - const value_span = count_span.find('.value'); - update_group_count_in_dom(count_span, value_span, count); -} - exports.update_dom_with_unread_counts = function (counts) { // counts is just a data object that gets calculated elsewhere // Our job is to update some DOM elements. @@ -88,59 +60,10 @@ exports.update_dom_with_unread_counts = function (counts) { const is_pm = !user_ids_string.includes(','); if (is_pm) { set_pm_count(user_ids_string, count); - } else { - set_group_count(user_ids_string, count); } } }; -exports.process_loaded_messages = function (messages) { - const need_resize = huddle_data.process_loaded_messages(messages); - - exports.update_huddles(); - - if (need_resize) { - resize.resize_page_components(); // big hammer - } -}; - -function huddle_split(huddle) { - return huddle.split(',').map(s => parseInt(s, 10)); -} - -exports.full_huddle_name = function (huddle) { - const user_ids = huddle_split(huddle); - - const names = user_ids.map(user_id => { - const person = people.get_by_user_id(user_id); - return person.full_name; - }); - - return names.join(', '); -}; - -exports.short_huddle_name = function (huddle) { - const user_ids = huddle_split(huddle); - - const num_to_show = 3; - let names = user_ids.map(user_id => { - const person = people.get_by_user_id(user_id); - return person.full_name; - }); - - names = _.sortBy(names, function (name) { return name.toLowerCase(); }); - names = names.slice(0, num_to_show); - const others = user_ids.length - num_to_show; - - if (others === 1) { - names.push("+ 1 other"); - } else if (others >= 2) { - names.push("+ " + others + " others"); - } - - return names.join(', '); -}; - function mark_client_idle() { // When we become idle, we don't immediately send anything to the // server; instead, we wait for our next periodic update, since @@ -186,8 +109,6 @@ exports.build_user_sidebar = function () { }); finish(); - resize.resize_page_components(); - return user_ids; // for testing }; @@ -201,45 +122,6 @@ function do_update_users_for_search() { const update_users_for_search = _.throttle(do_update_users_for_search, 50); -function show_huddles() { - $('#group-pm-list').addClass("show"); -} - -function hide_huddles() { - $('#group-pm-list').removeClass("show"); -} - -exports.update_huddles = function () { - if (page_params.realm_presence_disabled) { - return; - } - - const huddles = huddle_data.get_huddles().slice(0, 10); - - if (huddles.length === 0) { - hide_huddles(); - return; - } - - const group_pms = huddles.map(huddle => ({ - user_ids_string: huddle, - name: exports.full_huddle_name(huddle), - href: hash_util.huddle_with_uri(huddle), - fraction_present: buddy_data.huddle_fraction_present(huddle), - short_name: exports.short_huddle_name(huddle), - })); - - const html = render_group_pms({group_pms: group_pms}); - ui.get_content_element($('#group-pms')).html(html); - - for (const user_ids_string of huddles) { - const count = unread.num_unread_for_person(user_ids_string); - set_group_count(user_ids_string, count); - } - - show_huddles(); -}; - exports.compute_active_status = function () { // The overall algorithm intent for the `status` field is to send // `ACTIVE` (aka green circle) if we know the user is at their @@ -333,7 +215,6 @@ exports.initialize = function () { exports.set_cursor_and_filter(); exports.build_user_sidebar(); - exports.update_huddles(); buddy_list.start_scroll_handler(); @@ -351,7 +232,6 @@ exports.initialize = function () { exports.update_presence_info = function (user_id, info, server_time) { presence.update_info_from_event(user_id, info, server_time); exports.redraw_user(user_id); - exports.update_huddles(); pm_list.update_private_messages(); }; @@ -370,7 +250,6 @@ exports.on_revoke_away = function (user_id) { exports.redraw = function () { exports.build_user_sidebar(); exports.user_cursor.redraw(); - exports.update_huddles(); pm_list.update_private_messages(); }; diff --git a/static/js/click_handlers.js b/static/js/click_handlers.js index 75d78a0246..914f9c63e3 100644 --- a/static/js/click_handlers.js +++ b/static/js/click_handlers.js @@ -413,16 +413,6 @@ exports.initialize = function () { $(".tooltip").remove(); }); - $('#group-pms').expectOne().on('click', '.selectable_sidebar_block', function (e) { - const user_ids_string = $(e.target).parents('li').attr('data-user-ids'); - const emails = people.user_ids_string_to_emails_string(user_ids_string); - narrow.by('pm-with', emails, {trigger: 'sidebar'}); - e.preventDefault(); - e.stopPropagation(); - popovers.hide_all(); - $(".tooltip").remove(); - }); - function do_render_buddy_list_tooltip(elem, title_data) { elem.tooltip({ template: render_buddy_list_tooltip(), @@ -454,7 +444,7 @@ exports.initialize = function () { }); // PM LIST TOOLTIPS - $("body").on('mouseenter', '#pm_user_status, #group_pms_right_sidebar', function (e) { + $("body").on('mouseenter', '#pm_user_status', function (e) { $(".tooltip").remove(); e.stopPropagation(); const elem = $(e.currentTarget); @@ -466,7 +456,7 @@ exports.initialize = function () { do_render_buddy_list_tooltip(elem, title_data); }); - $("body").on('mouseleave', '#pm_user_status, #group_pms_right_sidebar', function (e) { + $("body").on('mouseleave', '#pm_user_status', function (e) { e.stopPropagation(); $(e.currentTarget).tooltip('destroy'); }); @@ -496,7 +486,7 @@ exports.initialize = function () { // MISC (function () { - const sel = ["#group-pm-list", "#stream_filters", "#global_filters", "#user_presences"].join(", "); + const sel = ["#stream_filters", "#global_filters", "#user_presences"].join(", "); $(sel).on("click", "a", function () { this.blur(); diff --git a/static/js/huddle_data.js b/static/js/huddle_data.js index c71872254d..4b6e1cd9e7 100644 --- a/static/js/huddle_data.js +++ b/static/js/huddle_data.js @@ -1,8 +1,6 @@ const huddle_timestamps = new Map(); exports.process_loaded_messages = function (messages) { - let need_resize = false; - for (const message of messages) { const huddle_string = people.huddle_string(message); @@ -11,12 +9,9 @@ exports.process_loaded_messages = function (messages) { if (!old_timestamp || old_timestamp < message.timestamp) { huddle_timestamps.set(huddle_string, message.timestamp); - need_resize = true; } } } - - return need_resize; }; exports.get_huddles = function () { diff --git a/static/js/list_util.js b/static/js/list_util.js index c1364bccc9..f8bec15534 100644 --- a/static/js/list_util.js +++ b/static/js/list_util.js @@ -1,4 +1,4 @@ -const list_selectors = ["#group-pm-list", "#stream_filters", "#global_filters", "#user_presences"]; +const list_selectors = ["#stream_filters", "#global_filters", "#user_presences"]; exports.inside_list = function (e) { const $target = $(e.target); diff --git a/static/js/message_events.js b/static/js/message_events.js index d9949c0ebb..e5bd17ad44 100644 --- a/static/js/message_events.js +++ b/static/js/message_events.js @@ -1,4 +1,6 @@ const util = require("./util"); +const huddle_data = require("./huddle_data"); + function maybe_add_narrowed_messages(messages, msg_list) { const ids = []; @@ -58,6 +60,7 @@ exports.insert_new_messages = function insert_new_messages(messages, sent_by_thi messages = messages.map(message_store.add_message_metadata); unread.process_loaded_messages(messages); + huddle_data.process_loaded_messages(messages); // message_list.all is a data-only list that we use to populate // other lists, so we always update this @@ -90,8 +93,6 @@ exports.insert_new_messages = function insert_new_messages(messages, sent_by_thi notifications.notify_local_mixes(messages, need_user_to_scroll); } - activity.process_loaded_messages(messages); - unread_ui.update_unread_counts(); resize.resize_page_components(); diff --git a/static/js/message_fetch.js b/static/js/message_fetch.js index 1f8e28f1db..5ddff9e73d 100644 --- a/static/js/message_fetch.js +++ b/static/js/message_fetch.js @@ -1,3 +1,5 @@ +const huddle_data = require("./huddle_data"); + const consts = { backfill_idle_time: 10 * 1000, error_retry_time: 5000, @@ -46,7 +48,7 @@ function process_result(data, opts) { message_util.add_old_messages(messages, opts.msg_list); } - activity.process_loaded_messages(messages); + huddle_data.process_loaded_messages(messages); stream_list.update_streams_sidebar(); pm_list.update_private_messages(); recent_topics.process_messages(messages); diff --git a/static/js/resize.js b/static/js/resize.js index 6d83051629..d89f43835c 100644 --- a/static/js/resize.js +++ b/static/js/resize.js @@ -27,25 +27,6 @@ function size_blocks(blocks, usable_height) { } } -function set_user_list_heights(res, usable_height, buddy_list_wrapper, group_pms) { - // Calculate these heights: - // res.buddy_list_wrapper_max_height - // res.group_pms_max_height - const blocks = [ - { - real_height: ui.get_scroll_element(buddy_list_wrapper).prop('scrollHeight'), - }, - { - real_height: ui.get_scroll_element(group_pms).prop('scrollHeight'), - }, - ]; - - size_blocks(blocks, usable_height); - - res.buddy_list_wrapper_max_height = blocks[0].max_height; - res.group_pms_max_height = blocks[1].max_height; -} - function get_new_heights() { const res = {}; const viewport_height = message_viewport.height(); @@ -67,8 +48,6 @@ function get_new_heights() { res.stream_filters_max_height = Math.max(80, res.stream_filters_max_height); // RIGHT SIDEBAR - const buddy_list_wrapper = $('#buddy_list_wrapper').expectOne(); - const group_pms = $('#group-pms').expectOne(); // Calculate our top offset, which should typically be 50px, // even though we sometimes split that as 40px of margin @@ -92,20 +71,9 @@ function get_new_heights() { - $("#userlist-header").safeOuterHeight(true) - $("#user_search_section").safeOuterHeight(true) - invite_user_link_height - - parseInt(group_pms.css("marginTop"), 10) - - parseInt(group_pms.css("marginBottom"), 10) - - $("#group-pm-header").safeOuterHeight(true) - $("#sidebar-keyboard-shortcuts").safeOuterHeight(true); - // set these - // res.buddy_list_wrapper_max_height - // res.group_pms_max_height - set_user_list_heights( - res, - usable_height, - buddy_list_wrapper, - group_pms - ); + res.buddy_list_wrapper_max_height = Math.max(80, usable_height); return res; } @@ -154,7 +122,6 @@ function left_userlist_get_new_heights() { res.stream_filters_max_height = blocks[0].max_height; res.buddy_list_wrapper_max_height = blocks[1].max_height; - res.group_pms_max_height = 0; return res; } @@ -246,8 +213,6 @@ exports.resize_sidebars = function () { const h = narrow_window ? left_userlist_get_new_heights() : get_new_heights(); $("#buddy_list_wrapper").css('max-height', h.buddy_list_wrapper_max_height); - $("#group-pms").css('max-height', h.group_pms_max_height); - $("#stream-filters-container").css('max-height', h.stream_filters_max_height); return h; diff --git a/static/js/ui_init.js b/static/js/ui_init.js index b1baf8a4cb..e07e94f5bf 100644 --- a/static/js/ui_init.js +++ b/static/js/ui_init.js @@ -292,7 +292,6 @@ exports.initialize_kitchen_sink_stuff = function () { if (page_params.realm_presence_disabled) { $("#user-list").hide(); - $("#group-pm-list").hide(); } }; diff --git a/static/styles/left-sidebar.scss b/static/styles/left-sidebar.scss index 5819da990a..d93b7e9e7e 100644 --- a/static/styles/left-sidebar.scss +++ b/static/styles/left-sidebar.scss @@ -9,12 +9,7 @@ $left_col_size: 19px; $topic_indent: calc($far_left_gutter_size + $left_col_size + 4px); #left-sidebar { - #group-pm-list { - display: none; - } - - #user-list, - #group-pm-list { + #user-list { padding-left: 10px; } } diff --git a/static/styles/night_mode.scss b/static/styles/night_mode.scss index 2b9d2e5cbd..ff82e4f926 100644 --- a/static/styles/night_mode.scss +++ b/static/styles/night_mode.scss @@ -375,7 +375,6 @@ on a dark background, and don't change the dark labels dark either. */ .top_left_row:hover, .bottom_left_row:hover, #stream_filters li.highlighted_stream, - #group-pms li:hover, #user_presences li:hover, #user_presences li.highlighted_user { background-color: hsla(136, 25%, 73%, 0.2); diff --git a/static/styles/right-sidebar.scss b/static/styles/right-sidebar.scss index 6c704f3deb..fc96b64ed1 100644 --- a/static/styles/right-sidebar.scss +++ b/static/styles/right-sidebar.scss @@ -6,21 +6,18 @@ text-decoration: none; } -#group-pms li:hover, #user_presences li:hover, #user_presences li.highlighted_user { background-color: hsl(93, 19%, 88%); } -#buddy_list_wrapper, -#group-pms { +#buddy_list_wrapper { position: relative; margin-left: 0; overflow: auto; } -#user_presences, -#group-pms { +#user_presences { list-style-position: inside; /* Draw the bullets inside our box */ } @@ -63,8 +60,7 @@ } } -#user_presences li, -#group-pms li { +#user_presences li { list-style-type: none; border-radius: 4px; @@ -72,13 +68,7 @@ padding-right: 15px; } -#group-pm-title { - margin: 10px 0px 0px 0px; - display: inline-block; -} - -#user_presences .user_circle, -#group-pms .user_circle_fraction { +#user_presences .user_circle { width: 8px; height: 8px; margin-top: 0px; @@ -88,8 +78,7 @@ display: block; } -#user_presences a, -#group-pms a { +#user_presences a { color: inherit; margin-left: 0px; } @@ -100,12 +89,6 @@ margin-left: 5px; } -.group-pms-sidebar-entry .selectable_sidebar_block { - display: flex; - width: 100%; -} - -.group-pm-link, .user-presence-link, .user_sidebar_entry .selectable_sidebar_block { overflow: hidden; @@ -126,24 +109,17 @@ opacity: 0.5; } -.group-pm-link { - width: calc(100% - 60px); - display: inline-block; -} - .selectable_sidebar_block { cursor: pointer; } -.group-pms-sidebar-entry, .user_sidebar_entry { display: flex; align-items: flex-start; justify-content: space-between; } -.user_sidebar_entry .count, -.group-pms-sidebar-entry .count { +.user_sidebar_entry .count { float: right; padding: 0 4px; background-color: hsl(105, 2%, 50%); @@ -164,10 +140,6 @@ display: none; } -.group-pms-sidebar-entry .count { - margin-right: 16px; -} - .user_sidebar_entry.user-with-count .count { display: block; } @@ -193,16 +165,7 @@ padding-bottom: 9px; } -#group-pm-list { - display: none; -} - -#group-pm-list.show { - display: block; -} - -#userlist-header, -#group-pm-header { +#userlist-header { margin-right: 10px; } diff --git a/static/templates/group_pms.hbs b/static/templates/group_pms.hbs deleted file mode 100644 index 1ec3a223f1..0000000000 --- a/static/templates/group_pms.hbs +++ /dev/null @@ -1,14 +0,0 @@ -{{! User Presence rows }} -{{#each group_pms}} -
  • -
    - {{#if fraction_present}} - - {{else}} - - {{/if}} - {{short_name}} - -
    -
  • -{{/each}} diff --git a/templates/zerver/app/right_sidebar.html b/templates/zerver/app/right_sidebar.html index 98662fc005..4fbcdd6e11 100644 --- a/templates/zerver/app/right_sidebar.html +++ b/templates/zerver/app/right_sidebar.html @@ -16,13 +16,6 @@
    -
    -
    - -
    - -
    {% if show_invites %} {{ _('Invite more users') }} {% endif %} diff --git a/tools/linter_lib/custom_check.py b/tools/linter_lib/custom_check.py index fce07af09b..570e2cd282 100644 --- a/tools/linter_lib/custom_check.py +++ b/tools/linter_lib/custom_check.py @@ -626,8 +626,6 @@ html_rules: List["Rule"] = whitespace_rules + prose_style_rules + [ 'templates/zerver/app/markdown_help.html', # 5xx page doesn't have external CSS 'static/html/5xx.html', - # Group PMs color is dynamically calculated - 'static/templates/group_pms.hbs', # exclude_pattern above handles color, but have other issues: 'static/templates/draft.hbs',