Commit Graph

325 Commits (4cbc452f26bf40cc792525fbe87a0bdacac2dffd)

Author SHA1 Message Date
Ikarulus ec3278ca3a add message length warning for android clients 8 years ago
Unknown d79ed69c21 Forgot & 8 years ago
Unknown 235ac03775 Hover-effect for new messages 8 years ago
Unknown 416359d4ad Add scroll-down-button hover-effect
Normal Android & iOS Theme
8 years ago
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
8 years ago
Scott Nonnenberg d294cc96a5 A few tweaks to safety number-related UI
* Show a pointer cursor on safety number change notification
* Add 'click to verify' to the text shown there
* Add ':' to the text shown on the safety number screen
* Limit the width of the safety number box, to force 3x4 layout
* Center the safety number box

FREEBIE
8 years ago
Scott Nonnenberg 1839efd535 Move margin-top back to inner last seen indicator element
FREEBIE
8 years ago
lilia 681418cf6b Restyle last seen indicator
Add horizontal line behind text.

// FREEBIE
8 years ago
lilia 4921ef1b9d Tweak scroll to bottom bottom color
And add drop shadow

// FREEBIE
8 years ago
Scott Nonnenberg 4c7bfbe9ff Scroll down button: when scrolled up, or new non-visible message
FREEBIE
8 years ago
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
8 years ago
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
8 years ago
Scott Nonnenberg 42195acfb1 Reduce empty space to the left of the larger file icon
FREEBIE
8 years ago
Scott Nonnenberg ae6e6da44b Change iOS file attachment bubbles to be on-theme
FREEBIE
8 years ago
Scott Nonnenberg ee00ad0e15 File attachments: show file size, bold filename, make icon bigger
FREEBIE
8 years ago
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
8 years ago
lilia 030c5a403f Fix key change advisory style in dark theme
Override the light font color which is the default in dark mode.
For regular android theme this should cause no change.
8 years ago
lilia 9c00a27081 Bump video min-width to include all controls
Fixes #960
9 years ago
lilia d5431a942f Simplify and correct message metadata alignment
Match left/right adjustment on Android.
Incoming to the left, outgoing to the right.
9 years ago
lilia 657fa2725f Adjust hourglass vertical alignment 9 years ago
lilia 83d285e4ab Fix style for qr code 9 years ago
lilia 790407d42e Add qr codes 9 years ago
lilia 7fe708d195 Insert keychange advisories
On click, these open a verification panel for the relevant contact,
within this conversation.

// FREEBIE
9 years ago
lilia 4cd2c03687 Add clock svg style 9 years ago
lilia e809a0cf8b Breakout timer rendering into its own view
Make width and height constant.
9 years ago
lilia 5f92ccd524 Render animated hourglass when messages are expiring 9 years ago
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.
9 years ago
lilia 6a4b720b89 Make timestamp text selectable
Previously we only declared the message body as selectable, but Chrome's
implementation of user-select is a little quirky in that it allows
unselectable text to be copied if you select elements around it. Oddly
enough, styling the entire bubble contents as selectable, including the
timestamp, actually prevents chrome from copying the timestamp text when
it's not supposed to, i.e., when triple-clicking the message body.

Fixes #887

// FREEBIE
9 years ago
lilia d7b6e7c26b Make group updates and other control messages selectable
// FREEBIE
9 years ago
lilia f918142742 Fix bubble selection style and toast z-index
// FREEBIE
9 years ago
lilia 65cb7c0e9c Cleanup colors and focus/active input states
// FREEBIE
9 years ago
lilia 6c05a71424 Tune up ios bubble style
// FREEBIE
9 years ago
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
9 years ago
lilia 41e4154d60 Make font sizes relative
So it's easier to adjust them globally.

// FREEBIE
9 years ago
lilia 9fa7e7f462 Remove unused view
// FREEBIE
9 years ago
lilia 4f46a164ba Add voice notes
// FREEBIE
9 years ago
bitim 1a0d2595da Committing corresponding changes to the scss files 9 years ago
lilia f34f6eedef Add min-width on video elements
Such that all the player controls are visible.

Fixes #782

