Commit Graph

10092 Commits

Author SHA1 Message Date
Sharif Naas 76c62deae1 edit_history: Respect time format setting (12h/24h).
Previously, the edit history modal did not respect the time format
setting (whether to show times in 12-hour or 24-hour format) when
displaying message edit times (#15171).

This commit fixes that by passing the edit times to
timerender.stringify_time(), which takes that setting into account,
instead of just doing a static string formatting operation.

This bug has existed since February 2017, when the edit history UI
was first added in 1a697b6e02.

Fixes #15171.
2020-06-07 13:57:28 -07:00
Sharif Naas 8451fb6700 edit_history: Refactor how we handle times during modal creation.
Currently, the edit history modal does not respect the time format
setting (whether to show times in 12-hour or 24-hour format) when
displaying message edit times (#15171).

This commit refactors how fetch_and_render_message_history() handles
times in order to make fixing that issue in a reasonable way easier.
It will be fixed in a following commit.
2020-06-07 13:57:28 -07:00
Sharif Naas 3c6c0dbbe2 edit_history: Factor out the calculation of show_date_row. 2020-06-07 13:57:28 -07:00
Sharif Naas 07973d09c9 edit_history: Refactor first entry's calculation of show_date_row.
Previously, the show_date_row flag for the first entry in the edit
history modal was directly set to `true`, while in all other entries
it was calculated with identical code. Though show_date_row for the
first entry should indeed always be true, there's no need for it to be
a special case.

In preparation for factoring out the calculation of show_date_row,
this commit nominally calculates the first entry's show_date_row with
the same code that is used to calculate show_date_row for all other
entries. Nominally, because it will still always end up being true.
2020-06-07 13:57:28 -07:00
Sharif Naas ffe06ad809 edit_history: Don't repeat date rows.
Previously, the logic for when to add a date row to an edit history
entry was checking against the date of the original message (which is
always the first entry in the message history), not the date of the
previous edit. This caused every edit not made on the date of the
original message to show a date row, even if it wasn't the first edit
on that date.

This commit fixes that bug by updating prev_timestamp after processing
each message history entry, whereas before it was only updated after
processing the first one — the original message.

This bug has existed since June 2017, when
84e5fe733c changed how date rows worked;
from only showing one at the top labeled "Earliest" to each entry
having a possibilty of showing one.
2020-06-07 13:57:28 -07:00
Sharif Naas 60d7cdb447 edit_history: Fix topic-only edits never showing a date row.
Previously it was impossible for a topic-only edit to show a date row
in any circumstance; the code that handles topic-only edits didn't
even attempt to set show_date_row, the flag that determines whether a
date row should be rendered. Now a topic-only edit will show a date row
in the same circumstances as any other edit[1].

This bug has existed since March 2019, when rendering of topic-only
edits was first added in 38be5ea743.

[1] Currently, "the same circumstances as any other edit" means
there'll be a date row on the original message, and then on every edit
not made on the same date as the original message, even if it was't
the first edit on the date it was made. This is a bug that will be
fixed in a following commit. This commit is being made first since
it's fixing a lack-of-information bug, whereas the other bug is a
somewhat less important repeating-information bug.
2020-06-07 13:57:28 -07:00
Sharif Naas b0a0ae215f js: Extract message_edit_history.js. 2020-06-07 13:57:28 -07:00
SiddharthVarshney 4eaa62eaa6 navbar: Fix search icon click event.
This block was accidentally deleted in
59be2dcc18.
2020-06-07 13:04:58 -07:00
SiddharthVarshney b22b1004a8 user-profile: Fix user profile layout for long name. 2020-06-07 12:55:43 -07:00
Ryan Rehman ba0f869b3c notifications: Use the correct expression in template.
This fixes a bug where the "mobile" label was disabled
even when push notifications were configured for the server.
2020-06-07 11:43:42 -07:00
Ryan Rehman 3dff6c0de7 subscriptions: Update wildcard mentions notify on stream create.
The `wildcard_mentions_notify` key was missing from the initial
sub data when a new stream was created. Thus `wildcard_mentions_notify`
was undefined and `wildcard_mentions_notify_display` was false.
(This key is used to render the data in the templates)

This caused a bug where the wildcard notifications was unchecked
in the stream personal settings and the newly created stream was
displayed in the stream specific notifications table.
2020-06-07 11:43:42 -07:00
Anders Kaseorg 548b8c4d7f localstorage: Don’t return a value from a setter.
https://eslint.org/docs/rules/no-setter-return

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2020-06-07 11:06:57 -07:00
SiddharthVarshney d09758cec3 profile_setting: Enable allowInput on flatpickr.
Without this field the datepicker was in readonly mode.
2020-06-07 11:03:48 -07:00
YashRE42 22884e768b message_edit: Ensure message edit form is empty prior to appending.
Prior to commit 8b7e70ac27 this system
would simply just .hide() forms when they were closed and
.empty().append() every time it needed to "show_edit". This was not a
very clean way of handling the action of canceling an edit, so
8b7e70ac27 introduced a change that had
the "show_edit" function append the form and the "hide" function
.empty() the form.

However, we overlooked the fact that the user could use browser
history to navigate away and back to the form and use "e" or
"left arrow key" to successfully append another form and get to an
ugly, broken state.

This commit does not revert 8b7e70ac27
as it is still accurate to .empty() when hiding the form, but we add
an early exit if a form already exists, to avoid bugs like the above.

Using an early exit instead of eg .empty().append() ensures that the
user doesn't accidentally lose the entire content of an edit, if they
deselect the input box and press `e`.

Fixes: #15045.
2020-06-05 20:12:47 -07:00
João Maurício fb6047c4ae stream_color.js: Fix color picker not saving custom color.
Fix a bug where the color picker reverted the custom color to the
previous one after clicking outside the popover. The bug occurred
because although there is a confirm button, the 'clickoutFiresChanges'
option was set as true, which made the frontend always send two POST
request to edit the stream and, for a reason I wasn't able to discover,
if you hit the confirm button and click outside fast enough, the change
fired by the clickout event sent the old color to the server. It was
fixed by setting the 'clickoutFiresChanges' option to false.

Fixes #15101
2020-06-05 17:58:09 -07:00
Ryan Rehman b0d632577f search pills: Update multiple pills creation event behaviour.
If typeahead is used, this adds comma separated search queries
so that multiple search pills don't get combined as one and the
search behaviour remains same as search_pills_enabled = False case.

If typeahead is not used, this prevent the typing of a single comma
after the pill gets created.
2020-06-05 17:16:20 -07:00
Ryan Rehman aeb4419d52 search: Open typeahead on initiating search.
This fixes a bug where the hotkeys used to search messages
doesn't work for pills enabled case.
2020-06-05 17:16:20 -07:00
sahil839 bd943941e4 people: Remove 'get_active_user_for_email' function.
This commit removes the 'get_active_user_for_email' function
from people.js. We have removed the use of this function
in the previous commits, which changed the functions using
'get_active_user_for_email' to use user_ids instead of emails.
2020-06-05 16:08:26 -07:00
sahil839 40475a41b0 compose_fade: Change would_receive_message to use user_id.
This commit changes the would_receive_message to use user_id
instead of emails.

This change is done because user_ids are immutable and using
user_ids is the correct way of uniquely identifying user.

The change in 'would_receive_message' also leads to change
in util.is_pm_recipient to use a string of user_ids instead
of emails.

We also know that user_ids passed to 'would_receive_message'
are active user_ids, since we get them from buddy_list.
So we don't need to check whether the user is active, which
was previously being checked by get_active_user_for_email.
2020-06-05 16:08:26 -07:00
sahil839 25aed90da1 compose: Change needs_subscribe_warning to use user_id.
This commit changes the needs_subscribe_warning function to
use user_id instead of emails.

This change is done because user_ids are immutable and using
user_ids is the correct way to uniquely identify a user.

We already know that user_ids being passed in this function are
active user_ids, since they come from typeaheads.
So, we only need to call 'people.get_by_user_id', to get the user
object from user_id and do not need to check the active status of
user, which was done previously using 'get_active_user_for_email'.
2020-06-05 16:08:26 -07:00
Mateusz Mandera 5641358d43 static: Add OneLogin and Okta logos.
These can be useful when setting up SAML with these two common IdPs, for
the login button.
2020-06-05 12:40:12 -07:00
Aman Agrawal a096f34cab move_topic_to_stream: Add option to disable breadcrumb messages.
Option to disable breadcrumb messages were given in both message edit
form and topic edit stream popover.

User now has the option to select which stream to send the notification
of stream edit of a topic via checkboxes in the UI.
2020-06-05 12:28:51 -07:00
Aman Agrawal 5f50e15ec5 stream_popover: Remove whitespace around topic name. 2020-06-05 12:04:12 -07:00
Tim Abbott 3bf739fef6 settings: Fix fetching API key with password auth disabled.
To the extent that the previous logic worked, it relied on an unlikely
race where the click handler had been setup before.
2020-06-05 11:34:40 -07:00
YashRE42 023187b3f1 navbar: Switch live update strategy to just be a render call.
It's safer and cleaner to simply just rerender the entire navbar for
small updates like these since they're rare events. Given that we're
not doing anything unique in such updates, it's best if we just call
".render_tab_bar" wherever required instead of having several
functions in tab_bar.js which do exactly that. This also sets a good
precedence of what to do for stream privacy and subscriber count live
update.

However, we can't easily fix the "subs.update_stream_name" code path
because of how the Filter objects represent the stream by name, not be
ID.  Given that the above would be out of scope for this change, it's
left as a TODO.
2020-06-05 11:18:58 -07:00
YashRE42 98a43b54b6 navbar: Extract "render_title_area" from "initialize".
This is a prep commit for adding better support for live rerendering,
we can now just call "render_title_area" when we need to perform a
rerender.
2020-06-05 11:12:51 -07:00
YashRE42 59be2dcc18 navbar: Extract mouse event handlers to separate function.
It's best to separate these in order to simplify the "build_tab_bar"
function. We also correct a comment about the "search_exit" click
handler being for the searchbar.
2020-06-05 11:11:30 -07:00
YashRE42 d9b503278b navbar: Rename "display_tab_bar" to "append_and_display_title_area".
Final name changed by tabbott to be moving in a useful direction.
2020-06-05 11:09:33 -07:00
Wyatt Hoodes 3bce7bbc74 userlist-toggle: Fix css styling errors. 2020-06-05 10:56:33 -07:00
Wyatt Hoodes 5fe489c5ae dropdown-menu: Remove caret-down icon and fix alignment.
The alignment on narrow windows is also off.  We fix
this spacing issue while we're at it.
2020-06-05 10:56:33 -07:00
Mateusz Mandera 5b746b4128 docs: Add missing step to dropbox webhook instructions. 2020-06-05 10:21:25 -07:00
Aman Agrawal c276bcd6af stream_header_colorblock: Combine compose and msg_edit css blocks.
Remove unused properties and fix border in message edit colorblock.
2020-06-05 09:39:00 -07:00
YashRE42 f9414c2ea5 search pills: Fix nightmode color of sub counts & narrow description. 2020-06-05 09:37:29 -07:00
Mateusz Mandera 5f3461ab9e docs: Update OneLogin SAML instructions.
OneLogin has removed the app that these instructions used to rely on.
This app choice should be more stable, as there are other providers
that rely on it in their instructions for setting them up with OneLogin.
Ideally, in the future, we'll get our own app added to OneLogin's app
catalogue, which will simplify the setup process for administrators.
2020-06-05 09:37:16 -07:00
majordwarf 29b8e11e20 navbar: Fix search input margin.
The commit fixes the spacing between the search icon and the input
field by adding `margin-left` to the search input field. The following
issue is only visible in dark mode as the nav and search input have
different background color while normal theme uses same background color
for nav and search input.
2020-06-04 14:28:00 -07:00
sahil839 4b67259294 compose: Change compose_invite_users template to use data-user-id.
This commit changes the compose_invite_users template to use
data-user-id as property intead of data-useremail.

This is changed to maintain consistency with other parts of the
code where user_ids are used for referring to users.

This also helps in removing some of the checks for the case of
undefined emails.
2020-06-04 14:24:41 -07:00
sahil839 48ac1082c1 stream_edit: Use user_ids for subscribing/unsubscribing users to a stream.
We now send user_ids to the backend API for subscribing/unsubscribing
users to a stream instead of emails.

This change is done now because we have just migrated the backend API to
support sending user_ids in 2187c84, so it wasn't possible before.

This change is helpful because sending user_ids is more robust, as those
are an immutable reference to a user, rather than something that can
change with time.
2020-06-04 14:24:41 -07:00
jagansivam28 44995e36df realm logo: Fix realm logo unsupported file upload bug.
Unable to upload a realm logo once we encounter file input error bug
was fixed by clearing `get_file_input()` after file input error
with `get_file_input().val('')`.

The previous .clone() logic was preserved over many years but
apparently was also just wrong.

Fixes #15198
2020-06-04 14:21:23 -07:00
Rohitt Vashishtha d870118f8f overlay: Mitigate issue with dropdown list widget getting clipped.
This isn't a complete fix, but we move the widget's popup to be
on/below the button to open the widget. We also move the bot owner
field to be on the top of the page so that we can see most of the
widget before it is clipped by the parent overlay.

We have discussed some approaches for a permanent fix on:

https://chat.zulip.org/#narrow/stream/321-s/topic/DropdownListWidget/near/894674
2020-06-04 16:44:19 -04:00
Clara Dantas e1e755c887 people.js: Change functions to return a list of ids instead of objects.
The get_active_humans and get_non_active_humans functions used
to return a list of user objects. The get_active_humans is used
on settings_users.js and settings_bots.js, and in both places the
only attributes needed of the person object are the user_id and
full_name.

To make the function return smaller, instead of a list of active
humans, we are returning a list of active human ids, saving memory.
With the ids we can call the people API to get the full_name attribute.
2020-06-04 14:23:52 -04:00
Anders Kaseorg 4d04fa3118 compose: Rewrite Zoom video call integration to use OAuth.
This reimplements our Zoom video call integration to use an OAuth
application.  In addition to providing a cleaner setup experience,
especially on zulipchat.com where the server administrators can have
done the app registration already, it also fixes the limitation of the
previous integration that it could only have one call active at a time
when set up with typical Zoom API keys.

Fixes #11672.

Co-authored-by: Marco Burstein <marco@marco.how>
Co-authored-by: Tim Abbott <tabbott@zulipchat.com>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-06-03 16:39:12 -07:00
Rohitt Vashishtha 4b47d219db settings: Use correct label for signup notifications stream.
When migrating to dropdown list widget, we incorrectly used the same label
for both realm_notifications_stream and realm_signup_notifications_stream.

This was introduced in b580baf682.
2020-06-03 12:19:08 -07:00
SiddharthVarshney ecd383b53c css: Use SCSS nesting for `nav`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney ff75ea838f css: Reorder `nav .content` and `nav ul`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 3435396479 css: Reorder `nav .hamburger`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney dcbc4f8630 css: Reorder `nav.white`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney f57a512ab3 css: Use SCSS nesting for `nav li`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 2130c3018e css: Use SCSS nesting for `nav li`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney d4d326c827 css: Use SCSS nesting for `nav ul li`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney de4396661b css: Use SCSS nesting for `nav ul li.active`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney dcc658264c css: Reorder css related to `nav ul`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 948b54e519 css: Use SCSS nesting for `nav .logo`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney d21d13698e css: Reorder css for `nav .logo span`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 756722616e css: Use SCSS nesting for `nav .content`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 5009bedba4 css: Remove redundant css for `nav .logo span`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney e5c1be0584 css: Use SCSS nesting for `nav.white`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 3a81099972 css: Use SCSS nesting for `nav.white ul`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney f4f99e7ca6 css: Use SCSS nesting for `nav.white li`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 96db3fa650 css: Use SCSS nesting for `nav.white .brand.logo`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney 70a025d08d css: Reorder `nav.white .hamburder`. 2020-06-02 17:26:45 -07:00
SiddharthVarshney bfad22d128 css: Remove duplicate style. 2020-06-02 17:26:45 -07:00
Siddharth Varshney 1ac597c77e css: Use SCSS nesting for `.silver`. 2020-06-02 17:26:45 -07:00
Siddharth Varshney a10a78736d css: Reorder styles related to `.silver`. 2020-06-02 17:26:45 -07:00
Siddharth Varshney b29b7b8da1 css: Use SCSS nesting for `.float`. 2020-06-02 17:26:45 -07:00
Siddharth Varshney 8317bde30f css: Reorder css related to `h1` and `h2`. 2020-06-02 17:26:45 -07:00
Siddharth Varshney ea704c8c91 css: Use SCSS nesting for `a`. 2020-06-02 17:26:45 -07:00
Siddharth Varshney e520e82b04 css: Use scss nesting for `a.arrow`. 2020-06-02 17:26:45 -07:00
Siddharth Varshney cc71533b21 css: Reorder css for `a` tag. 2020-06-02 17:26:45 -07:00
sahil839 c4d3c03ad4 compose: Fix subscribing the user from mention warning.
This commit fixes the bug for subscribing the user from mention
warning which was introduced in e52b544.

This is fixed by changing email to be passed as list to
'invite_user_to_stream'.
2020-06-02 16:25:56 -07:00
Ryan Rehman cfc87e3925 message list: Move the `FetchStatus` object to MessageListData class.
The reason for this change is that, this is where `Filter` and
actual tracking of what messages are contiguous lives. This
will be beneficial when we will to move to a model where we
cache `MessageListData` objects for a large number of views.
2020-06-02 15:45:39 -07:00
sahil839 e52b544213 stream settings: Add pills in add subscribers input.
This commit changes the stream settings UI for adding subscribers to
use our standard user pills in the input box, rather than just
plain-text email addresses.  This is important progress towards
removing display email addresses from the Zulip UI.

It also allows subscribing multiple users at the same time, which is a
nice improvement.
2020-06-02 15:32:26 -07:00
Sahil Silare c4d0bd6445
settings: Fix last_active sorting in user settings.
We were incorrectly accessing .id, not .user_id, on the people objects.

Fixes #15165.
2020-06-02 12:07:09 -07:00
Puneeth Chaganti 788203778d tools: Use the correct logo path to generate bot avatar.
Integrations can be configured with specific logo paths, which weren't
correctly being used for generating the bot avatars.
2020-06-01 18:08:23 -07:00
Puneeth Chaganti bb37e4ef00 integrations: Remove corrupted png image in bitbucket docs. 2020-06-01 18:03:06 -07:00
sahil839 da4f80caaa subs: Update hash when unsubscribing from stream settings UI.
Previously, the unsubscribe logic just called
exports.show_subs_pane.nothing_selected() if one had been viewing the
edit UI for a stream that the user just unsubscribed from, which
clears the selection, but didn't update the hash or do other cleanup
logic.

We should instead be calling stream_edit.open_edit_panel_empty(),
which is the appropriate function for this purpose (and has
exports.show_subs_pane.nothing_selected as a subroutine).
2020-06-01 15:38:25 -07:00
sahil9001 328caf1ad5 api: Simplify format of realm_emoji author data.
There's no reason to send data beyond the user `id` of the uploader,
and reason not to, as the previous model was both awkward when
`author=None` and resulted in unecessary parsing complexity for
clients.

Modified by tabbott to add the frontend changes and API documentation.

Fixes #15115.
2020-05-31 17:44:50 -07:00
sahil839 2ab6767b73 events: Update person dict in event for do_change_user_role to send role.
This commit changes the person dict in event sent by do_change_user_role
to send role instead of is_admin or is_guest.

This makes things much more straightforward for our upcoming primary
owners feature.
2020-05-31 17:22:50 -07:00
Clara Dantas 080014abcc settings_users: Fix bot_list_widget not defined.
Fix error thrown when creating a bot if the bot_list_widget
is not defined.
2020-05-30 12:23:49 -07:00
sahil839 9fa60672e6 users: Modify update user API endpoint to accept role as parameter.
This commit changes the update user API endpoint to accept role
as parameter instead of the bool parameters is_guest and is_admin.

User role dropdown in user info modal is also modified to use
"dropdown_options_widget".

Modified by tabbott to document the API change.
2020-05-29 14:29:17 -07:00
Steve Howell 74c61984df Revert "buddy list: Adjust sizing calc for narrow mode."
This reverts commit 9f5725d265.

I was trying to fix how we size the buddy list in
narrow mode, which was off by 10px, but my fix worsened
things for regular mode.

Also, somebody reported a traceback related to my fix.
I didn't fully research the traceback,
but I suspect it was related to some media-query settings
for small screens or due to a put-buddy-list-in-left-pane
setting.  (Basically, `$('#right-sidebar').position()` may
be undefined in some cases, and I wasn't handling that.)

After reverting this, we still have the original
off-by-10px bug that I was trying to fix, but I will
attempt to do that more cleanly in a separate commit.

This should make it so that in normal situations where
the buddy list is in the right sidebar, we will be
able to see the "Invite more users" link again.

I am still a little puzzled how I didn't catch this in
testing, but it was toward the end of a long PR, so
it could easily just be simple human error.

Fortunally, this regression was only on master for a
couple days, and users could still invite users via
the gear menu.
2020-05-29 15:36:42 -04:00
Mateusz Mandera 88d501515e presence: Fix "Last active:" in buddy list when last presence is idle.
Restored old behavior accidentally removed in
1ae07b93d8 (diff-e353fab8bea58b8746ec68c83aa39b36L48)

The server only remembers the most recent presence status update per
device. Meaning that, for instance, if the user only uses one client and
that client's last status update was IDLE, then the server only knows
that, doesn't know anything about the user's last ACTIVE time. Thus the
"active_timestamp" the server will serve about this user to the webapp
will be "undefined".
The old behavior was that for the sake of the "Last active: x ago"
status in buddy list popover, the latest status timestamp was used,
whether IDLE or ACTIVE.
The change linked about changed that to only pay attention to
ACTIVE. Thus, if the server doesn't remember any ACTIVE statuses, webapp
would show "Last active: More than 2 weeks ago", which was incorrect.

We restore the old behavior and further improvements can be made on top
of this.
2020-05-29 13:26:34 -04:00
Siddharth Varshney 2666c1a605 css: Use SCSS nesting for `.help` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney caa3b21089 css: Reorder `.help .markdown` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney af505bc647 css: Use SCSS nesting for `.help .sidebar` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 0fa1e5b5f6 css: Use SCSS nesting for `.help .sidebar a` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney c70e53952c css: Use SCSS nesting for `.help .sidebar li` for portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 7040cc6a8a css: Merge `.help .sidebar.slide ul` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 5039b9ede4 css: Use SCSS nesting for `.help .sidebar.slide h2`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney e609561ed4 css: Use SCSS nesting for `.help .sidebar h1`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 42956cde19 css: Use SCSS nesting for `.help .sidebar h1.home-link`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 74244a6d5b css: Use SCSS nesting for `.error_page .errorbox`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 34a9147911 css: Use SCSS nesting for `center-block`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 5f9d54a028 css: Use SCSS nesting for `.central-block .control-group`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney c6d52afcff css: Use SCSS nesting for `.input-group` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney b1a6f6598b css: Use SCSS nesting for `.input-group.grid` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 4273577457 css: Use SCSS nesting for `.input-group label` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 67c41c88be css: Remove duplicate styles for `.input-group label`. 2020-05-28 17:50:12 -07:00
Siddharth Varshney b8c04c7f5e css: Reorder `.input-group` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney e8d7a590ce css: Use SCSS nesting for `.password-reset` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 10fbdab26c css: Merge `.password-reset` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney af2f9dcf6b css: Use SCSS nesting for `.password-reset .input-group` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 3d39a9d74e css: Reorder `.password-reset` related styles. 2020-05-28 17:50:12 -07:00
Siddharth Varshney f935afeaa6 css: Use SCSS nesting for `.top-links` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney cc4a4a7846 css: Use SCSS nesting for `.top-links a` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 6719835a89 css: Use SCSS nesting for `.footer-navigation` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 68b94bb434 css: Use SCSS nesting for `.main-headline-text` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney f6e70cefdf css: Use SCSS nesting for `.login-form` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 48873669e8 css: Use SCSS nesting for `.login-form, .register-form` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney cdbdffe92d css: Reorder `.login-form` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 51f5475ac8 css: Use SCSS nesting for `.login-page` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 22950a9287 css: Use SCSS nesting for `.history .sponsors` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 3f6ce5ffb1 css: Use SCSS nesting for `.contributors` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 9e4e608460 css: Use SCSS nesting for `.contributors .person` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney b524b09a37 css: Use SCSS nesting for `.team` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney a5b5294c82 css: Use SCSS nesting for `.team input` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 78d8006de5 css: Use SCSS nesting for `.team label` in protico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney f787b9054c css: Use SCSS nesting for `.team .bdfl` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney bfa18da1bf css: Use SCSS nesting for `team .bdfl .profile-picture` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 17197f7537 css: Use SCSS nesting for `.team .profile` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 0bc4760e21 css: Use SCSS nesting for `.portico-header` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney d1da18cd28 css: Use SCSS nesting for `.portico-header .dropdown` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 4bbb468a36 css: Use SCSS nesting for `portico-header .dropdown-pill` in porticos.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 0ccb3a3d02 css: Use SCSS nesting for `.portico-header .dropdown ul` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 6f1def6a29 css: Use SCSS nesting for `.portico-header .dropdown ul li` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney f04bfbed89 css: Use SCSS nesting for `.header-main` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 8670372543 css: Use SCSS nesting for `.header-main .logo` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 7c23da6abc css: Use SCSS nesting for `.footer` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney fb1427bc2f css: Use SCSS nesting for `.footer section` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney d389885fe4 css: Merge css for `.footer` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 83376b49da css: Use SCSS nesting for `.portico-container` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 6158d1e6ea css: Use SCSS nesting for `.landing-page` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 1e7dfdd48a css: Reorder `.landing-page` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney ab5dfdc25f css: Use SCSS nesting for `.api-details` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney f488c03ca1 css: Use SCSS nesting for `.integration` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney be0cd1dfc2 css: Use SCSS nesting for `.show-integral` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney ae3170c05f css: Use SCSS nesting for `a.title` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney 13fd68e749 css: Use SCSS nesting for `.help-box` in portico.scss. 2020-05-28 17:50:12 -07:00
Siddharth Varshney c3b12a41c4 css: Use SCSS nesting for `help-inline` in portico.scss. 2020-05-28 17:50:12 -07:00
Rohitt Vashishtha e509a13db0 minor: Remove outdated comment.
This was fixed in 30ab261f91.
2020-05-28 14:56:47 -07:00
Rohitt Vashishtha fba2708bbc settings_bots: Explicitly ignore delete event from live updates. 2020-05-28 17:10:51 -04:00
Rohitt Vashishtha 58b612a4f0 settings-users: Rerender bot rows on data change.
Previously, we fiddled with the existing HTML to update the
state. Now, we can use list_render.render_item() to render
the complete item properly.
2020-05-28 17:10:51 -04:00
Rohitt Vashishtha a114b6a1b1 list-render: Allow re-rendering individual list items.
Previously, we had to fiddle with the generated HTML to update
individual values. Now, we can simply ask the widget to rerender
the row that we updated.

This is done by passing an html_selector function that returns
a selector for the rendered item.

If:
  - we do not provide html_selector function
  - item is not currently rendered
  - new html is not a string.
then the render_item() call is a noop.
2020-05-28 17:10:51 -04:00
Rohitt Vashishtha 2cfead7601 list_render: Add validate_opts function.
We do not shift much of the validation logic here just
yet. This function has been declared at the top of the
file to act as usage docs for the widget as well, in
terms of what combinations of opts are valid and what
are not.
2020-05-28 17:10:51 -04:00
Mateusz Mandera 501e7c44dc docs: Add instructions for SAML with Okta/OneLogin in /help/.
Tweaked by tabbott to shift how this is organized.
2020-05-28 08:14:30 +00:00
Steve Howell 43e5b2d28b 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`.
2020-05-27 17:57:50 -07:00
Steve Howell 9f5725d265 buddy list: Adjust sizing calc for narrow mode.
This fixes the calculation for how far from the
top of the viewport we think #right_sidebar's
top is.  To fully explain this commit requires
some background info.

Normally `#right-sidebar` has 50px of top margin
and 0px of top padding.  And our `resize.js`
calculations have been accurate for the normal
case.

But when you are in the so-called `.expanded` mode
(i.e. when you're in a narrow window) we split up the
50px as follows:

    - 40px margin
    - 10px padding

Why don't I make the CSS just be more consistent here?

    - If you go to 50px in the "expanded" mode
      you mostly cover up the right scrollbar,
      except for the 10px gutter that is below
      the 40px-tall `.header` section.  To fully
      cover it we apparently want the padding;
      otherwise you see a small, unusable remnant
      of the scrollbar which just looks funny.

    - If we were to make the "regular" right sidebar
      just always have the 40/10 split, then we
      would start to diverge from the left sidebar,
      which is currently 50/0 as well.

    - If we went to make both the left and the right
      sidebars 40/10 split, well, that's just an
      even riskier change.

So instead I fix the resize calculation:

    I just calculate the actual `top` position.

Is any of this actually user-facing?

    Yes.  Now if a user is a narrow window and
    they open the buddy list, we will make
    the buddy list 10px smaller to account for
    the padding. This makes it less likely for
    the invite link to get squeezed out.
2020-05-27 17:57:50 -07:00
Steve Howell 87c36cdb26 resize: Resize sidebars when toggling user search.
It's possible we want to do the same for the stream
search, but this PR is highly focused on the buddy
list and GROUP PMs widget.
2020-05-27 17:57:50 -07:00
Steve Howell 7ed47e83fe resize: Extract resize_sidebars().
We'll use this in the next commit.

Note that there's a minor change in the order
in which we apply new heights--we now
do sidebars before bottom whitespace.
2020-05-27 17:57:50 -07:00
Steve Howell 9489960b73 dead code: Remove useless resize calls.
We had a bunch of places where we
were calling `resize.resize_bottom_whitespace`
with no arguments, which has been a no-op
since the below commit that removed support
for our `autoscroll_forever` option:

    fa44d2ea69

With the `autoscroll_forever` options things
like opening/closing the compose box could
alter how much bottom whitespace you'd want,
but we stopped supporting that feature in
2017.

Since then bottom_whitespace has just always
been 40% of the viewport size.  So we only need
to change it on actual resize events.

It's worth noting that we still call
`resize_bottom_whitespace` indirectly in many
places, via `resize_page_components`, and
the latter actually causes
`resize_bottom_whitespace` to do real work,
but that work is redundant for most of those
codepaths, since they're not triggered by
changes to the viewport.  So there are other
opportunities for cleanup.
2020-05-27 17:57:50 -07:00
Steve Howell ac3de453fb resize: Remove dead code.
The `buddy_list_wrapper` has zeros margins, so it's
just noise in the current calculations.  You can
verify this pretty easily with console statements,
as well as looking at the code.  I tried it with
various permutations of narrow windows and display
settings.
2020-05-27 17:57:50 -07:00