Commit Graph

413 Commits

Author SHA1 Message Date
Scott Nonnenberg c714fb6dbf Shadow/icon/blue for banner, better verify advisories in dark theme
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 1cf9289b1a Add items to conversation history when user verifies/unverifies
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg a827334c3e Allow re-send of messages in msg detail view on OutgoingKeyError
We also show more errors than we used to in the MessageDetail screen
to help make it clear what is happening, and why the user would need to
re-send.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 47c5142a83 Replace unicode check with new svg icon
A good bit of CSS was required to keep the text color changing along
with the text it is nestled within.

Also: took this opportunity to increase the contrast of the number and
verified section right under the contact name in the group members view.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 688cae6374 Remove empty string class passed to contact template
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 8264f3ba33 Make the term 'Verified' fully localizable
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg db2620af0a Safety Number screen: make verify button like other buttons
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 8d29cb9830 Prevent access to Safety Number when talking to yourself
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg c7e385eb38 Remove 'safety number approval' option from settings dialog
Also sync templates in test/index.html and background.html

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 2955c36b3e Confirmation dialog: Make keyboard-accessible: escape to cancel
And proper tab order. Then some more work to re-focus on the message
composition field after the dialog shows up and steals focus.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg 243cbd8123 Confirmaton on send, banner when 'unverified'
Not yet using the new APIs, but ready to. Still to do:
- Send sync messages on trust decisions
- Respond to received trust decision sync messages
- Show trust decisions in the conversation history
- In that rare situation where a sent message ends up with a key error
  make it easy to retry the send.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg bedf10056b Support for group-member verifications via second-level panel
Also:
- All the necessary wire-up to update things in real time. If you have
a safety number page up via a group member view as well as via a 1:1
conversation with that contact, they'll both be updated as the
underlying model changes. Similarly, the overall group will update
in real-time as members change.
- A bit of special-casing for yourself in a group conversation - you're
shown as 'me' and are not clickable, where normally that would take you
to the Safety Number screen for that contact. You are also not included
in the trust calculations for a given group.

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg ae3587f05e Move all instances of 'verify identity' to 'show identity'
As discussed in standup this morning - only the act of verifying or a
statement about current status should use that word 'verify.'

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg ee0b0f5ffb Remove all concept of 'key conflict' from the app 2017-08-04 12:03:25 -07:00
Heather Booker 5a3610c8e0 Specify font-family for identicon in notification
Fixes #904, where letters in notification bubbles were being
displayed in serif font on Antergos (Arch) OS.

// FREEBIE
2017-07-12 15:35:53 -07:00
Ikarulus ec3278ca3a add message length warning for android clients 2017-06-07 15:53:14 -07:00
Scott Nonnenberg 0d722a3186 Last seen indicator visual refresh
- Last seen indicator now spans the full conversation, with subtle
shadow highlights above and below
- Scrollbars now overlap the content of the conversation, allowing last
seen indicator to touch the right edge of the window.
- The iOS and Android conversation background is now #eee instead of
white, which meant that the outgoing messages (Android) and incoming
messages (iOS) had to be updated for contrast. They now have white
backgrounds.
- Similarly, the scroll down button needed more contrast, and its
background is now white in light themes.

FREEBIE
2017-06-01 15:19:25 -07:00
Scott Nonnenberg 4c7bfbe9ff Scroll down button: when scrolled up, or new non-visible message
FREEBIE
2017-05-23 11:08:23 -07:00
Scott Nonnenberg fed26c36ca Add new Last Seen Indicator with unread count, scroll to it
This is to ensure that when there are a lot of unread messages, the user
is given the chance to see all of them by being scrolled to the oldest
new message.

When a new message comes in, the indicator will be incremented.

When the user sends a message or switches away from the conversation,
the last seen indicator will be removed.

FREEBIE
2017-05-23 11:08:23 -07:00
lilia d9851f51fc Enable voice notes again
For reals this time.

// FREEBIE
2017-05-22 10:09:54 -07:00
lilia 2a8ee26372 Disable voice notes again
This feature is still blocked on a corresponding iOS release.

// FREEBIE
2017-05-17 13:27:31 -07:00
lilia 3ea5c0435b Update attachment style
Add names and sizes for all attachments except images, and (as with
arbitrary attachments), clicking on the text will open a save dialog.
In the absence of a filename, choose something that makes sense.

Display different icons for different media types, including distinct icons
for voice notes and audio files.

In iOS theme, audio, video, voice, and files are all encapsulated in bubbles.