// FREEBIE
9 years ago
lilia dea8983235 Error icons only use pointer-cursor when clickable
// FREEBIE
9 years ago
lilia 58c3fe047e Make error messages clickable
// FREEBIE
9 years ago
lilia 0d47a04815 Remove unused style
// FREEBIE
9 years ago
lilia 3217f2c0b6 Hide unregistered user errors in groups
// FREEBIE
9 years ago
lilia b6f785737c Restyle error icons, move them outside the bubble 9 years ago
lilia b5ddd41a5e Fix error icon
// FREEBIE
9 years ago
lilia 8200780fc2 Don't let timestamps wrap
// FREEBIE
9 years ago
lilia ba22151a31 Unpad message-container on message detail screen
// FREEBIE
9 years ago
lilia 28c602ab85 Use button for file input / paperclip
// FREEBIE
9 years ago
lilia e5748b974f Harmonize x/close buttons
// FREEBIE
9 years ago
lilia 6faed3d9d7 Remove unused style
// FREEBIE
9 years ago
lilia 6be7b765b2 Harmonize border radii
// FREEBIE
9 years ago
lilia d4174b94f1 Tweak button sizes and menu style
Restore previous icon size to header buttons, add padding to accomodate
positioning.

Remove blue border from menus.

// FREEBIE
9 years ago
lilia d8d34e7afc Icon upgrade
Also remove unused images.

// FREEBIE
9 years ago
lilia 6a9ec073c6 Decrease bubble radius
// FREEBIE
9 years ago
lilia 76652c2622 Update style and copy on key changes
// FREEBIE
9 years ago
lilia 1b6eda6a8d Tighten spacing between bubbles
// FREEBIE
9 years ago
lilia 6c35f2a010 Clean up timestamp/status alignment
// FREEBIE
9 years ago
lilia 512c5bf739 Incoming bubbles have sender's color background
// FREEBIE
9 years ago
lilia 4060221b9c Make panel scrollbar track persistent
The bar is effectively invisible, but having it present means that we
don't see a jarring change in width when the content expands into the
overflow zone and triggers the scrollbar to suddenly appear.

// FREEBIE
9 years ago
lilia 1e3e730d88 Consolidate panel container styling
Special case the main panel because it is super speshul.

// FREEBIE
9 years ago
lilia 6fe9c3f964 Nest key verification inside conflict dialogs
// FREEBIE
9 years ago
lilia 9f0bcf6ae7 Add top padding to panel containers
// FREEBIE
9 years ago
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
9 years ago
lilia c48484e04f Add padding to right of conversation input
// FREEBIE
9 years ago
lilia d24eaa655a Tweak styles on key verification view
// FREEBIE
9 years ago
lilia d3b035121d Clean up bottom bar styles
// FREEBIE
9 years ago
lilia 234f937bc7 Conversation subscreens share a header
// FREEBIE
9 years ago
lilia 3e103ffde2 Add x padding on message detail container
// FREEBIE
9 years ago
lilia dd943163fe Increase message list padding
// FREEBIE
9 years ago
lilia b094607e0d Highlight bottom bar when focused
// FREEBIE
9 years ago
lilia 7310afd1b4 Replace message list loading spinner with bar
// FREEBIE
9 years ago
lilia c16356084d Align header buttons and touch up styles
// FREEBIE
9 years ago
lilia 18a5ce8e54 Restyle conversation panel
// FREEBIE
9 years ago
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
9 years ago
lilia 78603259c1 Center conversation tile in the main pane
Also fixes a visual bug with debug log and other overlays which wouldn't
cover the right edge of a very wide window.

// FREEBIE
9 years ago
lilia 33fde3d4e7 Dedupe modal styles
// FREEBIE
9 years ago
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
9 years ago
lilia f221921127 Tweak conflict style
// FREEBIE
9 years ago
lilia 28c763992a Move error indicators on message bubbles
// FREEBIE
9 years ago
lilia 5340791868 Display key conflict dialog inline
One less modal.

// FREEBIE
9 years ago
lilia ad66da9fb5 Move identity conflicts to top of message detail
Also restyle them as with network errors

