lilia
af49ad9b90
Dry up new contact init and handling
2015-02-12 13:21:16 -08:00
lilia
63d232dedb
Draw attention to invalid numbers
2015-02-12 13:21:16 -08:00
lilia
746e6530b9
WIP pill view for selected recipients
2015-02-12 13:21:16 -08:00
lilia
c84ccfc735
Wrap model phonenumber validation in try/catch
2015-02-12 13:21:15 -08:00
lilia
eae072e72d
Remove unneeded var, add todo
2015-02-12 13:21:15 -08:00
lilia
fc3a600e72
Validate conversation type
2015-02-12 13:21:15 -08:00
lilia
5e3ed1658b
Show phone numbers in contact selector
2015-02-12 13:21:15 -08:00
lilia
9e245e67e0
Fix double-opening exsisting conversations from typeahead
2015-02-12 13:21:15 -08:00
lilia
b2345a5ec8
Remove unused variable
2015-02-12 13:21:15 -08:00
lilia
ce4ce164af
Stop clobbering conversation attributes
...
Unless the background page fetches the latest details of a conversation
before updating it, it may clobber or nullify some attributes e.g., the
contact's name.
2015-02-12 13:21:15 -08:00
lilia
aca3db97da
New messages auto-update the inbox & conversation
...
When a new message arrives, if its conversation is not already opened,
the background page opens it. If it is alrady open the window is
focused. Finally, the 'message' event is triggered, resulting in
1. the inbox refetches conversations
2. all conversations fetch new messages
TODO: only send this event to the target window
2015-02-11 17:38:03 -08:00
lilia
db5e7fd6b6
Fix list view scrolling
...
Resize handlers are ugly. But not as ugly as scroll handlers. :p
Normalized some whitespace along the way.
2015-02-11 17:38:03 -08:00
lilia
0f29cf2043
Put spaces between joined members in group updates
2015-02-11 17:38:01 -08:00
lilia
d435ff003b
Improve typeahead contact selector experience
...
Store and match on various phone number formats. Still not perfect, as
occasionally all the models are returned for a non-matching query.
2015-02-11 17:38:01 -08:00
lilia
acc2c6f536
Sort contact selector by title
2015-02-11 17:38:01 -08:00
lilia
51dd287b60
Break up a long line
2015-02-11 17:38:01 -08:00
lilia
a00632c728
Hook up group creation flow UI
...
Checkboxes add and remove members as well as exposing the group update
ui. The conversation window is opened after saving the group.
2015-02-11 17:38:01 -08:00
lilia
b3e32a2642
Only load contacts (not groups) in the typeahead
2015-02-11 17:38:01 -08:00
lilia
2f93fb9fbc
Remove unneeded comparator
...
This collection is just an in-memory indexer used for typeaheads. For
display, the matching models are added to a separate collection. Thus,
the order of the elements in the typeahead collection does not matter.
2015-02-11 17:38:01 -08:00
lilia
0d6fbabb3e
Trigger a checkbox event from conversation list items
2015-02-11 17:38:01 -08:00
lilia
e05405e832
Format phone numbers before saving conversations
...
Saving the national and internation versions of the number lets us use
those attributes in a typeahead collection.
2015-02-11 17:38:01 -08:00
lilia
ed928aa4e3
Add index on conversation type
...
So we can load only groups or only contacts.
This changes the schema and requires you to delete your database to
re-run the migration.
2015-02-11 17:38:01 -08:00
lilia
3d5553df09
Remove listener for model open event
2015-02-11 17:38:01 -08:00
lilia
87cd3f5053
Save and open new contact on click
2015-02-11 17:38:00 -08:00
lilia
17f3263a21
Listen for escape key anywhere in the inbox
2015-02-11 17:38:00 -08:00
lilia
070393170c
Auto-focus new conversation input field
2015-02-11 17:38:00 -08:00
lilia
b1ad04298f
Add title bar label to new conversation view
2015-02-11 17:38:00 -08:00
lilia
d26dc8c7e6
Move openConversation handler to InboxView
...
Removes the background page ref to inbox which should fix view tests.
Prep for handling new contact creation.
2015-02-11 17:38:00 -08:00
lilia
1eab26635b
Remove unused variable
2015-02-11 17:38:00 -08:00
lilia
9a6c6bcd98
Reset the typahead before showing it
2015-02-11 17:38:00 -08:00
lilia
b13e36a11c
Style conversation menu
2015-02-11 17:38:00 -08:00
lilia
80ce2d95e0
Sort contacts by name in compose flow
2015-02-11 17:38:00 -08:00
lilia
6d81011f6a
Add back button to compose view
2015-02-11 17:38:00 -08:00
lilia
fedfdcdd7e
Style elements for compose flow
2015-02-11 17:37:59 -08:00
lilia
17deb69a91
Make conversation panel work with a new contact
...
Prevent view from fetching messages without an id, as this causes a
crash.
2015-02-11 17:37:59 -08:00
lilia
5762724709
Don't show new contact unless input may be a phone number
2015-02-11 17:37:59 -08:00
lilia
4ee4872b27
Stop matching typeahead against group members
...
It feels a little weird when you can't see the matching member. Would
consider putting this back in if we display the member list in the
contact list item view.
2015-02-11 17:37:59 -08:00
lilia
00e9e3b757
Setup loading gif on conversation list
...
TODO: get actual gif asset in there.
2015-02-11 17:37:59 -08:00
lilia
cc0acc56dd
Initially hide newConversationView
2015-02-11 17:37:59 -08:00
lilia
613dc3bedd
Start on support for messaging a brand new contact
2015-02-11 17:37:59 -08:00
lilia
d3d84f3124
Let typeahead surface groups with matching members
2015-02-11 17:37:59 -08:00
lilia
e149650d94
Refactor typeahead into new conversation view
2015-02-11 17:37:58 -08:00
lilia
f207137b35
Customize typeahead tokenizer
2015-02-11 17:37:58 -08:00
lilia
c6a19afd29
Tweak contact style in typeahead
...
Remove message snippets and dates.
Add checkboxes.
2015-02-11 17:37:58 -08:00
lilia
7bcceacf69
Implement typeahead (first pass)
2015-02-11 17:37:58 -08:00
lilia
79cdadd816
Add backbone typeahead component
2015-02-11 17:37:58 -08:00
lilia
79b4c89ce4
Fixup attachment preview
2015-02-11 17:37:58 -08:00
lilia
bd86546cea
Make chat window titles match contact list
2015-02-11 17:37:58 -08:00
lilia
1a553fef17
Hide file modal until it's needed
2015-02-11 17:37:58 -08:00
lilia
58e7f3c7e1
Fix file input click zone
...
Previously, the ugly file input was hidden with opacity, and styled as a
square paperclip icon, but its drop and click zones were not constrained
to the visible square. They remained active across the whole 'Choose
File' button, which overlapped with the textarea. Instead, hide the file
input complete (display: none) and transmit click events from the
paperclip to the input programmatically.
Eventually, we'll need to address drag and drop events, but I want to do
that at the window level. Otherwise dropping a file outside the file
input drop zone causes the browser to navigate to the file://... url.
2015-02-11 17:37:57 -08:00
lilia
8498d7ad1f
Fixup conversation page styles and functionality
...
Render the entire conversation from a template, because some parts of it
must be rendered conditionally if it is a group vs private conversation.
Also apply some style fixes and restore lost functionality:
* Make conversation title bar fixed.
* Widens message bubbles.
* Unhide message list.
* Restore attachment rendering.
* Restore message sending and attachment file selection.
* Style attachments file input as a paperclip.
* Style send button like on Android and make it a submit input.
2015-02-11 17:37:57 -08:00
lilia
34d5f3e88a
Cleanup inbox view
...
Don't auto open the last conversation. It doesn't make sense now that we
no longer have two column layout.
Don't trigger/listen for selected events. There's no need since the list
item opens a new popup now.
2015-02-11 17:37:57 -08:00
lilia
607d5d3307
Abstract chrome browser action and windows stuff
2015-02-11 17:37:56 -08:00
lilia
71da6a1df1
Move index2 to index
2015-02-11 17:37:56 -08:00
Riley Shaw
94ce4d4b91
Simplify panel state management and message passing
2015-02-11 17:37:56 -08:00
Riley Shaw
9071d98395
Update styles to material design to match Android client (first pass)
2015-02-11 17:37:56 -08:00
Riley Shaw
783a3f7c15
Prevent duplicate conversations and refocus on click (still buggy)
2015-02-11 17:37:56 -08:00
Riley Shaw
7ec27f814f
Get conversations loading through localStorage
2015-02-11 17:37:56 -08:00
Riley Shaw
2cbcb28ee3
Start on panels
2015-02-11 17:37:56 -08:00
Matt Corallo
02d0c58e5e
Mostly done device-bringup stuff
2015-02-11 14:03:54 -08:00
lilia
c0a8c00884
Rebuild libtextsecure also
2015-02-11 12:49:33 -08:00
lilia
8097db9af7
Micro refactor group update setup in message view
2015-01-21 13:53:41 -10:00
Matt Corallo
29b2ffc769
Update to real server provisioning API
2015-01-19 10:23:25 -10:00
Matt Corallo
c112c59ce6
Fix group send ( fixes #129 )
2015-01-19 10:04:11 -10:00
lilia
94e14f2c85
Add license headers
...
Closes #75
2015-01-18 14:21:22 -10:00
lilia
5d044bd00e
Fire an event on phone number validation
...
Fix a bug introduced by recent phone number input work that prevented
the call and sms buttons from being clickable.
2015-01-17 22:51:32 -10:00
lilia
f6376c0fa2
Rename event
...
'open' seems a better name for an event that triggers the open function.
2015-01-17 22:33:55 -10:00
lilia
f73596c240
Add a view for attachment previews
2015-01-16 13:39:01 -10:00
Emily Chao
bb2b53035e
Restyled message attachments
...
Added a size limit, added functionality to delete the attachments before sending in a more user-friendly way
2015-01-16 13:06:49 -10:00
lilia
9baafddb14
Add license to file input view
2015-01-16 13:06:38 -10:00
lilia
d470b0eb53
Less jquery, more templating in conversation view
...
`if (foo) then jquery-dom-insert...` is a poor pattern to follow.
Instead, let mustache do the work.
2015-01-15 22:34:52 -10:00
Emily Chao
e74cba8a92
Restyled country dropdown
...
Added jquery plugin that allows for flags and country codes to be
displayed in a user-friendly way, on top of the existing phone view
2015-01-15 15:24:36 -10:00
Emily Chao
5d3020b9ed
Refactor phone number input view
...
Moves validation logic to its own view to be shared on index and options
pages.
2015-01-15 11:51:32 -10:00
lilia
44007ca58f
Add rudimentary ui for sending a group update
2015-01-15 09:23:13 -10:00
Matt Corallo
334550b779
Regenerate components/libts
2015-01-14 11:39:36 -10:00
Matt Corallo
5785f4033c
Compile curve25519/webcrypto into libtextsecure.js
2015-01-14 09:35:57 -10:00
Matt Corallo
07899557dc
Give libtextsecure its own components (with way fewer deps)
2015-01-14 09:35:57 -10:00
Matt Corallo
8ad1a38b5b
Move js files around for libtextsecure split
2015-01-14 09:35:57 -10:00
Matt Corallo
13d403b334
Switch to isNumberSane in group storage
2015-01-14 09:35:57 -10:00
Matt Corallo
17782660e2
Add isNumberSane to textsecure.utils for basic validation
2015-01-14 09:35:57 -10:00
Matt Corallo
6b933455e3
Merge pull request #108 from TheBlueMatt/refreshgroup
...
Replace all the refreshGroups stuff
2015-01-14 09:35:20 -10:00
Matt Corallo
eac506557f
Replace refreshGroups with singular refreshGroup on send
2015-01-14 09:34:36 -10:00
Matt Corallo
0b19e5b9c3
Replace numer->group with group->number->registrationId tracking
2015-01-14 09:34:36 -10:00
Matt Corallo
67bb400b87
Revert "Don't refreshGroups in tryMessageAgain", making a better one
...
This reverts commit f9e68be45b
.
Conflicts:
js/sendmessage.js
2015-01-14 09:34:36 -10:00
lilia
d119bdff01
restore default avatars
2015-01-14 01:37:41 -10:00
Matt Corallo
6124084807
Bring padding calculation in-line with android
2015-01-12 21:26:12 -10:00
lilia
d8efc4d216
Handle incoming group avatars on group creation
2015-01-11 12:33:59 -10:00
lilia
3d6c251fd1
Group avatars
2015-01-11 01:27:22 -10:00
lilia
d52db8fe6f
Render group updates
...
Not pretty, but it works. Also allows for later localization.
Copy/behavior is borrowed from the Android client.
Closes #104
Fixes #65
2015-01-10 08:08:20 -10:00
lilia
4e6faf4e27
Always listen for (re-)registration events
...
If we clear local storage and re-register in a foreground page, the
background page needs to re-init its websocket with the new account
credentials.
2015-01-07 19:09:07 -10:00
Matt Corallo
7ebf0f5085
Remove last \t in protocol.js
2015-01-06 14:47:03 -08:00
Matt Corallo
406be10f53
s/\t/ /g in sendmessage.js
2015-01-06 14:39:54 -08:00
lilia
fca67d7b0e
Simplify pushMessageContent handler slightly
...
New private conversations have their type set in onMessageReceived. New
group conversations should be handled the same way as normal group
updates. It was pointed out we should never have to handle a group
message without a preceding group update, as those would be rejected by
textsecure.processDecrypted. An exception would be if you delete the
group from indexedDB but not localStorage, but that's not a mode we
should be supporting.
Also in this change I switched to instantiating a new conversation
object on every call to handlePushMessageContent. Originally, I thought
to use the local conversation list as a cache, but it's a bit simpler to
re-read from the database every time for now. Later on we should revisit
and optimize for fewer read/writes per incoming message.
2014-12-24 15:37:05 -08:00
lilia
0ea176dfa0
Don't require a conversation name
...
Just display a sensible default in the frontend if it's unset.
For private conversations this should be the phone number, for
groups, the list of numbers.
2014-12-24 14:32:11 -08:00
lilia
0292c12712
Catch and save Bad Mac errors on the incoming message model
2014-12-23 18:31:57 -08:00
lilia
40b54185f3
If we happen to get a group message with no update, use a blank name
2014-12-23 15:07:43 -08:00
lilia
f23403f82b
Fix arguments to sendMessageProto in tryMessageAgain
...
As ov ccc98d2
sendMessageProto takes a timestamp for the first argument,
in service of app-level delivery receipts.
2014-12-23 15:02:03 -08:00
lilia
f9e68be45b
Don't refreshGroups in tryMessageAgain
...
This was intended to sync the group state of a recently re-installed
client, but is prone to overkill when we have a lot of old stale groups
around. Also this implementation incurs some rate limit errors from the
server.
2014-12-23 14:28:19 -08:00
Dave Sescleifer
2462aba24b
Fixed timestamps and added last message to the gutter
2014-12-22 23:38:26 -08:00
Dave Sescleifer
441962abc6
Fixed date format
2014-12-22 23:38:26 -08:00