Commit Graph

3229 Commits

Author SHA1 Message Date
Brock Whittaker 0f9a5108fc settings: Change admin pages to have readonly view for non-admins.
This changes the layout of administration for non-administrators such
that they can view organization settings and emoji settings and
displays everything as readonly unless they have the capability to edit.

For now, we just enabled this for the emoji settings and organization
settings features.
2017-02-23 14:20:31 -08:00
Brock Whittaker 3bb22a6965 Remove all .expectOne statements in settings.
This removes all the .expectOne statements and replaces with a
single broad stroke .hide() that doesn't check if they exist,
but rather just ensures they are hidden by default until triggered.
2017-02-23 14:18:25 -08:00
Brock Whittaker 5fc0c0b6ac Fix the styling for drafts.
This fixes the appearance for drafts to be uniform with the rest of the
site along with general polishing.
2017-02-23 13:00:56 -08:00
Umair Khan 5bf83f9e0a change-email: Implement confirmation flow.
This adds to Zulip support for a user changing their own email
address.

It's backed by a huge amount of work by Steve Howell on making email
changes actually work from a UI perspective.

Fixes #734.
2017-02-23 03:15:17 -08:00
Sampriti Panda 1929cc5190 Implement persistent drafts functionality
* Created a drafts modal to display/restore/delete drafts
* Created a Draft model to support storing draft data in localstorage
* Removed existing restore-draft functionality
* Added casper and node tests for drafts functionality

Fixes #1717.
2017-02-23 02:58:23 -08:00
Brock Whittaker 8b22b94ab1 Add a LocalStorage wrapper for Zulip.
This is a wrapper that allows for versioning and migrations with
localStorage along with safe storage of data that respects data types.
2017-02-23 02:58:22 -08:00
ausDensk 5efb072e63 Change screenshot for HomeAssistant integration docs. 2017-02-22 23:27:43 -08:00
Tim Abbott e15a661720 accounts: Remove unhelpful avatar size advice. 2017-02-22 22:50:16 -08:00
Brock Whittaker c7349178f0 Re-add "Delete Avatar" button to "Your account".
This re-adds the deleted "Delete Avatar" button back to the
settings/your-account tab view in the overlay, which only appears
if you do not currently have a gravitar.
2017-02-22 22:50:16 -08:00
Steve Howell 03386f1485 avatar live updates: Do full re-render.
We now sweep all active messages for avatar changes and update
the message items and re-render, rather than patching the
DOM.  This avoids some quirks that happen when subsequent messages
get sent and we re-render previous messages out of the message
store.

Our approach here is similar to how we do full-name updates.
2017-02-22 22:46:44 -08:00
adnrs96 1458d0d3a2 Clean subscription_creation_form handlebar to use 4 space indents. 2017-02-23 07:14:41 +05:30
adnrs96 cfe57da14b Clean message_group handlebars to use 4 space indents. 2017-02-23 07:14:41 +05:30
adnrs96 13b7247ae2 Clean invite_subscription handlebar to use 4 space indents. 2017-02-23 07:14:41 +05:30
Steve Howell 8de72184e1 Fix avatar message display regression from 1.5 release.
In f75af94984 I added some
lines of code that made it so that live updates for avatar
urls would affect messages currently in the browser.

This change worked well when the live update actually happened,
but then the next time the user would reload, the avatar in
the message pane would regress back to showing the avatar urls
from the server (which could have caching issues of their own).

This fix removes a couple lines of code that had the intended
effect of making all of your messages from any given sender
show the same url (good) but which generally grabbed
the url from an old message (bad).

After this fix, we go back to having old messages possibly
showing the old avatar urls, but new messages will display the
new avatar.

(There are lots of moving parts in the avatar system, because
not only do browsers cache image urls, but our server caches
messages and recipient info, so there have been "fixes" to
avatars since this change that are valid fixes in their own
right but not directly relevant to this commit.)
2017-02-22 07:57:03 -08:00
Tim Abbott e051336ff6 emoji: Tweak emoji reactions CSS to add hover effects.
This provides a fairly intense highlighting of when you're hovering
over a given emoji reaction element.

We may want to tone down the color a bit; I'm hoping for some feedback on this.
2017-02-21 23:12:15 -08:00
hackerkid 10324ba592 Change reaction button color when user reacts.
This makes it easy to see whether you were one of the people who
reacted to a give message.
2017-02-21 23:09:46 -08:00
Ayush Jain 455c1919fc Add customizable invite-new-user text.
This makes life a lot easier for people inviting users to a new Zulip
organization, since they can give some form of context now.

Modified by tabbott to clean up CSS, backend code flow, and improve
the formatting of the emails.

Fixes: #1409.
2017-02-21 22:35:01 -08:00
Tim Abbott e608f09f73 compose: Remove unnecessary snapshot_message call.
The current logic that we have is as follows:

* If a message is locally echoed, the draft is stored via the locally
rendered message, and that system takes care of it.  So no need to
store it here.

* If the message isn't locally echoed, we don't close the compose box
until, so the content is safe here as well.  It'll be saved as a draft
if the compose box is later closed due to a failure sending.
2017-02-21 19:24:38 -08:00
Brock Whittaker 021e43356f Replace settings v1 toggle with v2 component toggle.
This replaces the settings toggle which had the same markup as the
current component toggle, but not the same JavaScript, along with
having an issue with inline-block spacing, with the new JS generated
one.
2017-02-21 11:31:00 -08:00
Brock Whittaker e4008bcf1c Select first toggle tab by default.
The first one is selected by default, so add the class to make it look
visually selected.
2017-02-21 11:30:59 -08:00
Philip Skomorokhov 7a75ed9c4a message_edit: Fix timer text not decrementing.
This fixes a regression introduced in e6369fc, where we simply lost the `--` part.

Fixes #3720.
2017-02-20 21:41:07 -08:00
Steve Howell d4206f2f5f Speed up building user sidebar during page load.
We now call activity.build_user_sidebar when we initialize
the user sidebar, which avoids some janky jQuery code
that was intended for partial updates.

With 2000 users in dev, the amount of time to build the sidebar
decreases from 1100ms to 700ms in my tests.  (Times vary a bit,
but it does seem consistently faster now.)
2017-02-20 18:07:01 -08:00
Steve Howell 2aa7d20a51 refactor: Split build_user_sidebar() from update_users().
Activity.update_users() is still used to handle partial
updates of users in the buddy list, but now all the places
that want to re-build the whole widget go through
build_user_sidebar().
2017-02-20 15:53:14 -08:00
Steve Howell 2566a89f81 refactor: Extract activity.set_presence_info(). 2017-02-20 15:02:56 -08:00
vaibhav 8ac4fe1a73 activity.js: Move info_for and get_num_unread.
We are just moving these functions out to the module
level.  They didn't need to be inner functions.
2017-02-20 14:02:57 -08:00
chao1995 b3119b0d67 left-sidebar: Sort pinned streams by lowercase stream name.
The pinned streams were sorted in alphabetic order (i.e. Verona appears
before devel). The reason is that after we plucked pinned streams out from
stream_data.subscribed_streams(), we didn't sort them again, so they
remained in the alphabetic order used in stream_data.