// FREEBIE
9 years ago
lilia b5058e3981 Make network errors & resend button more prominent
// FREEBIE
9 years ago
lilia f5436a5123 Clicking on message status icon opens detail view
Additionally, hovering over it will apply cursor: pointer. Previously
only the timestamp exhibited this behavior.

// FREEBIE
9 years ago
lilia 5100cd392d Remove empty css rule
// FREEBIE
9 years ago
lilia f1335d65f5 Fix confirmation dialog z-index
The large avatar icon on conversations was being rendered on top of the
confirmation dialog.

// FREEBIE
9 years ago
lilia 2f03768abb Reduce conversation bottom padding
Revert inadvertent visual change introduced with vertical flex styling
in 0569d4c.

// FREEBIE
9 years ago
Sam Lanning 1360349156 Consolidate .message-list styling
There was some lone .message-list styling that i've brought up to the logical
place in the stylesheet.

// FREEBIE
9 years ago
Sam Lanning 0569d4c889 Replace conversation panel js resizing with flex styling.
// FREEBIE
9 years ago
Sam Lanning 496604a448 Tidied up_conversation.scss a little for the conversation view.
// FREEBIE
9 years ago
Sam Lanning d091c6ddda Added more gray color variables (to compensate for inconsistent compiling)
// FREEBIE
9 years ago
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
9 years ago
lilia da8472b638 Use inherited font-family on the message input
Chrome's UA stylesheet defaults font-family to monospace on textareas.

The only other textarea at the moment is the debug log, where monospace
is actually nice to have since it's more scannable.

// FREEBIE
9 years ago
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
9 years ago
jakob 6c7f2cf0fc Show help text for unknown contact identity
Adds a new message string "theirIdentityUnknown".

Fixes #576

// FREEBIE
9 years ago
lilia 881aa1685d Fix up unsupported attachment rendering
Rather than simply displaying an inactionable error, render a link that
allows the user to save the unsupported attachment.

// FREEBIE
9 years ago
lilia 0009a50d4d Clean up css style
Use a variable and remove a space.

// FREEBIE
9 years ago
Wasseranomalie 2618c8095e Let container-div fit in key-verification-window
// FREEBIE
9 years ago
lilia adf919e0fe Make fingerprints selectable
Fixes #500
Closes #501

// FREEBIE
9 years ago
mad-de 4e416c6cbf Set textarea size to 100 % - button 9 years ago
lilia 88ec5970d5 Normalize message input font size
Fixes #465

// FREEBIE
9 years ago
lilia 68f2505996 Display phone number in conversation header
Fixes #436

// FREEBIE
9 years ago
lilia 77623dde87 Tweak breakpoint width for conversation avatar
This is the threshold window size where we toggle between large and
small avatar display in the conversation header.

// FREEBIE
9 years ago
lilia 1892eeafe0 Simplify meta/timestamp styles
// FREEBIE
10 years ago
lilia 2fc78ddd7d Fix scroll position jumping when images load
Messages with images or media were causing the scroll position to jump
around when they loaded, because rendering them changed the height of their
elements from 0 to full-height sometime after they were inserted into
the DOM.

Now when rendering attachments, we wait for them to load so they can
render at full height immediately, then warn our parent message list
before and after a potential height change, so the scroll position can
be saved and reset.

// FREEBIE
10 years ago
lilia 2861fa26a7 Implement infinite scrolling message lists
Only load the most recent messages when initially rendering a
conversation. Scrolling to the top of a message list loads older
messages.

This required some slight refactoring of how we insert message elements
into the dom. If the message is added to the end of the collection,
append it at the end. Otherwise, assume it is an older message and
prepend it.

When adding elements to the top, reset the scrollPosition to its
previous distance from scrollHeight. This keeps the current set of
elements fixed in the viewport.

// FREEBIE
10 years ago
lilia 832f7ab643 Limit max widths of various elements
Bubbles are limited to 30em to facilitate comfortable reading length.
The width of the message list is limited to aid visual threading
of the conversation. The overall layout is restricted to 1300px and
centered if the window is much wider.

The header avatar resizes responsively to save room when the window
gets narrow

// FREEBIE
10 years ago
lilia f860278b89 Add avatars to conversation headers
So as not to look repetitive, hide the per-message avatars in one-on-one
conversations.

