Commit Graph

93 Commits (1e8ae774a21bec571e32c2b7011ec8e09ec72420)

Author SHA1 Message Date
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
8 years ago
Jon Long 3684001695 Add text under the logo on the first screen
Per https://github.com/WhisperSystems/Signal-Desktop/pull/1097#issuecomment-287477960
8 years ago
Jon Long d0d3f80291 Improve Responsiveness on Install Screen
Handles the edge case where images in the Install steps can obscure the text below them at certain window dimensions.

In most cases, it's not possible to replicate this behavior due to minimum dimension settings in `chromium.js`. However, some window managers (such as i3) can ignore those settings, producing this bug.

This fix introduces a flexible, responsive layout to the Install steps, with the goal of keeping the action buttons in a consistent position while adapting the rest of the content to the remaining available space. The result is a clean, usable screen at any window size.

In the rare instance that a window's dimensions are less than that of the minimums set in `chromium.js`, scrollbars will appear to keep the smallest acceptable layout intact.

Potential side effects:

- Each `.step` element contains an`.inner` flexbox wrapper, which arranges its children in a column. The layout works best when each `flex-item` is an element that wraps the content inside of it. I think I accounted for all the possibilities on the Install screen, but any future `.step` items might want to keep that pattern in mind.

Resolves #1059
FREEBIE
8 years ago
lilia aa55b6a538 Confirm device name with enter key
Use form and submit elements for their built in mouse and keyboard event
handlers.

// FREEBIE
8 years ago
lilia 9b645f90c8 Remove Android requirement from install flow
// FREEBIE
9 years ago
lilia baff77c509 Revert "Remove Android requirement from install flow"
This reverts commit 4b9f7d518e.
Put this back when iOS desktop support is ready for general release.
9 years ago
lilia 4b9f7d518e Remove Android requirement from install flow
// FREEBIE
9 years ago
lilia ca28ba69d6 Device names must be 50 chars or less
Fixes #762

// FREEBIE
9 years ago
Sam Lanning ac25b62fdc Improve implementation of i18n for Install Flow following comments on #611
* Move install flow i18n logic to install_view.js (from options.js)
* Switch to using placeholders (instead of jQuery) for i18n messages with html.
* Switch to using moustache template instead of jQuery for i18n substitution.

// FREEBIE
9 years ago
Sam Lanning 0825d3e22f Implement i18n for Install Flow
Fixes #600

// FREEBIE
9 years ago
lilia f1ca06e0e9 Change welcome screen copy
// FREEBIE
10 years ago
lilia 24e1939640 Update install copy
// FREEBIE
10 years ago
lilia 7feb55c7d0 Fix twitter link in install flow
Fixes #400

// FREEBIE
10 years ago
lilia d607996cf8 Fixes #394
👬 // FREEBIE
10 years ago
lilia 6fc4bada2e Fix typo in install flow
// FREEBIE
10 years ago
lilia 14cb6b58a2 Create install flow
* Refactor options.js into a view
* Break up install flow into a series of screens
* Remove bootstrap
* Make installer window static size, mostly to facilitate positioning

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

// FREEBIE
10 years ago
lilia c3d3ec125d Wait for contact sync before opening inbox
Use a canned bootstrap progress animation in lieu of better design.

Fix #271 // FREEBIE
10 years ago
lilia 815b79dc64 Cleanup 'Too many devices' dialog
Closes #263
10 years ago
lilia 3dd8056487 Add error dialog for too many devices 10 years ago
lilia f32ff58953 Add support for device name 10 years ago
lilia ddbaf87741 Load notifications script from background page 10 years ago
lilia 8da062f75c Resize icon to various resolutions
You want icon sizes? I got all the size you need.
10 years ago
lilia f8db7c606a Include bootstrap via sass
One less file to load on the options/register page.
10 years ago
lilia 96eafc7750 Integrate libaxolotl async storage changes
* Session records are now opaque strings, so treat them that way:
  - no more cross checking identity key and session records
  - Move hasOpenSession to axolotl wrapper
  - Remote registration ids must be fetched async'ly via protocol wrapper
* Implement async AxolotlStore using textsecure.storage
* Add some db stores and move prekeys and signed keys to indexeddb
* Add storage tests
* Rename identityKey storage key from libaxolotl25519KeyidentityKey to
  simply identityKey, since it's no longer hardcoded in libaxolotl
* Rework registration and key-generation, keeping logic in libtextsecure
  and rendering in options.js.
* Remove key_worker since workers are handled at the libaxolotl level
  now
10 years ago
lilia 2cb0070343 s/TextSecure/Signal on options page 10 years ago
lilia 5888039123 Reorder database.js include
Prep to use indexedDB for axolotl storage.
10 years ago
lilia c6b0b71383 Change progress dialog header 10 years ago
lilia 13ce354ab8 Registration UX improvements
Add some nice modal dialogs instead of confirmation alerts.
10 years ago
lilia c526dbda5f Set up production build task
`grunt copy`

Closes #191
10 years ago
lilia db3d97b576 Move icon.png to /images 10 years ago
lilia fa3699cdd3 Trigger desktop notifications
Notifications show the conversation name, avatar, and new message text.
Clicking the notification opens the conversation.
10 years ago
lilia 8ee282b1aa Restyle registration page
When first intalling, users will no longer be presented with the option
to register as a standalone client.

For developer convenience, the standalone form can still be found at
chrome-extension://.../register.html

Closes #159
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
Matt Corallo 02d0c58e5e Mostly done device-bringup stuff 10 years ago
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.
10 years ago
lilia ed06161ee7 Quick fix for phone input style 10 years ago
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
10 years ago
Emily Chao 5d3020b9ed Refactor phone number input view
Moves validation logic to its own view to be shared on index and options
pages.
10 years ago
Matt Corallo e7f3e52b6c Remove NaCL! 10 years ago
Matt Corallo 5785f4033c Compile curve25519/webcrypto into libtextsecure.js 10 years ago
Matt Corallo 8ad1a38b5b Move js files around for libtextsecure split 10 years ago
Matt Corallo d9db0f53e7 s/\t/ /g in {background,options}.html 10 years ago
lilia ff259a7dee Tolerate extra whitespace in the registration code field 10 years ago
lilia 4a401f07f3 Rewrite ReplayableErrors
ReplayableErrors make it easy for the frontend to handle identity key
errors by wrapping the necessary steps into one convenient little
replay() callback function.

The frontend remains agnostic to what those steps are. It just calls
replay() once the user has acknowledged the key change.

The protocol layer is responsible for registering the callbacks needed
by the IncomingIdentityKeyError and OutgoingIdentityKeyError.
10 years ago
lilia 7b23e24b71 Add stringview license info and script tags
Closes #94
11 years ago
lilia ee0d7edc0b WebSocket-Resources / websocket refactor
This commit provides the javascript complement to
[WebSocket-Resources](https://github.com/WhisperSystems/WebSocket-Resources),
allowing us to use a bi-directional request-response framework over
websockets.

See websocket-resources.js and websocket-resources_test.js
for usage details.

Along the way I also factored the websocket keepalive and reconnect
logic into its own file/wrapper object.
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 4119c13ba2 Registration ux tweaks 11 years ago
lilia 3eb98ddc3b Fix options page stylesheet path 11 years ago