However, we did sort unpinned streams explicitly by using custom compare
function in stream_list.js (by default sort by lowercase stream name,
but when there are more than 40 subscribed streams, sort active streams
first). That's why this issue only relates to pinned streams.

Changes were made to sort pinned streams by lowercase stream name, always,
whether they are active or not (different from unpinned streams).

Tests were added to ensure this overall sort order is correct, i.e.

1. pinned streams are always sorted by lowercase stream name.
2. pinned streams are always before unpinned streams.
3. unpinned streams are sorted by lowercase stream name, if there are more
   than 40 subscribed streams, sort active streams at the top, among active
   and inactive streams, still sorted by lowercase stream name.

Fixes #3701
2017-02-20 10:46:05 -08:00
vaibhav 35c1272525 Include stream description matches in filter results.
User search for streams will now return results where the stream
description (but not the stream name) include the string in the
user query.

The filtering process first obtains the streams whose names match the
user search query, then sorts and displays them. From the remaining
streams, it obtains streams whose description matches the query and
displays them in sorted order after the name match results. Other
streams are not displayed.

Fixes: #2674.
2017-02-20 06:56:59 -08:00
Sourav Badami eaaec4c908 reactions: Fix emoji picker scrollbar overflow issue.
Fixes #3644.
2017-02-19 21:11:39 -08:00
Steve Howell f28158d301 Live-update default streams when deleting streams.
When an admin deactivate a stream, we now remove the
appropriate row from the default streams tables for other
folks viewing default streams in the admin tables.
2017-02-19 18:06:20 -08:00
Steve Howell 6af83e31f6 admin screens: Encapsulate default streams table.
We add a default_streams_table() function that builds an
object encapsulating the defaults streams table in the admin
system.

This function allows us to simplify the click handler code by
closing on row/stream_name rather than picking those values out
of the DOM.
2017-02-19 18:06:20 -08:00
Kartik Maji 1a697b6e02 Add frontend to show message edit history.
Fixes #268.

Modified significantly by tabbott to:
* improve code cleanliness / repetition
* add missing translation tags
* move code into message_edit.js
* correspond with the new backend.
* not display the option for messages only topic-edited
2017-02-19 17:41:06 -08:00
Kartik Maji 0cf6c292d8 Add edit_history of message in update_messages.
Modified by tabbott to not be confused by embed_links edits.
2017-02-19 17:20:48 -08:00
Tim Abbott 78b2eaefc9 timerender: Add get_full_time function.
We'll need to do some iteration, but something like this will be
useful for message edit history.
2017-02-19 15:18:22 -08:00
Tim Abbott e29663a2b3 compose: Fix behavior hitting enter with the preview area open.
The new behavior is:
(1) If enter-sends is enabled, just send the messsage.
(2) If enter-sends is not enabled, return focus to the compose area.

Based on great work by khantaalaman in #3673.

Fixes #3489.
2017-02-18 23:31:54 -08:00
ausDensk 14024963f2 Add a simple Home Assistant integration for Zulip. 2017-02-18 21:18:10 -08:00
Cynthia Lin 5090de41f2 user docs: Add responsive design. 2017-02-18 20:54:56 -08:00
Cynthia Lin d75a1b0bfc user docs: Add user guide for *Add an emoji reaction to a message*.
Fixes #3616.
2017-02-18 14:13:57 -08:00
Cynthia Lin 3647a6414a user docs: Add"emoji reaction" to Zulip glossary. 2017-02-18 09:21:35 -08:00
Steve Howell b9ec2545bb Simplify and speed up stream deactivation.
This is a fairly risky, invasive change that speeds up
stream deactivation by no longer sending subscription/remove
events for individual subscribers to all of the clients who
care about a stream.  Instead, we let the client handle the
stream deactivation on a coarser level.

The back end changes here are pretty straightforward.

On the front end we handle stream deactivations by removing the
stream (as needed) from the streams sidebar and/or the stream
settings page.  We also remove the stream from the internal data
structures.

There may be some edge cases where live updates don't handle
everything, such as if you are about to compose a message to a
stream that has been deactivated.  These should be rare, as admins
generally deactivate streams that have been dormant, and they
should be recoverable either by getting proper error handling when
you try to send to the stream or via reload.
2017-02-17 15:53:22 -08:00
Steve Howell 465a765cb0 Add stream_data.delete_sub().
(There was a method with the same name before, but it wasn't
being used.  The new version will accept stream_id instead
of name, and we will use it as part of deactivating streams.)
2017-02-17 15:49:43 -08:00
Steve Howell 1722f1e6c4 Extract stream_list.remove_sidebar_row(). 2017-02-17 15:49:43 -08:00
Tim Abbott f105e8270d compose: Fix hardcoding of 'website' client.
We already do detection of the client on the backend based on
User-Agent and the fact that it's a JSON view, which is pretty safe.
This fixes an issue where the server was not treating the Electron app
as its own client.
2017-02-17 15:20:32 -08:00
Tim Abbott 9072d3c350 socket: Transmit HTTP_USER_AGENT for websockets sending.
This significantly simplify the logic for our logging process, making
it the case that websockets message sending requests always are logged
as having the exact same client as a normal AJAX request from that
server.
2017-02-17 15:19:21 -08:00
Brock Whittaker 7f5703a21f Prevent HTML from being pasted into the stream name/description box.
This prevents users from either dragging formatted markup into content
editable boxes or pasting it in. This uses the “input” event rather
than “paste” because “paste” does not have the end result of the
contents whereas “input” does.

This is not a security vulnerability as it may seem. Processing on the
backend sanitizes input if it contains HTML.
2017-02-17 12:01:24 -08:00
Harshit Bansal 3498c01e1b admin: Make restricted to domains checkbox readonly incase of no domains.
If there are no domains then there is no meaning of setting restricted to
domains checkbox and hence it should be disabled.

Fixes: #3436.
2017-02-17 11:55:15 -08:00
Steve Howell 3e3444848d Remove avatar timestamp logic in the client.
We use to have client-side logic that would append timestamps
or random numbers to avatar URLs to force browsers to
refresh their cache.

