Commit Graph

4143 Commits

Author SHA1 Message Date
Steve Howell 7d49bb8dbd Extract maybe_advance_to_recently_sent_message.
All the rest of the code in its caller was high-level dispatch
stuff, so it just looked fine of funny.
2017-07-18 12:11:43 -07:00
Steve Howell 1fd38e7e26 local echo: Make get_next_local_id() less aggressive.
We now make it so that get_next_local_id() only returns up
to 5 local ids relative to any given max id.

For example, if your pointer is at message 999, we'd give out
999.01, 999.02, ..., 999.05.

We also avoid giving out the same local id twice.  This prevents
a bug where if you had aborted a previously failed locally echoed
message, a subsequent local echo would get into a funny state.

In order to to prevent false alarms on using the same local id
twice, we call get_next_local_id() later in the try_deliver_locally()
function.
2017-07-18 12:03:16 -07:00
Steve Howell 92ad988144 local echo: Remove buggy restart-related code.
We had code that would try to re-render locally echoed messages
that were rendered right before a browser restart.  This code
has gotten buggy over time, so we are removing it for now.

We will try to re-solve the problem as part of #5825, but
possibly with a different strategy.
2017-07-18 12:03:16 -07:00
Joshua Pan 5e5ca48063 markdown.js: Fix inconsistent #**stream** on new line.
This commit removes all code related to headers because
(1) we don't need the code and (2) it splits #**stream**
as a paragraph, which we don't want. This commit also
fixes the inconsistency when #**stream** is on a new line.

Fixes #4678.
2017-07-18 11:07:25 -07:00
Pweaver (Paul Weaver) d3ffc81726 Enable Hot Module Replacement in webpack.
This allow the webbpack dev server to properly reload JavaScript modules
while running in dev without restarting the server. We need to connect
to webpack-dev-server directly because SockJS doesn't support more than
one connection on the same host/port.
2017-07-18 11:02:05 -07:00
Steve Howell 1ed35be88c stream_list: Use more direct code in build_stream_list.
We eliminate `.get(0)` calls in buld_stream_list.

The easy case is that we stop building jQuery objects
for the splitters only to pull out the DOM immediately.

The more subtle case is that we also don't do `.get(0)` calls
to get DOM out of our individual list items.  By passing
in full jQuery objects to `append()`, we should prevent ourself
from orphaning the old objects, which may in the future have
things like tooltip logic attached to them.
2017-07-18 09:58:16 -07:00
Tim Abbott 2317819e47 nginx: Use the Django 404 page for files under static/.
This elimintes the need for us to maintain duplicate copies of the
Zulip 404 error pages.

Fixes #5382.
2017-07-18 09:55:30 -07:00
Rishi Gupta a05de7ce84 settings: Fix Display Settings categorized as Language Settings.
"Display user list on left side in narrow windows." was a duplicate and
was removed.
2017-07-18 00:19:31 -07:00
Joshua Pan ec669a0c45 markdown.js: Fix inconsistent user mention on new line.
The user mention regex was checking for multiple lines,
so it broke when the user mention was on a new line.
This changes the regex AND adds a couple tests to
test inline markdown regexes.
2017-07-18 00:07:49 -07:00
Brock Whittaker 0d3ea50379 settings: Change .btn => .button components.
This changes all of the old bootstrap .btn buttons in the settings UI
to the new .button classes that they should be.
2017-07-17 17:20:09 -07:00
Vaida Plankyte c9bc803118 frontend: Change inaccurate aria-hidden assignments on buttons.
This either removes aria-hidden=true assignments from buttons with
text, or adds a span to only hide the 'x' symbol rather than the
button for closing buttons.
2017-07-17 16:40:28 -07:00
Brock Whittaker 1e7665effe message_feed: Remove unnecessary "user-select: none".
There is a "user-select: none" (cross-browser) that was put on
the #bottom_whitespace div, but the div doesn't actually have any
content that can be selected, and it also makes it difficult to
deselect selected text because when clicked over it will save the
current selection.
2017-07-17 16:27:30 -07:00
Brock Whittaker e5e73f364b settings: Change [Change] button styles. 2017-07-17 16:18:46 -07:00
Brock Whittaker 563847e5fe settings: Redesign and responsively fix account settings.
This makes the avatar portion more responsive and efficient on many
screen settings and also fixes some of the design incongruences present
on the page.
2017-07-17 16:18:31 -07:00
Brock Whittaker 3b9d084b29 settings: Modify notification settings headers for consistency.
This changes bold h4 headers to be thin h3 headers like the rest of the
pages.
2017-07-17 16:18:31 -07:00
Brock Whittaker 330a3bd144 setttings: Indent display settings checkboxes and fix header styles.
Aside from the indentation of checkboxes, the headers are added and
changed to become more unified with other page styling.
2017-07-17 16:15:04 -07:00
Brock Whittaker 005a58ecd6 settings: Add border-top to <li> for logout.
This makes the logout option in settings look more consistent with the
rest of the settings UI.
2017-07-17 16:14:46 -07:00
Brock Whittaker 38440d6ba4 Change product page nav and hero styling. 2017-07-17 16:12:36 -07:00
Brock Whittaker c27f57ed4b Change top of the /hello/ page to lighter scheme.
This changes the top of the page to a lighter scheme that uses a
gradient rather than having a dark blue background.
2017-07-17 16:10:54 -07:00
Vaida Plankyte 32c3d1b6f9 frontend: Add aria-label to organization overlay elements. 2017-07-17 11:46:41 -07:00
Vaida Plankyte 8512218899 frontend: Fix ARIA state and property values must be valid. 2017-07-17 11:46:41 -07:00
Brock Whittaker e5926d562e /help/: Fix responsiveness on mobile.
This changes the markdown section and sidebar to be the correct
height on mobile along with correcting the broken footer to always
appear below the content.

