Commit Graph

2762 Commits

Author SHA1 Message Date
Brock Whittaker 14b471a29f Stream Name to Content Editable.
This changes the stream name component to be content editable.
2017-01-27 12:05:08 -08:00
Brock Whittaker eaeb0e32a7 Stream Description Content Editable Piece.
This makes the stream description a content-editable piece.
2017-01-27 12:04:37 -08:00
Tim Abbott 82b3f7f661 help: Workaround weird wrapping bug with CSS. 2017-01-27 11:50:12 -08:00
Brock Whittaker 8dfd5d7134 Add ordered list styling for /help/ pages.
This adds a styling that puts the numbers in a Zulip brand green bubble
with white text for the number.
2017-01-27 11:41:29 -08:00
Steve Howell ddf17abf5c Prevent dragging of Click/Unclick-all links.
We have links when to create a stream to "Click all" or
"Unclick all" for checkboxes.

In FF it's easy to accidentally start dragging these links,
which has no real value (since their href is uninteresting)
and is confusing.

Perhaps these should just be buttons.
2017-01-27 10:25:18 -08:00
Brock Whittaker 4ac12745cd Add capped height to description box.
This adds a capped height of 70px  to the description box (same as the
images) and then uses a gradient to fade out any text that may be near
the bottom.
2017-01-26 22:02:16 -08:00
Brock Whittaker 214b011bb5 Add subscribe button inside subscription settings.
This adds a subscribe/unsubscribe button inside the subscription
settings container for a stream right next to the stream name.
2017-01-26 21:02:57 -08:00
Brock Whittaker bcdd326b65 Change data-stream-name referencess to data-stream-id.
This changes all references of the data-stream-name to more
predictable data-stream-id references in the subscriptions overlay.
This prevents unescaped characters from breaking selectors and stream
renames from breaking selectors.
2017-01-26 17:32:35 -08:00
Harshit Bansal b4186fdfdd views/realm_aliases.py: Use domain instead of id as handle for RealmAlias.
We need to make the change for the API, and the next commit introduces a
unique_together constraint on (realm, domain) anyway.
2017-01-26 17:24:25 -08:00
Harshit Bansal 06cc306d00 Add stricter domain validation and improve error messages. 2017-01-26 17:24:25 -08:00
Harshit Bansal 0ff22f68b3 settings.css: Make long domains list wrap properly in admin settings. 2017-01-26 17:24:25 -08:00
Harshit Bansal f0e5380ff1 handlebar templates: Rename admin_alias_list to admin-alias-list. 2017-01-26 17:24:25 -08:00
Harshit Bansal 38c50a81ad admin settings: Restyle realm alias modal. 2017-01-26 17:24:25 -08:00
Harshit Bansal ec02599336 admin.js: Simplify wording around the restricted to domain setting.
Remove stringify_list_with_conjunction, which would have been tough for
i18n, and make it clear that the setting only affects new users.
2017-01-26 17:24:25 -08:00
Brock Whittaker 1a63f15382 Only run popovers.hide_all() once on scroll start.
This function throttles the function and only allows the on scroll
event to fire the popovers.hide_all() function once on scroll start
(determined as > 250ms after the last scroll event fire on .app.

This should resolve some performance issues surrounding constantly
firing queries and potentially changing the document tree.
2017-01-26 13:59:14 -08:00
Tim Abbott b52f606c3a Revert "deps: Upgrade and move `jquery-mousewheel` from `static/third` to `npm`"
Apparently, the updated version of this has a serious scrolling
performance problem in the left sidebar that basically makes scrolling
in that area unusable.

This reverts commit b683b2d3c3.
2017-01-26 13:42:00 -08:00
Steve Howell f7c3765c77 Make "Copy from Stream" more transparent/flexible.
This change makes it so that when you are creating a stream
and use "Copy from Stream", the UI will immediately
check/uncheck the user checkboxes that correspond to the
stream's subscribers.

In concrete terms this allows Cordelia to create a new
stream call "Paris" that has all the "Verona" subscribers
except for Hamlet.

It also makes it so that when you go to create the stream,
the response is a little quicker, because we don't have to
iterate the streams.

Finally, it removes an odd quirk from the original design,
where if you clicked on Denmark but then collapsed the
streams, we wouldn't actually add the Denmark subscribers
to your new stream.

The current UI will still be slightly intuitive for people, as
I think checkmarks don't really make sense here.  What we
really want are Add/Remove links (or buttons) next to each
of the existing streams.
2017-01-26 10:24:15 -08:00
Steve Howell 8cfb9e427f Simplify the "Copy from Stream" feature.
I moved the UI element for "Copy from Stream" to be above
the list of users, including the filter box and check/uncheck
links, which no longer get applied to the list of streams.

The reason I no longer apply the filter to streams is...

    * It's kind of confusing to have filters apply to both
      streams and users.  There should be separate filters for
      them, and I will try to resuscitate that feature later.
    * The code to filter the streams was doing a sketchy
      regex operation against user-inputted data. (`match()`)
    * We want to use the same stream filtering code as the
      right sidebar uses.
    * It improves performance for the common case that you
      are filtering users.

The reason I no longer apply the check-all/uncheck-all actions
to streams is that it would be crazy to select all your streams
to copy users from, and it would be expensive/slow for large
realms, and it would likely be done by accident if somebody was
trying to manage individual users.

Finally, the check-all/uncheck-all actions have been scoped
to the users filtered by the text box, so I moved the links
under the text box to make that hopefully more clear to users.
2017-01-26 10:24:15 -08:00
Steve Howell 5c091437da Improve empty user filter handling for stream creates.
If we blank out the user filter for users (by hitting backspace,
for example), then we now have short-circuit logic to display all
the user checkboxes.  (The user-facing behavior doesn't change here,
but now we don't have to process all the strings.)
2017-01-26 10:24:15 -08:00
Steve Howell 88870c316f Use Dict[user_id] in people.filter_by_search_terms.
The function people.filter_by_search_terms() used
to return a JS object with emails as keys to represent
a set of users.  Now we return a Zulip Dict() object
with user_ids as keys.
2017-01-26 10:24:15 -08:00
Steve Howell beb3782e6c Speed up user filtering during stream creation.
The old implementation was O(N squared) for N = number of
users due to its using an O(N) selector inside of a loop.

Now we simply iterate through all the checkboxes and turn them
on or off based on a bunch of O(1) operations.
2017-01-26 10:24:15 -08:00
Raghav Jajodia fc965eb5f6 admin: Add No-change-made message.
A 'no changes made' message is displayed whenever save-changes button
is clicked, albeit no changes are made in the admin page.
2017-01-25 23:10:14 -08:00
Sampriti Panda 4e78ca32de register: Improve styling for frontend errors 2017-01-24 13:39:43 -08:00
Sampriti Panda 3c3902471b register: Improve styling for server-side errors 2017-01-24 13:39:43 -08:00
Eitan Adler 0ce29d7ad6 Remove some some duplicate words in copy. 2017-01-23 23:15:04 -08:00
Tim Abbott 4e171ce787 lint: Clean up E126 PEP-8 rule. 2017-01-23 22:06:13 -08:00
Steve Howell 01aad70910 bug fix: Fix recent regression with at-mentioning.
One of my commits from yesterday erroneously set the
"mentioned" flag on messages that weren't mentioning
the current user, so you would get the pink/salmon
background when you sent at-mentions to other people.

Now we check the user_id before setting the flag.
2017-01-23 16:42:43 -08:00
Tim Abbott a3b51bb9d2 Fix JS error syncing starred out-of-view messages.
Previously, if one starred very old messages (or ones in a stream
you're not subscribed to), your other open browsers would likely throw
an exception syncing the message flag.
2017-01-22 20:39:05 -08:00
Tim Abbott c082564c66 reload: Catch exceptions aborting pending AJAX requests.
It's probably a bug that this throws exceptions sometimes, but it's
not consistently reproducible (or maybe, browser dependent?), and it
isn't really a problem to fail to abort some requests as part of the
page reload process; the abort was just there to make sure as little
as possible is happening so we can garbage-collect effectively.
2017-01-22 20:23:37 -08:00
Raghav Jajodia dd4ea5e56e Fix bot edit cancel button updating name anyway.
Apparently, the bot cancel button was incorrectly tagged with
"submit", and thus ended up saving the changes anyway!

Fixes #3412.
2017-01-21 22:47:29 -08:00
Steve Howell 0fc2f18c1d bug fix: Fix already-rendered messages for avatar updates.
Most of the magic happens in message_live_update.update_avatar().

The prior code was buggy, as it was using person.id instead of
person.user_id, and it was not setting the image resolution.
2017-01-21 21:45:12 -08:00
Steve Howell f75af94984 bug fix: Prefer person.avatar_url to message.avatar_url.
This change is a partial bug fix for avatar live updates.
It makes it so that we prefer the person.avatar_url to
the message.avatar_url when rendering messages.  Our live
update code was already populating person.avatar_url, but
we were ignoring it until now.

This commit does not affect messages that were already
rendered with the old url.
2017-01-21 21:45:12 -08:00
Steve Howell e7e2e388c5 Move small_avatar_url() to people.js. 2017-01-21 21:45:12 -08:00
Steve Howell 4eb1a8f07d Extract user_events.js.
This moves people.update() to user_events.person().

We now also use user_id as the key for finding person
objects in people.js (instead of email).
2017-01-21 21:45:12 -08:00
Steve Howell 601bad554e bug fix: Limit updating full names in admin screens.
If we get a realm_user update for a user that is **not**
changing their full name, we no longer call
admin.update_user_full_name().

This was probably a fairly minor bug.
2017-01-21 21:45:12 -08:00
Steve Howell 28164d68b4 Extract people.set_full_name(). 2017-01-21 21:45:12 -08:00
Steve Howell ee00d848b9 refactor: Eliminate use of page_params.fullname.
We now use people.my_full_name().
2017-01-21 21:45:12 -08:00
Steve Howell 53308b49b2 refactor: Remove last uses of page_params.email in JS code.
Earlier commits removed all uses of page_params.email outside
of people.js, and it turns out we have page_params.user_id, so
we don't even need page_params.email for seeding the data.
2017-01-21 21:45:12 -08:00
Steve Howell 9d16993011 refactor: Use people.my_current_email() in subs.js. 2017-01-21 21:45:12 -08:00
Steve Howell 58fb9e45e4 Fix flaw when subscribing using "Add" button.
When we subscribe ourselves using the "Add" button in the
right pane of "Stream settings", we now call
stream_data.subscribe_myself(), which properly updates our
data structures (more than just sub.subscribed) and prevents
some console errors when you un-subscribe yourself using
the check mark.
2017-01-21 21:45:12 -08:00
Steve Howell f476f5be7d refactor: Add early return to subs.mark_subscribed().
The code now handles the `sub.subscribed` condition up front to
make the code less nested.
2017-01-21 21:45:12 -08:00
Steve Howell 0ccb2e38f8 refactor: Use people.my_current_email() in settings.js. 2017-01-21 21:45:12 -08:00
Steve Howell 2af0302ed0 refactor: Use people.my_current_email() in search_suggestion.js. 2017-01-21 21:45:12 -08:00
Steve Howell 038164ff04 Remove unneeded data param in pointer.fast_forward_pointer(). 2017-01-21 21:45:12 -08:00
Steve Howell 2c684bf39f refactor: Use people.my_current_email() in filter.js. 2017-01-21 21:45:12 -08:00
Steve Howell e10c6719d9 refactor: Use people.my_current_email() in echo.js. 2017-01-21 21:45:12 -08:00
Steve Howell 8c6dab9750 Use data-user-id for mention buttons in local echo.
The local echo code now marks up mention buttons with user ids
instead of email.  Our code in message_list_view.js deals with
either the old style or the new style of markup now to determine
which mention buttons need to be highlighted.

As part of this commit we extract mention_button_refers_to_me().
2017-01-21 21:45:12 -08:00
Steve Howell efdcfcaea2 Clean up message flag handling for mentions in echo.js.
After this change, if a user sends a message with at-mentions, the
local echo code will add the `mentioned` flag to 'message.flags`
as part of the callback to build the HTML, rather then doing it
hackily during a post-processing step.
2017-01-21 21:45:12 -08:00
Steve Howell 894282222a refactor: Move echo.userMentionHandler code.
The userMentionHandler callback now closes on `message` inside
of echo.apply_markdown().  This sets the stage for the next commit.
2017-01-21 21:45:12 -08:00
Steve Howell 2539ed0563 refactor: Have echo.apply_markdown take message as param.
The function echo.apply_markdown() actually applies markdown to
a message now, instead of simply computing markdown.  Passing
in the outer `message` object will allow us to avoid some hacky
post-processing of messages after rendering, because we can
have our parser callbacks update message on the spot in a more
atomic fashion.
2017-01-21 21:45:12 -08:00
Steve Howell ee8502ef0e refactor: Use people.my_current_email() in custom_markdown.js. 2017-01-21 21:45:12 -08:00
Steve Howell 0b9a3251dd refactor: Use people.my_current_user_id() in stream_data.js.
In stream_data.unsubscribe_myself(), we no longer look at
page_params.email.
2017-01-21 21:45:12 -08:00
Steve Howell 5bce806c4e refactor: Introduce people.my_current_email().
This commit doesn't change any behavior yet, but it starts us
down the road of deprecating page_params.email and allowing
people.js to control all access to the current user's email,
which will be important for email changes.
2017-01-21 21:45:12 -08:00
Steve Howell 73125e2718 refactor: Move is_current_user() to people.js.
We no longer have it in util.js, because we will
want to encapsulate this better for upcoming commits
related to email changes.
2017-01-21 21:45:12 -08:00
Tomasz Kolek cc13104780 Add Zapier integration. 2017-01-20 10:43:18 -08:00
Rafid Aslam b683b2d3c3 deps: Upgrade and move `jquery-mousewheel` from `static/third` to `npm`
- Remove `jquery-mousewheel` from `static/third` and fetch it from npm.
- Upgrade `jquery-mousewheel` to 3.1.6.
- Bump up the `PROVISION_VERSION` to 4.5.
- Change some js code to comply with this `jquery-mousewheel` version.

Part of #1709.
2017-01-19 17:24:53 -08:00
Rafid Aslam 10a8c3d2ae deps: Move `xdate` from `static/third` to `npm`
- Remove `xdate` from `static/third` and fetch it from `npm`.
- Bump up the `PROVISION_VERSION` to 4.3.

Part of #1709.
2017-01-19 17:07:55 -08:00
Rafid Aslam 84e802422e deps: Upgrade and move `underscore.js` from `static/third` to `npm`
- Remove `underscore.js` from `static/third` and fetch it from `npm`.
- Upgrade `underscore.js` to 1.8.3.
- Bump up the `PROVISION_VERSION` to 4.2.

Part of #1709
2017-01-19 17:07:45 -08:00
Rafid Aslam 911fcd3831 deps: Upgrade and move `codepointat` from `static/third` to `npm`
- Remove `codepointat` from `static/third` and fetch it from `npm`.
- Upgrade `codepointat` to 0.2.0.
- Bump up the `PROVISION_VERSION` to 4.1.

Part of #1709.
2017-01-19 17:07:32 -08:00
Rafid Aslam 8ac81d2722 deps: Upgrade and move `winchan.js` from `static/third` to `npm`
- Remove `winchan.js` from `static/third` and fetch it from `npm`.
- Upgrade `winchan` to 0.2.0.
- Bump up the `PROVISION_VERSION` to 4.0.

Part of #1709.
2017-01-19 17:07:21 -08:00
Rohith Asrk 213b8cef0c Bootstrap.js: Fix null is not an object error. 2017-01-19 16:28:17 -08:00
Steve Howell 477b4af39d Direct new users to the "new members" stream.
If a new user is auto-subscribed to a stream called "new
members", we will automatically narrow them to that stream
after the tutorial.  Otherwise, we fall back to the code's
previous behavior, which is to direct them to the notifications
stream (often called "announce").

This is somewhat experimental.  If we try this concept out on
the public Zulip realm and it works well, we will create a nice
realm setting for the "new members" stream.
2017-01-19 14:58:31 -08:00
Steve Howell cd6115c24d Make nicer slugs for "sender" narrows.
Slugs are now like our "pm-with" slugs:

    narrow/sender/3-cordelia
2017-01-19 14:54:50 -08:00
Steve Howell 1ae3feac3e Use blueslip.warn, not error, for unknown emails.
In people.emails_strings_to_user_ids_string, we just warn
for bad emails going forward.

Users can enter bad emails into the search location bar,
for example, and that causes us to compute a browser hash,
which in turn uses this function.

(It's possible that we should adjust the search code not
to compute hashes for narrowing when the narrow doesn't
make sense, but that could be a non-trivial fix.)
2017-01-19 14:54:50 -08:00
Brock Whittaker 2ed598c619 Change actually_filter_streams to only run if subs overlay is open.
This change makes it such that the stream filtering operation will only
run if the subscription overlay is visible, preventing any issues with
the lack of existence of elements or processing something that users
won’t be able to see.

Fixes #3388.
2017-01-19 14:26:36 -08:00
Brock Whittaker eccca8fc61 Unify subs modal closing with subs.close().
The new subs.close() function should unify all closing events of the
subscriptions overlay. The function also now tracks whether the
subscription overlay is in a closed or open state.
2017-01-19 14:23:25 -08:00
Yago González ade5e762fb integrations: Add documentation for OpenShift. 2017-01-17 16:04:55 -08:00
Rishi Gupta 3a72b5cda9 analytics: Rename messages_sent_to_realm.
Several additional stats in the pipeline that also relate to messages sent
to the realm.
2017-01-17 15:54:57 -08:00
Steve Howell c0281498e6 group PMs: Fix hrefs in right sidebar for groups.
For the "GROUP PMs" part of the right sidebar, we now have
accurate hrefs when you hover over the groups or right-click
to copy links or open links in new tabs.
2017-01-17 15:13:49 -08:00
Steve Howell c94b8c39d0 Add narrow.huddle_with_uri() convenience method.
This will be used in a subsequent commit.
2017-01-17 15:13:49 -08:00
Steve Howell d757f840dd Make nicer slugs for "pm-with" narrows.
The slugs for PM-with narrows now have user ids in them, so they
are more resilient to email changes, and they have less escaping
characters and are generally prettier.

Examples:

    narrow/pm-with/3-cordelia
    narrow/pm-with/3,5-group

The part of the URL that is actionable is the comma-delimited
list of one or more userids.

When we decode the slugs, we only use the part before the dash; the
stuff after the dash is just for humans.  If we don't see a number
before the dash, we fall back to the old decoding (which should only
matter during a transition period where folks may have old links).

For group PMS, we always say "group" after the dash. For single PMs,
we use the person's email userid, since it's usually fairly concise
and not noisy for a URL.  We may tinker with this later.

Basically, the heart of this change is these two new methods:

    people.emails_to_slug
    people.slug_to_emails

And then we unify the encode codepath as follows:

    narrow.pm_with_uri ->
    hashchange.operators_to_hash ->
    hashchange.encode_operand ->
    people.emails_to_slug

The decode path didn't really require much modication in this commit,
other than to have hashchange.decode_operand call people.slug_to_emails
for the pm-with case.
2017-01-17 15:13:49 -08:00
Steve Howell cc7ccb56d4 Revert "Fix inconsistent spacing in message actions popover."
This reverts commit 1f13a991f4.

Moving to tables makes it so that we can't navigate the menu
with the keyboard.

Fixes #3352
2017-01-17 14:40:49 -08:00
Tommy Ip c407919db3 Add /authors page.
Contributor visualization showing the avatar, user name and number
of commits for each contributors. The JSON data would be updated
upon deployment, triggered by the `update-prod-static` script.
2017-01-17 13:35:55 -08:00
Tim Abbott 9bb390133b admin: Fix emoji creation.
f3b9abee14 apparently failed to update
the frontend.
2017-01-17 00:21:32 -08:00
Tim Abbott 9821b3ebef reactions: Fix JS error for not-yet-fetched messages. 2017-01-17 00:10:41 -08:00
Mahim Goyal 1f13a991f4 Fix inconsistent spacing in message actions popover.
This was implemented by changing the format of the popover from a list
to a table.

Fixes #3010.
2017-01-16 20:10:06 -08:00
Steve Howell c36932d29e Fix unread counts display when pinning/un-pinning.
The fix works by having build_stream_sidebar_row()
automatically update its own unread count when we
build a sidebar row.  Currently we rebuild sidebar
rows when we pin/unpin rows.

As an aside, we currently don't really need to rebuild
the sidebar row when we pin, since we're only moving
the DOM, not altering it.  But this may change in the
future, so I decided to leave that code path in place.
We may decide to do things in the future like showing
pinned streams with bolder fonts or special icons or
whatever.

Fixes #2902
2017-01-16 20:07:08 -08:00
Steve Howell 9616d91bdd minor: Move update_count_in_dom() higher in module.
This change will prevent a lint error in the subsequent
change.  This just moves code in the file.
2017-01-16 20:07:01 -08:00
Steve Howell 9806d429af Add unread.num_unread_for_stream() function. 2017-01-16 20:07:01 -08:00
Steve Howell 4597fdae27 refactor: Change params to update_count_in_dom().
We now just pass in unread_count_elem and count to
update_count_in_dom(), and it does the work of finding
count_span and value_span now.
2017-01-16 20:07:01 -08:00
Raghav Jajodia 4d65f9d6cf Fix left sidebar rendering issue with some zoom levels.
Fixes #3296.
2017-01-16 19:45:33 -08:00
Brock Whittaker 431a69a769 Change filtered/desaturated checkbox to SVG for performance.
Due to the fact that getComputedValue is called when using filter and
opacity attributes, it is much more efficient to use an SVG that has a
changing fill color rather than something that may be interpreted by
browsers as a layout change that requires layout recalculation.

This should result in noticeably smoother and more responsive :hover
events for the streams with greyed checkmarks.
2017-01-16 18:26:09 -08:00
Tim Abbott 9be76e91dd Fix capitalization in 'Add a new bot'. 2017-01-16 18:00:10 -08:00
Tim Abbott c4836bca44 Rename titles for 'Zulip Labs' to 'Experimental settings'. 2017-01-16 18:00:10 -08:00
Tim Abbott 86ddd2277e Fix capitalization in 'Deactivate your account'. 2017-01-16 18:00:10 -08:00
Tim Abbott 9921f3279f Fix capitalization in 'Deactivate account'. 2017-01-16 18:00:10 -08:00
Tim Abbott 2619ee666e Fix capitalization in 'Authentication methods'. 2017-01-16 18:00:10 -08:00
Tim Abbott b68a970018 Fix capitalization and grammar in 'Add a new filter'. 2017-01-16 18:00:10 -08:00
Tim Abbott 1a16c9bd53 Fix capitalization and grammar in 'Delete streams'. 2017-01-16 18:00:10 -08:00
Tim Abbott 6bc1653333 Fix capitalization in 'Create bot'. 2017-01-16 18:00:10 -08:00
Tim Abbott 15b718e2d1 Fix capitalization in 'Your bots'. 2017-01-16 18:00:10 -08:00
Tim Abbott 450ce61e6c Fix internationalization in streams page buttons/labels. 2017-01-16 18:00:10 -08:00
Tim Abbott abd4767b50 Fix capitalization in 'Allowed domains'. 2017-01-16 18:00:10 -08:00
Tim Abbott ee0e4c88bd Fix capitalization in 'Add new default stream'. 2017-01-16 18:00:10 -08:00
Tim Abbott 45dc2d599c Fix capitalization in 'Add a new emoji'. 2017-01-16 18:00:10 -08:00
Tim Abbott 8dc96166fd Fix capitalization in 'Your account'. 2017-01-16 18:00:10 -08:00
Tim Abbott 37e7898303 Fix capitalization in 'Default streams'. 2017-01-16 18:00:10 -08:00
Tim Abbott d38277b095 Fix capitalization in 'New alert word'. 2017-01-16 18:00:10 -08:00
Tim Abbott 572e3565fb Fix capitalization in 'Add/Custom Alert Word(s)'. 2017-01-16 18:00:10 -08:00
Tim Abbott 1703c0c897 Fix capitalization in 'Select default language'. 2017-01-16 18:00:10 -08:00
Tim Abbott 3667ca8114 Fix capitalization in 'Default language'. 2017-01-16 18:00:10 -08:00
Tim Abbott e1e7788e67 Fix capitalization in 'Deactivated users'. 2017-01-16 18:00:10 -08:00
Tim Abbott ab75b41a6f Fix capitalization in 'Save changes'. 2017-01-16 18:00:10 -08:00
Tim Abbott 2bbad279ae Fix capitalization in 'Display settings'. 2017-01-16 18:00:10 -08:00
Tim Abbott 0667ae5d26 Fix capitalization in 'Change password'. 2017-01-16 18:00:10 -08:00
Tim Abbott 56bc421a6f Rename 'Filter Streams' to 'Filter streams'. 2017-01-16 18:00:10 -08:00
Tim Abbott 284931967a Rename 'All Streams' to 'All streams'. 2017-01-16 18:00:10 -08:00
Tim Abbott d5f718a3e7 Rename 'Manage Streams' to 'Manage streams'. 2017-01-16 18:00:10 -08:00
Tim Abbott dd8fb093c8 Rename 'Stream Settings' to 'Stream settings'. 2017-01-16 18:00:10 -08:00
Sampriti Panda b4b6516ca0 narrow: Fix narrowing errors for topics with name 'home'.
Added a `.home-link` class to 'Home' links to separate them
from topic links with the name 'home'

Fixes #3340
2017-01-16 09:46:05 -08:00
synicalsyntax 83946e29ec docs: Conform *View information about a message* doc to documentations styling guidelines. 2017-01-15 11:04:42 -08:00
JefftheBest1 69f9c300b8 ui: Change grey to gray in ui.js comment. 2017-01-14 12:36:06 -08:00
Sampriti Panda 196cf4367b urls: Move /messages/render to POST endpoint 2017-01-13 16:11:51 -08:00
Rafid Aslam 38331aa81a right-sidebar: Remove border on the top of user list
Remove the border on the top of user list, especially on the top
of "USERS" word. The border is moved to bottom of feedback section.
2017-01-13 10:25:28 -08:00
Tim Abbott b6476fdd81 stream creation: Disable autocomplete on filter text box. 2017-01-12 22:53:05 -08:00
Robert Hönig 89a64de986 De-dup "outside_viewport" notifications on different tabs.
Pass down 'local_id' through functions that handle notifications for messages
that are sent locally. If 'local_id' is undefined, the message was not sent in
the respective tab, so no "outside_viewport" notification should be displayed.
This fixes #1783.
2017-01-12 17:08:18 -08:00
Katy310 7206685dae Make more streams visible when window is narrow.
When user list displays on the left, the maximum height of the
<code>stream-filters-container</code> is determined by the function
<code>confine_to_range(lo,val,high)</code>. By changing the value of
<code>lo</code> to 80, the <code>stream-filters-container</code>
resizes to 80 px instead of 40 px.

Fixes #2510.
2017-01-12 16:53:45 -08:00
brockwhittaker b3b361bae0 Add onhover grey checkmarks for unsubscribe streams.
This adds styling such that when you hover over a stream in the streams
list and you are not subscribed, you will see a faint grey checkmark
that serves as a target of where to click so you can subscribe to a
stream.
2017-01-12 16:47:32 -08:00
brockwhittaker 7762614482 Add deep link to unsubscribed streams list.
This adds a deep link behind a “+” icon above the streams list on the
left-sidebar which opens the subscriptions page and then also toggles
the tabs to go to the unsubscribed stream list.
2017-01-12 16:47:32 -08:00
Anirudh Jain 705ae523db emoji picker: Add emoji next at cursor instead of end of message.
Simplified by tabbott.

Fixes: #3155
2017-01-12 15:31:18 -08:00
Rafid Aslam d3ee53bdef Move endpoints to use stream_id instead of stream_name in their URLs
- Change `stream_name` into `stream_id` on some API endpoints that use
`stream_name` in their URLs to prevent confusion of `views` selection.

For example:
If the stream name is "foo/members", the URL would be trigger
"^streams/(?P<stream_name>.*)/members$" and it would be confusing because
we intend to use the endpoint with "^streams/(?P<stream_name>.*)$" regex.

All stream-related endpoints now use stream id instead of stream name,
except for a single endpoint that lets you convert stream names to stream ids.

See https://github.com/zulip/zulip/issues/2930#issuecomment-269576231

- Add `get_stream_id()` method to Zulip API client, and change
`get_subscribers()` method to comply with the new stream API
(replace `stream_name` with `stream_id`).

Fixes #2930.
2017-01-12 15:23:31 -08:00
Rafid Aslam ead32b179c Add missing `encodeURIComponent()` on some API uses
Fixes #2930.
2017-01-12 15:23:31 -08:00
Brock Whittaker de6c7ad360 Fix Emoji Popover being leaked in certain circumstances.
Fixes the leaked popover issue where a popover for a dead element was
unable to be removed because it wasn’t connected to a parent that
existed in the DOM. Now they are cleaned up on every call to
popovers.hide_all().

Fixes: #3077.
2017-01-12 15:06:38 -08:00
synicalsyntax b3cc10377e docs: Conform *Restrict user email addresses to certain domains* doc to documentation styling guidelines. 2017-01-12 14:11:49 -08:00
synicalsyntax 7c57c84eb2 docs: Conform *Set notifications for a single stream* doc to documentation styling guidelines. 2017-01-12 14:11:49 -08:00
synicalsyntax be26c4e67e docs: Conform *Use Zulip on Android* doc to documentation styling guidelines. 2017-01-12 14:11:49 -08:00
synicalsyntax 2505a1be5c docs: Conform *Signing out* doc to documentation styling guidelines. 2017-01-12 14:11:49 -08:00
synicalsyntax 57d2dd9d44 docs: Conform *Deactivate your account* doc to documentation styling guidelines. 2017-01-12 14:11:49 -08:00
polypmer 2c58af9305 Check and Uncheck All only on visible (filtered) users.
When filtering users in the new stream form, check all
and uncheck all will only effect those users who are filtered,
visible in the dom.

Includes a Casper test for the new condition.
2017-01-12 13:58:54 -08:00
brockwhittaker 3cb0db586d Change the "top of messages" logo to SVG from PNG.
This changes the logo that sits at the top of the messages to an SVG
rather than a PNG used as the current navbar logo that is filtered to
be grayscale.

This fixes a significant performance regression that had been caused
by adding that logo to the top of the feed.

Thanks to @rishig for generating the SVG!
2017-01-12 10:36:29 -08:00
K.Kanakhin 9fecd85e4a user-docs-images: Remove unnecessary user docs images.
Fixes #3070.
2017-01-12 10:02:26 -08:00
Bojidar Marinov bc056488b6 docs: Edit alert-words.md to conform to style guide. 2017-01-12 08:52:19 -08:00
Bojidar Marinov c0fd0e3ee3 docs: Edit configure-desktop-notifications.md to conform to style guide. 2017-01-12 08:52:19 -08:00
JefftheBest1 f0afa3e8df Fixed typos with receive 2017-01-12 04:52:44 -08:00
Steve Howell 3ee733eb51 Extract encode_operand/decode_operand in hashchange.js.
These are just one-liners for now, but they will set us up
to do different encodings for different narrows.
2017-01-11 18:31:17 -08:00
Steve Howell 030c6649ae tests: Improve hashchange coverage for operators.
Test round tripping of operators in hashchange.js.
2017-01-11 18:31:17 -08:00
Sampriti Panda e666a62c6a search: Extract 'Sent by me' suggestion logic into separate method.
This also adds a nice test suite for it.
2017-01-11 16:30:07 -08:00
Sampriti Panda c613e510ed search: Add autocomplete for 'from' operator.
Fixes #2932.
2017-01-11 16:29:58 -08:00
Jackson a9235e4ccb integrations: Add documentation for Papertrail. 2017-01-11 16:24:30 -08:00
Jackson 12359f6876 docs: Edit upload-and-share-files.md to conform to style guide. 2017-01-11 15:35:56 -08:00
Jackson 174b925875 docs: Edit add-emoji.md to conform to style guide 2017-01-11 15:33:26 -08:00
Jackson 7fcf64a18a docs: Edit preview-your-message-before-sending.md to conform to style guide 2017-01-11 15:32:09 -08:00
Tim Abbott 998dff9e50 lint: Add dangling commas in JavaScript objects. 2017-01-11 15:23:42 -08:00
JefftheBest1 95604aa212 docs: Restrict user email addresses to certain domains 2017-01-11 14:49:12 -08:00
Yago González a613bc43fe frontend: Keep showing hover menu after opening popovers.
Fixes: #3172
2017-01-11 14:20:48 -08:00
Steve Howell 48e68791e8 Fix duplicate HTML id: fmt_help_table.
We replace the id with a class called help-table.
2017-01-11 14:00:10 -08:00
Robert Hönig 52641a2b11 Fix exception thrown by custom notification.
The exception was thrown by a misplaced quotation mark in notifications.py.
Fixes #3175.
2017-01-11 12:49:45 -08:00
Vamshi Balanaga e329263521 docs: Add user guide for 'Add Bot or Integration' 2017-01-11 12:20:39 +01:00
JefftheBest1 207b2e0b25 docs: Set notifications for a single stream 2017-01-11 10:55:58 +01:00
cosmicasymmetry b04200f803 docs: Edit invite-a-friend-to-zulip.md to conform to style guide 2017-01-10 19:27:26 -08:00
Yago González 089c0a861d docs: Add user guide for Using Zulip on Android. 2017-01-10 17:27:06 -08:00
Anirudh Jain dcc13c504b Move the reactions popover to point towards the chevron.
This fixes an issue where the actions popover being replaced by the
reactions popover would feature an unnecessary jolt.

Fixes: #3174
2017-01-10 17:18:55 -08:00
Tim Abbott 2de0e1eec4 lightbox: Remove use of unicode in CSS.
This caused errors in `manage.py collectstatic`.
2017-01-10 17:11:34 -08:00
brockwhittaker 4d10c4274b Fix text overflow in lightbox.
This fixes the user’s name to not fall on the next line. Instead it
appears on the same line and overflows properly into an ellipsis so it
theoretically should never overflow on to the next line.
2017-01-10 12:50:11 -08:00
Tim Abbott 914d9a3412 reactions: Fix bottom margin to look good on selected message. 2017-01-10 12:32:30 -08:00
Tommy Ip bb0225acec emoji reactions: Prevent scroll bar from appearing.
Fixes #3188.
2017-01-10 12:32:30 -08:00
Tim Abbott 007d4becfd Revert "update-sockjs: Update sockjs from version 0.3.4 to 1.1.1."
This reverts commit 7bf10ec74f.

Apparently, SockJS 1.1.1 is broken with the browser used in our legacy
desktop app, resulting in messages being silently not sent.
2017-01-10 11:46:15 -08:00
Bojidar Marinov 786dd0fca4 auth: Make min password length and strength configurable.
This adds some configuration options to settings.py, namely
PASSWORD_MIN_LENGTH and PASSWORD_MIN_QUALITY, which control
when the frontend validator invalidates the password.

Closes #2628
2017-01-10 04:55:41 -08:00
synicalsyntax a74cbe7bd4 docs: Confrom *Move the users list to the left sidebar* doc to documentation styling guidelines. 2017-01-09 19:30:26 -08:00
synicalsyntax f0ab21918d docs: Confrom *Change the date and time format* doc to documentation styling guidelines. 2017-01-09 19:30:26 -08:00
synicalsyntax 764a54ae26 docs: Merge *Searching* and *Advanced search* docs.
Most information was redundant and unnecessary.
2017-01-09 16:21:22 -08:00
Cynthia Lin 7b2bf3b56f docs: Conform *The Zulip browser window* doc to documentation styling guidelines. 2017-01-09 16:12:54 -08:00
Brock Whittaker 1d414a432f Re-order reactions CSS for better understanding.
This reorders the structure of the styling for the emoji reactions
to better follow the order of the markup.
2017-01-07 10:18:32 -08:00
Brock Whittaker e41b0b80ef Emoji CSS refactoring for FF support.
Emoji styling was broken in Firefox browser due to its lack of support
for the zoom property.

This replaces the zoom property with the transform property that now
scales the emojis down to 70% of their original size.
2017-01-07 10:18:32 -08:00
Tim Abbott 81a19375d2 hotkey: Fix exiting the subscriptions page with "escape".
This had apparently regressed because it was checking the wrong
selector, and also didn't do the right thing to exit.
2017-01-06 23:45:03 -08:00
Tim Abbott 9f1fca30df subs: Access streams to copy from by ID in new stream creation. 2017-01-06 23:19:45 -08:00
Tim Abbott 9ff8c9e358 subs: Access users by ID in new stream creation. 2017-01-06 23:18:53 -08:00
Yago González dafe06613e docs: Add user guide for Send a status message.
Edited by tabbott for clarity.
2017-01-06 19:39:40 -08:00
Cynthia Lin 57e7941ba9 docs: Remove unnecessary content originally extracted from old ToC. 2017-01-06 18:41:57 -08:00
Tim Abbott 89b47bb653 Revert "Fix Small Image Preview Sizing."
This reverts commit e4761782e0.

This caused performance problems and jolting of the main UI, because
it broke the important invariant that the height of a Zulip message
should not depend on the content of slow-to-load assets such as
images.
2017-01-06 17:21:15 -08:00
Brock Whittaker c961172ab1 css: Fix emoji reactions jolt and padding issues.
This fixes two issues:

* If you had around 10 distinct emoji reactions on a message (enough
  to force a line wrap if the add-your-emoji button was visible),
  Zulip would add that button into a new row on hover, jolting the
  message feed.  This fixes that problem by leaving a blank last line
  for the add-your-emoji button.

* We were incorrectly showing the padding for the emoji reactions
  region even if there were no emoji reactions, causing messages to
  have too much padding.
2017-01-06 16:38:12 -08:00
Tim Abbott a6cd0650fe css: Fix styling for bulleted lists.
Previously, Zulip's bulleted list styling didn't have balanced
margins, which mean that they would look misplaced within single-line
messages.
2017-01-06 14:46:47 -08:00
Tim Abbott bea788ec73 docs: Fix executable help documentation images. 2017-01-06 14:18:30 -08:00
Harshit Bansal ceb636dbd9 Manage allowed domains from admin settings.
Fixes: #1867.
2017-01-06 12:03:31 -08:00
Brock Whittaker 3f286e65d1 Add logo to the top of the message feed.
Add the Zulip logo to the top of the messages feed to show that there
are no more messages to load, or that it is loading more (if the
spinner is still around).
2017-01-06 10:37:54 -08:00
Brock Whittaker 7b00bd6f7e Remove the old spinner, replace with new one.
This removes the old content loading spinner and replaces it with a new
SVG.
2017-01-06 10:37:54 -08:00
Brock Whittaker 3d5c24ab40 Show date correctly on message headers.
This shows a date on a message header whenever the date of that
message is different than the date of the previous message.

The previous logic was bugged and didn't display dates in headers at
date transition points.
2017-01-05 17:28:08 -08:00
JefftheBest1 af1998fbb8 docs:Added make an announcement 2017-01-05 17:26:53 -08:00
synicalsyntax 9d09ab11a9 docs: Replace images with FontAwesome icons. 2017-01-05 16:43:00 -08:00
Brock Whittaker b976e179e6 css: Restyle Open-Graph Links.
This styles open-graph links to be cleaner and smaller.
2017-01-05 16:15:01 -08:00
Brock Whittaker 5d2ceb2f16 Change default emoji reaction styling.
This changes the styling to be slightly more compact, have more bottom
padding between the edge of the message wall, and have more consistency.
2017-01-05 15:46:06 -08:00
Steve Howell 90fa797f9b Use stream id to live-update messages for name changes.
When we change a stream name, we now use the stream id as the
key to find messages we need to live update.  This eliminates
some possible race conditions from two users renaming a stream.

This commit introduces message_live_update.js.

The new call stack is this:

    subs.update_subscription_properties
    subs.update_stream_name
    message_live_update.update_stream_name
    message_list.update_stream_name
2017-01-05 15:32:45 -08:00
Sampriti Panda 45a5e47e1b compose: Fix bug on sending message to invalid streams.
The issue is that we were trying to validate the mentions before
checking that the recipient stream was valid, leading to problems
checking the membership of the stream.

Fixes #3040.
2017-01-05 15:26:54 -08:00
Sampriti Panda c15d1ff343 compose: Split validate_stream_message into separate functions. 2017-01-05 15:26:03 -08:00
Cynthia Lin 6e27a64e23 docs: Remove unnecessary images. 2017-01-05 13:40:45 -08:00
Cynthia Lin 68da889a76 docs: Modify existing images to fit with documentation styling guidelines. 2017-01-05 13:40:45 -08:00
Jackson 81bea7f926 integrations: Add documentation for Delighted. 2017-01-05 10:47:30 -08:00
Jackson 032b5e9db9 integrations: Add webhook code, API endpoint, and tests for Delighted. 2017-01-05 10:47:30 -08:00
synicalsyntax 111dabe74f docs: Edit change-your-language.md to conform to style guide. 2017-01-04 23:16:17 -08:00
Rishi Gupta 83392bf974 message edit: Change the empty topic placeholder to be the original topic.
If a user removes the topic in the message edit form, we use the original
topic, not the empty topic.
2017-01-04 22:51:36 -08:00
Akhil d8caf16e59 compose: Show description in autocomplete.
Stream descriptions are now displayed along with the name. The
autocomplete results include streams with matches in the stream
descriptions. Added styling for description in compose.css.

Fixes #2398.
2017-01-04 22:48:34 -08:00
Steve Howell ef893dc8dd Live-update user list for name changes.
When somebody changes their name, we will now update
the buddy list right away.  The old code was trying
to do this through a code path that was designed for
true presence updates, but it was also passing in an
empty array, instead of undefined, which caused it to
fail to invoke the intended part of the codepath to
redraw the buddy list.

Now we just call the new activity.redraw() function,
which does the right thing for the buddy list.

The group PM list was live-updating before this change,
and it continues to live-update as part of the new
activity.redraw() function.
2017-01-04 19:45:15 -08:00
Jackson 652ae2639e help: Replace screenshots and cleanup markdown source article.
With some small copy edits by tabbott.

Fixes #2987.
2017-01-04 16:28:36 -08:00
Bojidar Marinov e293a84331 narrow: Fix the client sending more than one search operator. 2017-01-04 16:02:41 -08:00
Brock Whittaker 6079584c85 perf: Use offsetHeight rather than getBoundingClientRect() in condenser.
Using the offsetHeight getter is ~2.5x faster than
getBoundingClientRect() on what can be an expensive operation to do in
the hundreds of times.

Note: Tim thinks that this may have been different a few years ago,
since we tested fairly carefully before settling on
getBoundingClientRect, but benchmarks pretty clearly show offsetHeight
is faster today, so we should use that.
2017-01-04 12:42:16 -08:00
Brock Whittaker e7687bff6f Hide/Show Optimization with #group-pm-list.
The #group-pm-list now only should change state from hidden to
displayed once, which removes time spent recalculating styles in the
DOM.
2017-01-04 12:36:55 -08:00
Cynthia Lin 7d4949f897 user docs: Remove unnecessary images. 2017-01-04 08:50:38 -08:00
synicalsyntax a36d39f774 user docs: Create *Administration* macro. 2017-01-04 08:50:38 -08:00
Umair Khan f208813ea3 Add Find My Team feature. 2017-01-03 21:33:42 -08:00
vaibhav 268770489b typeahead: Prevent duplicate private message recipients.
This matches the recipients and displays the ones which haven't been
added already.

Fixes: #2499.
2017-01-03 20:37:47 -08:00
Vamshi Balanaga fb6ae449da integrations: Add documentation for solano labs. 2017-01-03 20:18:34 -08:00
Bojidar Marinov 1c044688a4 compose: Make ctrl-enter, meta-enter, etc. add newline with enter_sends.
Tweaked by tabbott to ensure we update the compose box size as well.

Fixes #2989.
2017-01-03 19:14:38 -08:00
Tim Abbott e943c1d247 compose: Export autosize_textarea. 2017-01-03 19:14:38 -08:00
Tommy Ip 92dd4c1b98 Automatically hide all popovers on scroll. 2017-01-03 18:45:21 -08:00
anirudhjain75 3bd70075c4 doc: Add user documentation for view the list of bots in an organization.
With several cleanups by tabbott.
2017-01-03 18:44:37 -08:00
Brock Whittaker d8fc30a776 Change escape key interception with subscription overlay.
The escape key used to be intercepted if the subscription pay display
was set to “block”, but now since we use the class “show” and lack to
hide and show the overlay, the query needs to change.
2017-01-03 17:55:22 -08:00
Alicja Raszkowska e21fe8b886 css: Create a separate file for right-sidebar CSS.
Create a new file right-sidebar.css.
Move all right-sidebar CSS from zulip.css to right-sidebar.css.
2017-01-03 16:57:51 -08:00
Cynthia Lin 1883dea064 user docs: Add *Settings* macro to *Configure desktop notifications* doc. 2017-01-03 16:15:51 -08:00
Cynthia Lin 41271da7c7 user docs: Add *Settings* macro to *Change your language* doc.
Also updated outdated UI in pictures.
2017-01-03 16:15:51 -08:00
Brock Whittaker e4761782e0 Fix Small Image Preview Sizing.
Before the sizing of the preview would be 100px in height regardless of
whether the image was that tall. Now it is any value up to 100px.
2017-01-03 15:59:25 -08:00
Jackson 29ce856843 Clean PUT /users/me/pointer to POST /users/me/pointer. 2017-01-03 15:43:11 -08:00
Jackson 6ec8abab86 Clean PUT /default_streams to POST /default_streams. 2017-01-03 15:40:00 -08:00
Brock Whittaker 50f6681319 Fix z-index Issues.
This fixes the z-index issue with the navbar along with hiding any
popovers when you enter into the lightbox.

Fixes #3078.
2017-01-03 15:33:54 -08:00
Tim Abbott 0c9eccfa58 reactions: Fix missing preventDefault in actions handler. 2017-01-03 10:58:46 -08:00
Tommy Ip 7719a34e2c Automatically hide actions popover on scroll.
Fixes #3012.
2017-01-03 09:33:05 -08:00
Cynthia Lin d3743d2b15 docs: Add user guide for *Add a custom linkification filter* feature 2017-01-03 11:31:04 +01:00
andrewallen00 27a9341039 docs: Add user guide for configure desktop notifications. 2017-01-02 21:23:14 -08:00
Robert Hönig 4f9bbb1c8a Fix duplicate notifications when multiple Zulip tabs are openend.
We attempted a number of different approaches to solving this problem:

First, we tried using HTML5 local storage to keep track of which
browser should have created the desktop notification.  This failed
because one needs locking, and it doesn't appear there is an working
locking implementation for HTML5 local storage that could allow us to
do this across tabs.  See #2936 for details.

Ultimately we went with setting the message ID as a tag.  Tags are
intended to be used for updating existing desktop notifications, which
means this implementation causes new notifications to flicker in and
out sometimes when multiple tabs are open, but that certainly beats
having duplicates.

Fixes #99.
2017-01-02 16:58:51 -08:00
Brock Whittaker fb6d35871b notifications: Cleanup click-through implementation.
This refactors the notification on click by storing values through the
jQuery $.fn.data option.

Substantially modified by tabbott.

Replaces #2940.
2017-01-02 16:51:23 -08:00
Tim Abbott 2003fb7b12 notifications: Fix raw_operators not being set for 1:1 PM messages. 2017-01-02 16:46:51 -08:00
Tim Abbott 2ef19901dd notifications: Improve HTML/CSS for desktop notifications. 2017-01-02 16:42:04 -08:00
Tim Abbott 0b78fe54e8 notifications: Wrap notifications_html definition. 2017-01-02 16:40:18 -08:00
Alya Abbott 8852db34c6 Update signing in page. 2017-01-02 16:34:15 -08:00
Callum 76807d4c82 docs: Add user guide for alert words. 2017-01-02 15:04:33 -08:00
Cynthia Lin 5117f7dc3a user docs: Use subscriptions macro in *Create a stream* doc. 2017-01-02 09:08:15 -08:00
Cynthia Lin eedc6ffc3f docs: Add user guide for *Add custom emoji* feature. 2017-01-02 09:07:39 -08:00
Cynthia Lin 1118d303dc user docs: Add the subscriptions macro. 2017-01-01 19:49:14 -08:00
Tim Abbott ec3e5e844a reactions: Clean up popovers and hover logic.
Previously, the emoji reactions popovers were keyed off the
edit_content area, which is problematic because that area was
created/deleted on hover, resulting in orphaned popovers (which
wouldn't close properly normally).  That had been hackishly addressed
in the original PR with the overbroad `$('.popover').remove();`.  To
remove that, we fix the actions popover to always be based on an
element that exists in the page.

There probably more to do here, but this is good enough to merge emoji
reactions and iterate from here.
2016-12-30 21:42:54 -08:00
Arpith Siromoney 9c64a08cad Add frontend support for emoji reactions.
This commit replaces the placeholder "clipboard" button with a reaction button.
This is done on any message that can't be edited. Also, on messages sent by
the user the actions popover (toggled by the down chevron icon) contains
an option to add a reaction.

When clicked, a popover with a search bar and a list of emojis is displayed.
If the right sidebar is collapsed (the viewport is small), the popover is placed
to the left of the button.
Focus is set to the search bar. Typing in the search bar filters emojis.

Emojis with which the user has reacted to this message are highlighted.
Clicking them sends an API request to remove that reaction.
Clicking on non-highlighted emojis sends an API request to add a reaction.
When the popover loses focus it is closed.

The frontend listens for reaction events. When an add-reaction event is
received, the emoji is displayed at the bottom of the message with a
count initialized to 1. If there was an existing reaction to the message with
the same emoji, the count is incremented.

Old messages fetched from the server contain reactions.
They are displayed (along with title and count) at the bottom
of each message.

When clicking the emoji reaction at the bottom of the message, if the
user has already reacted with that emoji to this message, the reaction
is removed and the count is decremented. Otherwise, a reaction is added
and the count is incremented.

Hovering over the emoji reaction at the bottom of the message displays
a list of users who have reacted with this emoji along with the
emoji name.

Hovering over the emoji reactions at the bottom of the message displays
a button to add a reaction.

Fixes #541.
2016-12-30 21:42:54 -08:00
Brock Whittaker 338dcfc889 Partial match previous search terms in streams page.
Before in a query string like:

“all, s, verona”

It would only strong match the first two terms, but now it’ll partial
string match all terms equally.
2016-12-30 17:13:48 -08:00
Rishi Gupta 386e22c564 Add node tests for message_edit.get_editability. 2016-12-30 16:51:00 -08:00
Tim Abbott c9a1d4a074 Move portico-only JS to static/js/portico/.
Fixes #3014.
2016-12-30 14:47:49 -08:00
Jackson 0d48adb8fe integrations: Add documentation for HelloSign. 2016-12-30 14:28:27 -08:00
Jackson aeac3848c8 integrations: Add webhook code, API endpoint, and tests for HelloSign. 2016-12-30 14:19:31 -08:00
Prabod Rathnayaka 6f087e468e Add setting hiding private message content in desktop notifications.
Tweaked by tabbott to fix a refactoring bug, set the default to True,
fix the real-time sync, and add tests for this.

Fixes #2355.
2016-12-30 14:10:34 -08:00
Vamshi Balanaga bf71ad162c Update Google Calendar Integration.
Update integration to use the latest Google API client.
Move Google Account authorization code to a separate file.
Move relevant files from 'bots/' to 'api/integrations/google/'.
Add documentation for integration.
2016-12-30 12:01:31 -08:00
Tim Abbott 27e38304e0 i18n: Fix several strings incorrectly not tagged for translation.
I found these by grepping for `value=` in the codebase.

Thanks for Alex Morozov for the report.
2016-12-30 09:54:21 -08:00
Cynthia Lin 77d8056d5f docs: Add user guide for *Allow anyone to join without an invitation* feature 2016-12-30 13:19:01 +01:00
Alya Abbott d0cf1249ef Clean up the edit-settings doc page. 2016-12-29 16:31:13 -08:00
Brock Whittaker 71dd9387f8 Removing #full_name IDs.
There was a duplicate #full_name ID being added many times in tables.
They should be removed because they are not being called anywhere and
should not exist in multiples.
2016-12-29 16:15:14 -08:00
Brock Whittaker a9e49338de Change #name_change_container to class.
This changes the selector #name_change_container to a class because
there should never be more than one of an ID.
2016-12-29 16:15:14 -08:00
Bojidar Marinov 8876179ef7 message-edit: Always rerender home view after topic editing.
When editing a message changes the current narrow, we rerender the
narrowed view earlier in the function, so we don't need to do it here.
But we still need to rerender the home view, or the messages will be
displayed incorrectly once the user unnarrows!

Tweaked by tabbott for clarity and simplicity.

Fixes #2464.
2016-12-29 16:11:54 -08:00
Brock Whittaker 1046f16bb6 Add debugging device to check for duplicate IDs in markup.
This checks for duplicate IDs in the markup of the body.
2016-12-29 15:56:48 -08:00
lonerz e1d4fb90d7 hotkeys: Add '@' as a hotkey to compose message with mention. 2016-12-29 15:43:35 -08:00
lonerz c80bad5b55 popovers: Add popover actions to mention a user.
This adds actions to the user and message popovers to mention the user
(either the sender of a message or the selected user).
2016-12-29 15:39:41 -08:00
Rishi Gupta 9e5325a164 Add /stats page with basic stats graph.
Adds a new url route and a new json endpoint.
2016-12-29 14:20:13 -08:00
andrewallen00 881342a5ca docs: Add user guide for reply to a message
docs: Add user guide for reply to a message

docs: Add user guide for reply to a message

docs: Add user guide for reply to a message

docs: Add user guide for reply to a message

docs: Add user guide for reply to a message
2016-12-29 19:26:56 +01:00
Arpith Siromoney 5639f21188 Add missing exports to js modules 2016-12-29 06:01:33 -08:00
Cynthia Lin 0d5a0d02b3 docs: Add user guide for *Restrict editing of old messages and topics* feature 2016-12-29 10:35:10 +01:00
Tim Abbott 5ad9a9d014 compose: Fix websockets having been accidentally disabled.
When we renamed use_socket to use_websockets, we only renamed it on
the backend, and thus it became effectively hardcoded to false.
2016-12-28 09:24:19 -08:00
Sampriti Panda 5316c364bb docs: Add user guide for Change your organization's name 2016-12-28 12:33:57 +01:00
sidhant bhavnani 5b4d9774e0 Docs: Only allow admins to invite new users 2016-12-28 11:28:06 +01:00
Harshit Bansal 9931ad1324 Loosen realm filter pattern validator to support Git commit IDs.
Specify, we no longer require a prefix.

Also improves the clarity of the examples in the documentation.

Fixes: #2696.
2016-12-27 20:31:08 -08:00
Tim Abbott 39f0ffdedd Move static/third/gemoji to static/generated/emoji.
Fixes #1153.
2016-12-27 20:16:23 -08:00
Tim Abbott 1c5e8cd47b lint: Check for spelling of organization and fix errors. 2016-12-27 17:25:01 -08:00
anirudhjain75 8e3f1e1745 doc: Add user documentation for change the default language feature 2016-12-27 17:21:19 -08:00
Bojidar Marinov 9682d26561 invite: Leave not yet invited users in the invite modal's textarea.
Also, make zerver tell us whether invitations were sent.

Fixes #2287.
2016-12-27 17:14:21 -08:00
anirudhjain75 aaf0852aba doc: Add user documentation for set the default streams
Create user documentation for setting the defaul streams
for new users.
2016-12-28 02:03:05 +01:00
Tim Abbott ad513bab33 Fix broken invite screen caused by duplicate #stream-checkboxes ID.
In 06615bee00, we accidentally
introduced a duplicate HTML ID for #stream-checkboxes, which in turn
caused the "invite users" page to no longer work.  This fixes that
problem.
2016-12-27 16:53:10 -08:00
paxapy 8e7fa6b2de emoji: Add add_emoji_by_admins_only realm setting.
This setting controls whether normal users can add realm emoji.

Fixes #978.
2016-12-27 15:46:14 -08:00
Igor Tokarev 3cb7d665da emoji: Display emoji author in admin interface.
Fixes: #984.
2016-12-27 15:45:55 -08:00
Sanskar Modi dee5a0c8d7 Added styling on compose notification warning button.
With CSS suggestions from Tommy Ip.
2016-12-27 15:21:20 -08:00
Steve Howell a96fdd18b1 Make Private Messages work better when zoomed in.
Some of the work here was done Tomasz Kolek.

When we click on "more conversations" in "Private Messages,"
we call it being "zoomed in."  Before this change, when
new PMs arrived, we would rebuild the list and zoom out
again.  Now we track the zoomed_in state with a variable.
Also, if you are zoomed in and switch from one PM narrow
to another, we also keep you zoomed in.

This fix also removes some extraneous/redundant code.

Fixes: #2561
2016-12-27 13:36:30 -08:00
Brock Whittaker 51153a6ce2 Change scope of pointer events for lightbox overlay.
This was intercepting pointer events even though the lightbox was
closed. This fixes the issue with the streams exit not working in some
responsive cases.

Fixes: #2818.
2016-12-26 18:31:18 -08:00
hackerkid 713b69ceab Fix position of restore draft button.
The Restore draft button currently appears before Markdown preview
button. This commit moves restore draft to right most position.
2016-12-26 18:30:58 -08:00
Callum 0dbe1bb87e docs: Add user guide for starring messages 2016-12-26 18:10:31 -08:00
Maydha K 161159ff04 docs: Add user guide for change the stream description. 2016-12-26 18:06:11 -08:00
Tommy Ip 7b6603b169 admin: Fix strike-through styling in users & bots tab.
Fix an issue where the `deactivated_user` class is unintentionally
applied to the reactivate user and reactive bot buttons.

Fixes #2905.
2016-12-26 14:51:12 -08:00
Cynthia Lin 853c78753a docs: Add user guide for *Mute a topic* feature 2016-12-26 10:40:06 -08:00
Cynthia Lin f61d1574cc docs: Add user guide for *Deactivate or reactivate a bot* feature
docs: Add user guide for *Deactivate or reactivate a bot* feature
2016-12-26 10:12:11 -08:00
Rafid Aslam fd5c43341d interactive bots: Create Giphy bot 2016-12-26 09:38:50 -08:00
Jackson 127ae05073 docs: Add user guide for Mute/Unmute a stream 2016-12-26 08:21:16 -08:00
Sampriti Panda cc2cae7fdb subs: Refactor filtering logic from subs.filter_table into seperate function 2016-12-26 07:42:38 -08:00
anirudhjain75 654e8de5ba Doc: Add user guide for Change user's name feature 2016-12-24 11:16:32 -08:00
Cynthia Lin eb56698202 docs: Add user guide for *Make a public stream private* feature 2016-12-24 11:03:42 -08:00
Rafid Aslam d0502537ab API: Migrate POST `/ui_settings/change` to PATCH `/settings/ui` 2016-12-24 11:02:02 -08:00
KingxBanana 5f77ce1ce8 notifications.js: Make in-browser notifications clickable
You can now click the notifications you get in your browser and go
to that stream/topic/private message using jQuery's .on() method.

Fixes: #1996.
2016-12-24 10:17:24 -08:00
Cynthia Lin 38b0b3ffb5 docs: Add user guide for *Deactivate or reactivate a user* feature
docs: Add user guide for *Deactivate or reactivate a user* feature
2016-12-24 10:11:09 -08:00
Juanvulcano 2fd1316d70 Removed json/update_message
Update test_alert_words.py

Update test_messages.py

Update messages.py
2016-12-24 10:08:22 -08:00
andrewallen00 db0a1b31a3 docs: Add user guide for send a group private message.
docs: Add user guide for send a group private message.

docs: Add user guide for send a group private message.
2016-12-24 09:29:24 -08:00
JefftheBest1 b8ee0e91d2 Migrated json/subscribtions/remove to REST endpoint 2016-12-24 09:27:25 -08:00
Jackson 3a109a56df Migrate notify_settings to settings/notifications
Remove notify_settings from legacy_url.py
2016-12-24 09:24:23 -08:00
anirudhjain75 8acdbef8aa Eliminate legacy json/make_stream_public and json/make_stream_private URL
Migrate from POST to PATCH
2016-12-24 08:54:49 -08:00
Sampriti Panda 87e7dc6799 urls: Remove legacy URL for left_side_userlist and move over to REST PATCH endpoint 2016-12-24 08:38:33 -08:00
Tommy Ip acb02cbdd3 docs: Add user guide for *Make a user an administrator* feature. 2016-12-24 08:36:15 -08:00
Jackson 333cf0f015 Migrate legacy /json/time_setting to new REST style endpoint. 2016-12-23 08:08:27 -08:00
Tommy Ip 1e0de94293 API: convert get_subscribers from legacy URL to REST endpoint. 2016-12-22 09:25:12 -08:00
Cynthia Lin dfa32d7eb0 docs: Add user guide for *Deactivate your account* feature 2016-12-22 09:01:33 -08:00
Maydha K 1c788d3fb5 docs: Add user guide for viewing messages from a stream. 2016-12-22 16:58:18 +01:00
anirudhjain75 c9db6b6658 Clean up legacy language_settings endpoint. 2016-12-22 06:54:04 -08:00
Jackson e7fe9217a5 docs: Add user guide for Viewing the markdown source of a message. 2016-12-21 17:48:36 -08:00
Brock Whittaker 41f6420df0 help: Add Tip CSS.
This adds the CSS for a tip section. Utilizes the CSS ::before
pseudo-selector and fontawesome.
2016-12-21 15:40:55 -08:00
Yago González ca190bd394 bug fix: Handle empty at-mentions gracefully.
An exception in the webapp was trown when an empty mention was sent.
Examples of problematic messages are "@" or "@****".

In order to fix this, the regex that identifies mentions has been
modified, so it now requires the mention to have a "content" (by
replacing the ? quantifier by +).

A test case has been added to `frontend_tests/node_tests/echo.js` to
check that this works properly in the future.
2016-12-21 15:32:12 -08:00
Niels Terwiesch 0d21d931bf docs: Add user guide for Remove user from stream. 2016-12-21 15:20:38 -08:00
Cynthia Lin 1a6b6655a5 docs: Add user guide for *Signing in* feature 2016-12-21 15:08:29 -08:00
Jackson 7b209f7f7f docs: Add user guide for Collapse a Message. 2016-12-21 15:06:37 -08:00
JefftheBest1 0e6078fade Wrapped text in admin user and bot tables.
Fixes: #2569.
2016-12-21 14:55:50 -08:00
Tim Abbott a90532e074 admin: Clean up Zulip labs changing reloading browser. 2016-12-21 14:21:06 -08:00
Sampriti Panda 425a55e568 settings: Implement delete avatar functionality 2016-12-21 13:35:22 -08:00
Sampriti Panda e72cd0b1cc urls: convert set_avatar from legacy URL to REST endpoint 2016-12-21 13:35:22 -08:00