We no longer need this now that the back end maintains
versions for avatar changes and puts the version in the URLs.
2017-02-17 10:19:56 -08:00
aakash-cr7 b72262e8ec Add UI for seeing all muted topics in settings page.
Fixes #2322.
2017-02-17 00:10:18 -08:00
paxapy 9a5179c460 Add support for managing and deleting attachments.
Modified substantially by tabbott to fix tons of issues.

Fixes #454.
2017-02-16 23:44:44 -08:00
Raghav Jajodia c1dfa348a1 alert_words: Trim whitespace around alert words.
"Add a new alert word" box now displays an alert when filled with only spaces.
Fixes #3369
2017-02-16 21:06:18 -08:00
Tommy Ip abf522adfb Add styling to distinguish bots from human users in message view.
With work by Brock Whittaker and Tim Abbott on rebasing + changing
styling.

Fixes #1107
2017-02-16 17:00:21 -08:00
adnrs96 3361502141 Clean tutorial_subject handlebar to use 4 space indents. 2017-02-16 14:45:09 -08:00
adnrs96 5c2d3dc4b7 Clean tutorial_stream handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 dcc9f8d75b Clean tutorial_reply handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 049bfff463 Clean tutorial_home handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 66fcc75e5d Clean topic_sidebar_actions handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 e331288084 Clean sidebar_private_message_list handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 51d0211372 Clean reaction_popover_content handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 45d3eaff5f Clean new_stream_users handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 71063e806b Clean message_reactions handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 dc9a7e17c5 Clean message_info_popover_title handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 71951b6995 Clean message_info_popover_content handlebar to use 4 space indents. 2017-02-16 14:45:08 -08:00
adnrs96 4a93a7e9d5 Clean group_pms handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 b5507f2de7 Clean bankruptcy_modal handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 65f7ba9861 Clean announce_streams_docs handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 f73df2a882 Clean alert_word_settings_item handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 11c2ef0f49 Clean admin_streams_list handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 a38fe23ea3 Clean admin_filter_list handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 34fd8618e2 Clean admin_emoji_list handlebar to follow 4 space indents. 2017-02-17 03:16:46 +05:30
adnrs96 00dfe80e4d Clean admin_defaults_streans_list handlebar to use 4 space indents. 2017-02-17 03:16:46 +05:30
Steve Howell 10e220f516 Handle email changes in user_events.update_person().
This code isn't active yet, since the back end doesn't send
events yet for email changes.
2017-02-14 23:25:22 -08:00
Steve Howell 4c53ad59f2 Update PM unread counts more dynamically in the client.
When we process messages for unread counts, we now call
people.pm_reply_user_string() to get a string of user ids,
rather than using emails that may have changed since the
message was originally created.
2017-02-14 23:25:22 -08:00
Steve Howell ed4adc5650 refactor: Simplify people.pm_reply_to().
We now call people.pm_with_user_ids() to avoid some duplicate
code.
2017-02-14 23:25:22 -08:00
Steve Howell 8d3a5e7f02 Add settings.update_email(). 2017-02-14 23:25:22 -08:00
Steve Howell 0bd3af2bc8 Create narrow.update_email(). 2017-02-14 23:25:22 -08:00
Steve Howell 0eeb023a03 Create filter.update_email().
This helper function will help us process email changes.
2017-02-14 23:25:22 -08:00
Tim Abbott 1acaeb2c80 message_edit: Fix broken triggering of markdown help. 2017-02-14 23:22:37 -08:00
Brock Whittaker ca428cfc24 Fix tab click unresponsiveness.
There is a particular case in which when a user clicks on a tab, then
uses the goto method to go to another, and then clicks on the original
tab again, it will not load the original tab. This is due to the fact
that the goto function that is used to navigate to a tab without
clicking does not set the last_value, therefore leaving a state that is
incorrect and denying a view update in the case that a user performs
the following:

Click B -> Goto A -> Click B

In this case, it saves the last_value as “B” and so when a user clicks
back on “B” it does not trigger any change as it thinks the user is
going from “B” to “B”.
2017-02-14 23:20:38 -08:00
Brock Whittaker 8f444bdff8 Fix scrollbar width overflow issue.
This fixes the issue where scrollbars that take up space (eg. Chrome on
Linux) force the inline-block items to overflow their container and
fall down a line.
2017-02-14 23:20:38 -08:00
Steve Howell d406d34fe0 Use user_id in admin_user_list.handlebars.
For our user administration, we now primarily work with user ids
that get put into data-user-id attributes.  We still put emails in the
tags to make our Casper tests easy to maintain.

This requires a minor change to the back end to pass down user ids
for the /users endpoint (in get_members_backend).
2017-02-14 23:07:44 -08:00
Brock Whittaker 2592ea56bb Change portico navbar style.
This changes the portico navbar style to be in the new brand color
scheme along with removing the borders around the bottom nav bar.
2017-02-13 17:02:03 -08:00
Tim Abbott a0aa2ca0f2 hotkey: Fix incorrect test for open subscriptions overlay. 2017-02-12 13:29:12 -08:00
Durga Akhil M u1604vbox f833f68bfd mute_ui: Add UI for mute on recipient bar.
Like the topic edit pencil icon, the new UI is mostly invisible, but
appears when you hover over the recipient bar.

* Added a tag to hold the mute button in recipient_row.handlebars with
corresponding styling in zulip.css.
* Added an event handler for the mute button in click_handlers.js.

Fixes: #2235.
2017-02-12 00:45:20 -08:00
Igor Tokarev 55cffa1e69 Added keyboard shortcut to edit the last message.
Tweaked significantly by tabbott to update Casper tests, document the
new feature, and fix hotkeys.

Fixes #1147.
2017-02-12 00:29:28 -08:00
Tim Abbott b79a66fb71 messages: Fix alignment of message sender names.
Now message senders are vertically aligned with the content, whether
mesasges are /me style status messages or not.

We'll want to do more in the future to move both sender names and
message bodies further towards the avatars, I think, but this is
definitely an improvement.
2017-02-11 23:01:22 -08:00
Tim Abbott 173f988aec single_message: Clean up status message templating.
The original templating for this code was super complicated, due to
what appears to be a misguided effort to share code between the
status_message and non-status-message cases, that really just resulted
in a lot of if statements.
2017-02-11 23:01:22 -08:00
Tim Abbott 5c34c601d9 compose: Trim trailing whitespace in messages.
This should ensure that local echo matches the backend in handling of
unusual input like `/me `.
2017-02-11 23:01:22 -08:00
Rafid Aslam 241794c586 Change "Reply" to "Quote and reply" in message popover
Change "Reply" in message popover to "Quote and reply"
which is reply and quotes the selected message.