Fixes: #5798.
2017-07-17 10:59:20 -07:00
Vishnu Ks 32fddf9a8b analytics: Add translation tags to stats.js. 2017-07-16 16:20:20 -07:00
Durga Akhil Mundroy 146dfa6f0b org-permissions: Add allow_edit_history organiztion setting.
This new setting controls whether or not users are allowed to see the
edit history in a Zulip organization.  It controls access through 2
key mechanisms:

* For long-ago edited messages, get_messages removes the edit history
  content from messages it sends to clients.

* For newly edited messages, clients are responsible for checking the
  setting and not saving the edit history data.  Since the webapp was
  the only client displaying it before this change, this just required
  some changes in message_events.js.

Significantly modified by tabbott to fix some logic bugs and add a
test.
2017-07-16 10:10:06 -07:00
Cory Lynch 1dba70ca0d search_suggestion: Fix highlighting for multi-word streams.
I deleted a test case that involved a highlighted stream, but
the query was empty. This produces kind of a weird result with
typeahead_helper.highlight_with_escaping, but this function already
has coverage in node_tests/typeahead_helper.js, so the check here
was essentially redundant anyway. Specifically, the highlighter
wraps every character individually with <strong>, and looks really
messy in html.
2017-07-14 17:33:09 -07:00
Cory Lynch 76e4350d4d filter.js: Allow quotes to handle spaces in operand.
Fixes #3496. This was just a simple regex addition to filter
to accept the format `operand:"foo bar"` as a token. Also,
it will now accept an additional space after the separating colon.
2017-07-14 17:33:09 -07:00
Vaida Plankyte 28ea174ed9 backend: Implement high contrast mode display setting. 2017-07-14 14:53:24 -07:00
Tim Abbott 5cdfd61f2b lint: Require translation tags on aria-label tags.
Since these are, by their nature, directly user-facing strings, they
should always be tagged for translation.
2017-07-14 14:48:17 -07:00
Vaida Plankyte 216900b9e3 frontend: Add aria-label attributes to textareas/input fields. 2017-07-14 14:45:10 -07:00
Vaida Plankyte 6be210052e frontend: Fix label 'for' attribute to include correct name. 2017-07-14 14:45:10 -07:00
Vaida Plankyte b533732c6b frontend: Change custom_invite_body to use an ID. 2017-07-14 14:45:10 -07:00
Vaida Plankyte 1675867f30 frontend: Make ID assignments unique. 2017-07-14 14:45:09 -07:00
Steve Howell 475eb21a5e Revert commits related to client_message_id.
I pushed a bunch of commits that attempted to introduce
the concept of `client_message_id` into our server, as
part of cleaning up our codepaths related to messages you
sent (both for the locally echoed case and for the host
case).

