Commit Graph

219 Commits

Author SHA1 Message Date
Steve Howell 9993af7e8d Remove dead comment from refactoring.
(imported from commit 2b1f3ef65b2e30c548a8966d47b448cefe3dde5f)
2013-08-15 17:15:07 -04:00
Steve Howell 30af17254d Require topics for customer7.invalid and zulip.com.
(imported from commit 6b17147b50575dd4ea8d688f15951660766708fa)
2013-08-15 17:09:26 -04:00
Scott Feeney 0241ae4136 Fix "All messages" showing when it shouldn't
I haven't filed an issue about this since I just quickly found and
tracked down the bug, but the STR were:

1. Subscribe to stream foo
2. Hide foo from your home view
3. Unsubscribe from stream foo
4. Unhide other subscribed streams you've hidden from home view, if any

The "All messages" link would stay, although it should go away in this
case. The apparent cause was an incorrect assumption (when implementing
this feature) that the stream_info dict only contains subscribed
streams; in fact, we also populate it with streams you used to subscribe
to.

(imported from commit 67f95c8c8a211a4943a2de394919d15a0d5435d0)
2013-08-15 16:21:35 -04:00
Allen Rabinovich 550fd6281c Fix regressions associated with the new fixed sidebar layout.
Specifically:

   * Remove min width setting for the main div as it is no longer necessary.
   * Change max width for the app to 1200 and adjust top margin on the message pane

(imported from commit 846dd3dcd7798efa615e15c61681b0ab7465f5e3)
2013-08-15 12:55:10 -07:00
Zev Benjamin 12c7f276b7 blueslip: Get complete stack traces in Chrome
(imported from commit 6165e210b9168701faf1310a33083bd30fa3aaf2)
2013-08-15 13:16:40 -04:00
Allen Rabinovich 0b78fab636 Switch to fixed sidebar layout and remove bootstrap layout hooks.
(imported from commit 060340a2febb7b8df6477a3419e7588a8503e377)
2013-08-15 11:05:11 -04:00
Steve Howell ecb3399a8d Move summary exemptions from 5 to 8.
(imported from commit 279422ffb9e6d826a9e70e577fe334631f2697ca)
2013-08-15 11:03:26 -04:00
Steve Howell babbca7360 Use d.each() for iterating Dict instances.
(imported from commit 8cfe2c9a61aa1179454a6ab986fa23d04de09525)
2013-08-15 10:16:12 -04:00
Steve Howell 75ffd4d637 Exempt last 5 messages in view from summarization.
Once you enter a view, the last n messages will be exempt from
summarization, to give the users a little more context.  Any
subsequently arriving messages will also be exempt.

We will try n=5 at first.

(imported from commit 3e6fe58109e692389bf02dde2230d788b5818d52)
2013-08-15 08:20:29 -04:00
Steve Howell 3e1cdaaded Add MessageList.nth_most_recent_id().
(imported from commit 69a424d4990402b9e77fbfa57fa573a002cf04ce)
2013-08-15 08:20:29 -04:00
Allen Rabinovich 5f45c42005 Replace inline-block with block to avoid FF issue of ignoring line-height on inline-block elements
(imported from commit 49e6d576d44907b8ebfbf89ba1e05c4c64ffb7ca)
2013-08-14 18:14:46 -07:00
Zev Benjamin 72927e9d77 Fix unread count badge on OS X desktop app
For web pages, the initial favicon is the same as the favicon we
set for no unread messages and the initial page title is the same
as the page title we set for no unread messages.  However, for the
OS X app, the dock icon does not get its badge updated on initial
page load.  If the badge icon was wrong right before a reload and
we actually have no unread messages then we will never execute
bridge.updateCount() until the unread count changes.  Therefore,
we now ensure that bridge.updateCount is always run at least once
to synchronize it with the page title.