Fixes #3302.
2017-02-11 14:51:55 -08:00
Elliott Jin 4092aab620 unread: Refactor to move DOM element updates into UI layer. 2017-02-11 08:36:39 -08:00
Elliott Jin ba449d7c23 unread: Refactor to move server calls into UI layer. 2017-02-11 08:36:39 -08:00
Elliott Jin ef7d4e417c unread: Refactor to move bankruptcy modal into UI layer. 2017-02-11 08:36:39 -08:00
Elliott Jin d233f617dd muting: Refactor to move side effects into UI layer. 2017-02-11 08:36:39 -08:00
Steve Howell 2e07533b4e Add compose.update_email().
When we get notified of an email change and the compose box is
open for PMs, we should update the email in the compose box.
This helper will be useful when we start handling such events.
2017-02-10 21:57:50 -08:00
Steve Howell f56d3807cc Add people.update_email_in_reply_to() helper.
This will be used for live updating.
2017-02-10 21:57:50 -08:00
Steve Howell f8d59c8108 Make compose replies for PMs more robust.
We now use user_ids from the message to generate the
reply_to more dynamically.
2017-02-10 21:57:50 -08:00
Steve Howell 37509da20d Display sender's most current email in message popover menu. 2017-02-10 21:57:50 -08:00
Steve Howell ffd45971de Use user ids when processing recent PMs. 2017-02-10 21:57:50 -08:00
Steve Howell 12c4478a3f Use user ids in JS-side "pm-with" filter.
We now convert our pm-with search operand to a list of user ids
for matching against messages, rather than using emails.  On the
message side we look at user ids from display_recipient.
2017-02-10 21:57:48 -08:00
Brock Whittaker 5f6632c9e9 Add "back to home" button at top of help pages.
This adds a button that will bring a user back to the home
of the help section "/help".
2017-02-10 21:46:09 -08:00
Tim Abbott 0e802c574d Fix Linux scrollbar issue in information overlays. 2017-02-10 15:18:41 -08:00
Tim Abbott ce880b0d0c hotkey: Fix incorrect return value from informational overlays.
In theory, whenever an event is handled, it should return true.
2017-02-10 15:18:41 -08:00
brockwhittaker 642dac27b9 Replace the modal footers with an exit button at top of overlay.
This replaces the bootstrap default modal footers that have a
[data-dismiss] button with an .exit button in the top section of the
overlay that is styled congruently to the current subscriptions page.
2017-02-10 15:18:41 -08:00
brockwhittaker 1a28564ed4 Switch information overlay to key-based toggle.
This switches the overlay to a key based system where it uses the
toggle keys to open the correct modals.
2017-02-10 15:18:41 -08:00
brockwhittaker 2ef8e425d1 Change information overlay to use toggle component.
This switches from a custom tab interface to the toggle component
layout.
2017-02-10 15:18:41 -08:00
brockwhittaker 47a3ce2d35 Seperate information overlay CSS into own file.
This takes the information overlay CSS and moves it from zulip.css to
informational-overlays.css to help separate out isolated components.
2017-02-10 15:18:41 -08:00
Brock Whittaker 1500e93092 Convert overlay modals to unified modal system.
This converts three modals:

1. Markdown Help
2. Keyword Shortcuts
3. Search Operators

Into a system in which they all appear in the same overlay now.
2017-02-10 15:18:41 -08:00
brockwhittaker c70de3ca83 Refactor components.css toggle to include more than two tabs.
This allows for the toggle component to have more than two option tabs.
2017-02-10 14:43:18 -08:00
brockwhittaker 2ea6eda785 Add keys to components.toggle.
This adds keys — unique non-human identifiers to the toggle component.
2017-02-10 14:43:18 -08:00
brockwhittaker 5fbf7de1cf Add usage notes on the component.toggle mechanism.
This adds usage notes and comments to the component.toggle class
to make it more readable and usable for those who are unaware with
the prototype of the class or how to create a new instance.
2017-02-10 14:43:18 -08:00
Rishi Gupta 68a7f91022 stats: Add a fixed display order to summary charts.
API: Adds a "display_order" to the response, which is a suggested order of
importance for the clients or recipient types respectively.

frontend: Changes messages_sent_by_{client,recipient_type} to use a fixed
order for any given user.
2017-02-10 14:41:18 -08:00
Rishi Gupta cf3ae2eafe stats: Turn messages_sent_by_client into a bar chart.
Also includes a number of changes to messages_sent_by_recipient_type that
were convenient to do at the same time, since the two charts share a lot of
code.
2017-02-10 14:41:18 -08:00
Rishi Gupta e01f80bf93 stats.js: Move creation of pie traces into the populate functions.
In preparation for turning messages_sent_by_client into a bar chart.
This removes the "pie-specific" pieces from the functions used by
messages_sent_by_{client,type}.
2017-02-10 14:41:18 -08:00
Rishi Gupta ce89c64f43 stats.js: Move name_map computation to the backend. 2017-02-10 14:41:18 -08:00
Rishi Gupta 8ad7c96382 stats.js: Refactor trace variable to not be list of trace. 2017-02-10 14:41:18 -08:00
Brock Whittaker 1143ed7219 redesign: Change /#settings and /#administration to an overlay.
This also adds a box-shadow to the #deactivate_self_modal so that it
looks similar to the old backdrop.
2017-02-09 23:35:10 -08:00
Tim Abbott 7a76f3dcc8 settings: Redesign the account settings template.
This is technically part of the settings page redesign in the next
commit, but it's probably useful to keep separate, since it touches
totally different code.
2017-02-09 23:33:28 -08:00
Brock Whittaker 2dd36aa422 Make subscriptions page responsive.
This makes the subscriptions page responsive by having the settings tab
slide over when a user taps on a stream, giving almost the whole screen
to view the settings.
2017-02-09 14:01:00 -08:00
Tim Abbott b8df71c360 subs: Use antialiased fonts in subscriptions page. 2017-02-08 23:28:11 -08:00
Tim Abbott 0aa07b9d0f subs: Improve transitions styling for subscriptions page. 2017-02-08 23:28:10 -08:00
Tim Abbott 64ec7e236d settings: Add missing data-name for auth methods template. 2017-02-08 23:21:21 -08:00
Tim Abbott febfb1844d settings: Move auth methods template to settings/ subdirectory. 2017-02-08 23:21:21 -08:00
Tim Abbott 09fad19111 settings: Apply new-style to all settings sections. 2017-02-08 23:14:13 -08:00
Tim Abbott 02c8ea729b settings: Reindent settings_tab.handlebars to 4-space. 2017-02-08 23:13:10 -08:00
Tim Abbott 6aea77403d settings: Add data-name entries for administration pages. 2017-02-08 23:11:31 -08:00
Tim Abbott 1c8d17b7c9 settings: Extract deactivation-user-modal.handlebars. 2017-02-08 22:53:36 -08:00
Tim Abbott a28bb77b51 settings: Extract deactivation-stream-modal.handlebars. 2017-02-08 22:53:36 -08:00
Tim Abbott d9b63dd97c settings: Extract realm-domains-modal.handlebars. 2017-02-08 22:53:36 -08:00
Harshit Bansal 7d10cbc32b Add RealmAlias.allow_subdomains to model, frontend, and API.
Includes a database migration.