Closes #804
Closes #842
Closes #836

// FREEBIE
2017-05-12 15:27:45 -07:00
lilia 56d1ce75ac Enable voice notes
And fix recorder background color in dark theme

// FREEBIE
2017-05-12 09:55:15 -07:00
lilia aed5735620 Improve keychange notice reliability/perf
Bind a single listener to keychange events from the storage interface,
which then looks up relevant conversations and adds notices to them,
with tests.

Previously we would need to instantiate a conversation model in order to
start listening to its key change events. In practice this usually
happens at startup but we shouldn't rely on it, and it incurs higher
overhead since it creates a different listener for each conversation.

// FREEBIE
2017-05-09 15:41:41 -07:00
Scott Nonnenberg ee00ad0e15 File attachments: show file size, bold filename, make icon bigger
FREEBIE
2017-05-09 15:14:20 -07:00
lilia a27ea20f3e Improve unsupported file type handling
Make arbitrary files look nicer and display the filename.

If an audio or video element fails to load for any reason, timeout after
a few seconds and render it as an arbitrary file. Also short circuit to
this treatment for common audio and video file types that we know are
going to fail, e.g., proprietary formats from apple.

// FREEBIE
2017-04-18 16:27:50 -07:00
lilia 44a4ff3b52 Refactor install view
Let install view manage the connection to the provisioning socket as
well as cleaning up the window on completion, simplifying options.js.
Call `remove` so that the view stops listening when the window closes.
Move view script and template to background page.
Adds ability to hide nav if this isn't our first run.

// FREEBIE
2017-04-13 13:15:42 -07:00
lilia d3492960a6 Display info in network status when unlinked
When we can't connect due to being unlinked, network status indicator
will show an appropriate informational message and a button to open the
installer window to relink.

// FREEBIE
2017-04-12 20:43:16 -07:00
lilia 5d1e770307 Tweak network status styles
Remove inline styles
Use flexbox in the left pane

// FREEBIE
2017-04-12 13:02:31 -07:00
Sam Vevang ed4991974b set up a new view for displaying the network status
// FREEBIE
2017-04-08 00:10:56 -07:00
lilia 25ee61d3cb Fix timers after suspend/resume/pause
We use timers to decide when to query and delete expired messages or
when to perform signed key rotations.

Internally, timers are counters that get updated when the CPU ticks, so
if the CPU sleeps, the timer will stop counting, and start again after
it wakes up, ignoring the intervening passage of wall clock time.

To fix this, without having to query the database or other potentially
high overhead operations too often, use an interval to frequently check
the wall clock time. If time jumps forward, trigger a global event so
other listeners can update their possibly-inaccurate timers.

https://stackoverflow.com/questions/6346849/what-happens-to-settimeout-when-the-computer-goes-to-sleep
https://stackoverflow.com/questions/4079115/can-any-desktop-browsers-detect-when-the-computer-resumes-from-sleep

// FREEBIE
2017-03-01 14:36:40 -08:00
lilia 536dd7b951 Add signed key rotation scheduler
Rotate signed prekey every 48hrs, waiting for online access if
necessary. After a rotation attempt is made, schedule the next run for
48hrs in the future.

We use a timeout to "wake up" and handle the rotation. This timeout gets
set on startup and whenever the next rotation time is changed. For
paranoia's sake, always clear the current timeout before setting the
next one.

Since new registrations necessarily upload new signed keys, we reset the
scheduled time to T+48hrs on `registration_done` events.

// FREEBIE
2017-02-16 18:06:20 -08:00
Asa Ayers bda0430805 Add an option to play audio notifications 2017-02-02 09:00:14 -06:00
Ikarulus 53cd3af78b Added a dark theme
I added a dark theme in order to solve #328.
This may fix #328 at least partially.
2016-12-02 00:41:42 +01:00
lilia e86142d07c Hide verification QR code
The scannable fingerprint format has changed, leaving our qr codes out
of date and thus unscannable.
2016-10-22 02:24:54 +09:00
lilia b4007e58f2 Remove dead code 2016-10-22 02:24:17 +09:00
lilia 19b83931ed Enable disappearing messages 2016-10-11 22:52:40 +09:00
2-4601 669338c717 i18n 'Theme'
// FREEBIE
2016-10-07 19:27:05 +09:00
lilia 790407d42e Add qr codes 2016-10-05 19:11:39 +09:00
lilia f05d693994 Switch from fingerprints to safety numbers 2016-10-05 19:11:39 +09:00
lilia 7fe708d195 Insert keychange advisories
On click, these open a verification panel for the relevant contact,
within this conversation.

