Commit Graph
3174 Commits
Author SHA1 Message Date
Daniel Gasienica 3df8c22e44 Alphabetize Message properties 2018-04-27 16:31:43 -04:00
Daniel Gasienica 45d6c7a5a8 Implement video support in lightbox 2018-04-27 16:31:42 -04:00
Daniel Gasienica ac04f0648a Load more documents than media 2018-04-27 16:31:42 -04:00
Daniel Gasienica b86f9c0be8 Allow saving of attachments from media gallery lightbox 2018-04-27 16:31:42 -04:00
Daniel Gasienica b74b761255 Implement click to save for document list 2018-04-27 16:31:42 -04:00
Daniel Gasienica 41fe50553f Replace Backbone saveFile with Attachment.save 2018-04-27 16:31:42 -04:00
Daniel Gasienica 954433366e Load documents for media gallery 2018-04-27 16:31:42 -04:00
Daniel Gasienica 2a5f513ebc Organize globals 2018-04-27 16:31:42 -04:00
Scott Nonnenberg 84c7a4c293 Move to some of our global utility methods 2018-04-26 12:01:31 -07:00
Scott Nonnenberg 403fb1fd60 Make algorithm for finding thumbnails more efficient 2018-04-26 12:00:57 -07:00
Scott Nonnenberg 27a30b3267 Respond to PR feedback
- makeThumbnail -> makeImageThumbnail
- duplicate 'display: flex'
- remove no-longer-applicable comment
2018-04-26 09:50:13 -07:00
Scott Nonnenberg ac0b50d20f Generate thumbnails for new video attachments, video quotes 2018-04-25 18:32:46 -07:00
Scott Nonnenberg 0e99ca61a2 eslintify file_input_view.js 2018-04-25 15:06:27 -07:00
Daniel Gasienica bf3a547a76 Organize globals 2018-04-25 15:28:56 -04:00
Daniel Gasienica f36f206a01 Use IndexablePresence for hasFileAttachments and hasVisualMediaAttachments
Reduces index size, makes it easier to debug using IndexedDB inspector, and
hopefully improves lookup performance.
2018-04-25 15:25:12 -04:00
Daniel Gasienica 8e3c38d5fe Fix formatting 2018-04-25 15:25:12 -04:00
Daniel Gasienica b65370c8d7 Prefer GoogleChrome.is* over MIME.is* 2018-04-25 15:25:12 -04:00
Daniel Gasienica 96be0df8c7 Show lightbox controls based on presence of handlers 2018-04-25 15:24:52 -04:00
Daniel Gasienica 9134701f7c Move filesize from Bower to npm 2018-04-25 15:24:52 -04:00
Daniel Gasienica 86a9923181 Remove TODOs 2018-04-25 15:24:52 -04:00
Daniel Gasienica 204de3aaea Lazily bind Signal.Components.MediaGallery 2018-04-25 15:24:52 -04:00
Daniel Gasienica 146178f977 Update schema documentation 2018-04-25 15:24:51 -04:00
Daniel Gasienica b4a4182613 Hide ‘Save As…’ button in media gallery
Wait until we support it.
2018-04-25 15:24:51 -04:00
Daniel Gasienica 0d676a65b8 Open media gallery item in lightbox 2018-04-25 15:24:51 -04:00
Daniel Gasienica ce825fbd66 Rename save to onSave 2018-04-25 15:24:51 -04:00
Daniel Gasienica b0e1cc49a5 Remove legacy Backbone lightbox 2018-04-25 15:24:51 -04:00
Daniel Gasienica 86da80fd23 Wire up attachment saving 2018-04-25 15:24:51 -04:00
Daniel Gasienica 593976fe21 Extract Backbone Lightbox view module 2018-04-25 15:24:51 -04:00
Daniel Gasienica 3acdeb90c3 Make ReactWrapperView globals explicit 2018-04-25 15:24:51 -04:00
Daniel Gasienica 4a5a2cb5c1 Replace Backbone with React lightbox 2018-04-25 15:24:51 -04:00
Daniel Gasienica 4ce0472b9f Extract Message.loadWithObjectURL 2018-04-25 15:24:51 -04:00
Daniel Gasienica 2dc3877fd4 Integrate visual media attachment gallery 2018-04-25 15:24:51 -04:00
Daniel Gasienica 082ef98a56 Add type definition for deferredToPromise 2018-04-25 15:24:51 -04:00
Daniel Gasienica 9d84b2f420 Index messages with attachments using a boolean
When indexing message attachment metadata using numeric indexes such as:

