YashRE42
669f482b0d
icons: Switch from text-o to code-o for view source / edit topics.
...
This commit replaces fa-file-text-o with fa-file-code-o which is a
better signal for the "view source" action. It also deletes a single
line comment that had suggested the change once we moved into font
awesome 4, which Aditya Bansal <adi.bansal241996@gmail.com> helped
out in doing, first via
91962aa6ab
and most recently via
75ae94e459
with several commits in
between.
2020-05-25 16:19:50 -07:00
sahil839
2af4ef6c6d
message_events: Fix live update of message edit history.
...
This commit adds code to live update the message edit history.
Message edit history is fetched and rendered again if the edit
history modal is open.
This also adds 'data-message-id' attribute to 'message-history'
when opening history modal element which is used for checking
whether the history modal opened is of the message which is
edited.
Fixes #15051 .
2020-05-25 15:51:01 -07:00
Sanskar Bajpai
3aa74b67a0
stream_color: Rename the color picker button to confirm.
...
Tweaked by tabbott to add i18n tags.
Fixes part of #15039 .
2020-05-25 15:42:34 -07:00
Vishnu KS
8b3eb9a846
landing: Add option to show custom navbar message.
2020-05-24 17:34:03 -07:00
Siddharth Varshney
89539d6fb5
stream-popover: Change design of stream popover.
...
Extracts the stream name from the list items and display
it in the popover title.
2020-05-24 17:28:51 -07:00
Siddharth Varshney
309ab0eb6f
topic-popover: Change design of topic popover.
...
Extracts the topic name from the list items and display
it in the popover title.
Add a seperator between normal user and admin only options.
2020-05-24 17:28:50 -07:00
Pragati Agrawal
d333d82693
stream settings: Move the "Saving" widget to "Personal settings" block.
...
Rather than showing the "Saving" widget beside stream name, it's more
intuitive to have it in personal settings section because it's the only
section which uses `settings_ui.do_settings_change` function and we follow
having a separate "Saving" widget for each section everywhere.
2020-05-24 16:32:36 -07:00
Pragati Agrawal
55db6ed1e3
stream settings: Fix "Saving" widget for Muted streams.
...
"Saving" widget was working for all personal stream settings but "Mute
notifications". This was because the change to the "Mute" property follows
a slightly different path.
2020-05-24 16:32:36 -07:00
Pragati Agrawal
f7a886d821
stream settings: Add label for `regular_subscription_settings`.
...
Added the label for `regular_subscription_settings` as "Personal settings".
2020-05-24 16:32:36 -07:00
Pragati Agrawal
ce23892aec
stream settings: Move stream-email-box from regular_subscription_settings.
...
`stream-email-box` doesn't fit into `regular_subscription_settings` div,
therefore moved `stream-email-box` out of it.
2020-05-24 16:32:36 -07:00
Pragati Agrawal
441f9f43e7
templates: Extract help link widget.
...
This block of html is used at many places so it's a good idea to create a
template for it.
2020-05-24 16:32:36 -07:00
Tim Abbott
1058c08623
narrow: Fix a typo in the then_select_id comment.
2020-05-21 12:41:55 -07:00
Rohitt Vashishtha
648307ef33
rendered_markdown: Add rendering functions for timestamps.
...
This code generates the timestamp string to be shown to the user
from the given timestamp in unix format using moment.js.
We also render the timestamp in a pill.
2020-05-21 12:37:37 -07:00
Rohitt Vashishtha
44afcb8d64
rendered_markdown: Add comment explaining the use of this module.
2020-05-21 12:37:34 -07:00
Rohitt Vashishtha
bb579742a2
markdown: Move helper function to rendered_markdown.js.
2020-05-21 12:32:52 -07:00
Rohitt Vashishtha
fa9431c0a4
markdown: Extract rendered_markdown.js to update dynamic elements.
...
Previously, we handled this code only in message_list_view.js.
Now we support rendering stream descriptions and some dynamic
elements can be rendered in them, so we extract this new module
and use it in both the places.
2020-05-21 12:32:52 -07:00
Rohitt Vashishtha
88367a129c
markdown: Disable tex and latex for math rendering.
...
We now parse tex and latex as regular languages, highlighting them
with pygments. We only allow 'math' to trigger latex rendering,
which is in line with the documentation.
2020-05-21 12:30:27 -07:00
Siddharth Varshney
ad723f1ab4
settings: Fix settings sidebar list bug.
2020-05-20 14:37:11 -07:00
Rohitt Vashishtha
52c25a9301
markdown-timestamp: Use data-timestamp attribute.
...
This commit shifts our timestamp syntax to be of the form:
<span class="timestamp data-timestamp="123456"></span>
since value is not a valid attribute of span elements.
2020-05-20 14:28:08 -07:00
Rohitt Vashishtha
b062e8332f
markdown: Add timestamp syntax to markdown processors.
...
This adds support for syntax like: !time(Jun 7 2017, 6:30 PM) so that
everyone sees the time in their own local timezone. This can be used
when scheduling online meetings, etc.
This adds some hardcoded values for timezones, because of there
being no sureshot way of determining the timezone easily. However,
since the main way of using the feature should be a typeahead for
entering the time, this shouldn't be cause of much concern.
Fixes #5176 .
2020-05-20 14:23:55 -07:00
Rohitt Vashishtha
22537602d2
minor: Update comment in feature_flags.
...
The earlier version of the comment implied that we want to remove
the features and not the flags that hide those features.
2020-05-20 13:51:54 -07:00
Tim Abbott
deeed5c4c8
css: Move some styles out of zulip.scss.
...
settings_section belongs next to the rest of itself, and the loading
indicator is clearly a common reused component.
2020-05-20 11:42:59 -07:00
Tim Abbott
0340ec8a0a
css: Remove duplicate #user_settings_avatar styling.
2020-05-20 11:41:55 -07:00
majordwarf
d816b3d46f
css: Reorder media queries in settings.scss.
2020-05-20 11:31:34 -07:00
majordwarf
ddaed17e77
css: Use SCSS nesting for `#settings_page` in media queries.
2020-05-20 11:31:34 -07:00
majordwarf
96ff5f30d3
css: Use SCSS nesting in settings for `.collapse-settings-btn`.
2020-05-20 11:31:34 -07:00
majordwarf
0f09835625
css: Use SCSS nesting in settings.scss for `.custom_user_field`.
2020-05-20 11:31:34 -07:00
majordwarf
aa1971d44a
css: Use SCSS nesting in settings.scss for `.profile-field-choices`.
2020-05-20 11:31:34 -07:00
majordwarf
fe4d2426b1
css: Reorder settings.scss to put `.profile-field-choices` in order.
2020-05-20 11:31:34 -07:00
majordwarf
c53847f5ae
css: Merge `#payload_url_inputbox` and `#service_name_list`.
2020-05-20 11:31:34 -07:00
majordwarf
d83eed6b62
css: Use SCSS nesting in settings.scss for `.required-text`.
2020-05-20 11:31:34 -07:00
majordwarf
3f9ed37b0b
css: Use SCSS nesting in settings.scss for `#attachments_list`.
2020-05-20 11:31:34 -07:00
majordwarf
204240d173
css: Reorder settings.scss to put `#attachments_list` alongside.
2020-05-20 11:31:34 -07:00
majordwarf
ec0c1722f0
css: Use SCSS nesting in settings.scss for `#muted_topics_table`.
2020-05-20 11:31:34 -07:00
majordwarf
280129abcd
css: Remove ignored CSS property in settings.scss.
...
`margin-bottom` property is ignored due to the display.With
'display: inline', the width, height, margin-top, margin-bottom,and
float properties have no effect.
2020-05-20 11:31:34 -07:00
majordwarf
e2ef46d0fb
css: Use SCSS nesting in settings.scss for `.table`.
2020-05-20 11:31:34 -07:00
majordwarf
83f68f6710
css: Reorder settings.scss to put `.table` next to each other.
2020-05-20 11:31:34 -07:00
majordwarf
f324298be2
css: Use SCSS nesting in settings.scss for `.admin-realm-form`.
2020-05-20 11:31:34 -07:00
majordwarf
3b5c7a27f4
css: Reorder settings.scss to put `.admin-realm-form` alongside.
2020-05-20 11:31:34 -07:00
majordwarf
ec709a715b
css: Use SCSS nesting in settings.scss for emoji's `input[type=text]`.
2020-05-20 11:31:34 -07:00
majordwarf
fbed5b3853
css: Merge `#emoji-file-name` ruleset in settings.scss.
2020-05-20 11:31:34 -07:00
majordwarf
2ee5b282d6
css: Use SCSS nesting in settings.scss for `button`.
2020-05-20 11:31:34 -07:00
majordwarf
f4e8086fbd
css: Use SCSS nesting for `.control-label`.
2020-05-20 11:31:34 -07:00
majordwarf
0b709f770b
css: Use SCSS nesting for `.edit-alert-word-buttons`.
2020-05-20 11:31:34 -07:00
majordwarf
0aabd97900
css: Use SCSS nesting in settings.scss for `.modal`.
2020-05-20 11:31:34 -07:00
majordwarf
16e069a735
css: Reorder settings.scss to put `.modal` next to each other.
2020-05-20 11:31:34 -07:00
majordwarf
c47b21a1a7
css: Use SCSS nesting in settings.scss for `#settings_page`.
2020-05-20 11:31:34 -07:00
majordwarf
ca5da9c8f4
css: Reorder settings.scss to put `#settings_page` next to each other.
2020-05-20 11:30:12 -07:00
majordwarf
e4187f3abb
css: Use SCSS nesting in settings.scss for `#api_key_buttons`.
2020-05-20 11:25:36 -07:00
majordwarf
2f2e3f4879
css: Use SCSS nesting in settings.scss for `.emojiset_choices`.
2020-05-20 11:25:36 -07:00
majordwarf
468efcf319
css: Use SCSS nesting in settings.scss for `#alert_words_list`.
2020-05-20 11:25:36 -07:00
majordwarf
d857437319
css: Reorder settings.scss to put `#alert_word_list` next to each other.
2020-05-20 11:25:36 -07:00
majordwarf
9008fbfc05
css: Use SCSS nesting in settings.scss for `.edit_bot_form`.
2020-05-20 11:25:36 -07:00
majordwarf
b85f587eac
css: Use SCSS nesting in settings.scss for `.bots_list`.
2020-05-20 11:25:36 -07:00
majordwarf
ad623a3bc3
css: Reorder settings.scss to put `.bot_list` next to each other.
2020-05-20 11:25:36 -07:00
majordwarf
e544fd1994
css: Use SCSS nesting in settings.scss for `.control-label-disabled`.
2020-05-20 11:25:36 -07:00
majordwarf
990358abc5
css: Use SCSS nesting in settings.scss for `#account-settings`.
2020-05-20 11:25:35 -07:00
majordwarf
71415e5b89
css: Use SCSS nesting in settings.scss for `#settings_page`.
2020-05-20 11:25:35 -07:00
majordwarf
aff0129a6a
css: Reorder settings.scss to put `#settings_page` next to each other.
2020-05-20 11:25:35 -07:00
Tim Abbott
3d435e12c3
css: Remove useless stream-label margin.
...
This margin was already 0px.
2020-05-20 11:24:04 -07:00
Tim Abbott
7aefe5f1ff
css: Extract styling for .zulip-icon.bot.
2020-05-20 11:22:06 -07:00
majordwarf
59e3c14211
css: Merge `.message_controls` css ruleset in zulip.scss.
2020-05-20 11:17:19 -07:00
majordwarf
ce07d8514a
css: Use SCSS nesting in zulip.scss for `.column-left.expanded`.
2020-05-20 11:17:19 -07:00
majordwarf
e327c6f521
css: Merge `.top-navbar-border` css ruleset in zulip.scss.
2020-05-20 11:17:19 -07:00
majordwarf
01840d0017
css: Use SCSS nesting in zulip.scss for `.column-left`.
2020-05-20 11:17:19 -07:00
majordwarf
109a0f55fe
css: Use SCSS nesting in zulip.scss for `.nav .dropdown-menu`.
2020-05-20 11:17:19 -07:00
majordwarf
c6cc843fbb
css: Use SCSS nesting in zulip.scss for `.column-right`.
2020-05-20 11:17:19 -07:00
majordwarf
c97d03345d
css: Use SCSS nesting in zulip.scss `.user_popover_email`.
2020-05-20 11:17:19 -07:00
majordwarf
25084f3da2
css: Reorder zulip.scss to put `.user_popover_email` alongside.
2020-05-20 11:17:19 -07:00
majordwarf
995331fd8d
css: Use SCSS nesting in zulip.scss for `#message_edit_form`.
2020-05-20 11:17:19 -07:00
majordwarf
b70b1685a3
css: Use SCSS nesting in zulip.scss for `.date_row`.
2020-05-20 11:17:19 -07:00
majordwarf
a3ba1c7067
css: Use SCSS nesting in zulip.scss for `#invite-user`.
2020-05-20 11:17:19 -07:00
majordwarf
aec3e95279
css: Reorder zulip.scss to put `#invite-user` alongside.
2020-05-20 11:17:19 -07:00
majordwarf
6f140bc8f8
css: Use SCSS nesting in zulip.scss for `.modal`.
2020-05-20 11:17:19 -07:00
majordwarf
b4920ac318
css: Reorder zulip.scss to put `.modal` alongside.
2020-05-20 11:17:19 -07:00
majordwarf
2a1fde0b3b
css: Use SCSS nesting in zulip.scss for `#stream-checkboxes`.
2020-05-20 11:17:07 -07:00
majordwarf
2cf287b9ad
css: Use SCSS nesting in zulip.scss for `#user-checkboxes`.
2020-05-20 11:17:07 -07:00
majordwarf
3f3576660d
css: Use SCSS nesting in zulip.scss for `.settings-section`.
2020-05-20 11:17:07 -07:00
majordwarf
77a727a13d
css: Use SCSS nesting in zulip.scss for `nav`.
2020-05-20 11:17:07 -07:00
majordwarf
cb7dbb5cde
css: Reorder zulip.scss to put `nav` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
1d74660067
css: Use SCSS nesting in zulip.scss for `.typeahead`.
2020-05-20 11:17:07 -07:00
majordwarf
841749c90b
css: Reorder zulip.scss to put `.typeahead` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
b94f5eded6
css: Use SCSS nesting in zulip.scss for `.nav`.
2020-05-20 11:17:07 -07:00
majordwarf
63a7117517
css: Reorder zulip.scss to put `.nav` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
4eb62960ef
css: Use SCSS nesting in zulip.scss for `#navbar-buttons`.
2020-05-20 11:17:07 -07:00
majordwarf
d5e0555d55
css: Reorder zulip.scss to put `#navbar-buttons` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
12d755c7c2
css: Use SCSS nesting in zulip.scss for `.home-error-bar`.
2020-05-20 11:17:07 -07:00
majordwarf
d4d95b7770
css: Reorder zulip.scss to put `.home-error-bar` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
e2cf75a8b6
css: Use SCSS nesting in zulip.scss for `.message_length_controller`.
2020-05-20 11:17:07 -07:00
majordwarf
8b0dff3d91
css: Use SCSS nesting in zulip.scss for `#inline_topic_edit`.
2020-05-20 11:17:07 -07:00
majordwarf
eccf51b36e
css: Reorder zulip.scss to put `#inline_topic_edit` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
806a448823
css: Use SCSS nesting in zulip.scss for `.message_content`.
2020-05-20 11:17:07 -07:00
majordwarf
ff06dccc24
css: Reorder zulip.scss to put `.message_content` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
9ae93cc7a9
css: Use SCSS nesting in zulip.scss for `.message_row`.
2020-05-20 11:17:07 -07:00
majordwarf
3362b2db8a
css: Reorder zulip.scss to put `.message_row` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
c22090e438
css: Use SCSS nesting in zulip.scss for `.actions_hovered`.
2020-05-20 11:17:07 -07:00
majordwarf
bdc7c7d1d3
css: Reorder zulip.scss to put ` .actions_hovered` alongside.
2020-05-20 11:17:07 -07:00
majordwarf
72b5282f62
css: Use SCSS nesting in zulip.scss for `.edit_content`.
2020-05-20 11:17:06 -07:00
majordwarf
c598fc4885
css: Merge `.on_hover_topic_edit` with existing css rulesets.
2020-05-20 11:17:06 -07:00
majordwarf
9c6f091638
css: Use SCSS nesting in zulip.scss for `.on_hover_topic_edit`.
2020-05-20 11:17:06 -07:00
majordwarf
300314d9f8
css: Use SCSS nesting in zulip.scss for `a`.
2020-05-20 11:17:06 -07:00
majordwarf
111f0673c4
css: Reorder zulip.scss to put `a` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
d13d86cf82
css: Use SCSS nesting in zulip.scss for `.sender_name_hovered`.
2020-05-20 11:17:06 -07:00
majordwarf
680a74d2e1
css: Use SCSS nesting in zulip.scss for `.message_sender`.
2020-05-20 11:17:06 -07:00
majordwarf
888df23f03
css: Reorder zulip.scss to put `.message_sender` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
b3a09c77d9
css: Use SCSS nesting in zulip.scss for `.selected_message`.
2020-05-20 11:17:06 -07:00
majordwarf
a562f208e5
css: Use SCSS nesting in zulip.scss for `.last_message`.
2020-05-20 11:17:06 -07:00
majordwarf
77d3df05ac
css: Reorder zulip.scss to put `.last_message` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
69e1b0f26a
css: Use SCSS nesting in zulip.scss for `.unread_marker`.
2020-05-20 11:17:06 -07:00
majordwarf
cd88666bc1
css: Reorder zulip.scss to put `.unread_marker` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
6e02d9e977
css: Merge css rulesets in zulip.scss for `.message-header-contents`.
2020-05-20 11:17:06 -07:00
majordwarf
2039f6f459
css: Use SCSS nesting in zulip.scss for `.private-message`.
2020-05-20 11:17:06 -07:00
majordwarf
d99a834bc4
css: Reorder zulip.scss to put `.private-message` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
646e725b4f
css: Use SCSS nesting for `.message_header_private_message`.
2020-05-20 11:17:06 -07:00
majordwarf
d4e7e99ec7
css: Use SCSS nesting in zulip.scss for `.bookend_tr`.
2020-05-20 11:17:06 -07:00
majordwarf
5282bf34dd
css: Use SCSS nesting in zulip.scss for `.summary_row`.
2020-05-20 11:17:06 -07:00
majordwarf
0d854b736b
css: Reorder zulip.scss to put `.summary_row` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
7d491b87fd
css: Use SCSS nesting in zulip.scss for `.recipient_row_date`.
2020-05-20 11:17:06 -07:00
majordwarf
f991990a4d
css: Use SCSS nesting in zulip.scss for `.stream_label`.
2020-05-20 11:17:06 -07:00
majordwarf
38bd00d63b
css: Use SCSS nesting in zulip.scss for `.floating_recipient`.
2020-05-20 11:17:06 -07:00
majordwarf
d514c5a372
css: Reorder zulip.scss to put `.floating_recipient` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
20cb19b51a
css: Use SCSS nesting in zulip.scss for `.message_list`.
2020-05-20 11:17:06 -07:00
majordwarf
a23455bbcb
css: Reorder zulip.scss to put `.message_list` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
6b06a23783
css: Use SCSS nesting in zulip.scss for `.messagebox`.
2020-05-20 11:17:06 -07:00
majordwarf
fab0263e70
css: Merge css ruleset in zulip.scss for `.messagebox`.
2020-05-20 11:17:06 -07:00
majordwarf
87b5329a54
css: Reorder zulip.scss to put `.messagebox` alongside.
...
Removed a comment that along with reordering that deemed null now.
2020-05-20 11:17:06 -07:00
majordwarf
7b0f015830
css: Use SCSS nesting in zulip.scss for `#message-edit-history`.
2020-05-20 11:17:06 -07:00
majordwarf
62de6083a5
css: Reorder zulip.scss to put `#message-edit-history` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
2a6a817f57
css: Use SCSS nesting in zulip.scss for `.sender-status`.
2020-05-20 11:17:06 -07:00
majordwarf
388e4622f0
css: Reorder zulip.scss to put `.sender-status` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
2ffc69899f
css: Use SCSS nesting in zulip.scss for `.include-sender`.
2020-05-20 11:17:06 -07:00
majordwarf
f867175e6b
css: Reorder zulip.scss to put `.include-sender` alongside.
2020-05-20 11:17:06 -07:00
majordwarf
7a046ae4a4
css: Use SCSS nesting in zulip.scss for `#message_edit_tooltip`.
2020-05-20 11:17:06 -07:00
majordwarf
4867639393
css: Use SCSS nesting in zulip.scss for `.tooltip`.
2020-05-20 11:17:06 -07:00
majordwarf
b5501795f1
css: Use SCSS nesting in zulip.scss for `.header-main`.
2020-05-20 11:17:06 -07:00
majordwarf
7c8f8a89f2
css: Use SCSS nesting in zulip.scss for `input`.
2020-05-20 11:17:04 -07:00
majordwarf
582f638af3
css: Use SCSS nesting in zulip.scss for `.app-main`.
2020-05-20 11:02:03 -07:00
majordwarf
50a9eccd77
css: Reorder zulip.scss to put `.app-main` alongside.
2020-05-20 11:02:03 -07:00
majordwarf
3d5352f875
css: Use SCSS nesting in zulip.scss for `#panels`.
2020-05-20 11:02:03 -07:00
majordwarf
4eaf99b9fa
css: Use SCSS nesting in zulip.scss for `.fade-in-message`.
2020-05-20 11:02:03 -07:00
majordwarf
685335eb44
css: Use SCSS nesting in zulip.scss for `#feedback_container`.
2020-05-20 11:02:03 -07:00
majordwarf
49cc9b680c
css: Reorder zulip.scss to put `#feeback_container` alongside.
2020-05-20 11:02:03 -07:00
majordwarf
faf6a274a0
css: Use SCSS nesting in zulip.scss for `.top-messages-logo`.
2020-05-20 11:02:03 -07:00
majordwarf
82c8c0e9ff
css: Remove ignored css rulesets in zulip.scss.
...
`vertical-align` property is ignored due to the display.
With 'display: block', vertical-align should not be used.
2020-05-20 11:02:03 -07:00
Rohitt Vashishtha
c24aaa0e74
portico-css: Style codeblocks to look neater.
...
The currrent css of codeblocks left too much empty space between
the lines as well as indented the first character of a codeblock
slightly towards the right.
This commit fixes both of these, thus making codeblocks look closer
to what someone would expect codeblocks to look like in their text
editor.
2020-05-20 10:18:29 -07:00
Rohitt Vashishtha
1091615b17
edit-bot: Show dropdown list widget for selecting owner.
...
This commit removes user_dropdown in favor of the common
dropdown_list_widget for our bot edit forms.
2020-05-20 09:51:38 -07:00
Rohitt Vashishtha
4d14ba41ba
dropdown-list-widget: Properly handle disabled state.
...
We wrap the [reset] anchor tag in a button so that we can set 'disabled'
attribute on it. We change the styles to hide the [reset] button and the
pencil icon when the widget is disabled.
We also need to call `e.preventDefault()` in the event handler since now
the anchor tag behaves as a button.
2020-05-20 09:51:38 -07:00
Aman Agrawal
370d1b6ca7
recent-topics: Handle topic and topic's stream edit updates.
...
* Implementation and logic similar to recent_sender.process_topic_edit.
2020-05-20 09:44:50 -07:00
Aman Agrawal
04cdc89681
recent_topics: Handle mute/unmute update to topic.
...
* We don't remove topic data when it's muted. We will filter it
before rendering.
2020-05-20 09:44:50 -07:00
Aman Agrawal
76b0c6de86
recent-topics: Add module.
...
Add methods to extract recent topics from received messages.
Process new messages as they are received.
Use new messages received from the server to extract recent_topics.
Node tests added.
2020-05-20 09:44:50 -07:00