// FREEBIE
2016-10-05 19:11:39 +09:00
lilia 1fe90ecdcb Add frontend for safety numbers approval setting
Adds the checkbox under settings.

// FREEBIE
2016-10-05 19:10:20 +09:00
lilia 600ac94257 Disable disappearing messages
Pending support on ios
2016-09-29 16:17:01 -07:00
lilia 2b2c6ab040 Frontend for timer updates and timer indicator 2016-09-29 16:17:01 -07:00
lilia 4cd2c03687 Add clock svg style 2016-09-28 17:20:03 -07:00
lilia e809a0cf8b Breakout timer rendering into its own view
Make width and height constant.
2016-09-28 17:20:03 -07:00
lilia bd713352e3 Hourglass can start at any percentage
This breaks the css-purity of our mixin but is necessary in order to
apply the initial offset of the hourglass animation dynamically, since
jquery can't manipulate arbitrary css on psuedo elements.
2016-09-28 17:20:02 -07:00
lilia 5f92ccd524 Render animated hourglass when messages are expiring 2016-09-28 17:20:02 -07:00
lilia 96fd017890 Support for incoming expiring messages
When initialized, or when expiration-related attributes change, expiring
messages will set timers to self-destruct. On self-destruct they trigger
'expired' events so that frontend listeners can clean up any collections
and views referencing them.

At startup, load all messages pending expiration so they can start their
timers even if they haven't been loaded in the frontend yet.

Todo: Remove expired conversation snippets from the left pane.
2016-09-28 17:20:02 -07:00
lilia 7b3b01bdf6 Refactor registration event
Make AccountManager into an event target for better separation between
app and service-library handling of registration events.
2016-09-20 13:42:33 -07:00
lilia 1afe50b1db Make contact sync button quieter
// FREEBIE
2016-09-08 12:05:48 -07:00
lilia 316110703c Remove title attr from socket status
// FREEBIE
2016-09-08 12:05:48 -07:00
lilia f610233ef6 Add support for syncing blocked numbers
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia 141cdef2a4 Generalize toast view template
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia b5191e78c3 More themeing
Restyle message input and welcome screen
Cleanup search, headers

// FREEBIE
2016-08-30 18:31:03 -07:00
lilia 6c05a71424 Tune up ios bubble style
// FREEBIE
2016-08-30 18:31:02 -07:00
lilia 8fbb0d05f5 Add settings ui for theme
// FREEBIE
2016-08-30 18:31:02 -07:00
lilia 7b9894d688 Refactor css to support theming
Move away from inline style attributes for setting contact colors.
Apply colors by name via css classes instead. Also lays groundwork
for syncing contact colors.

// FREEBIE
2016-08-30 18:31:02 -07:00
lilia 3aa72d2244 Address large font size edge cases
Fix some visual bugs occuring at large font size:
  * Contact names break onto the next line after their avatars in
    message detail screen
  * Settings menu font-size failed to scale
  * Handle Content overflow in modals.

// FREEBIE
2016-08-24 16:47:39 -07:00
lilia 645e05c2b9 Add support for new fingerprint format
This will be ready to roll whenever Android/iOS is.

// FREEBIE
2016-08-24 01:50:46 -07:00
lilia 178917da94 Disable voice notes
// FREEBIE
2016-08-23 16:18:01 -07:00
lilia 4f46a164ba Add voice notes
// FREEBIE
2016-08-23 16:16:31 -07:00
lilia 2c2f9c1ddc Fix dir=auto for convos with blank timestamps
Convos with no last_message_timestamp were being rendered/parsed as
having `data-timestamp="dir='auto'"`.

// FREEBIE
2016-07-14 17:26:16 -07:00
bitim a1eccc2c49 Better RTL languages support:
- Fixed text alignment in RTL messages.
- Added support for search box.
- Added support for conversation name.
- Added support for contact name.
- Added support for last message timestamp and last message preview.

//FREEBIE
2016-07-14 11:13:00 -07:00
lilia 61e7b685e6 Make welcome screen prettier
// FREEBIE
2016-07-14 11:09:08 -07:00
bitim 919f3f6496 Add RTL languages support for messages
// FREEBIE
2016-06-29 17:56:26 -07:00
lilia 9091233950 Open images in a lightbox
Adds file-write permission for saving to disk from lightbox.

Fixes #810