Fixes #1868.
2017-02-08 22:03:27 -08:00
Elliott Jin 0e0584aeaa muting: Fix calling update_unread_counts in a loop.
Previously, set_muted_topics was calling update_unread_counts once for each
topic in the input; this results in poor performance when there is a large
number of muted topics.

Fixes: #3605
2017-02-08 11:13:19 -08:00
Rishi Gupta 677b9e1ec6 stats: Preserve visibility of traces when changing aggregations.
In messages_sent_over_time. Previously, every aggregation kept its own state
regarding which of {Humans, Bots} was showing.
2017-02-07 21:31:34 -08:00
Rishi Gupta 22df58289f stats.js: Fix round_to_percentages when percentage is 100.
Fixes bug introduced in 9901128.
2017-02-07 21:31:34 -08:00
Jackson dcca54e8a9 integrations: Add Greenhouse integration. 2017-02-07 19:08:35 -08:00
Rishi Gupta 18508ca02c stats.js: Clean up code for the number of users chart. 2017-02-07 18:55:35 -08:00
Rishi Gupta ac42ad0322 stats.js: Replace font and button colors with variables. 2017-02-07 18:55:35 -08:00
Rishi Gupta 5f2c70c61f stats.js: Refactor code for the two pie charts.
Also fixes a bug where we didn't probably update the labels when clicking on
the Me/Everyone/10/30/Cumulative buttons.
2017-02-07 18:55:35 -08:00
Rishi Gupta 9901128b33 stats.js: Change how we set the precision for percentages close to 100%. 2017-02-07 18:55:35 -08:00
Rishi Gupta 5f7cb9db16 stats.js: Reorder code to match the order of the charts on /stats. 2017-02-07 18:55:35 -08:00
Rishi Gupta 796ac7bfe6 stats.js: Remove the throw_error helper function. 2017-02-07 18:55:35 -08:00
Feorlen 676f0ad63f Add WordPress webhook.
Adds a new webhook integration for WordPress blogs. Both WordPress.com
and self-installed blogs are supported, with minor differences that
are described in the documentation. It creates a new message for each
action, the stream and topic may be specified or use default values.

WordPress actions supported:

publish_post:  a new blog post was published
publish_page:  a new page was published
user_register: a new user account was created
wp_login:      a user logged in

Notes: comment_post only provides the id of the parent post, not title
or link, so was not included. On further testing, I found edit_post is
not very practical, it also fires while a new post is being written, and
when posts are deleted. (I think it tracks drafts too.) I've removed it,
as it seems more confusing than useful.

Fixes #3245
2017-02-07 18:14:31 -08:00
Steve Howell e6bcc01c33 email -> id: Make browser's filter for "sender" more robust. 2017-02-07 17:37:05 -08:00
Steve Howell 64125a76e2 Use data-user-id for message popover menu. 2017-02-07 17:37:05 -08:00
Steve Howell ae850fdeb4 Use message.sender_id to create URLs in message popover. 2017-02-07 17:37:05 -08:00
Steve Howell 44f155e7b2 Generate message.pm_with_url more directly from ids.
We have added people.pm_with_url(message), which computes a
PM url from a private message using user ids rather than emails.

We call this in add_message_metadata(), since the slugs will
be valid even if emails change, so we don't need to compute
them on the fly during message rendering.
2017-02-07 17:37:05 -08:00
Harshit Bansal 8ed0e09c1f subs.js: Make `redraw_privacy_related_stuff()` a global function. 2017-02-07 17:02:16 -08:00
Rishi Gupta e0cb009f1b analytics: Refactor and clean up messages_sent_over_time. 2017-02-07 15:35:43 -08:00
Rishi Gupta 3c692684a0 analytics: Move stats.js out of portico/.
stats.js is a logged-in view.
2017-02-07 15:35:43 -08:00
kpdp cda7faee83 compose: Fix the compose box not resizing when restoring drafts.
Fixes #3592.
2017-02-07 14:41:44 -08:00
Elliott Jin 9b854c62bc search_suggestion: Suggest multiple people in `pm-with` searches.
Currently, searching for group private messages requires typing each
person's email individually.  This change improves the typeahead
suggestions for group `pm-with` searches by suggesting additional people
whenever a comma is entered.

Fixes: #3575
2017-02-07 14:13:29 -08:00
Tim Abbott 7badc39b02 reactions: Fix exceptions reacting to locally echoed messages.
Previously, we were incorrectly not updating the data-message-id used
in the .message_reactions section to use the final ID when
echo.reify_id was called.

This meant in particular that if someone else reacted to a message you
sent, and you clicked it to share the reaction, you'd get an exception.
2017-02-07 14:13:29 -08:00
Tim Abbott ac5c505d3c analytics: Make page-content full height. 2017-02-07 11:17:16 -08:00
Rishi Gupta a99f5ca066 analytics: Update bar colors on message_sent_over_time. 2017-02-07 11:07:51 -08:00
khantaalaman ee0b16b1ef Update Font Awesome to version 4.7.0.
Fixes #3329.
2017-02-06 22:45:02 -08:00
Steve Howell 5b8e217bf4 Add people.update_email().
The function people.update_email() is not yet connected
to anything, but it sets the stage for upcoming changes.

When emails get updated, fundamentally we just update
the appropriate person object and add a new key to
people_dict.  We sort of get a shim for free--old email
lookups will continue to work--but we add blueslip warnings
for stale lookups.
2017-02-06 22:38:22 -08:00
Steve Howell 0555970fae message_store: Populate sender_email based on people.js.
Messages that come to us from the server may have an out
of date sender email, so we use message.sender_id and
people.js to get the current email.
2017-02-06 22:38:22 -08:00
Steve Howell a8f706b1b5 refactor: Use user_id as key for people.realm_people_dict. 2017-02-06 22:38:22 -08:00
Steve Howell 2ed85263c8 refactor: Use user_id as key for people.cross_realm_dict. 2017-02-06 22:38:22 -08:00
Steve Howell 955b85f515 Use user_id to check if a message has a new person.
This prepares us for the upcoming ability to update
emails.
2017-02-06 22:38:22 -08:00
Steve Howell d01493bc42 refactor: Use user_id as key for pm_recipient_count.
We now key people.pm_recipient_count by user_id, which makes
one less dictionary that we'll need to update when we support
email updates.
2017-02-06 22:38:22 -08:00
Steve Howell 08bc69f8af huddles: Calculate huddle strings more robustly.
We now build huddle strings used in activity.js from
user ids in message.display_recipient.
2017-02-06 22:38:22 -08:00
Harshit Bansal 50800d4993 Refactor: De-duplicate the message rendering code in message_list_view.js.
Extract the duplicated message template rendering code in
message_list_view.js to `_get_message_template()` helper function.
2017-02-06 22:30:50 -08:00
Harshit Bansal 8350866406 popovers: Rename `data-msgid` to `data-message-id`.
Rename the `data-msgid` to `data-message-id` to match the style of our
other data objects.
2017-02-06 22:30:50 -08:00
Rishi Gupta 86b45b57df analytics: Fix rangeselector buttons for messages_sent_over_time.
Previously was using the daily_rangeselector regardless of whether we
started in the daily or weekly view.
2017-02-06 17:48:56 -08:00
Tim Abbott babb6aaa47 settings: Stop serving zxcvbn from node_modules/.
Now that we have the minified_source_filenames feature, we don't need
to serve zxcvbn from node_modules/ directly to avoid re-minifying it.