(imported from commit 5d1269c62c1c3190aea96ef6f96c46acdb9fdf9c)
2013-08-14 17:30:16 -04:00
Kevin Mehall de58b3fb4c Instead of DOM lookups, implement get_row in O(1) with a map updated after rendering.
(imported from commit 52927e87463e49f9f4522baa065cc934094f58de)
2013-08-14 17:08:47 -04:00
Kevin Mehall 0f6c7ca7be Use msg_list.get_row(id) instead of rows.get(id, msg_list.table_name)
(imported from commit 953cd24e605269d2bbdc42b878506f0ab01501e8)
2013-08-14 17:08:32 -04:00
Scott Feeney 024680f1de Outdent rows.js
We don't indent the outermost IIFE in any of our other modules.

(imported from commit 476bf5025988de28644bbb22f70e0cd2f404526a)
2013-08-14 14:57:29 -04:00
Steve Howell 947ca3a0e0 Add Dict.each().
Dict.each() allows to iterate through values and keys of a Dict.
The callback function is passed value as the first parameter to
be similar to _.each()'s calling sequence.

(imported from commit e745e8b5d2f167b8b8acf7542b767494e354b037)
2013-08-14 14:24:38 -04:00
Steve Howell 4b0cef8a83 Fixed code comments
(imported from commit 75b0ad464bab2e9b0b24f7c6a484b9c99d8b5a7a)
2013-08-14 13:22:28 -04:00
Steve Howell 59b84aad4a Properly fade recipient bar of incoming messages.
This fixes #1682, a recent regression that came out of
a5a47e13fc9d, which introduced the update_rendered_messages()
function in compose_fade.js.  The original implementation
was finding the table row for a message, but not the table
row for its recipient bar.  Now we style both elements.

(imported from commit a9628df0b03f79a24dfa68f4f2061eda2ca8ecea)
2013-08-14 13:20:39 -04:00
Steve Howell d66ac9f36c Remove calls to update_floating_recipient_bar in compose_fade.js.
The calls to ui.update_floating_recipient_bar() were brought over
from compose.js, and it turns out they just complicate scrolling,
since we already call the function in the scroll handler.

(imported from commit d3c28b17859cacd49b7db9f8784d4b8b9069e1ff)
2013-08-14 13:20:38 -04:00
Steve Howell 3f6a0cb909 Make topic autocompletes be case-insensitive w/r/t streams.
See trac #1676. Topic autocompletes were case insensitive
w/r/t to topic itself, but if a stream was called "Denmark"
but the compose box's stream field had "denmark", then we
wouldn't suggest any topics.

(imported from commit c8296c166115bb96023026da212f73a243432305)
2013-08-14 13:15:00 -04:00
Steve Howell 050c8ad103 zulip.subject_dict -> composebox_typeahead.seen_topics
Move zulip.subject_dict into composebox_typeahead.seen_topics,
and encapsulate the use of seen_topics inside composebox_typeahead
with add_topic() and topics_seen_for().

(imported from commit 2bc2d1714fabdc07a661cbf815d14b36a08990e2)
2013-08-14 13:15:00 -04:00
Waseem Daher 34e0c1e696 Use iframe for Dropbox integration.
This lets us avoid popping up a separate browser window (which would
not currently work in the desktop app).

This closes Trac #1673.

(imported from commit eb1990d8021600fc4d3870f6ec3a28f7111036c3)
2013-08-14 11:05:14 -04:00
Waseem Daher 13d3b4ab59 Less confusing placeholder names for "Share the Love".
(imported from commit cd904510b8aa7bf2b4e6d63aaa43bd48e6bb8966)
2013-08-14 10:12:34 -04:00
Tim Abbott 91a3935b92 Fix sending unnecessary pointer updates to server after reload.
(imported from commit 5297d7339e2fc363e825b20ddd7279f9878dbe2f)
2013-08-13 18:09:19 -04:00
Tim Abbott f6b7aed0c9 Save the original initial_pointer when updating it on reload.
(imported from commit 1fe4332282e521240d3a24428f3f7c318233258a)
2013-08-13 18:09:19 -04:00
Steve Howell 1c9749d21e Debounce update_faded_message on the trailing edge.
This resolves trac #1675, without introducing the problem that
caused us to set the immediate flag in the first place.  (Some
commits just prior to this eliminate some slowness with rendering
by taking the debounced function out of the code path.)