// FREEBIE
2016-06-20 11:55:23 -07:00
lilia 8e1d884a10 Add button for re-importing contacts from phone
Add a section under settings for performing a contact sync from your
mobile device. This just re-runs the same import operation that occurs
at install/link time.

// FREEBIE
2016-06-16 16:43:07 -07:00
lilia b6f785737c Restyle error icons, move them outside the bubble 2016-05-25 20:32:00 -07:00
lilia b1d370755a Rename AxolotlStore
// FREEBIE
2016-04-21 18:36:17 -07:00
lilia 826d4c4301 Add magnifying glass to search field // Fixes #737
// FREEBIE
2016-04-14 11:57:56 -07:00
lilia 0cd7f84a05 Refactor read state tracking
Adds support for handling early arriving read receipts.

// FREEBIE
2016-04-14 11:57:52 -07:00
lilia d1e9534542 Refactor delivery receipt tracking
Move code for matching receipts to messages (and vice versa) to its own
file.

// FREEBIE
2016-04-13 13:57:56 -07:00
lilia 1f4587795e Add link to github on debug log
// FREEBIE
2016-04-09 20:55:21 -07:00
lilia f3de290f7c Make debug log link focusable/selectable
Add button to open in a new tab. Stye as input group.

// FREEBIE
2016-04-09 20:53:39 -07:00
lilia 28c602ab85 Use button for file input / paperclip
// FREEBIE
2016-04-07 12:26:21 -07:00
lilia 21cb6e0945 Use aria-hidden on avatars
Prevent screen readers from reading the identicons. They will already be
reading the names.

// FREEBIE
2016-04-07 10:57:27 -07:00
lilia f0720776a2 Add alt tags to close buttons
// FREEBIE
2016-04-07 10:56:59 -07:00
lilia 8d800a4862 Make close buttons part of the tab order
// FREEBIE
2016-04-07 10:35:05 -07:00
lilia f9c194f641 Remove commented out button
// FREEBIE
2016-04-07 10:26:47 -07:00
lilia c6f51b190f Add alt tags to menu buttons for screen readers
// FREEBIE
2016-04-07 10:26:40 -07:00
lilia 9aa429e18a Add frontend support for expiring releases
When a release expires, it gets a persistent banner notification to
upgrade, and an ephemeral toast warning when trying to send a message.

// FREEBIE
2016-04-03 21:11:50 -07:00
lilia c442a02cb6 Add build support for expiring old releases
Builds expire after 90 days.
2016-04-03 20:55:53 -07:00
lilia e5748b974f Harmonize x/close buttons
// FREEBIE
2016-04-01 15:15:02 -07:00
lilia 242c05834b Remove unused template
// FREEBIE
2016-04-01 14:58:24 -07:00
lilia 01ca6b7c3a Vertically center contact names
For contacts/conversations without any messages, center their names
vertically in the conversation list element.

// FREEBIE
2016-04-01 11:37:25 -07:00
lilia ab62900e48 Simplify menu markup, tweak styles
// FREEBIE
2016-03-24 13:20:50 -07:00
lilia 76652c2622 Update style and copy on key changes
// FREEBIE
2016-03-24 13:20:50 -07:00
lilia 512c5bf739 Incoming bubbles have sender's color background
// FREEBIE
2016-03-23 17:41:24 -07:00
lilia 1e3e730d88 Consolidate panel container styling
Special case the main panel because it is super speshul.

// FREEBIE
2016-03-23 15:05:38 -07:00
lilia 6fe9c3f964 Nest key verification inside conflict dialogs
// FREEBIE
2016-03-23 15:04:42 -07:00
lilia 3901bcb8df Style resend button as an inline link
For messages that failed to send due to network errors, this change
allows retrying them directly from the main conversation view rather
than only from the message detail view.

// FREEBIE
2016-03-22 15:38:22 -07:00
lilia 2e7c7ce0cc Move back button to the left
// FREEBIE
2016-03-22 11:01:04 -07:00
lilia d24eaa655a Tweak styles on key verification view
// FREEBIE
2016-03-21 18:42:05 -07:00
lilia d3b035121d Clean up bottom bar styles
// FREEBIE
2016-03-21 17:17:39 -07:00
lilia 234f937bc7 Conversation subscreens share a header
// FREEBIE
2016-03-21 15:37:53 -07:00
lilia 4358bdfac7 Use url xor color on avatar, never both
Combining them often leaves a crufty colored ring on the outer edge of
the avatar image.