// FREEBIE
10 years ago
lilia 0d5291acad Replace sinewave with ellipse
Also make sure status indicator matches timestamp color.

Fixes #393

// FREEBIE
10 years ago
lilia 334e26af13 Fix invisible message detail scrollbar
// FREEBIE
10 years ago
lilia 8a73706512 Fix container height in message detail screen
// FREEBIE
10 years ago
lilia 78a2b74297 Restyle attachment previews
Closes #380

// FREEBIE
10 years ago
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
10 years ago
lilia c77391b3f2 Sinewave animation for pending requests
Tryin it on for size.

// FREEBIE
10 years ago
lilia c9e01390a7 Use check/double check for sent/delivered
// FREEBIE
10 years ago
lilia 47befdbf61 Messages bubbles with errors are clickable
For messages with errors, clicking anywhere inside the bubble takes you
to the message detail view.

// FREEBIE
10 years ago
lilia 4a9fcc38df Use cursor: pointer on image attachments
Because clicking on an image now opens it in a new browser window.

// FREEBIE
10 years ago
lilia bf81686c6e Remove gray background from message detail
// FREEBIE
10 years ago
lilia 389b9a026d Initial restyle
Added background gradient and restyled conversation elements as floating
panels and cards.

// FREEBIE
10 years ago
lilia a93b8cea72 Collapse multiple retry buttons
If you're going to retry one, you might as well retry everyone.

// FREEBIE
10 years ago
lilia a32f3ff1f6 More work on replayable errors
Expose a button that does that retries outgoing messages if possible.

// FREEBIE
10 years ago
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
10 years ago
lilia 299bd45cea Add background color on key verification screen
// FREEBIE
10 years ago
codedust 5378cd8602 Fix multiple spaces not beeing displayed in message bubbles
Multiple spaces ("     ") are displayed by browsers as a single
whitespace character if 'white-space: pre-wrap;' is not set.
10 years ago
codedust ec4ef9062c Fix text color and text selection color of outgoing links
This will change the text color of outgoing links from blue
to gray to increase the contrast to the background color of the
outgoing message bubble. Also, the text selection color of these
links will be the same as for normal text.
10 years ago
codedust 01b0f96b9a Fix text selection color of outgiong message bubble contents
This will change the text color and the background color of selected
text in outgoing messages to make the selection more noticeable.

::selection and ::-moz-selection have to be seperated into two
selectors because browsers will ignore selectors with partially
unknown syntax.
10 years ago
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
10 years ago
lilia fbb50e6621 Change colors and backgrounds 10 years ago
lilia fbc73c0369 Add spinner for long-loading message lists 10 years ago
lilia 992dfa5b20 Bug fixes for group create flow
Fallout from layout change.

// FREEBIE
10 years ago
lilia d07357ce9a Retool various sub-screens to fit two-column layout 10 years ago
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...
10 years ago
lilia 001a91466b Add group member list // Closes #279 10 years ago
lilia a95b6165f4 Ellipsize long conversation window titles
Fixes #304
10 years ago
lilia fa4022a4e3 Invert pending/sent model 10 years ago
lilia 90fe82a0c0 Fixes #286 Allow selection of message text
// FREEBIE
10 years ago
lilia 7d568b5092 Fixup auto-expand
* Fix a css bug preventing bottom bar from sticking to the bottom.
* Resize discussion container as a function of the overall window
  height. The previous difference-based method gives the wrong result
  when the window height changes but the bottom-bar height stays the
  same.

// FREEBIE
10 years ago
adambar da1abd75bf Remove message textarea resize handle; fix resizing after submit 10 years ago
adambar 07ac0ae9cc 239 Auto-expand message area when typing 10 years ago
lilia 1696898112 Fix avatars in conversation view
// FREEBIE
10 years ago
adambar ada8f77930 Improve behaviors around long messages display
On the conversations list, if the last message is too long, cut it with ellipsis (...) instead of going out of the screen.
On the single conversation view, if the message in the bubble contains a word that is longer than a bubble, break it anyway instead of going out of the screen.
10 years ago
lilia e2eff893d4 Fix 'Delete messages'
Replaces window.confirm with generic promise-based confirmation dialog
functionality available to all views.