```javascript
{
  conversationId: '+12223334455',
  received_at: 123,
  attachments: […],
  numAttachments: 2,
},
{
  conversationId: '+12223334455',
  received_at: 456,
  attachments: [],
  numAttachments: 0,
}
{
  conversationId: '+12223334455',
  received_at: 789,
  attachments: [],
  numAttachments: 1,
}
```

It creates an index as follows:

```
[conversationId, received_at, numAttachments]
['+12223334455', 123, 2]
['+12223334455', 456, 0]
['+12223334455', 789, 1]
```

This means a query such as…

```
lowerBound: ['+12223334455', 0,                1               ]
upperBound: ['+12223334455', Number.MAX_VALUE, Number.MAX_VALUE]
```

…will return all three original entries because they span the `received_at`
from `0` through `Number.MAX_VALUE`. One workaround is to index booleans using
`1 | undefined` where `1` is included in the index and `undefined` is not, but
that way we lose the ability to query for the `false` value. Instead, we flip
adjust the index to `[conversationId, hasAttachments, received_at]` and can
then query messages with attachments using

```
[conversationId, 1 /* hasAttachments */, 0                /* received_at */]
[conversationId, 1 /* hasAttachments */, Number.MAX_VALUE /* received_at */]
```
2018-04-25 15:24:51 -04:00
Daniel Gasienica f367a9b059 Move private method below public ones 2018-04-25 15:24:51 -04:00
Daniel Gasienica d7b21ef5dc Render attachments grouped by date 2018-04-25 15:24:51 -04:00
Daniel Gasienica ae419764bf Use arrow function over .bind 2018-04-25 15:24:51 -04:00
Daniel Gasienica 272c49c5bf Use existing ReactWrapper 2018-04-25 15:24:50 -04:00
Daniel Gasienica 32a3ef518b Render media gallery placeholder panel 2018-04-25 15:24:50 -04:00
Daniel Gasienica 5f220a7b2c Add migration for media gallery indices 2018-04-25 15:24:50 -04:00
Daniel Gasienica 273248d3fd Wire up ‘View All Media’ menu item 2018-04-25 15:24:50 -04:00
Daniel Gasienica d14761087a Add schema version 4: Attachment metadata 2018-04-25 15:24:50 -04:00
Daniel Gasienica df2e6e7864 Port MIME module to TypeScript 2018-04-25 15:24:50 -04:00
Daniel Gasienica 6a63e427c8 Use is instead of Lodash is* 2018-04-25 15:24:50 -04:00
Scott Nonnenberg 9619e5b66d Fix quote thumbnail flickering issue
Turns out that we reload thumbnails for every message when any new
message is added to the conversation. This fix prevents that by actually
checking for the proper sentinel on the message model
2018-04-24 18:33:10 -07:00
Scott Nonnenberg b0b1dc6be8 Apply iOS theme after link 2018-04-24 18:32:47 -07:00
Scott Nonnenberg c614c3968b Enable the sending of quoted replies 2018-04-24 14:46:00 -07:00
Scott Nonnenberg ef1d568a80 Restore rendering of group update and end session messages
The previous work to refactor bubbles broke rendering for these message
types. :0/
2018-04-23 19:16:00 -07:00
Scott Nonnenberg bf81c3db63 Document Message v4, remove data-free thumbnails 2018-04-23 16:43:25 -07:00
Scott Nonnenberg c02860af5c Responding to pull request review feedback
- messages.getQuoteObjectUrl: early return
- backup.js: explaining variables for long if statement
- types/messages.js: Log if thumbnail has neither data nor path
- sendmessage.js:
  - remove extraneous logging
  - fix indentation
  - upload attachments and thumbnails in parallel
- preload: don't load fs for tests, just fse
- _conversation.scss: split two selectors into two lines, 0px -> 0
- backup_test.js: use fse.existsSync and comment twoSlashes regex
- network_tests_view_test.js: Comment duplicate assignment to window.getSocketStatus
2018-04-23 15:36:47 -07:00