(imported from commit 8c72f25a9d5eb38376957f222b9413d3167fa386)
2013-08-13 17:14:07 -04:00
Steve Howell a1fa7c1b04 Remove unneeded calls to update_faded_messages() in Zulip.
These calls were expensive and unnecessary.  We already update
fade/unfade classes deeper in the call stack, when we render
the messages inside message_list.js.

(imported from commit 08fe028462b6d4569d9798a290dd7b26eb21fb01)
2013-08-13 17:14:07 -04:00
Steve Howell beb89e247f Avoid unnecessary fading/unfading processing via message_list.
The call to compose_fade.update_faded_messages() in message_list
caused us to traverse every message in the current table, which
was extremely inefficient.  Now we call the newly created
compose_fade.update_rendered_messages(), which only fades/unfades the
messages passed in as the first parameter.

(imported from commit a5a47e13fc9daeedd0899b2cfb02beb3f6b8cd0a)
2013-08-13 17:14:06 -04:00
Jeff Arnold ec2f013723 Make the left sidebar and right sidebar more consistent.
Addresses Trac #1500.

(imported from commit ad59d6f78042ce89a99ad60c7c34f67144e9c776)
2013-08-13 16:34:16 -04:00
Jessica McKellar f530e3b930 Display the email address for a stream in its stream page detail.
For now, only show it on staging.

(imported from commit fd07fad1c34578d8ddc2cddd1bb6bdcb72f354de)
2013-08-13 14:28:47 -04:00
Jessica McKellar f7784a2f1d Add a handlebars helper for variadic compound AND conditions.
e.g., from a comment in the commit:

// Execute the conditional code if all conditions are true.
// Example usage:
//     {{#if_and cond1 cond2 cond3}}
//         <p>All true</p>
//     {{/if_and}}

We'll use this for the email forwarding UI, but it may also be
generally useful, and easy to generalize to OR.

(imported from commit da601f94d9da300213ff46be50255135c014eca0)
2013-08-13 14:28:47 -04:00
Luke Faraone af4c34330b Switch to checking database is_bot field instead of using a heuristic.
This has the amusing side effect of showing all the Zulip bots in the
administration view because none of them have the is_bot 	 set.

(imported from commit cdec19d2109c092018c1f331aa32f345d1587683)
2013-08-13 14:20:18 -04:00
Luke Faraone ecc42bc9f8 Add administrative panel to allow for user deactivations etc.
We now show a list of users and allow you to deactivate a user using the
same process as `python manage.py deactivate_user`.

We add a new menu item accessible from the gear icon which will eventually
have much more than just this, but we have a good start here.

Here we also add a property to UserProfile which determines whether you're
eligible to access the administration panel, and then have code which shows
the menu option if so.

This introduces a new JS file, admin.js.

(imported from commit 52296fdedb46b4f32d541df43022ffccfb277297)
2013-08-13 14:20:18 -04:00
Steve Howell 78d8153e6b Remove compose box flicker after sending messages.
We remove the calls to clear_box()/hide_box() and start(),
so that we don't mutate a bunch of UI elements needlessly.
Everything that start() does either never made sense in a
just-after-message-sent context, or it was necessary prior to
this fix only because of what happened in clear_box() or
hide_box().

This change closes out trac #1672, "Clean up always-open code."

(imported from commit bedaa719eb05e166a4bac562784da0cce8859700)
2013-08-13 14:12:29 -04:00
Steve Howell 8f11ce7485 Remove redundant calls to send_status.hide()
One of the calls was obviously a typo dup, and the other
call is already covered by clear_box().