When we deployed this, we had some strange failures involving
double-echoed messages and issues advancing the pointer that appeared
related to #5779.  We didn't get to the bottom of exactly why the PR
caused havoc, but I decided there was a cleaner approach, anyway.
2017-07-14 12:13:35 -07:00
Sawant Shah d3cce041a4 documentation: Make entire li element clickable.
documentation: Make the whole 'li' element clickable in left sidebar
links in /help/ page, instead of just the link part.

Fixes: #5797.
2017-07-14 09:52:36 -07:00
Vaida Plankyte c7c533fd4d frontend: Add feature illustrations to landing page. 2017-07-13 22:12:26 -07:00
Abhijeet Kaur 85b7a89d85 bots UI: Display message for empty 'Active/Inactive bots' tab.
Add a line of text stating that there are no active or inactive bots.

This is for better understanding of the user, as blank screen that
used to appear in case of no bots being present might seem broken
to some.

Tweaked by tabbott to improve the English.
2017-07-13 21:51:48 -07:00
Tim Abbott cbd5223429 i18next: Disable i18n cache in development. 2017-07-13 21:37:56 -07:00
Tim Abbott 8c5cce7f2b i18next: Decrease cache expiration time to a couple days. 2017-07-13 21:34:35 -07:00
Brock Whittaker e3f1d025ae i18n: Garbage collect old translations from localStorage.
The old translation copies in localStorage were not being removed
when they were no longer needed, so we can free up the storage
by deleting them.

This was accidentally not merged months ago when originally
implemented, but it was written to fix #4443 and in fact does so.
2017-07-13 21:33:49 -07:00
Steve Howell fe66d4f3b0 Encapsulate message_state.maybe_restart_event_loop().
We now set the timer for missing events inside the
message_state class, where it's easier for us to know
which state we're in.
2017-07-13 23:42:27 -04:00
Steve Howell bc67f6a8ca Add sent_messages.track_messages().
This change has us tracking messages as soon as we start
sending the message to the server.  The next step is to
reconfigure the timeouts a bit to deal with the server not
responding.
2017-07-13 23:42:27 -04:00
Steve Howell 9ee2be4a0d Use client_message_id as key for sent_messages lookups.
We now use a client-side message id to track the state of our
sent messages.  This sets up future commits to start tracking
state earlier in the message's life cycle.

It also avoids ugly reify logic where we capture an event to
update our data structure to key on the server's message id
instead of the local id.  That eliminates the node test as well.

Another node test gets deleted here, just because it's not
worth the trouble with upcoming refactorings.
2017-07-13 23:42:27 -04:00
Steve Howell 7e88fb25b3 Move sent_messages callbacks into transmit_message().
This mostly sets the stage for a subsequent commit to start
using client_message_id as the key into sent_messages.

It has the nice side effect of making it more explicit that
certain things should always happen when transmit_message()
succeeds.

This commit does regress our node test coverage a bit.
2017-07-13 23:42:27 -04:00
Steve Howell 68f8ba0449 Generate client_message_id() sequentially.
This commit starts to decouple client_message_id from local_id.

We don't really take advantage of the decoupling in this
commit--in fact, it's a bit of a pain at first.  But this should
be a fully working checkpoint commit.
2017-07-13 23:42:27 -04:00
Steve Howell 25b59d0044 Extract sent_messages.message_state class.
This class helps us encapsulate the state of a message, with all
the dates/flags that get sent as part of /json/report_send_time.
2017-07-13 23:42:27 -04:00
Steve Howell f6d670ae3d Extract sent_messages.js.
This is mostly straightforward moving of code out of compose.js.

The code that was moved currently supports sending time
reports for sent messages, but we intend to grow out the new
module to track more state about sent messages.

The following function names in this commit are new, but their
code was basically pulled over verbatim:

    process_success (was process_send_time)
    set_timer_for_restarting_event_loop
    clear
    initialize

All the code in the new module is covered by previous tests that
had been written for compose.js.  This commit only modifies
a few things to keep those tests.

The new module has 100% node coverage, so we updated `enforce_fully_covered`.
2017-07-13 23:42:27 -04:00
Steve Howell 8fbb55df85 Introduce client_message_id on the server.
We are deprecating local_id/local_message_id on the Python server.
Instead of the server knowing about the client's implementation of
local id, with the message id = 9999.01 scheme, we just send the
server an opaque id to send back to us.

This commit changes the name from local_id -> client_message_id,
but it doesn't change the actual values passed yet.

The goal for client_key in future commits will be to:
    * Have it for all messages, not just locally rendered messages
    * Not have it overlap with server-side message ids.

