Commit Graph

8629 Commits

Author SHA1 Message Date
Tim Abbott 9326aa9f57 message_edit: Fix Ctrl+Enter with topic edit dropdown selected.
Previously, we were ignoring that dropdown when considering whether
the currently selected element was part of the message edit form.

Fixes #11834.
2019-09-27 17:41:23 -07:00
bartek df8d3dc334 message_edit: Set focus to topic_edit when TOPIC_ONLY.
The historical behavior of having `Enter` exit was optimized for the
"View source" use case; but `Esc` now handles that reasoanbly, and we
really should make it convenient to type in the user-editable text
box here.

Fixes part 1 of #11834.
2019-09-27 16:58:36 -07:00
Rohitt Vashishtha c298163a67 typeahead: Prioritize language names subset of another for sorting.
This ensures that typing '```java' and pressing enter would result in
getting dropped into a java codeblock instead of javascript codeblock.

We implement this by pushing the exact match of a query to be pushed to
the top of the returned matches in `sort_languages`.

With some comments added by tabbott in the tests explaining the
current reasoning.

Fixes #13109.
2019-09-26 13:00:21 -07:00
Tim Abbott 2756706149 hotkey: Fix escape key when editing topic.
Apparently, the changes in fe2adeeee1 to
fix a Firefox focus bug accidentally had the side effect of removing
the topic text box from the area being considered, resulting in the
escape key no longer working to end the message edit from within that
text box.
2019-09-26 12:56:02 -07:00
Hemanth V. Alluri 635b96dbc1 devtools: Order the fixtures dropdown menu alphabetically in the IDP.
This is a simple and small commit which will alphabetically order the
entries of the fixtures dropdown menu in the "integrations developer
panel" devtool.
2019-09-24 17:07:02 -07:00
Tim Abbott 96726c00ce export: Fix broken URLs in UI with S3 backend.
Apparently, the Zulip notifications (and resulting emails) were
correct, but the download links inside the Zulip UI were incorrectly
not including S3 prefix on the URL, making them not work.

While we're at this, we rewrite the somewhat convoluted previous
system for formatting the data export output.
2019-09-24 13:56:49 -07:00
Tim Abbott e8785762c6 export: Fix missing download attribute on export tarballs. 2019-09-24 13:22:02 -07:00
Tim Abbott b11a773842 setings: Fix rendering of plain-text emoji option. 2019-09-24 13:11:01 -07:00
Anders Kaseorg 311aa21d9c styles: Add overflow: hidden on .message_content.
This has two purposes:

1. Prevent stupid stacks of diacritical marks from overflowing into
other messages.  Fixes #7843.

2. Prevent Chrome from collapsing the inside bottom margin with the
.messagebox outside (in a way that Firefox doesn’t).

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-23 16:09:58 -07:00
Joao Mauricio Carvalho 86d507db05 settings: Change username to `bot email` in bot settings HTML.
This is for consistency with how this value appears in other places in
the UI.

Fixes: #13162.
2019-09-23 15:55:25 -07:00
Anders Kaseorg 6b09e690f1 page_params: Throw an error if params are missing.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-20 10:34:44 -07:00
Anders Kaseorg dea6889956 templates: Make the Loading… message more robust.
Don’t hide it until both CSS and JS have loaded.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-20 10:34:44 -07:00
Anders Kaseorg 46e562f990 bootstrap: Change tooltip html default to false.
Bootstrap v2.2.0^2~40^2~6 changes this default to false, so this is a
prerequisite to upgrading Bootstrap, and it’s also safer.

This closes an HTML injection path via user full names in the emoji
reaction tooltip.  It doesn’t appear to be exploitable for cross-site
scripting because we disallow `>` in full names, and the code happens
to be written such that the next `>` is in a different parser
invocation.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-19 20:53:10 -07:00
Anders Kaseorg fbc2de157e templates: Move page_params to a <div> at the bottom of <body>.
In a gigantic realm where we send several MB of `page_params`, it’s
slightly better to have the rest of the `<body>` available to the
browser earlier, so it can show the “Loading…” spinner and start
fetching subresources.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-19 12:38:10 -07:00
Rohitt Vashishtha 6a08efc065 typeahead: Precompile regexes for removing diacritics.
Precompiling regexes gives a performance increase of around 10-15%
based on tests. See https://jsperf.com/typeahead-regex. This stacks
up when we have a lot of users in an organisation.
2019-09-19 12:27:01 -07:00
clarammdantas cf5d3a3ef3 left sidebar: Fix bot availability status in "private messages".
This changes the availability icon for bot users to user_circle_green;
previously it was accidentally defaulting to user_circle_empty, making
it appear that bots were never available.