(imported from commit 448dc4c0f265cc7260ea08f0468a7d1440903e3c)
2013-08-13 14:12:28 -04:00
Steve Howell 5248c68fb7 Extract compose.show_box_for_msg_type()
(imported from commit 886717cbc73d0d662ccbd96091e94b85864d0049)
2013-08-13 14:12:28 -04:00
Steve Howell 86b337ca75 Extract compose.same_recipient_as_before()
(imported from commit 2ba8589127e3a0e86c00bb52a22be01bcad48a5d)
2013-08-13 14:12:28 -04:00
Steve Howell 6314089e26 Extract compose.fill_in_opts_from_current_narrowed_view.
(imported from commit e89c6c7f42aa8fdfd77e879e6d9f43dd67744ea6)
2013-08-13 14:12:28 -04:00
Steve Howell 0879648f0e Remove respond_to_cursor flag.
The prior commit, which was a functional fix, made the
flag obsolete.

(imported from commit 203a080106b00e0355a1223f783bbe579430b4ad)
2013-08-13 14:12:28 -04:00
Steve Howell 2b2587d70b Stop using old reply recipient in always-open compose.
Due to the code removed in this diff, we would put you
back to your original reply stream/topic/sendee

(imported from commit 6e1f4666e3b32b057e692e015782780f7c734445)
2013-08-13 14:12:28 -04:00
Steve Howell 6686ca04d2 Remove feature_flags.always_open_compose from code.
The flag has been set to true for a while, so we removed
the flag and a bit of dead code associated with it.  This
change should not affect any functionality on any realm.

(imported from commit 8d457f52584173994d0e5e83ca326f892cd90057)
2013-08-13 14:12:27 -04:00
Steve Howell ad10cecdd7 Extract mark_summarized().
(imported from commit 14a1c69392ec6ca8cb0ec72196368a195dd4c6fa)
2013-08-13 11:26:12 -04:00
Steve Howell d27feeed62 Extract code to summary.js.
(imported from commit 51d958b27e53555f5f77d6e6b661eade57190e23)
2013-08-13 11:26:12 -04:00
Zev Benjamin 62f607fd5e Debounce fading on the leading instead of the trailing edge
(imported from commit 11d0e8938c1f29cfea0678330e7af9884844af21)
2013-08-12 18:07:30 -04:00
Jessica McKellar 29a64b6c59 Only suggest declaring bankruptcy once.
Use information from the server to figure out if we should prompt for
bankruptcy, rather than trying repeatedly inside load_more.

(imported from commit ccb8cb1ce482b8bf3d343e7324fef7981880282d)
2013-08-12 17:33:40 -04:00
Waseem Daher 9ea08a35c5 Refactor: move attachment-related code into compose.js
(imported from commit 4436f0799a9c1a00e964962d4d0d165e03b641b7)
2013-08-12 17:22:23 -04:00
Waseem Daher dfb60ee966 File uploads using Dropbox.
(imported from commit c552133fc7025eca526fbfef24fd544260d7111b)
2013-08-12 17:22:23 -04:00
Zev Benjamin 90bf2ec9d0 referral: Fix some finicky element movement
(imported from commit 4f90bb1c18eb42ca29036d0392d05f0337a51bba)
2013-08-12 17:03:33 -04:00
Waseem Daher 5f7662d4ee font-awesome: icon- becomes icon-vector-.
(imported from commit 8d83e4c0d13a706ed7e1b957bbc3f27c3d3b5bca)
2013-08-12 16:55:29 -04:00
Waseem Daher 319d90be48 Upgrade Font Awesome to v3.2.1.
(imported from commit 3a2f8ff8de5570113fd28aa3bf297eb7e9f5dfeb)
2013-08-12 16:55:29 -04:00