The history behind local_id having numbers like 9999.01 is that
they are actually interim message ids and the numerical value is
used for rendering the message list when we do client-side rendering.
2017-07-13 23:42:27 -04:00
Jack Zhang bab96ab8a0 landing-page: Adjust font size for long integration categories/names. 2017-07-13 20:37:09 -07:00
Jack Zhang 6e2f90c8c9 Improve /integrations page load time.
Prior to this commit, 7 megabytes of images (through 253 individual requests)
were heavily slowing down the initial load. With this commit, we load only the
logos (60 or so images).

Documentation and images for the individual integration sub-pages is requested
separately using the /integrations/doc/ endpoint, which returns HTML.
2017-07-13 20:37:09 -07:00
Jack Zhang 9ddef6a4da landing-page: Add 'Create your own!' integration tile. 2017-07-13 20:37:09 -07:00
Jack Zhang a7e2e9512b landing-page: Fix individual integration display on mobile. 2017-07-13 20:35:37 -07:00
Jack Zhang 7e0d67ab74 landing-page: Hide integration category labels when filtered. 2017-07-13 20:34:36 -07:00
Jack Zhang 9a53514577 landing-page: Decrease integrations catalog minimum height. 2017-07-13 20:33:02 -07:00
Brock Whittaker 1cf7ee966b help: Redesign /help/ pages to be a single page app.
This redesigns the /help/ page sets to be a single page app that uses
history.pushState to work the same as the old app.

The big new feature is that now we have the index in a nicely designed
left sidebar.
2017-07-13 15:43:44 -07:00
Harshit Bansal 1f826c20a2 emoji: Live update `Custom emoji` UI.
When the `add_emoji_by_admins_only` setting is changed, reflect the changes
in the `Custom emoji` UI.

Fixes: #5769.
2017-07-13 14:08:30 -07:00
Harshit Bansal 42ac7fa5cc server_events: Fix the updation code for `add_emoji_by_admins_only`.
`add_emoji_by_admins_only` backend setting is represented by page_param's
`realm_add_emoji_by_admins_only` attribute. When this setting was changed
we were wrongly updating the `add_emoji_by_admins_only` attribute which
doesn't exist.
2017-07-13 14:08:30 -07:00
Harshit Bansal 86de196d12 emoji: Don't lock out admins when only admins are allowed to upload emoji.
Prior to this, when the setting for controlling whether can admins only
upload an emoji was set to true, we were not displaying upload emoji form
even for admins and as a result they were locked out.
2017-07-13 14:08:30 -07:00
Vaida 281ca8263d frontend: Increase contrast of text on login/register pages.
Darkened login/register texts: google and github buttons,
login description links, footers.
2017-07-12 17:40:54 -07:00
Tim Abbott ac3e9256bb frontend: Remove unused sender_name_hovered CSS. 2017-07-11 16:30:34 -07:00
Vaida Plankyte 74ab5b607a frontend: Change main UI content to not be background images. 2017-07-11 16:30:07 -07:00
Srimukh b2f105ac7e landing: Prevent selecting the of X icon in mobile navigation.
This prevents accidental selection of the close button (X) of the left
sidebar on mobile landing page.

Fixes #5259.
2017-07-11 15:35:18 -07:00
Eeshan Garg b37ace33ee help: Document bot types in add-a-bot-or-integration. 2017-07-11 13:25:51 -04:00
Eeshan Garg 37fbed0993 webhooks: Recommend creating "incoming webhook" bot.
In all our webhooks' docs, we now recommend creating a bot with the
"Incoming webhook" bot type.
2017-07-11 13:25:51 -04:00
Aditya Bansal 2342a8f0e4 compose.js: Remove dead code from get_invalid_recipient_emails().
The piece of code is dead since there can be no instance where
email === ''. This is ensured by util.extract_pm_recipients
by filtering for empty strings in the pm_recipients list.
2017-07-11 12:14:09 -04:00
Aditya Bansal 93a003749e compose.js: Remove dead code from mark_end_to_end_display_time().
This piece was dead because exports.send_times_data[message_id]
cannot be undefined since the only place this function is called
from is exports.report_as_received() and that function has a call
to mark_end_to_end_receive_time() before a call is made to the
function in question for dead code. The function call to
mark_end_to_end_receive_time results in
exports.send_times_data[message_id] = {} if this was not defined
already. So there can be no instance where we end up the code
being removed.
2017-07-11 12:14:09 -04:00
Aditya Bansal 237ec76bdc compose.js: Remove broken test_send_many_messages(). 2017-07-11 12:14:09 -04:00
Vaida Plankyte 96321b3069 frontend: Darken the static error pages text. 2017-07-09 13:54:29 -07:00
Durga Akhil Mundroy 38b70f27d9 typeahead: Use recent_senders/pm_conversations to sort suggestions.
In typeahead_helper.js, added a compare function to first sort by
subscription, then by pm partners and lastly based on recency in the
current topic. Altered function sort_for_at_mention to take topic data
and sort using the above function. Also altered node tests for
typeahead_helper.js to test for the above added functionality.