Fixes #13149.
2019-09-18 17:40:25 -07:00
Tim Abbott edee1251c8 message_list: Replace buggy rerender_the_whole_thing.
As it turns out, our rerender_the_whole_thing function (used whenever
we were adding messages and discovered that the resulting message list
would be out-of-order) was just broken and scrolled the browser to a
random location.

This caused two user-facing bugs:

* On very fast networks, if two users sent messages at very close to
  the same time, we could end up with out-of-order message deliveries,
  triggering this code path, which was intended to silently correct
  the situation, but failed.

* In some narrows to streams with muted topics in the history but some
  recent traffic, the user's browser-cached history might have some
  gaps that mean the server fetch we do after narrowing discovers the
  history is out-of-order, again triggering the
  rerender_the_whole_thing code path.

The fix is to just remove that function, adding a new option to the
well-tested rerender_preserving_scrolltop (which has explicit logic to
preserve the scroll position) instead.

Fixes #12067.  Likely also fixes #12498.
2019-09-18 11:43:21 -07:00
Anders Kaseorg fe7d814e8d team: Move contributors_list into page_params.
This sidesteps tricky escaping issues, and will make it easier to
build a strict Content-Security-Policy.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-17 16:06:33 -07:00
Anders Kaseorg 7494f1600c templates: Move page_params from an inline script to the <body> dataset.
This sidesteps tricky escaping issues, and will make it easier to
build a strict Content-Security-Policy.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-17 16:06:33 -07:00
Rohitt Vashishtha 1df5cdc41a typeahead: Align the tip text centered vertically. 2019-09-17 13:09:03 -07:00
Rohitt Vashishtha 3e3deb2f17 typeahead: Move tip text to bottom. 2019-09-17 13:09:03 -07:00
Rishi Gupta 2ebbd9a917 portico: Fix line-height in hero image description. 2019-09-17 12:03:20 -07:00
Alexandra Ciobica 8828ef72fe portico: Add hover styling to `Atlassian migration guide` on /hello.
I changed the element to be  a `p` instead of `div` because the styling
for `a`s inside paragraphs is already there and the element should
anyway be a paragraph.

Fixes part of #12853.
2019-09-17 11:59:22 -07:00
Alexandra Ciobica 5b64a27597 portico: Add hover behavior for app icons on /hello. 2019-09-17 11:55:23 -07:00
Alexandra Ciobica b94ea6553b portico: Fix gradient on /hello. 2019-09-17 11:55:23 -07:00
Alexandra Ciobica 9bb7249c42 portico: Add hover behaviour to `Take the tour` button on /hello. 2019-09-17 11:55:23 -07:00
Anders Kaseorg 366dce5d52 confirm_preregistrationuser: Uninline script.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-16 17:23:20 -07:00
Anders Kaseorg ed63042480 templates: Replace focusing scripts with autofocus attribute.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-16 17:23:20 -07:00
Anders Kaseorg 6bab61a0d6 styles: Remove overrides for KaTeX line-height and white-space.
Commit ba66dfe977 incorrectly inflated
the specificity level of these rules by moving them inside
.rendered_markdown “entirely for readability”.  KaTeX has its own
rules that work better, so just delete ours.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-10 16:03:20 -07:00
Thomas Ip 574c35c0b8 markdown: Render ordered lists using <ol> markup.
This brings us in line, and also allows us to style these more like
unordered lists, which is visually more appealing.

On the backend, we now use the default list blockprocessor + sane list
extension of python-markdown to get proper list markup; on the
frontend, we mostly return to upstream's code as they have followed
CommonMark on this issue.

Using <ol> here necessarily removes the behaviour of not renumbering
on lists written like 3, 4, 7; hopefully users will be OK with the
change.

Fixes #12822.
2019-09-08 16:42:20 -07:00
Tim Abbott 7ca65b2bb5 css: Remove buggy stream settings media CSS for narrow windows.
This caused weird behavior in the relevant band of window widths, and
removing it works considerably better.