Moving this this allows us to stop shipping the (duplicate)
node_modules directory in release tarballs, which will save many
megabytes of unnecessary increase in our release tarball size.
2017-02-06 17:21:34 -08:00
Steve Howell 0ab832cc49 bug fix: Clean up blue highlighting in the left corner.
In a96fdd18b1, I introduced a few
regressions related to the blue highlighting that happens
in the top left corner for Home, Private messages, Starred
messages, and @-mentions.  Basically, we weren't clearing
the highlighting when we thought we were, so Home would stay
blue too long and the other filters wouldn't turn blue.

We went a surprising long time before noticing the regression.
This fix adds a function called deselect_top_left_corner_items()
to clear the blue backgrounds, so that will happen more explicitly.

And then I restored a line of code to pm_list.js that puts the
blue in place when you are in an is:private narrow (vs. a
specific PM narrow).
2017-02-06 16:10:24 -08:00
Cynthia Lin ac4d551b32 user docs: Conform *Reply to a message* to user docs styling guide. 2017-02-05 15:19:44 -08:00
khantaalaman c3fd0d4e0c subs: Fix incorrect use of RegExp in stream filtering.
When filtering streams, we were incorrectly treating the regexp input
provided by the user as a regular expression, meaning that terms like
`c++` would trigger errors because they are invalid regular expression
syntax.  We fix this by replacing RegExp with a simple IndexOf check.

Node test added by tabbott.

Fixes #3559.
2017-02-05 13:01:43 -08:00
khantaalaman b82104a769 message-view: Uncollapsing using [More...] made easier.
The [More...] link for un-collapsing messages has been made easier to
click, by giving it a top margin which prevent clicks on the top
portion of it from being masked by the top part of the message body.

Fixes #3313.
2017-02-05 12:48:12 -08:00
Rishi Gupta e5441af2c3 analytics: Add word wrap to pie chart legend text. 2017-02-04 00:24:09 -08:00
Rishi Gupta 12e8373692 analytics: Change pie chart colors to be more differentiated. 2017-02-04 00:22:39 -08:00
Amy Liu 24f0716df3 analytics: Clean up graph styling.
This fixes a number of issues in the prototype /stats graphs, including:

* Adding a Total Users number to the Users graph.
* Changing the Messages sent over time graph so that the bot
trace is hidden by default.
* Fades out the last bars in the weekly view to represent unfinished
ata.
* Sets the default view to weekly only if the realm is > 12 weeks old.
* Gets rid of the tooltips and replaces them with hover text
for the Number of Users graph.
* Fixes a bug in the legend colors for the Messages Over Time
graph.
* It also adds the year to the hover text.
* Sets the pie chart colors and adds spaces between sectors.
* Changes the font to Humbug.
2017-02-03 17:17:23 -08:00
Tim Abbott a889346c9f Remove zh_CN old Django name for Chinese. 2017-02-03 14:29:03 -08:00
Steve Howell 89b9c5eece blueslip: Avoid blueslip spam for failed email lookups.
If an email lookup fails, we now wait for five seconds before
doing a blueslip.error() call (after re-checking the email).
2017-02-03 13:02:26 -08:00
Tim Abbott 43d343027b Update translations for Zulip 1.5 release. 2017-02-03 12:32:04 -08:00
Rishi Gupta aafb1c70f0 analytics: Fix pie chart sorting computations in stats.js. 2017-02-02 18:19:48 -08:00
Cynthia Lin 17ad591eb4 docs: Fix bullet formatting and indenting. 2017-02-02 12:25:58 -08:00
Cynthia Lin 944b809fd7 docs: Replace "search help" with "search operators".
For better clarification and to avoid confusion with user documentation tab.
2017-02-02 12:25:58 -08:00
Brock Whittaker 377592802c hashchange: Fix exiting #subscriptions overlay not updating hash.
This applies fixes a bug where if a user used the Esc key, the
subscriptions hash did not get restored to its previous state.
2017-02-02 12:13:08 -08:00
khantaalaman 8c7321abad compose: Show restore-draft option in write mode only.
Fixes #3491.
2017-02-02 11:42:56 -08:00
brockwhittaker 894f0b5bf0 Fix hashchange closing #subscriptions on IE.
This fixes an issue where Array.prototype.split is called on an
undefined instance due to the EventTarget.oldURL property not being
recorded in IE. We fix this by recording it ourselves.
2017-02-02 11:40:26 -08:00
Rishi Gupta 2bd214077b analytics: Limit pie charts to 6 segments. 2017-02-02 09:20:53 +00:00
brockwhittaker d38d12db8d Fix for broad ID selector.
This fixes the broad ID selector `*[id]:before` to be a more specific
selection of h{x} tags inside the `.markdown` container.
2017-02-01 11:24:00 -08:00
Amy Liu 0a39e354dc analytics: Add graphs of usage statistics on /stats.
This adds a frontend for the analytics system we've had for a few
months, showing several graphs of the data in Zulip.

There's a ton more that we can do with this tooling, but this initial
version is enough to provide users with a pretty good experience.