// FREEBIE
2016-03-21 11:07:58 -07:00
lilia 8bb8ed8151 Change left pane header color
// FREEBIE
2016-03-20 21:01:45 -07:00
lilia 7310afd1b4 Replace message list loading spinner with bar
// FREEBIE
2016-03-18 17:59:54 -07:00
lilia 647c2761e0 Move restart button into global menu
// FREEBIE
2016-03-18 16:21:55 -07:00
lilia c16356084d Align header buttons and touch up styles
// FREEBIE
2016-03-18 15:54:40 -07:00
lilia 18a5ce8e54 Restyle conversation panel
// FREEBIE
2016-03-18 13:09:45 -07:00
lilia 043a3f9609 New layout
Move the global header inside the left pane only, expand conversation
panels to full bleed, restyle conversation list items and selected state.

// FREEBIE
2016-03-18 11:30:27 -07:00
lilia 1b72ef6170 Restore notifications heading
// FREEBIE
2016-03-11 11:49:21 -08:00
Blake Griffith 0ceb8e7038 i18n notification's settings dialog
FREEBIE
2016-03-11 11:46:10 -08:00
Blake Griffith 24e4d9c615 'off' -> 'disable notifications' in settings
FREEBIE
2016-03-11 11:46:10 -08:00
Sam Lanning 662020ce68 Add title text for emoji in messages.
Fixes #250

// FREEBIE
2016-03-09 12:46:33 -08:00
lilia a962d97bfb Fix debug log submission loading UX
This flow broke a bit with transition to modal debug log.

Restructure such that the loading class can be applied to an appropriate
element inside the modal. Ensure that the input elements are hidden when
submit is clicked, the result elements are shown when the log upload is
completed.

// FREEBIE
2016-02-22 12:48:06 -08:00
lilia 7f8c76faca Make debug log as big as possible
Tweak style to make the modal reasonably wide/tall, and use flexbox
to automatically expand the textarea.

// FREEBIE
2016-02-22 12:41:49 -08:00
lilia 34d50f94a9 Make window unscrollable // Fixes #692
// FREEBIE
2016-02-22 10:47:48 -08:00
lilia 636c0f2a60 Put debug log in a modal
Also dedupe close-button style

// FREEBIE
2016-02-19 17:34:59 -08:00
lilia 33fde3d4e7 Dedupe modal styles
// FREEBIE
2016-02-19 17:34:59 -08:00
lilia a3c6061480 Add Notification Settings
Fixes #471

// FREEBIE
2016-02-18 12:22:43 -08:00
lilia 4ab2e25df6 Refactor Contact and Conflict views
Untangle these two views into their component parts, consolidating all
the key conflict logic in the key conflict view. Contact view now simply
renders basic contact info and miscellaneous errors but not conflicts or
message errors.

// FREEBIE
2016-02-18 12:22:43 -08:00
lilia f221921127 Tweak conflict style
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia 28c763992a Move error indicators on message bubbles
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia 5340791868 Display key conflict dialog inline
One less modal.

// FREEBIE
2016-02-18 12:22:42 -08:00
lilia ad66da9fb5 Move identity conflicts to top of message detail
Also restyle them as with network errors

// FREEBIE
2016-02-18 12:22:42 -08:00
lilia b5058e3981 Make network errors & resend button more prominent
// FREEBIE
2016-02-18 12:22:41 -08:00
lilia 59ac5cb9b1 Remove unused view
// FREEBIE
2016-02-04 11:32:20 -08:00
lilia 87ddcef333 Make debug log persistent
Save log entries in indexedDB rather than just in memory. Reload them
whenever the background page is refreshed.

// FREEBIE
2016-02-03 13:30:55 -08:00
lilia b59539f23e Remove unused template
// FREEBIE
2016-01-26 11:49:02 -08:00
lilia 5e0709f044 Add tooltip to reload button
Closes #462

// FREEBIE
2016-01-26 11:46:25 -08:00
Lorenz Hübschle-Schneider e876d8f6ed Display relative timestamps in conversation list
This mimicks Signal-Android's relative timestamps.
Previously, only the date was displayed.

Fixes #284
2016-01-26 10:54:40 -08:00
Sam Lanning c4a9ac94b4 Improve Confirmation Dialog
Some basic modifications to the Confirmation Dialog:
* Always attached to <body> regardless of view that called it.
* Always centered horizontally on screen.
* A black semi-transparent overlay is now displayed over everything, and under
  the dialog.
* Various other style changes.

fixes #389