There's still bad behavior in handling situations where the stream
name is too long and thus this wraps, but we should address that
as a follow-up.
2019-09-05 11:57:27 -07:00
Tim Abbott fd5f9be14f stream settings: Use fa-circle-o for link to /help/. 2019-09-05 11:48:32 -07:00
Tim Abbott 94c51676fe stream settings: Use <label> tags for section labels.
Previously, these were configured as divs.
2019-09-05 11:48:32 -07:00
Tim Abbott 8b5df88596 css: Make label CSS usable outside settings model.
We intend to use it in the "manage streams" modal as well.
2019-09-05 11:48:32 -07:00
Mateusz Mandera bf7f4f3f1b stream settings: Replace email address hint popup with link to docs.
Fixes #13134 as the last commit in the series for this issue.
Solves the "The (?) should just be a target=_blank link to
/help/message-a-stream-by-email." part of the issue.
As a result, a bunch code managing the email hint popup can be deleted,
together with a node test for that.
2019-09-05 11:48:32 -07:00
Anders Kaseorg 2bdb115581 styles: Remove stray semicolon from input.user_status block.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-02 21:45:43 -07:00
Anders Kaseorg e5ab9834c5 logos: Golf harder with svgo 1.3.0.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-02 19:30:09 -07:00
Anders Kaseorg d0634181b5 styles: Fix left sidebar indentation for PostCSS migration.
cssnano reduces this to a constant in a production build.  (We could
add postcss-calc if we wanted this reduced in development.)

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-30 15:06:29 -07:00
Anders Kaseorg 4de3bbeafa styles: Finish removing manual antialiasing configuration.
Followup from commit ddb965110f.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-30 14:51:52 -07:00
Anders Kaseorg abbd8a7f45 styles: Remove most vendor-prefixed CSS attributes.
Many of them are now automatically generated by autoprefixer, while
others are unnecessary based on .browserslistrc, and some were just
wrong (the linear-gradient based checkerboard pattern in lightbox has
been broken in Firefox for a while).

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-30 14:51:52 -07:00
Anders Kaseorg d312d04510 styles: Replace Sass with PostCSS.
It’s about as fast as node-sass (faster, according to their
benchmarks) and more flexible.  Autoprefixer is neat: we can now go
delete all our -moz-, -webkit-, etc. lines and have them autogenerated
as necessary based on .browserslistrc.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-29 16:35:51 -07:00
Tim Abbott c06d8129a3 custom profile fields: Add placeholder for custom URL.
This makes the feature useable for someone who hasn't used it before.
2019-08-28 15:43:35 -07:00
Yashashvi Dave 9e343f1a68 custom fields: Update create-field UI for default external account fields. 2019-08-28 15:39:20 -07:00
Yashashvi Dave 313003900a custom fields: Move field-type inputs first in create-field form.
As other data of field, such as field name, hint etc. are
relative to field type, this commit moves the field type
input to the first order in create field form in org settings.
2019-08-28 15:39:13 -07:00
Wyatt Hoodes e64b5a2b88 data export: Fix success banner not clearing.
There was a bug where the success banner stuck
around even after the export completed.  We now
nicely fade and remove the banner upon a successful
population of the export in the table.

Fixes: #13045
2019-08-28 15:23:39 -07:00
Wyatt Hoodes 2a020fa6cc data export: Fix sort feature regression.
02cfb47 removed a couple HTML tags that were
being used to sort the table.  We fix this,
but disable filtering exports by marking the
input type as `hidden`.  We use this approach as
it seems `list_render` doesn't like an
undefined `opts.filter.element`, which is
what happens if we simply remove the `filter`
key.
2019-08-28 15:23:39 -07:00
Vinit Singh d09a80260b lint: Replace local variables named 'msgid' with 'message_id'.
Follow up of commit 2a1305d. Replace all local variables named 'msgid'
with 'message_id' in all JS and HTML files, and adds a linter rule for
it as well.