Fixes: #4249
2017-07-09 10:51:19 -04:00
Steve Howell ff80ba4f99 autofocus: Remove unneeded `$(...)[0]` idiom.
Using the first element of a jQuery collection is either
unnecessary or extremely brittle.
2017-07-09 08:31:22 -04:00
Steve Howell 1cf18cfbeb compose: Avoid render for duplicate mentions.
There is no reason to render the template for compose mention
warnings if the user is already in the widget.

This commit also restructures the unit test significantly to more
carefully exercise each case, particularly in regard to when
templates get rendered.
2017-07-09 08:30:46 -04:00
Aditya Bansal 05a21b3729 compose.js: Fix Jquery selector to use more prominent syntax. 2017-07-09 07:26:09 -04:00
Abhijeet Kaur 6869e6a1ec bots UI: Create a new bot switches tab to "Active bots".
Creating a new bot (by filling out the bots related fields and clicking
"Create bot" button) changes tab from "Add a new bot" to "Active bots".
This is done to make users know/confirm that the bot has been created and
the user can view it in this tab.

Fixes: #5731
2017-07-08 14:30:45 -07:00
Abhijeet Kaur 09b8e1f644 bots UI: Make "Active bots" the default tab in "#settings/your-bots".
This is to make viewing bots easy from user's perspective. As the
most used tab in "Active bots", "Inactive bots" and "Add a new bot"
would be the first one.
2017-07-08 14:30:45 -07:00
Abhijeet Kaur 1214505ab7 bots UI: Make "Add a new bot" tab the third tab instead of the first one. 2017-07-08 14:30:45 -07:00
Cory Lynch 4f8a2d0c57 filter.js: Make from/sender descriptions more concise. 2017-07-07 20:54:54 -07:00
Cory Lynch 2ce7a20237 search_suggestion: Support autocompleting operator names.
Fixes #5399
2017-07-07 20:54:54 -07:00
Cory Lynch 2e9ec5e958 search_suggestion: Remove unknown operand from 'is'.
Fixes #5400
2017-07-07 20:54:54 -07:00
Tim Abbott e226073d1d stream_create: Use stream_name as local variable for stream names.
This is a lot clearer than using "stream", which could refer to an
actual object.
2017-07-07 19:31:47 -07:00
Tim Abbott cbdffeda82 subscriptions: Edit copy for the new stream creation confirmation flow.
The new text is a bit simpler and clearer.

We also decrease the threshhold for this page to 50 subscribers.
2017-07-07 19:22:34 -07:00
Harshit Bansal 60e5071843 subscriptions: Confirm inviting 100+ users to a new stream.
Our current workflow for creating a new stream allows the user to
invite as many other users as they like but since there can be
mistakes in doing so, we now open a modal with a warning if the
number of invites are more than 100 just to confirm that user indeed
wanted to do this.

Fixes: #1663.
2017-07-07 19:08:04 -07:00
Tim Abbott 054f7db63b stream_create: Extract create_stream. 2017-07-07 19:07:36 -07:00
Tim Abbott 989d58fd06 stream_create: Extract get_principals. 2017-07-07 19:04:55 -07:00
Tim Abbott a4a654034c errors: Fix paths to error page art.
Previously, these only worked with certain base URLs.
2017-07-07 18:50:13 -07:00
Brock Whittaker 626c5ef55e analytics: Restyle and refactor /stats page.
This completes a major redesign of the /stats page.
2017-07-07 18:22:32 -07:00
Tim Abbott 33e8edef98 frontend: Use CSS classes, not IDs, for error_page CSS.
This makes our templates linter happy and is a bit cleaner.
2017-07-07 17:45:11 -07:00
Tim Abbott 2ccd5aa758 devtools: Document better solution for editing error pages. 2017-07-07 17:45:11 -07:00
Vaida Plankyte 1b12a9122f frontend: Redesign 4xx page. 2017-07-07 17:45:10 -07:00
Vaida Plankyte 14865770a0 frontend: Redesign 5xx error page to be pretty. 2017-07-07 17:27:21 -07:00
Tim Abbott f2379d66a2 i18n: Fix capitalization of Zulip Botserver download code. 2017-07-07 17:02:39 -07:00
Greg Price 4b765ae304 i18n: Fix a smattering of strings that weren't getting translated.
These are some strings I spotted in English when playing around a bit
with the UI set to German, where our translations are near complete.