// FREEBIE
2016-01-25 14:33:38 -08:00
lilia 05681ce35b Don't render placeholder markup unless necessary
Rather than always rendering divs for the key and placeholder, render
the placeholder only if the key is missing.

// FREEBIE
2016-01-19 19:49:27 -08:00
jakob 6c7f2cf0fc Show help text for unknown contact identity
Adds a new message string "theirIdentityUnknown".

Fixes #576

// FREEBIE
2016-01-19 18:56:33 -08:00
2-4601 ea0e013e81 Add a trifle of i18n to KeyVerificationView
Two strings were left behind:
- "Their identity (they read)"
- "Your identity (you read)"

I saved them.

// FREEBIE
2016-01-17 15:36:58 -08:00
lilia 6e97f5ad00 Fix key conflict dialog i18n
Allow html in this i18n message. TODO: re-design this dialog.

Fixes #584

// FREEBIE
2016-01-12 10:10:57 -08:00
lilia ceaf94e05b Rename variable for consistency
// FREEBIE
2016-01-08 06:19:09 -08:00
lilia c6956f81d0 i18n DebugLogView
// FREEBIE
2016-01-02 02:51:25 -08:00
lilia 1d6e391dd6 Prefer single quotes
// FREEBIE
2016-01-02 02:51:25 -08:00
lilia 0e2d2d60c2 i18n KeyConflictDialogue
// FREEBIE
2016-01-02 02:51:25 -08:00
lilia 3172c49436 i18n ContactView
Part of the MessageDetailView

// FREEBIE
2016-01-02 02:51:25 -08:00
lilia d502f1bdee i18n KeyConflictView
Also refactor generic error view to make this simpler.