Resolves #12952.
2019-08-28 15:19:30 -07:00
Rohitt Vashishtha 8b443a25b8 markdown: Show link href if title is empty.
Fixes #6221.
2019-08-25 21:36:42 -07:00
Kanishk Kakar e4f0d3d79b notifications: Add 'none' to unread count options. 2019-08-25 21:29:10 -07:00
Yashashvi Dave 166d4ce630 custom fields: Change field alert notifications style in user settings. 2019-08-25 20:57:27 -07:00
Vaibhav 8f13b6eed1 css: Use SCSS nesting for `#stream_message_recipient_stream`. 2019-08-25 15:09:31 -07:00
Vaibhav 9566f4cf6a css: Reorder so `#stream_message_recipient_stream` is in same place. 2019-08-25 15:09:31 -07:00
Vaibhav edb61eb35e css: Use SCSS nesting for textarea and .compose_table .recipient_box. 2019-08-25 15:09:31 -07:00
Vaibhav c15c2d3b97 css: Use SCSS nesting for `.dropdown-menu`. 2019-08-25 15:09:31 -07:00
Vaibhav 9652e8affb css: Use SCSS nesting for `.message-control-button`. 2019-08-25 15:09:31 -07:00
Vaibhav 71efd80dac css: Reorder compose.scss so `.drafts-link` is with `.compose_table`. 2019-08-25 15:09:31 -07:00
Vaibhav 72e13478cb css: Nest `#compose-send-button:focus` inside `#send_controls`. 2019-08-25 15:09:31 -07:00
Vaibhav ffa6e72086 css: Use SCSS nesting for `#send_controls`. 2019-08-25 15:09:31 -07:00
Vaibhav 417284f38a css: Remove unnecessary `table.compose_table` rule.
Since `.compose_table` is a div and not a table.
2019-08-25 15:09:31 -07:00
Vaibhav 52d97e2ca7 css: Use SCSS nesting for `#send_message_form`. 2019-08-25 15:09:31 -07:00
Vaibhav ca4cdb2b29 css: Remove redundant border-radius rule.
It's over-written just below.
2019-08-25 15:09:31 -07:00
Vaibhav a19c74bd5e css: Remove redundant rules for `.message_header*`.
Since these rules are overwritten we can remove them. For
message_header_colorblock we can remove `!important` from
box-shadow since it was present due to the removed rules.
2019-08-25 15:09:31 -07:00
Vaibhav 1e350cbd09 css: Nest `.message_header_colorblock` inside `.compose_table`. 2019-08-25 15:09:31 -07:00
Vaibhav d18492c1c7 css: Use SCSS nesting for `.compose_table`. 2019-08-25 15:09:31 -07:00
Vaibhav 9dd5641d90 css: Use SCSS nesting for #compose-buttons media queries. 2019-08-25 15:08:47 -07:00
Vaibhav 8f6ad6bd11 css: Nest `.drafts-link` inside `.new_message_button`. 2019-08-25 15:08:47 -07:00
Vaibhav 870ca49f0d css: Nest `.alert-draft` inside `.new_message_button`. 2019-08-25 15:08:47 -07:00
Vaibhav 0b4f82df79 css: Nest `.button.small` inside `.new_message_button`. 2019-08-25 15:08:47 -07:00
Vaibhav ac94e3c7b5 css: Use SCSS nesting for `#compose_buttons`. 2019-08-25 15:08:47 -07:00
Vaibhav 877d198363 css: Nest `new_message_button` inside `#compose_buttons`. 2019-08-25 15:08:47 -07:00
Vaibhav 60fe12bcfe css: Reorder compose.scss so #compose-controls are in same place. 2019-08-25 15:08:47 -07:00
Mohit Gupta e5482adec0 search: Add streams:public to search entire history of public streams.
Add ability to search entire message history of all public streams at
once. It includes all subscibed, non subscribed public streams messages
and even historical public stream messages sent before user had joined
an organization or stream.

Fixes #8859.
2019-08-22 13:40:49 -07:00
Rishi Gupta 02cfb47315 exports: Update wording on settings page, /help and /features. 2019-08-22 13:17:03 -07:00
Thomas Ip cbbfb19692 settings: Remove header_map and lookup section names from DOM.
Fixes #13046.
2019-08-22 13:13:24 -07:00
Thomas Ip 3d7b9a1349 list_render: Fix broken reversing operation.
This commit fixes an issue where when you click on the sort button of
a table twice, reversing stops.