It'd be great to have a more systematic way of spotting this kind of
omission.  Probably a fairly simple linter could catch a lot of cases.
2017-07-07 16:59:23 -07:00
Greg Price 038a2c7692 unread_ui: Wait for i18n setup before rendering.
Without this, the "Since you were last here" text got rendered in
English for me every time when I tested in German, both in dev
and on chat.zulip.org.

This brings us to 9 places we invoke `ensure_i18n`.  That seems
like a sign that there may well be more places we're still
missing, and that we should probably find a more systematic way
to make sure all our frontend UI rendering waits for translation
to be ready.  Anyway, for now, fix this one.
2017-07-07 16:59:23 -07:00
Brock Whittaker 28861c225b settings: Move streams list table filter closer to table.
The filter input was at the top of the page above a creation modal when
it should be directly above the table.
2017-07-07 16:07:58 -07:00
Brock Whittaker 7b098d77e4 settings: Change notification settings top text to tip. 2017-07-07 16:06:47 -07:00
Brock Whittaker 375b25c91f settings: Indent UI settings checkboxes. 2017-07-07 16:05:07 -07:00
Brock Whittaker 968c4e7586 settings: Change UI settings top text to tip. 2017-07-07 16:05:04 -07:00
Brock Whittaker bd664b0dd5 portico: Fix background color; remove need for bg-image classes. 2017-07-07 15:30:47 -07:00
Jack Zhang c5cdede891 portico-css: Reposition header, portico-page content, and footer. 2017-07-07 15:29:43 -07:00
Vaida d5517bae36 Delete the old zulip.com "referrals" system.
This system hasn't been in active use for several years, and had some 
problems with it's design.  So it makes sense to just remove it to declutter
the codebase.

Fixes #5655.
2017-07-07 14:59:18 -07:00
Vishnu Ks fcd944447e common.js: Don't set default password quality/length in frontend.
The min quality/length values are always available via data
attributes. So there is no point of specefying a default value
in common.js.
2017-07-07 14:48:06 -07:00
Vishnu Ks f2e6e16fe4 account-settings: Include password length and quality data attributes. 2017-07-07 14:48:06 -07:00
Vishnu Ks f273e83a85 portico: Explain why password is weak to user. 2017-07-07 14:48:06 -07:00
Vaida Plankyte 6e3308a5ac frontend: Make table headers fixed.
Tweaked by tabbott to update the users list as well.

Fixes #4746.
2017-07-07 12:18:58 -07:00
Cory Lynch 75617d07de search_suggestions: Prioritize recent huddles.
Fixes #5612. What this specifically does is that if you are
typing a group PM, this logic iterates through the possible
search suggestions for the next autocomplete. If that suggestion
contains a group PM that already exists, then prioritize it with
the most recent one on top.
2017-07-07 12:12:30 -07:00
Cory Lynch 7efba29b0c search_suggestions: Hide own name in huddle suggestions. 2017-07-07 12:12:30 -07:00
Vishnu Ks 9067890120 urls: Use POST for zerver.views.user_settings.set_avatar_backend.
The set_avatar_backend is changed from PUT to POST becuase this
is not idempotent.
2017-07-07 10:31:43 -07:00
Vishnu Ks df5df76961 urls: Use POST for zerver.views.realm_emoji.upload_emoji.
The upload_emoji endpoint is changed from PUT to POST because
this endpoint is not idempotent.
2017-07-07 10:31:43 -07:00
Vishnu Ks cf2dec539f urls: Use POST for zerver.views.realm_icon.upload_icon.
This upload_icon endpoint is changed from PUT to POST becuase
this endpoint is not idempotent.
2017-07-07 10:31:43 -07:00
Aditya Bansal c7ec7f98d9 compose.js: Use on() instead of deprecated bind(). 2017-07-07 07:50:02 -04:00
Jack Zhang 16385db3d7 landing-page.js: Implement fuzzysearch and category filtering.
On /integrations.

