Commit Graph

10028 Commits

Author SHA1 Message Date
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