The problem is we are checking the truthness of meta.sorting_function
instead of just the function argument sorting_function. This commit
extract the reverse operation out of sort() to unclutter the logic.
2019-08-22 13:13:24 -07:00
Thomas Ip d86299309a org settings: Reduce the width occupied by the actions column in tables. 2019-08-22 13:13:24 -07:00
Thomas Ip 39aceb9d93 org settings: Make data exports table sortable. 2019-08-22 13:13:24 -07:00
Thomas Ip 769eaea617 org settings: Fix wrong call to people.my_full_name(). 2019-08-22 13:13:24 -07:00
Thomas Ip 658e30484e org settings: Make invites list sortable. 2019-08-22 13:13:24 -07:00
Thomas Ip d41d965eed refactor: Group header and body under table for .progressive-table-wrapper. 2019-08-22 13:13:24 -07:00
Tim Abbott bfacbfa783 settings: Fix ordering of headings on emoji settings page. 2019-08-21 17:02:17 -07:00
Thomas Ip 808641a603 css: Tweak sortable list styling to make sortable columns more obvious. 2019-08-21 16:50:22 -07:00
Thomas Ip 936366ffaa org settings: Make emoji list sortable. 2019-08-21 16:50:22 -07:00
Thomas Ip d851e2dafc org settings: Use list_render to create emojis table. 2019-08-21 16:50:22 -07:00
Thomas Ip e309168d11 org settings: Make linkifiers table sortable. 2019-08-21 16:50:22 -07:00
Thomas Ip 8d0bc912f1 org settings: Use list_render to create linkifiers' table.
Moved the table to below the "Add linkifier" box for consistency with
the other settings sections. Also added a search box.
2019-08-21 16:50:22 -07:00
Thomas Ip 83ea462a0a org settings: Make default streams list sortable. 2019-08-21 16:50:22 -07:00
Thomas Ip 29803db802 org settings: Make deactivated users list sortable. 2019-08-21 16:50:22 -07:00
Thomas Ip 2eba496968 org settings: Make active users list sortable. 2019-08-21 16:50:22 -07:00
Thomas Ip 444ce74a8e org settings: Make bot list sortable. 2019-08-21 16:50:22 -07:00
Tim Abbott 5c49133754 settings: Add a block comment explaining the auto-discard feature.
This should help make this code more readable (I found it hard to
understand while reviewing #13030).
2019-08-21 16:48:38 -07:00
Pragati Agrawal ff26858e44 settings_org: Make save widgets fadeout quick if setting toggled back.
When a user toggles a setting back to its original value without
saving, we automatically hide the save/discard widget, since
effectively the user has discarded their changes.

The logic has previously incorrectly configured this as returning to
the "saved" state, not the "discarded" state, which caused an
unintentional delay before the widget disappeared (by accidentally
running code that was designed for the save -> saved transition).

While doing this I have fixed a very minor bug that we haven't sent
fadeout_delay argument as 0, but having its value as undefined still
defaults to 0 so there will no impact of this change.

Fixes: #12258.
2019-08-21 16:42:14 -07:00
Rohitt Vashishtha da2b7ef137 minor: Move displaced comment. 2019-08-21 16:34:40 -07:00
Pragati Agrawal 5df6065bed org settings: Deduplicate the template code for logo widget. 2019-08-21 15:49:25 -07:00
Pragati Agrawal 4d0a94a3b1 org settings: Replace usage of ids with classes for delete button. 2019-08-21 15:49:25 -07:00
Pragati Agrawal c29b197ec7 org settings: Replace usage of ids with classes for upload button. 2019-08-21 15:49:25 -07:00
Pragati Agrawal 67861529ac org settings: Replace id comparision with `hasClass` function.
This is in series of refactoring of code for realm logo settings.

Further, we will remove ids from the template as well and simply use
general classes (.day-settings and .night-settings) to identify to which
theme-mode particular element belongs i.e. day or night as we did in this
change.
2019-08-21 15:49:25 -07:00
Pragati Agrawal 707e012af0 realm_logo: Refactor `realm_logo.rerender` function to be more clean.
This creates/extract a function `change_logo_delete_button`.
2019-08-21 15:49:25 -07:00
Pragati Agrawal 34d2616158 org settings: Use `.realm-logo-file-input-error` to identify input errors.
This replaces `realm_logo_file_input_error` and
`realm_night_logo_file_input_error` with one class.
2019-08-21 15:49:25 -07:00
Pragati Agrawal c214d184d0 org settings: Replace logo's file input ids with `.realm-logo-file-input`. 2019-08-21 15:49:25 -07:00