// FREEBIE
2016-01-02 02:51:25 -08:00
lilia 42f15011fa i18n FileSizeToast
// FREEBIE
2016-01-02 02:51:24 -08:00
lilia 836a7cb8c5 i18n InboxView
// FREEBIE
2016-01-02 02:51:24 -08:00
lilia 85eb5c4d59 i18n KeyVerificationView
// FREEBIE
2016-01-02 02:51:24 -08:00
lilia 95e47dace1 i18n GroupMemberListView
// FREEBIE
2016-01-02 02:51:24 -08:00
lilia 73ea415e95 i18n ConfirmationDialogView
// FREEBIE
2016-01-02 02:51:24 -08:00
lilia ea9fa00658 i18n MessageDetailView
// FREEBIE
2016-01-02 02:51:24 -08:00
lilia 02cc6623ea i18n ConversationView
// FREEBIE
2016-01-02 02:51:24 -08:00
David Baldwynn 8251db6ae6 Added error message for unsupported attachment type (issue #419) 2015-12-21 00:19:32 -08:00
lilia 04359c9184 Remove received_at from message detail on outgoing messages
Only show sent_at for outgoing messages, matching Android.

The received_at timestamp reflects the time a message was saved locally.
It is necessary on both incoming and outgoing messages for sorting
purposes, but can be confusing in the context of an outgoing message
detail view, since users don't think about themselves "receiving" their
own messages, and may even interpret this as the time that a message was
received by their conversation partner's device.

// FREEBIE
2015-12-20 23:45:35 -08:00
lilia 61a57a753b Provide user feedback when number is invalid
While typing a number, the new contact element is faded out. When the
number becomes valid it is opaque. If the element is clicked while
invalid, it displays 'Invalid number' and waits for the input to change
again. A new conversation is only opened if the number is valid.

// FREEBIE
2015-12-09 18:58:52 -08:00
mad-de 2cde35e212 Change input type of search field to "search"
This generates a simple clear element when typing. Cloeses https://github.com/WhisperSystems/Signal-Desktop/issues/420
2015-12-06 19:01:32 +01:00
lilia 68f2505996 Display phone number in conversation header
Fixes #436

// FREEBIE
2015-12-04 12:15:12 -08:00
lilia 8d214b73d9 Render conversation placeholder hint in place
// FREEBIE
2015-11-28 14:42:25 -08:00
lilia 891a5e54ad Add hint for users with no groups or contacts
If you have no contacts or groups, display a hint about phone numbers.

// FREEBIE
2015-11-27 22:26:56 -08:00
lilia 7bf94c33d5 Show all contacts when inbox is empty 2015-11-27 22:26:55 -08:00
lilia 152f59cc95 Restyle first run hint
// FREEBIE
2015-11-27 22:26:55 -08:00
lilia d4e0c11ebc Show a hint on startup if the inbox is empty
Fixes #403

// FREEBIE
2015-11-27 11:36:46 -08:00
lilia 798d1a4212 Remove missing js include
// FREEBIE
2015-11-20 16:11:41 -08:00
lilia 43ca92948b Change search box placeholder
Hopefully this makes it more obvious what to do immediately post-install.

// FREEBIE
2015-11-12 12:54:07 -08:00
lilia 16dc7abe69 Display unreadCount badges in conversation list
// FREEBIE
2015-11-09 16:59:52 -08:00
lilia f860278b89 Add avatars to conversation headers
So as not to look repetitive, hide the per-message avatars in one-on-one
conversations.

// FREEBIE
2015-11-09 11:48:14 -08:00
lilia 2ce890b845 Update message bubble timestamps as needed
Display format consistent with Android:

* relative time for everything from today
* Day of week + time for within the past 7 days
* Static Month Day time for everything older

Each timestamp will only update as often as needed to stay accurate,
which is once a minute, once an hour, once a week, or never.

// FREEBIE
2015-11-06 15:24:01 -08:00
lilia 6c98fc19b4 Remove send button
// FREEBIE
2015-10-30 10:47:32 -07:00
lilia 78a2b74297 Restyle attachment previews
Closes #380

// FREEBIE
2015-10-29 18:19:51 -07:00
lilia fe2b152186 Change target for appending file previews
// FREEBIE
2015-10-29 11:04:21 -07:00
lilia 9011a85b56 Change selector for opening a file input
// FREEBIE
2015-10-29 10:58:28 -07:00
lilia cbc82a95f7 Refactor pending/sent/delivered state markup & css
No need for separate elements since we only ever display one of these
states at a time.

// FREEBIE
2015-10-28 14:13:15 -07:00
lilia c77391b3f2 Sinewave animation for pending requests
Tryin it on for size.

// FREEBIE
2015-10-28 13:57:32 -07:00
lilia c9e01390a7 Use check/double check for sent/delivered
// FREEBIE
2015-10-28 13:01:36 -07:00
lilia 4970cbeaed Fix overlapping name and timestamp
In the conversation list, fix long conversation names overlapping with
the right-floated timestamps.

// FREEBIE
2015-10-23 15:47:32 -07:00
Odysseas cafbc0f5df Tweak conversation list style
Styled the conversation list items so that:
 - Timestamp is on the same line as the name
 - The message text on an unread conversation is ligher than the rest of
   the text

Resolves: #379
2015-10-24 00:43:51 +03:00
lilia b65adc14dc Restyle debug log
Fixup for new layout and add a close button.

// FREEBIE
2015-10-20 14:24:11 -07:00
Deirdre Connolly 861bc416e6 Update attachment size limits to match mobile clients
Per WhisperSystems/TextSecure@8a1428e, bump GIF limit to 5MB, and
audio/video limit to 100MB. Update toast to notify in correct
human-readable units. The only kB size limit is for images, and will
trigger only if after scaling up to 4 times, the rescaled image did not
come in under the size limit without unacceptable quality loss.

Closes #354
2015-10-20 12:29:52 -07:00
lilia 389b9a026d Initial restyle
Added background gradient and restyled conversation elements as floating
panels and cards.

// FREEBIE
2015-10-16 18:14:50 -07:00
lilia 2f8d973366 Restore native window chrome
// FREEBIE
2015-10-16 12:52:10 -07:00
lilia d864819364 Hide buttons for group creation, update, and leave
// FREEBIE
2015-10-16 11:17:49 -07:00
lilia f70c22f898 Add search field to inbox
Using the search field produces a filtered view of all contacts and
groups containing the input. To make this fast and scalable, add an
index on a 'tokens' array containing words from the conversation name
and different forms of phone number.

Closes #365

// FREEBIE
2015-10-15 13:33:07 -07:00
lilia a93b8cea72 Collapse multiple retry buttons
If you're going to retry one, you might as well retry everyone.

// FREEBIE
2015-10-10 16:59:52 -07:00
lilia a32f3ff1f6 More work on replayable errors
Expose a button that does that retries outgoing messages if possible.

// FREEBIE
2015-10-02 18:31:07 -07:00
lilia bbb5b24d6b Fix disappearing conversation bug
Opening two message-detail views in two separate conversations would
disappear one of the conversations. Fixed by better encapsulating the
sub-views of a conversation.

// FREEBIE
2015-10-02 11:21:11 -07:00
lilia 929c16090b Move error messages to message detail view
Change how message errors are rendered. Errors associated with a number
will be shown under that number in the detail view rather than piling up
in the message bubble.

// FREEBIE
2015-09-30 14:27:18 -07:00
lilia 960754ef04 Restyle compose button
Move it to a tool bar at the top of the conversation list. This is also
where a search bar will live someday.

Fixes #357

// FREEBIE
2015-09-18 13:08:52 -07:00
lilia 0017f196ef Move ConversationController to its own file
Encapsulate the global conversation cache collection against accidental
access, avoiding the data-clobbering bug fixed in previous commit.

Also move some one-off program initialization code from panel controller
to background.js

// FREEBIE
2015-09-16 23:43:14 -07:00
lilia 90e9216e19 Add UI for submitting debug logs
Fixes #343

// FREEBIE
2015-09-16 11:28:37 -07:00
lilia f74a7b9621 Add code for submitting debug logs
We keep the last 1000 log messages in memory and dump them to an
anonymous public gist if console.post is called.

// FREEBIE
2015-09-15 18:48:50 -07:00
lilia e80fa187ba Upsize svg identicons
The chrome.notifications api renders iconUrls at full bleed, as opposed
to the Web Notifications api, which adds padding. This was causing our
identicons to look a bit over stretched.

Fixed by rendering them a bit larger and with some padding.

// FREEBIE
2015-09-14 13:49:19 -07:00
lilia 0ebdf08ceb Render identicons in notifications
Render an svg, then canvas, then data url.

Fixes #325

// FREEBIE
2015-09-10 00:47:54 -07:00
lilia f764445c86 Remove erroneous license file and headers
We only use GPLV3 around here.

// FREEBIE
2015-09-07 14:58:42 -07:00
lilia 1427369bd0 Fix suggestion list template
Convention collision.

// FREEBIE
2015-09-04 18:46:33 -07:00
lilia 24a18e91b3 Clean up shared compose/group update ui
Makes the groupupdate and recipient input fields stick to the top,
restyles the typeahead as a floating dropdown list of suggestions
rather than a full width component, fixes group avatar thumbnail
rendering.

// FREEBIE
2015-09-04 13:11:21 -07:00
lilia 7d9490e503 Add contact list view
Used by member list view. Refactored some templates for shared markup.
Fixes strange behavior where members in the list were hoverable and
selectable.

// FREEBIE
2015-09-03 14:31:05 -07:00
lilia cee2d4cc6b Tweak recipient input style
// FREEBIE
2015-09-01 17:40:39 -07:00
lilia 50939d1851 Restyle conversation menu button 2015-08-31 13:59:12 -07:00
lilia baa55c9018 Refactor for less model duplication 2015-08-27 12:38:51 -07:00
lilia d07357ce9a Retool various sub-screens to fit two-column layout 2015-08-26 15:15:14 -07:00
lilia c780713a26 Fix up socket status display 2015-08-26 10:31:16 -07:00
lilia 877b34579a Fix heade text style 2015-08-26 10:11:40 -07:00
lilia d6a4e6e496 Restore two column layout
Establishes basic functionality for viewing conversations in two column
mode, including message area and message list resizing, and maintaining
scroll position.

Various subviews need to be retooled but are more or less still
functional, i.e., new message, message detail, key verification, etc...
2015-08-25 17:01:22 -07:00
lilia 001a91466b Add group member list // Closes #279 2015-08-04 12:15:37 -07:00
lilia 8745424d3a Fix outgoing identity key conflict handling
// FREEBIE
2015-07-06 15:11:35 -07:00
lilia f5f4c128f9 Fix tests, let templating handle html escaping
Note: as a Chrome app, we're also protected from xss by the content
security policy.

// FREEBIE
2015-07-04 23:08:25 -07:00
adambar 86f7b7adf5 Allow line breaks in messages. Closes issue #291
Line breaks can now be insterted into message box using Shift+Enter or Alt+Enter. Messages with new lines are properly displayed in the conversation view (but only there, to keep inbox clean). The template was modified to allow HTML, but the message itself is sanitized before new line handling is run.
2015-07-02 23:02:27 +02:00
lilia 6aa36a98aa Place message body after attachments
Fixes #287
2015-06-26 16:09:24 -07:00
lilia feb5e5b068 Display gray # instead of colored + for no-name contacts
For consistency with android.
2015-06-25 13:47:46 -07:00
adambar 07ac0ae9cc 239 Auto-expand message area when typing 2015-06-23 22:45:41 +02:00