Fixes #2052.
2017-01-31 22:18:54 -08:00
Cynthia Lin 2fbe2229a4 portico: Fix portico header covering anchor links.
Fixes issue #3506
2017-01-31 21:54:09 -08:00
Rishi Gupta 783096627c user docs: Change link color to #399993.
Also removes gradient.
2017-01-31 18:17:49 -08:00
Rishi Gupta d8012c5b7b user docs: Change footer to be less prominent. 2017-01-31 18:17:49 -08:00
Tim Abbott daf43c5e4d navbar: Add margin between icons and text. 2017-01-31 18:11:34 -08:00
brockwhittaker 49b150bcb3 navbar: Center icons in gear-menu.
This centers the icons in the gear menu so they are naturally
in line and centered.
2017-01-31 18:11:28 -08:00
Cynthia Lin 42487d372e docs: Update *Searching for messages* doc with new UI and features. 2017-01-31 18:04:59 -08:00
brockwhittaker b37b7de498 Fix the position of the edit message label.
This fixes the position of the "Topic" label to be above
the input and adds a "Content" label to improve consistency.
2017-01-31 17:53:20 -08:00
Steve Howell bc20692a91 Prevent tracebacks when admin screens aren't loaded.
Various server events can be passed into admin.js before
the initial widgets have been set up.  This code short
circuits live update code when these events happen.

Note that live updates don't consistently work for the
admin pages before this fix (and after it), since don't
store data changes when the widgets aren't built.
2017-01-31 10:34:06 -08:00
khantaalaman e72107dec0 left-sidebar: Fix + icon opening stream-search box.
The of stream-search box in left-sidebar was being opened incorrectly
when clicking the + icon to add a new subscription (because that's
what would happen if you clicked the area around the +). Changes were
made in click_handlers.js by adding e.stopPropagation and
e.preventDefault in appropriate click handler.

Fixes #3517.
2017-01-31 10:00:07 -08:00
Brock Whittaker ebe0aa48a7 Enlargen settings page loading spinner.
Currently the loading spinner on the settings page is too small
and is in the left corner of the parent box. This changes the width
to the same as the main page: 100% fill inside a 38px square container.
2017-01-30 17:51:05 -08:00
Steve Howell 373c8a0bb5 Live-update PM list for full-name changes.
We now trigger an event in user_events.js, and we dynamically
build the list of names in pm_list.js by calling out to
people.get_recipients().

We have a few variations of functions that build lists of names
for huddles, which should be cleaned up eventually.  They are
called at different times in the code path, so the different
functions, while doing mostly the same thing, start with different
data sources.
2017-01-30 11:49:19 -08:00
Steve Howell f836ae0dfb Live-update name changes in the recipient bar.
We now call message_store.get_pm_full_names() when
re-rendering a message list view, rather than reading
msg.display_reply_to, which could be stale.
2017-01-30 11:49:19 -08:00
Steve Howell 2980a9e33d Use user's current full name in recipient bars.
This breaks the function
message_store.get_private_message_recipient into two functions:
get_pm_emails and get_pm_full_names.

The get_pm_emails function behaves the same way as the original
function, but get_pm_full_names now dynamically gets full names
from people.js using the user_id in the message.display_recipient
row.

