Commit Graph

52 Commits (07d19d12c21a6fc7a9a76d4d912167ffaedafe79)

Author SHA1 Message Date
Lilia 4449a5f110 Upgrade emoji support (#1482)
* Upgrade emoji deps and move to node_modules

Add support for Emoji 3.0 and switch from bower to yarn for managing emoji
dependencies.

// FREEBIE

* Delete old emoji deps

// FREEBIE

* Don't copy emoji on windows

It is no longer necessary since the symlinked image dir is gone.

// FREEBIE

* Update emoji test

// FREEBIE

* Fix emoji tests; remove all overrides of emoji-js functions

FREEBIE
8 years ago
Scott Nonnenberg f84d8038c1
Remove i18n stub used in NetworkStatusView tests
FREEBIE
8 years ago
Scott Nonnenberg a9b4109e9b
Fix NetworkStatusView tests' stubbing of window.i18n
FREEBIE
8 years ago
Scott Nonnenberg c77554533c
Fix emoji test, since emoji image paths no longer start with /
FREEBIE
8 years ago
Scott Nonnenberg cc6dcf67b7 Export: Limit attachment filename length, + convo date, + tests (#1439)
* Export: limit attachment names to 30 chars, tests for helper fns

Also, reintroduce last contact date in conversation dir name

FREEBIE

* MessageView tests: Fix failures during blanket coverage run

FREEBIE
8 years ago
Scott Nonnenberg d8ce198f55 Fetch conversations once, clean up ConversationController API (#1420)
* Fetch conversations once, clean up ConversationController API

Race conditions around re-fetching have caused some problems recently,
so this removes the need to re-fetch conversations. They are fetched
once or saved once, and that is it. All interaction goes through the
ConversationController, which is the central source of truth.

We have two rules for Conversations:

1. If a conversation is in the ConversationController it doesn't need
   to be fetched, but its initial fetch/save might be in progress. You
   can wait for that fetch/save with conversation.initialPromise.
2. If a conversation is not already in the ConversationController, it's
   not yet in the database. It needs to be added to the
   ConversationController and saved to the database.

FREEBIE

* Remove Conversation.fetch() call in Message.handleDataMessage()

FREEBIE

* ConversationController.API cleanup: Fix two missing spots

FREEBIE
8 years ago
Scott Nonnenberg 01918049b4 Keep last seen indicator around for five seconds
Helps calm the user experience a little more, makes it easier to
understand what's happening when messages are coming in quickly.

FREEBIE
8 years ago
lilia 017bb56cca Fix some corner casese with last seen indicator
* Remove increment behavior
* Dismiss when new messages arrive but the window is focused
* Update the indicator when window becomes focused.

// FREEBIE
8 years ago
Scott Nonnenberg 4c7bfbe9ff Scroll down button: when scrolled up, or new non-visible message
FREEBIE
8 years ago
Scott Nonnenberg 318162e74a LastSeenIndicatorView: programmatic tests, tweak to manual tests
FREEBIE
8 years ago
Scott Nonnenberg 3cfac58d78 Eliminate all console errors during test run
FREEBIE
8 years ago
Scott Nonnenberg 731fcb8ecb Add test verifying that AttachmentView shows file size
FREEBIE
8 years ago
lilia 6c7e1aa283 Update tests 8 years ago
lilia d0448ec778 Fix tests
// FREEBIE
8 years ago
Sam Vevang ed4991974b set up a new view for displaying the network status
// FREEBIE
8 years ago
Blake Griffith 1e498294e0 Add attachment_views_test.js tests 8 years ago
lilia 7e0df07e88 Fix tests
// FREEBIE
9 years ago
lilia 67c7a06c28 Use momentjs for timestamp localization
Let momentjs handle proper pluralization of relative times. This comes
at the sacrifice of displaying 'minutes' in the conversation list
timestamp rather than 'min'. Note that we don't use moment's fromNow
instance method so as to preserve the rounding logic that matches the
Android client.

// FREEBIE
9 years ago
lilia 7b29a567b5 More consistent timestamps
* Apply the same rounding to in message bubbles and conversation list.
  Also make them consistent with Android's relative times. Fixes #682
* Show full timestamps when hovering on relative time
* Compute timestamp update delays more precisely:
  Set timestamps to self-update as soon as they are able to change
  rather than a fixed time since the last update.
* Refactor for customizable/localizable relative times
* Update timestamp tests
* Log timestamp update intervals to help debug #460
9 years ago
lilia cc0b8e835a Don't show left groups in list of all contacts
// FREEBIE
9 years ago
lilia ef9559d844 Add tests for filtering left groups from search
// FREEBIE
9 years ago
lilia 173e037fa6 Fix minor style errors
And keep it that way, by making jscs config more opinionated.

// FREEBIE
9 years ago
lilia 26df196aba Update chai
Level up Chai! New ability unlocked: assert.isBelow(val, limit)

// FREEBIE
9 years ago
lilia 080c233a93 Add timestamp update interval test
Break out delay computation into its own function and add tests,
including a regression test for #646.

// FREEBIE
9 years ago
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
9 years ago
lilia 239ec8e318 Fix test
// FREEBIE
9 years ago
David Baldwynn e24fa69b04 Added test case for unsupported type 9 years ago
lilia 0e0994832e Fix message view tests
// FREEBIE
9 years ago
lilia 3d98b54027 Create contact from number with common punctuation
The 'Create new contact' option should now appear for numbers including
parens and other common punctuation.

// FREEBIE
9 years ago
lilia 717108d17f Add regression test for #270
// FREEBIE
10 years ago
lilia 038e263023 Fix the build
1. Update chrome version because v40 fails to clear the session store
2. Add message view to test page and fix bad reference to chrome
3. Update the message view template in tests with new timestmap markup

// FREEBIE
10 years ago
lilia 78d7296f84 Fix tests
// FREEBIE
10 years ago
lilia f764445c86 Remove erroneous license file and headers
We only use GPLV3 around here.

// FREEBIE
10 years ago
lilia a2abfe38a4 Fix tests 10 years ago
lilia c526dbda5f Set up production build task
`grunt copy`

Closes #191
10 years ago
lilia 254131488e Render emoji in conversation and inbox views. 10 years ago
lilia 1321a90667 Rename Whisper.View#attributes
Avoid colliding with Backbone.View attributes, which is a list of attrs
to set on the html element for a view.
10 years ago
lilia dc1b09f59d Auto-link urls in message bodies
And watch out for xss.

Closes #187
10 years ago
lilia fc6c8c0f3e Fix tests 10 years ago
lilia 1bb480f6ea DRY up a common view pattern
Define a Whisper.View base class that automatically parses and renders
templates and attributes defined by the subclass. This saves us a good
number of lines of code as well as some marginal memory overhead, since
we are no longer saving per-instance copies of template strings.
10 years ago
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
10 years ago
lilia 1a4811fcef Fix tests 10 years ago
lilia bf22da209f Fix tests 11 years ago
lilia fd3a72d435 Destroy all globals
Well, not *all* globals..
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 245dc5b248 Update message view test 11 years ago
Arnaud Benard e568e2c528 Fixes #61 - Order by timestamps with tests 11 years ago
lilia 0cf5ae3bbf Reorganize message view test a bit 11 years ago