For scalability and people who type fast, update_integrations is
debounced; the function will postpone its execution until after
50 milliseconds after it was last invoked.
2017-07-06 15:28:50 -07:00
Jack Zhang 3f9bfd2ae2 portico: Create search/catalog visuals in /integrations.
Responsive designs for the search bar, categories sidebar,
categories dropdown, and integration tiles.
2017-07-06 15:28:50 -07:00
Jack Zhang 9d242ad7df Match size of headings on /apps with /integrations for consistency. 2017-07-06 15:28:50 -07:00
Jack Zhang 37a80d5cc4 portico: Redesign and rewrite /integrations text headings. 2017-07-06 15:28:50 -07:00
Aditya Bansal 2b14714e3b compose.js: Export send_message().
We do this in order to have the definition of send_message()
accessible to the outside world. This will help in testing
this function.
2017-07-06 17:44:27 -04:00
Abhijeet Kaur 343cb20d57 bots: Move "Add a new bot" to its own tab in settings UI.
"Add a new bot" UI used to be common in "Active bots" and
"Inactive bots". "Add a new bot" UI was below the list of all
active/inactive bots.

If there were more than a few bots was more than four, then the user
had to scroll down the entire list of bots to "Add a new bot", which
was annoying.  This new model makes the UI look cleaner as well.
2017-07-06 09:24:28 -07:00
Vaida Plankyte 0452978e6a frontend: Increase contrast of sidebar captions. 2017-07-06 11:21:52 -04:00
Vaida Plankyte 31c134aff2 settings: Improve public/private stream descriptions. 2017-07-06 11:18:32 -04:00
Brock Whittaker c4c3124d34 settings: Indent organization permissions checkboxes. 2017-07-05 17:50:04 -07:00
Brock Whittaker bd23e0a62b settings: Change bot settings top text to a tip. 2017-07-05 17:45:59 -07:00
Brock Whittaker 62cc8b658e settings: Change stream list top text to a tip. 2017-07-05 17:45:52 -07:00
Brock Whittaker 1b616d761e settings: Fix email input whitespace issue.
This fixes the issue where the email has whitespace potentially in the
input due to the HTML formatting.
2017-07-05 17:45:30 -07:00
Harshit Bansal efc2df168c subs: Fix the autocomplete suggestions while adding subscribers.
Earlier, the autocomplete was also showing the emails of the users who
were already subscribed to the stream.

Fixes: #4028.
2017-07-05 13:22:07 -07:00
Harshit Bansal 598535717b emoji_picker: Extract `add_scrollbar()` function.
Calling this function with  an element will cause a `perfectScrollbar` to
be added to it.
2017-07-05 13:14:40 -07:00
Harshit Bansal a6cd460f72 emoji: Rename `emoji.realm_emojis` to `emoji.all_realm_emojis`. 2017-07-05 13:02:41 -07:00
Harshit Bansal 29ff36cd2a reactions: Don't send add/remove requests for deactivated realm emojis.
Eventually, we'll want to support unreacting to deactivated realm
emoji, but for now the issues around name conflicts mean we can't
really support that.
2017-07-05 13:02:20 -07:00
Harshit Bansal c4ec9523fc frontend: Make sure deactivated emojis don't appear for use anywhere.
Deactivated emojis should not appear at any of the following places for
use:
1: Emoji pickers.
2: Composebox autocomplete.
3: Custom emoji settings page.
2017-07-05 13:00:14 -07:00
Harshit Bansal 9e40f063d6 markdown: Use `active_realm_emojis` instead of `realm_emojis`.
We should use `active_realm_emojis` instead of manually checking for
deactivated emojis in `realm_emoji` dict.
2017-07-05 12:05:10 -07:00
Harshit Bansal 90f04062e7 emoji.js: Add `active_realm_emojis` dict.
This dict will hold all the realm emojis which have not been deactivated.
2017-07-05 12:05:10 -07:00
Vaida Plankyte 9b279072df notifications.js: Use the singular 'they' pronoun. 2017-07-05 09:27:44 -07:00
Vaida Plankyte 5a3d3ae291 narrow.js: Use the singular 'they' pronoun. 2017-07-05 09:27:43 -07:00
David Coleman 77dc5df56a uploads: Display year in attachments UI upload timestamp.
Modified timerender.js absolute_time() to include the
year in the returned time stamp string.