// FREEBIE
10 years ago
lilia 3e39271220 Render messages light blue until finished sending // Fixes #219 10 years ago
lilia 7bf1d41184 Render conversation titles 10 years ago
lilia 7d481fdc21 Style tweaks for new window chrome 10 years ago
lilia c3d875305d Restore delivery receipt checkmarks 10 years ago
lilia a7079206f4 Nicer looking end-session and group control messages 10 years ago
lilia 20baa795ad Fixes #198 Squished avatars
Refactor all avatar views to use a shared partial, then change it to a
background image. Requires allowing unsafe-inline styles in the CSP.
10 years ago
lilia 897d391817 Improve identity key conflict ux
Clicking on a key conflict message opens the message detail view,
which displays the contact(s) in this conversation. If the message
contains a key conflict with any of these contacts, a button is
displayed which attempts to resolve that conflict and any other
conflicts in the conversation that are related to that contact.
10 years ago
lilia 45a053b3a8 Break long links in message bubbles / Fixes #204 10 years ago
lilia 69d5a6a33c Improve group update ui/ux
Promote group update to its own screen. Add typeahead contact selector
from new conversation view. Restyle to match android (more or less).

Closes #186
10 years ago
lilia 8e54aa1401 Plumb contact avatars into conversations 10 years ago
lilia 254131488e Render emoji in conversation and inbox views. 10 years ago
lilia 7a03c26849 Adjust message bubble tail position
It should align with the center of the avatar.
10 years ago
lilia e2bd55c171 Tweak delivery receipt and timestamp display
Checkmark is no longer underlined when hovering over the timestamp.
10 years ago
lilia 441167ab35 Tighten up send btn icon size 10 years ago
lilia 567a48e82b Adjust widths of bubbles and chat window
With these changes, message bubbles in the default-sized chat popup are
just wide enough to display the full complement of html5 media player
controls.
10 years ago
lilia 1311f7c9ae Fix attachment previews for audio/video files 10 years ago
lilia c8274d7bc7 Give video elements black backgrounds 10 years ago
lilia db7dee9a8a Fixup file size warning
Add contentType-specific limits, switch to lazy-init iff we encounter an
oversized file, and restyle as a toast, factoring out a generic
ToastView along the way.
10 years ago
lilia ddc0ed1b9a Add audio and video players
Basic implementation using html5 audio/video tags and data URIs.
10 years ago
lilia dcc1588219 Add key verification screen
Accessible from the menu on private conversations.
10 years ago
lilia 33b9a11e65 Always overflow: auto 10 years ago
lilia fd30dc6f1a Add message detail view 10 years ago
lilia 368cd2f79a Refactor back button style
Make it easier to reuse these styles.
10 years ago
lilia 4945180c12 Constrain .end-session style to the .message-list
It was incorrectly being applied to the End Session menu item.
10 years ago
lilia 3292177a96 Remove resize logic in favor of pure css 10 years ago
lilia 4716754209 Refactor content message class names 10 years ago
lilia 367421d40a Style end session messages
Also add a missing call to render()
10 years ago
lilia eddf4164fa Hide sender names in private conversations 10 years ago
lilia 96af6b56ef Handle incoming sync messages
Assign them to the correct conversation and mark them outgoing with the
correct timestamp.

Closes #150
10 years ago
lilia 746e6530b9 WIP pill view for selected recipients 10 years ago
lilia bebe47eacd Hide our own avatar for consistency with Android 10 years ago
lilia 29bf70b76f Shrink more styles
Shrink font and image size
Shrink converation avatars
Shrink fab
10 years ago
lilia bffdaf9ceb Restyle menu icon 10 years ago
lilia db5e7fd6b6 Fix list view scrolling
Resize handlers are ugly. But not as ugly as scroll handlers. :p
Normalized some whitespace along the way.
10 years ago
lilia ec01d33b50 Reorganize stylesheets and global styles
Simplifies the grunt watch task for sass. Renames sass partials with
leading underscores. Flattens stylesheet directory. The only remaining
raw css file is options.css.

Move globally-relevant styles to _global. Shrink overall font size.
10 years ago