This makes the recipient bar show the correct new name if you reload
your page.  It doesn't help with live updates.
2017-01-30 11:49:19 -08:00
Steve Howell a98cbff788 Use user's current full name when rendering messages.
The field message.sender_full_name can be out of date, so
we recompute is using data from people.js in
add_message_metadata().
2017-01-30 11:49:19 -08:00
Steve Howell 97243dcd52 Live update full names for senders in the message pane.
Note that this only works for people who are currently logged in.
Folks that log in after you may pick up the old full name from
the message.  (I'll address this in a separate commit.)
2017-01-30 11:49:19 -08:00
Tim Abbott b3c9e186f9 help: Clean up change-your-organization-settings. 2017-01-29 23:02:20 -08:00
Cynthia Lin 7766c122b4 docs: Conform *View messages from a stream* to style guide. 2017-01-29 22:57:38 -08:00
Cynthia Lin 41d66f1ddf docs: Conform *Send a group of people a private message* to style guide. 2017-01-29 22:51:54 -08:00
synicalsyntax 26c13a42f8 docs: Conform *Enable or disable Press Enter to send* to style guide.
Also, tabbott made a number of edits to the content.
2017-01-29 22:49:23 -08:00
synicalsyntax 8932d46657 docs: Conform *Send a stream message* to style guide. 2017-01-29 22:35:24 -08:00
Cynthia Lin 522ac3ea4a frontend: Add #search-operators link to search icon; Fixes #1369. 2017-01-29 07:20:15 -08:00
synicalsyntax 21534930b1 docs: Update *Searching for messages* doc. 2017-01-28 22:49:11 -08:00
Yago González 87a7691bfc translations: Improve some strings. 2017-01-28 18:58:09 -08:00
Tim Abbott b3cb9213d1 Fix malformed double-translated string in alert words code. 2017-01-28 18:23:56 -08:00
Yago González 7fe090f902 translations: Improve some poorly-worded strings. 2017-01-28 18:04:17 -08:00
Rishi Gupta 6b3abce541 build_emoji: Generate emoji names and codepoints from emoji_map.
Replaces the hardcoded list of emoji_names and unicode_emoji_names in
static/js/emoji.js with a list generated from emoji_map.json, both to get
the list out of version control and so we can start modifying it for our
autocomplete. This does not change the contents of emoji_names. It sorts and
removes duplicates from unicode_emoji_names (causes no change in behavior,
since unicode_emoji_names is only used as if it were a set).
2017-01-28 17:05:32 -08:00
synicalsyntax 4c0c7dd3f9 docs: Conform *@-mention a team member* to user documentation styling guidelines. 2017-01-28 15:59:44 -08:00
synicalsyntax 0f2327f9ce docs: Conform *Restore the last unsent message* to user documentation styling guidelines. 2017-01-28 15:59:44 -08:00
khantaalaman 04591d1ce5 js: Fix pressing escape with modals open.
Previously, if you pressed the escape key with various modals open
(keyboard shortcuts, markdown help, etc.), the modals would close but
also the compose box would close and the user would be unnarrowed.
This changes makes it so all that happens is the modal closes.

Fixes #3472.
2017-01-28 15:54:36 -08:00
sinwar 21083278b5 Fix banners for unknown streams.
Fixes #3443
2017-01-28 13:11:31 -08:00
Steve Howell 5251e4981c Prevent traceback in PM recipient matching code. 2017-01-28 04:39:02 -08:00
Brock Whittaker e44723f79d Fix broken emoji popover styling.
This fixes CSS issues such as removing padding with negative margins
and then re-adding padding back later. It also ensures the width of the
picker is exactly six columns wide and does not shift around when zoom
is enabled in the browser.
2017-01-27 16:12:38 -08:00
Brock Whittaker 1dd8fb7966 Display realm emojis in the emoji picker container.
This displays the realm emojis in the emoji picker container in their
own divs styled similarly to the existing .emoji divs.
2017-01-27 15:39:22 -08:00
Tim Abbott f33a9fe384 js: Fix linter errors from rebased code. 2017-01-27 14:54:11 -08:00
Steve Howell f14e2de985 Handle spaces better in compose typeaheads.
We now allow spaces and other special characters to be part
of the token (following "#", "@", or ":") that the typeahead
code will further evaluate as a typeahead candidate.

This is important for folks with short/common first names
on larger realms.
2017-01-27 12:35:46 -08:00
Brock Whittaker ac710be9ae On enter, submit content editable.
On the enter key, the value of the content editable box should be
submitted.
2017-01-27 12:20:21 -08:00
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
Tim Abbott e538d7ef03 admin: Fix waiting period status UI not hiding. 2016-12-21 13:19:40 -08:00
Rafid Aslam bfe84a10f0 API: Migrate POST `json/fetch_raw_message` to GET `json/messages/<id>` 2016-12-21 13:08:40 -08:00
Tommy Ip 400c8c1f65 Prioritize stream subscribers in typeahead list.
When autocompleting names using @mention, subscribers of the stream
would appear at the top of the list. Added new test module to reflect
this change.
2016-12-21 12:59:43 -08:00
Maydha K 516ccd706c docs: Add user guide for the announce stream. 2016-12-21 12:13:27 -08:00
Cynthia Lin 61c4db8ad2 docs: Add user guide for *Invite a friend to Zulip* feature 2016-12-21 11:42:39 -08:00
Sanskar Modi e6beaa2711 Improve @all warnings user interface significantly.
* Doesn't pop up the warning until you actually try to send the message
* Eliminates the red warning.
* Changes confirm text to "Yes, send".
* Adds a stream size threshhold of 15 people; smaller streams don't
  prompt about this.

Fixes #2257.
2016-12-21 11:40:47 -08:00
Shubham Singh bade6f496b Fix autocompleting stream names inside message editing.
Fixes #2577.
2016-12-21 11:09:42 -08:00
Juan Verhook 4cbfac68ca Added User Guide for the Delete a Stream Feature. 2016-12-21 10:56:28 -08:00
Tommy Ip 8e86ed7364 Improve join chat button.
Update join chat button to match with other badges in README.md.
2016-12-21 10:51:54 -08:00
Cynthia Lin 4ecc9deb92 docs: Add user guide for *View the exact time a message was sent* feature 2016-12-21 07:57:05 -08:00
Cynthia Lin 365a4808bc docs: Add user guide for *Change date and time format* feature
docs: Add user guide for *Change date and time format* feature
2016-12-20 18:24:59 -08:00
Cynthia Lin 6964959017 docs: Add user guide for *View information about a message* feature 2016-12-20 17:26:14 -08:00
Jackson 59eb7a54e2 integrations: Add documentation for GoSquared. 2016-12-20 16:59:36 -08:00
Jackson 4ff4f12aea integrations: Add webhook code, API endpoint, and tests for GoSquared. 2016-12-20 16:59:36 -08:00
anirudhjain75 db894b9912 Create "join chat" button for Zulip.
The image that we are using can be found in the zulip repository
in the directory`static/images/help` named as chat-with-zulip-button.

We use the new button in the readme, and we also provide instructions
on how to embed the button in other sites in the help docs.

Fixes: #2270
2016-12-20 16:10:21 -08:00
Cynthia Lin f2d7f37757 docs: Add user guide for *Change the topic of a message* feature
docs: Add user guide for *Change the topic of a message* feature
2016-12-20 15:21:24 -08:00
AZtheAsian 09b1c18fbe integrations: Add documentation for Stripe 2016-12-20 11:56:04 -08:00
Joy Chen 7da65ecb1a docs: Add user guide for rename a stream 2016-12-20 11:13:11 -08:00
KingxBanana 23f3271551 Clear popovers on stream narrows fix (Issue #2281) 2016-12-19 21:05:18 -08:00
Maydha K 4da1ffae9c docs: Add user guide for previewing your message. 2016-12-19 13:39:42 -08:00
KingxBanana 28b49cb440 docs: Add user guide for pin a stream 2016-12-19 08:22:50 -08:00
Cynthia Lin 3227484fbf docs: Add user guide for *Add or invite someone to a stream* feature 2016-12-18 19:33:11 -08:00
Maydha K ab927d3e96 docs: Add user guide for viewing an image at full size. 2016-12-18 13:51:34 -08:00
Maydha K 85558df4bb docs: Add user guide for pressing enter to send. 2016-12-17 16:46:42 -08:00
Akhil 06615bee00 streams: Implement copy-subscribers feature.
In the new stream creation modal, added checkboxes for each stream
and a toggle to see or hide the checkboxes. Altered filtering to
filter streams and users. Added corresponding casper tests.

When a stream is checked/unchecked, it does not affect the state
of any user checkbox. This may be visually unclear as users can be
added even if their checkboxes are empty.

Fixes #2448
2016-12-17 11:20:47 -08:00
Cynthia Lin e87cc4e622 docs: Add user guide for *Unsubscribe from a stream* feature 2016-12-17 08:51:38 -08:00
paxapy 28bd9d035c click_handlers.js: Handle clicks on stream links using data-stream-id.
This causes Zulip to correctly handle clicks on announcements for
renamed streams.

The stream name that the user typed will still be displayed, which
isn't ideal, but is probably the best we can do without more invasive
rerendering of old messages.

Fixes #426.
2016-12-15 22:48:19 -08:00
Brock Whittaker 105ef7caae Add markdown page styling.
This styles inline images, the markdown page as a whole, and the
notification buttons to be CSS rather than images.

[Tweaked by tabbott to temporarily remove the Yantramanov font, since
we should be committing that to the repo so Zulip works correctly without
Internet access]
2016-12-15 21:59:58 -08:00
Cynthia Lin 208da224e1 docs: Add user guide for *Advanced search* feature. 2016-12-15 21:48:07 -08:00
Tim Abbott 7cd3a5873d admin: Remove unnecessary set_up_deactivate_user_modal. 2016-12-15 18:18:26 -08:00
Brock Whittaker d20e643c59 admin: Fix Deactivate/Reactivate User Buttons.
This fixes the behavior to be consistent and remove the “Working…” bug.
2016-12-15 18:17:07 -08:00
Brock Whittaker 36319ca501 Give the #home entry in the gear menu an invisibility cloak.
Previously, this would create a weird blue banner across the top of
the gear menu.

We can't remove it, since it’s required for the gear menu navigation.

Description edited by tabbott.
2016-12-15 18:13:33 -08:00
Steve Howell 47a655a3cc Extract people.extract_people_from_message() and fix bug.
This commit extracts people.extract_people_from_message()
from message_store.add_message_metadata(), and now
add_message_metadata() extract people before it calls
process_message_for_recent_private_messages(), which
fixes a bug where we are trying to look up an email
for a deactivated user who was in the message but not
in the pre-loaded list of people.

Fixes #2701
2016-12-15 17:44:58 -08:00