Fixes #5600.
2017-07-04 16:13:20 -07:00
Franziska von der Goltz 98847937f4 realm: add mandatory topic setting on org level.
Lets organizations require users to specify a topic the discussion.

Fixes: #5164.
2017-07-04 14:09:21 -07:00
Cory Lynch b13265d135 util: Remove execute_early.
This function was removed in favor of loading everything in
ui_init.js. The asynchronous nature of jQuery 3 document-ready
events may cause an undesirable order in which these are executed.
2017-07-04 13:54:33 -07:00
Cory Lynch effd7ef41f server_events: Move initialization to ui_init.js. 2017-07-04 13:54:33 -07:00
Cory Lynch e33b178054 message_store: Move initialization to ui_init.js. 2017-07-04 13:54:33 -07:00
Cory Lynch 25be3a402d message_fetch: Move initialization to ui_init.js.
This involves modifying a casper test, because now
upon registration, there is one unread message.
2017-07-04 13:54:33 -07:00
Brock Whittaker 7d005919ca portico: Improve detection of URL in product page JS.
The product page JS detects the page to run small bundle functions
but does not work correctly with language prefixes in the pathname,
such as /es/apps, so this properly detects that.

Fixes #5635.
2017-07-03 10:22:38 -07:00
Harshit Bansal d3d6712fa3 left-sidebar: Update the size of the scrollbar after narrowing to a stream. 2017-07-03 09:53:41 -07:00
Cory Lynch 30c7629212 Change code block typeahead to only sometimes close fence.
Fixes #5556.
Some tests needed to be moved around to make sure the
stubbing wouldn't break future tests.
2017-07-03 11:05:18 -04:00
Cory Lynch 802ea9abf5 Refactor to delete mousewheel.js.
This old third party library added support
for a "mousewheel" event to detect scrolling.
However, it is not compatible with jQuery 3
and is obsolete now that there is a standard
"wheel" event that accomplishes the same thing.
2017-07-03 11:04:20 -04:00
Umair Khan 90ec20b4e4 Remove English translations.json from source control.
This commit deletes the file from git repo and adds the
file to gitignore.

Fixes #5640
2017-07-03 10:10:43 -04:00
Cory Lynch f848ffc03b Patch spectrum.js for jQuery 3 compatibility.
This includes removing deprecated functions
(namely bind/unbind/delegate) and fix an aspect
of event handling that breaks in the new jQuery.
2017-07-02 07:59:24 -04:00
Cory Lynch 10fa6b75f9 Patch filedrop for jQuery 3 compatibility.
This entails removing the use of jQuery.event.props,
which has been removed from jQuery 3.
2017-07-02 07:59:24 -04:00
Harshit Bansal 4cb8ac100a emoji: Fix the title and alt text for unicode emojis.
Unicode emojis when rendered should display canonical short name.
Similarly, the alt text should be of the format `:<short_name>:`.
For both of these we currently display the actual unicode symbol.
As some systems don't have the fonts necessary for displaying them
properly, they are rendered as empty square blocks. This commit also
ensures that the markup generated for emoji generated by canonical
name and by an unicode emoji is same.

Fixes: #5555.
2017-07-01 11:14:24 -07:00
Cory Lynch 8abbb6d781 search: Remove in:all token from suggestions. 2017-07-01 12:19:52 -04:00
Steve Howell 0f4b7496e1 Use _.each to set page_params values for update_dict events. 2017-07-01 08:50:50 -04:00
Aditya Bansal 28ec32d757 compose.js: Use get_subscriber_count in show_all_everyone_warning(). 2017-06-30 19:57:14 +05:30
Umair Khan 4f33a650af i18n: Use double lowdash instead of handlebars.
We do not allow handlebars within {{#tr}}{{/tr}}.
2017-06-30 10:12:31 -04:00
Steve Howell ef815e9e79 Remove unused channel.abort_all(). 2017-06-30 09:48:04 -04:00
Aditya Bansal 2be5046144 compose.js: Use stream_data.get_subscriber_count in message mentions.
In this commit we basically start using the get_subscriber_count
function from stream data to get subscriber count.
2017-06-29 10:34:47 -04:00
Aditya Bansal 7531a85c4d stream_data: Add get_subscriber_count() function. 2017-06-29 10:34:47 -04:00