Commit Graph

38913 Commits

Author SHA1 Message Date
Anders Kaseorg 2bfb590391 package.json: Move testing dependencies to devDependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2020-09-01 16:43:02 -07:00
Anders Kaseorg 10bd7a47c4 webpack: Move webpack.config.ts to top level.
We lost the war against top level configuration files many moons ago.
This is what developers and tools expect.  And it seems to be required
for eslint-import-resolver-webpack (there’s ostensibly a {"config":
"tools/webpack.config.ts"} option, but it doesn’t work correctly:
https://github.com/benmosher/eslint-plugin-import/issues/1861).

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2020-09-01 16:43:02 -07:00
Steve Howell 8dc24e2a20 webhooks: Clean up args to log_exception_to_webhook_logger.
We eliminate optional parameters and replace `request_body`
with `payload`.

There is much less confusion if we just pass in `payload`,
and then we optionally re-format it if it's json.

For unclear reasons the original code was trying to
do `request_body = str(payload)` when `request_body`
was no longer being used.
2020-09-01 15:10:16 -07:00
Mateusz Mandera 9b50c49ea7 streams: Mark all messages as read when deactivating a stream.
The query to finds and marks all unread UserMessages in the stream as read
can be quite expensive, so we'll move that work to the deferred_work
queue and split it into batches.

Fixes #15770.
2020-09-01 11:24:27 -07:00
Aman Agrawal 2de98ab6e1 settings: Don't use css classes starting with `icon`.
Fixes #16252.

icon* classes are used by bootstrap for displaying glyphicons.
We removed these classes in our custom version of bootstrap 2.1.1;
but since our reset to v2.3.2, they have been added again and hence
any classes starting with icon* in zulip will have to be renamed.
2020-09-01 10:56:02 -07:00
Mateusz Mandera 74d3e83e24 tests: Use real path when getting commands in TestCommandsCanStart.
In 468c5b9a58 we changed the method of
getting the list of management commands. Using app_config.path has a
caveat in that the value depends on the path from which we're executing.
An example of things breaking can be reproduced by calling
/home/vagrant/zulip/tools/test-backend TestCommandsCanStart

This makes the app_config.path values to start with /home/vagrant/zulip,
but DEPLOY_ROOT in the dev environment is set to /srv/zulip.
/home/vagrant/zulip is a soft link to /srv/zulip, so it's a valid path
to call test-backend through, but it causes self.commands to end up
being an empty list. We fix this by converting app_config.path to the
real path.
2020-09-01 10:55:07 -07:00
Tim Abbott 40c840f88a message_edit: Remove duplicate tabindex declaration. 2020-08-31 22:57:21 -07:00
Mohit Gupta 353e36ea0b user_info_popover_content: Replace href="#" with tabindex="0".
Fixes: #15448.
2020-08-31 22:55:29 -07:00
Mohit Gupta 98da8cd7f2 popovers: Add keyboard support for user popovers in right sidebar.
This commits adds arrow, vim_up/vim_down and enter hotkey support for
navigating the open popover menu.
2020-08-31 22:55:29 -07:00
Mohit Gupta 937c85d278 popovers: Add keyboard support for starred message popovers in sidebar.
This commits add arrow, vim_up/vim_down and enter hotkey support for
navigating the popover menu when it is open.
2020-08-31 22:55:28 -07:00
Mohit Gupta a1d3707bfb popovers: Add keyboard support for All Messages popover in sidebar.
Even though right now it have one option added arrow, vim_up/vim_down
and enter hotkey support for navigating the popover menu if it is open.
2020-08-31 22:55:28 -07:00
Mohit Gupta 5cef548708 popovers: Add keyboard support for topic popovers in left sidebar.
This commit adds arrow, vim_up/vim_down and enter hotkey support for
navigating the popover menu.
2020-08-31 22:55:28 -07:00
Mohit Gupta 2579781a0a popovers: Add keyboard support for stream popovers in left sidebar.
This commit adds arrow, vim_up/vim_down and enter hotkey support for
navigating the open stream popover menu.
2020-08-31 22:52:28 -07:00
Vinit Singh afa87156c6 refactor: Refactor the compose placeholder text function.
This is a prep commit. Refactoring this makes it easier to reuse
these functions in other places without having to create the `opts`
object again.
2020-08-31 22:42:49 -07:00
sahil839 a01d33353f message_list: Live update trailing bookend on stream deactivation.
We were not updating the trailing bookend on deactivation of stream
if the user was narrowed to deactivated stream and this commit fixes
this.

For subscribed streams, we just show the trailing bookend with
content as 'This stream has been deactivated' and hide the
Unsubscribe button.

For unsubscribed streams, we change the content of trailing bookend
to 'This stream has been deactivated' and hide the Subscribe button.

Fixes #15999.
2020-08-31 22:28:19 -07:00
Priyansh Garg 8dd29f4e99 portico: Improve error messages display on registration page.
Improves the display of error messages on registration page fixing
mis-positioning of error messages and overlapping with other text
in some cases.

Part of: #15750.
2020-08-31 22:12:03 -07:00
Tim Abbott ddc6986824 docs: Fix node debugging integration anchor.
This incorrectly had a header for a top-level article.
2020-08-31 21:55:54 -07:00
Sankalp 437332ff5d
css: Fix horizontal scrolling of markdown table when overflow.
Previously Zulip's markdown tables didn't properly configure the overflow CSS rules
to allow proper scrolling.

Fixes #16205.
2020-08-31 18:44:14 -07:00
Hashir Sarwar 8ebff434fb push_notifications: Return token from add_push_device_token(). 2020-08-31 17:34:23 -07:00
Hashir Sarwar b885678881 push_notifications: Simplify `if device exists` checks. 2020-08-31 17:31:41 -07:00
Ryan Rehman 981d028411 stream edit: Allow creating stream pills when typeahead is unused.
This completes the remaining work required to support
addition of all members of another stream.
This allows the creation of stream pills on pasting
the #streamname and copying it from the stream pill.
The user pills uses email ids instead.
And also allows creating stream pills when the user
hides the typeahead.

Tested by commenting out the "set_up_typeahead_on_pills"
line in `stream_edit.js`.

A `node_tests/stream_pill.js` file has been created
for the node tests and the other half of the coverage
check takes place in `node_tests/stream_edit.js`.
2020-08-31 16:57:32 -07:00
Ryan Rehman b4f315698f node tests: Create file for `stream_edit.js`.
This fixes the regression introduced in the pervious
commit to regain the 100% line coverage in `user_pill.js`
as well as `stream_pill.js`.

The new `stream_edit.js` mainly tests for:

* The stream related queries of the typeahead in `user_pill.js`
* The "Add subscribers" event handlers.
* The event handler which displays the settings for a stream.
2020-08-31 16:57:32 -07:00
Ryan Rehman c6d9a87d6f streams: Allow creating stream pills to submit Add subscriber form.
We update the pills typeahead logic to also include
stream results and pass the "stream" key in `opts`
to enable this option for the Add subscriber form.

This commit implements the feature of adding all the
subscribers of another stream in the "Add subscribers"
UI, with the help of a new "stream_pill.js` file.

We temporarily add `user_pill.js` to the EXEMPT_FILES
list as typeahead will be set up in `stream_edit.js`
file which does not have any dedicated tests file.

Work towards #15186.
2020-08-31 16:57:32 -07:00
Ryan Rehman b93371aa9f refactor: Remove redundant JQuery checking block.
We can safely remove the block added in commit
7d51b6a454
which checks whether the target is a JQuery object
and applies it, if it is not, because re-applying
the JQuery selector on a JQuery object returns the
same object.

We also refactor the related function calls to pass
the target instead of applying the JQuery selector
to it and finding the closest "subscription_settings"
class, as the same operation takes place in the next
line of the removed block. Thus this is redundant too.
2020-08-31 16:57:32 -07:00
Ryan Rehman 45b2e5b408 refactor: Refactor `show_subscription_settings` interface.
The `show_subscription_settings` function is only called
from one place. And the first 2 lines of this function is
redundant as the `sub_settings` are passed to this function
but we obtain it's stream id and again convert it back to
`sub_settings` from it.
2020-08-31 16:57:32 -07:00
Ryan Rehman 16ebf56fd7 ui: Add loading spinner for Move Topic popover.
We display a centered spinner and hide the Submit / Cancel
buttons in the Move Topic modal similar to what is done in
the Deleting messages modal.

This commit also makes a change where we now close the modal
after success/failure response of the second request instead
of the first.
2020-08-31 16:51:49 -07:00
Tim Abbott 5a4aa7e744 templates: Remove strangely toned text from 404 page. 2020-08-31 16:47:20 -07:00
shanukun abada91250 templates: Extend templates/404.html to support a 405 error message.
Fixes: #16164.
2020-08-31 16:43:46 -07:00
shanukun ff6921b438 api: Fix require_post decorator not returning 405 error body.
require_post decorator returns an empty body when POST-only routes
are requested with GET.

Fixes: #16164.
2020-08-31 16:43:46 -07:00
Alex Vandiver b7c47811d8 models: Add comment for Big Blue Button ID placeholder. 2020-08-31 16:27:27 -07:00
Aman 71744604c0 message_actions: Help user identify quote can be used for forwarding. 2020-08-31 15:36:16 -07:00
Alex Vandiver cec594e525 trello: Remove unnecessary "is not supported" verbiage.
UnexpectedWebhookEventType already encapsulates that it is not
supported, and having extra wording here disrupts how the exception
stringifies.
2020-08-31 14:24:35 -07:00
Alex Vandiver a350a9b3d8 trello: Simplify logic for ignored card actions.
Rather than catching, checking action type, and possibly re-raising,
instead return None explicitly from `get_subject_and_body`, which
already signals for a blank success result.  This collocates the logic
of the action types in one place, and removes the complexity of the
re-raise.
2020-08-31 14:24:35 -07:00
Alex Vandiver 398102e215 sentry: When there are multiple stacktraces, take the most recent.
Sentry may get reported multiple exceptions stacks, in the case where
a `raise ...` was caught, and a new exception was `raise`d.  In this
case, the `filename` is the most recent exception -- but the
exceptions are stored in the `exception` key in the order in which
they occurred.  As such, taking the first value with a `stacktrace`
will result in showing the wrong line, or in no stack trace being
resolved at all.

Look from the last `exception` backwards, for matching stacks.
2020-08-31 14:14:20 -07:00
Aman Agrawal 6062db765b hello: Don't override bootstrap.js by fetching from CDN.
third/bootstrap/js/bootstrap.js is now reset at v2.3.2, so it
doesn't make sense to be fetch the same version again from CDN.
2020-08-31 14:01:11 -07:00
Aman Agrawal 6e189b14a6 popovers: Align user profile popover with right col USERS header. 2020-08-31 14:01:11 -07:00
Aman Agrawal 285f36bbfa popovers: Span user profile popover to full width on narrow screens.
bootstrap introduced a max-width attribute to `.popover` when
it was upgraded to v2.3.2. We override the property here to fix this.
2020-08-31 14:01:11 -07:00
Aman Agrawal 5071325345 popovers: Reapply changes to bootstrap.js.
We don't modify bootstrap.js here but override its popover and
tooltip plugins. In future we will not import these plugins
via npm. We also copy all the popover code from bootstrap.css v2.1.1
to popovers.scss since all the code in bootstrap-tooltip.js is
based upon this css or vice versa.

Update THIRDPARTY info about bootstrap libraries.

There were 4 types of changes to bootstrap.js - bugfixes, file
moves, changes to typeahead plugin and changes to tooltip +
popover plugin.

Bugfixes were automatically fixed when upgrading to v2.3.2, file
moves are irrelevant to this upgrade and the plugins were
extracted into separate files.

46e562f - POPOVER
8779e55 - POPOVER
66c6423 - POPOVER
21ccf45 - POPOVER
cb9b526 - TYPEAHEAD EXTRACTED
3079cf8 - TYPEAHEAD
9ea4f50 - TYPEAHEAD
b961093 - TYPEAHEAD
0e2c509 - TYPEAHEAD
28589c5 - TYPEAHEAD
70a14d8 - TYPEAHEAD
0c42e4a - TYPEAHEAD
213b8ce - FIXED IN 2.3.2
0bac986 - TYPEAHEAD
0e3332d - FIXED IN V2.3.2
eaa777b - TYPEAHEAD
f944a8e - TYPEAHEAD
546ae10 - TYPEAHEAD
3bba0cc - FILE MOVED
b8794e1 - TYPEAHEAD
6217c1a - TYPEAHEAD
dc85fa7 - TYPEAHEAD
d329317 - TYPEAHEAD
b3ef776 - TYPEAHEAD
fcb3999 - TYPEAHEAD
0975cfa - TYPEAHEAD
fbed3e2 - TYPEAHEAD
0fa857d - POPOVER
68b890a - TYPEAHEAD
b5cadec - typeahead
441e429 - copyright
22ce2c0 Fixed In v2.3.2
d78d761- typeahead
bff933e- typeahead
ef585cf- typeahead
7e35369 - typeahead
8f1cee0 - Files moving around
1490ae1 - add file
2020-08-31 14:01:11 -07:00
Aman Agrawal 3ef78d7093 bootstrap-css: Reapply changes reverted to bootstrap-responsive.
These changes should be moved to zulip.scss once we upgrade to
v3.x.
2020-08-31 14:01:11 -07:00
Aman Agrawal a6940926cc rendered_markdown: Move 27217fd and 5d0960a to rendered_markdown.
Changes to bootstrap.css made by us after these are not relevant:
d7f9a21 - Reducing z-index of overlay doesn't make sense.
9b740df - some changes were added.
1143ed7 - changes in above commit were moved to a different file.
2020-08-31 14:01:11 -07:00
Aman Agrawal 4b2f3ba392 bootstrap-css: Re-apply 2429ed6eeb.
We don't want bootstrap-btn css from v3.1.1 overlapping with v2.3.2's
.btn css; so we remove it.

Commits that were skipped:
3142d74 - false typo fix. It add support for IE9.
ead73f3 - We retain Glyphicons since they don't make any difference.
3bba0cc - Moving code around.
2020-08-31 14:01:11 -07:00
Aman Agrawal 3138ce11dd scss: Re-apply 04df44f91f.
We move 04df44f91f to zulip.scss
and apply it there.
2020-08-31 14:01:11 -07:00
Aman 65a9fca889 scss: Copy dropdown-menu css to zulip.scss and apply fix.
This commit starts to bring back our changes to bootstrap
files. We try to move these changes to zulip.scss as much
as possible. We are starting with bootstrap.css.

Apply fix in commit 7a3a3be.

Changes before 7a3a3be that
were not to be added. These mostly involve moving files around
and hence are not relevant.

441e429
5e2c493
89ed444
8f1cee0
1490ae1
2020-08-31 14:01:11 -07:00
Aman Agrawal 6a2c7327cc boostrap: Reset to v2.3.2.
We merge bootstrap-responsive.css into bootsrap.css since that is
how bootstrap distributes it from this version onwards.

bootstrap.js has a lot of changes to it which completely breaks
our typeaheads and popovers, so we will have to override these
plugins with our version of these plugins. In future versions
of bootstrap when we use npm, we can just choose not to
import them.
2020-08-31 14:01:11 -07:00
Aman Agrawal 7fa8edda79 bootstrap: Reset to v2.1.1.
This commit clearly shows what changes we made to the bootstrap
library for a future reference.

bootstrap-btn.css was left out since it is from version v3.1.1. We
will integrate custom changes made by us into zulip when we upgrade
to v3.x.

We have also removed our license from these files.
2020-08-31 14:01:11 -07:00
Vishnu KS 8a993aa7e7 hotspots: Use ugettext_lazy for i18n.
Since ALL_HOTSPOTS is a global object, it is initialized
at the time the backend server is started. Hence, the
title and description is translated only once. Using
ugettext_lazy makes sure that the strings are translated
in each and every request according to the language
of the user.

Fixes #16224
2020-08-31 11:22:54 -07:00
Priyank Patel 05f3d552d3 yarn.lock: Update lockfile after phantomjs-prebuild removal.
I think this needs an update because 2f5f5d7749,
which removes phantomjs-prebuilt didn't update the yarn.lock.
2020-08-31 11:21:15 -07:00
Gittenburg 2d30af113e compose: Restore Tab+Enter sending in Safari.
Safari doesn't make <button>s tab-accessible by default,
so this commit adds back the manual focus removed in
3b0694693b.
2020-08-30 23:51:18 -07:00
Priyank Patel c1ba648b4f dependencies: Add xvfb dependency.
The node package allow use to control xvfb apt package in puppeteer
tests. This help us create a fake display so we can run puppeteer in
headful (headless: false) mode, which is required to use the chrome
extension desktop capture API.
2020-08-30 23:38:52 -07:00
Priyank Patel 78774e5f1b minor: Remove unused url argument.
This is not required anymore after we moved to run_test model
to save screenshots.
2020-08-30 23:38:30 -07:00