Commit Graph

67 Commits (bf22da209f798066cd391522594a72f874a6eca0)

Author SHA1 Message Date
lilia bf22da209f Fix tests 11 years ago
lilia d1c5b6da7a Get rid of Layout global
Instead, trigger and listen for events on the conversation collection
object.
11 years ago
lilia a835887459 Fix scroll when re-opening a conversation 11 years ago
lilia fd3a72d435 Destroy all globals
Well, not *all* globals..
11 years ago
lilia c0681beca7 Consolidate message callbacks
Register the runtime callback at the top level view rather than having
each conversation view register independently.
Also refactors Layout into InboxView.
11 years ago
lilia 470346c9c4 Save incoming messages and pass to frontend asynchronously
After a message is saved asynchronsly, fire an event and pass the
message attributes to frontend listeners via the chrome-runtime API.

This behavior is similar to the 'storage' event fired by localStorage.
11 years ago
lilia ced295a630 Move message and conversation storage to IndexedDB
Getting up and running with IndexedDB was pretty easy, thanks to
backbone. The tricky part was making reads and writes asynchronous.
In that process I did some refactoring on Whisper.Threads, which
has been renamed Conversations for consistency with the view names.

This change also adds the unlimitedStorage permission.
11 years ago
lilia b9859ad9d4 Add some license headers 11 years ago
lilia 28290477f4 Nicer timestamps with momentjs
This dependency may be a little heavy for our current use case, but we can
roll with it for now and find something slimmer if it turns out yagni.

Closes #77
Closes #40
11 years ago
lilia 0956d328da Fixes #71 Autoscroll
Conversation view autoscroll triggers on dom change, not storage change,
ensuring that we don't scroll before the new element is inserted.
11 years ago
lilia aa937ae1d1 Add attachment inputs to new conversation form
Fixes reference error to 'map' on undefined attachments list.
11 years ago
lilia 987744cd79 Default avatars
Someday you'll be able to edit your avatar. Until then, put a bird on
it.
11 years ago
lilia 229007040c Basic frontend support for image attachments 11 years ago
lilia d362d0d978 Autoscroll conversation views
Scroll to the bottom (most recent) message in the conversation when it
is opened, when we send a message, and when we receive a message.
11 years ago
lilia d67b723f4f Highlight the selected thread 11 years ago
lilia 19dac1f3df Decorate incoming group messages
with numbers and image placeholders, so you know who's saying what.
11 years ago
lilia 78166365c7 Fix new message number validation 11 years ago
lilia 6e2a85ccf1 wip new message phone number validation 11 years ago
lilia 4f21bbd21f Use textsecure.messaging to create groups
Not textsecure.storage. Sigh. Also accomodate the fact that
the group id is not returned directly, but rather at the end
of a promise chain.
11 years ago
lilia 43f4f6cf99 Open a group's view after it's created 11 years ago
lilia 01f9fc1f17 More frontend groups fixes 11 years ago
lilia dc41ebf701 Small frontend fixes for the new group view 11 years ago
lilia 81e4af5827 Move phonenumbery utils to libphonenumber object
Slowly whittling away at helpers.js...
11 years ago
lilia 0f4b53c176 Update records list in BBLocalStorage on fetch
Previously, would only update the known messages.
11 years ago
lilia 2288f8adc1 Fix new group ui not showing 11 years ago
lilia ef066ea9d2 Make conversations open when they are created 11 years ago
lilia 230d24a69e Views already have a #remove() 11 years ago
lilia db86abdf70 Add list view tests
Also,
 * moved fetch out of the list view
 * removed unused #last() function
 * put test setup lines in their own tiny file.
 * added data-cover to view script tags for code coveage reports.
11 years ago
lilia ad7456b367 Refactor away this poorly named and overloaded file 11 years ago
lilia b9640a54bd Move new convo stuff to its own file 11 years ago
lilia 9af18ce6ae Encapsulate page layout js
The layout class is the only class that should have knowledge of
page-level constant markup, such as #gutter and #contacts, and
should be pretty much the only place we find elements by id (with
the exception of template elements).

This change removes references to #gutter from views. Rather than
hardcoding assumptions about page layout, view elements should
ask the layout to insert themselves into the main content area by
calling Whisper.Layout.setContent.
11 years ago
lilia 5ddcc516e4 remove extra insertion, it's already happening 11 years ago
lilia 2f0b0f7a1b Get overflow scrolls working
Had to resort to a resize event handler.
A bit slow at times, but it works.
11 years ago
lilia 546cdf82cb Fix some markup issues
* Remove spurious search div
* Fix nested uls
* Use class name selected, not closed (the inverse)
* Restor nacl div
11 years ago
lilia c2beda8e40 Get single recipient message composition working again 11 years ago
lilia c034ac8267 Refactor components for the main content section
Each conversation views now manages its own separate elements
rather than all binding to a shared #conversation element, and
similarly for message composition ui.

Also includes the beginnings of group creation UI (not working yet),
featuring bootstrap-tagsinput field for entering group recipients
11 years ago
lilia 5f74a60364 Format thread timestamps 11 years ago
lilia 44f272a181 Get messages sending with new ui
Also convert index.html to 4-space indentation.
11 years ago
lilia 95c31629b7 get frontend rendering with new markup/css 11 years ago
lilia 850a91c77d Fix message sending 11 years ago
lilia 0741c74618 Don't recreate views unnecessarily
Let ConversationListItemView save a reference to its corresponding
ConversationView. This lets it render or delegate/undelegate events
when opening and closing a conversation.

Similarly for ConversationView itself, which contains a MessageListView.
11 years ago
lilia 9d0be46a53 Close an open conversation before opening another 11 years ago
lilia bbb5d56516 Don't reopen a currently selected conversation 11 years ago
lilia 98cfc1b701 Remove old convo compose view 11 years ago
lilia 511b121a2f Refactor conversation view into two classes
One that resides in the left hand column as a list item, and another
which displays in the main column and handles ui events therein.
11 years ago
lilia 6ff6ef07a9 Parse the template before binding render to an event 11 years ago
lilia d615a5a18b Let list view changes the color of selected conversations 11 years ago
lilia dc957415c2 Cull dead code
Most of this no longer needed because of templating and list views.
11 years ago
lilia 9082781e09 Make header and footer/form work without overflowing 11 years ago
lilia def32f42d4 New layout/design
Two column layout and style tweaks. Templatized conversation views.
Generalized list view.
11 years ago