1
0
mirror of https://github.com/moparisthebest/mail synced 2024-11-15 13:45:08 -05:00

Compare commits

..

1023 Commits

Author SHA1 Message Date
Tankred Hase
43729833a5 Merge pull request #412 from tanx/master
Minor fixes to master
2015-12-17 16:13:36 +07:00
Tankred Hase
b05aeea342 Remove gitter link 2015-12-17 16:02:55 +07:00
Tankred Hase
137c8c7c24 Update links in readme 2015-12-17 16:00:49 +07:00
Tankred Hase
853be194d9 Fix dompurify build and upgrade to new version 2015-12-17 12:12:38 +07:00
Tankred Hase
8b36a719c3 Use faster container based travis builds, remove whiteout build email notification from travis 2015-12-14 10:30:25 +07:00
Tankred Hase
8165416c5d Rename repo to mail 2015-12-14 10:25:58 +07:00
Tankred Hase
b375d81635 Update git repo name in readme 2015-12-11 19:10:10 +07:00
Felix Hammerl
e56f8c2c28 Merge pull request #394 from whiteout-io/dev/WO-1026
[WO-1026] Fix broken key upload after mail server error
2015-08-19 12:36:59 +02:00
Felix Hammerl
ad3691fae9 [WO-1026] Fix broken key upload after mail server error 2015-08-19 12:10:16 +02:00
Tankred Hase
e0663ab8d8 Remove winstore-jscompat (not necessary in Windows 10 anymore) 2015-08-05 14:12:13 +02:00
Tankred Hase
263b5c13b0 Upgrade to grunt-mocha-phantomjs 0.7.0 2015-08-05 14:11:25 +02:00
Tankred Hase
8636ba201b Properly mock publickey requests 2015-08-05 14:10:29 +02:00
Tankred Hase
aa24881efc Fix JS build by fixating transitive browserify dep 2015-07-10 12:39:47 +02:00
Tankred Hase
b7b5c1bdf5 Update README.md 2015-07-08 17:55:05 +02:00
Tankred Hase
59d38f9b14 Bump mobile version code 2015-06-26 11:28:25 +02:00
Tankred Hase
c44984b2f3 Bump mobile version code 2015-06-18 11:58:57 +02:00
Felix Hammerl
c31c320e83 Merge pull request #381 from whiteout-io/WO-1000
Remove invite code from app
2015-06-18 11:52:27 +02:00
Tankred Hase
7f49e691db Remove invite code from app 2015-06-18 10:45:18 +02:00
Tankred Hase
a346f1612e bump mobile version 2015-06-15 13:43:28 +02:00
Tankred Hase
6b0b71d4ff Merge pull request #377 from whiteout-io/dev/WO-997
[WO-997] Select multiple messages at once
2015-06-15 13:07:06 +02:00
Felix Hammerl
4683583a0a [WO-997] Select multiple messages at once 2015-06-15 13:02:28 +02:00
Tankred Hase
b038ac2c16 Merge pull request #376 from whiteout-io/dev/WO-996
Add error handling for invalid PGP key user id
2015-06-15 12:59:59 +02:00
Tankred Hase
f32863dc54 Add error handling for invalid PGP key user id 2015-06-12 16:50:03 +02:00
Felix Hammerl
39d19df187 Order folders by path instead of name to keep subfolder order 2015-06-12 15:15:44 +02:00
Tankred Hase
9bf8c758ec Merge pull request #356 from whiteout-io/dev/WO-927
[WO-927] Clear file input after key import
2015-06-12 12:20:10 +02:00
Tankred Hase
76f770a12b Merge pull request #357 from whiteout-io/audit/WO-03-014
[WO-03-014] Avoid unsinged content spoofing attack
2015-05-21 17:25:35 +02:00
Felix Hammerl
3af376b419 [WO-03-014] Avoid unsinged content spoofing attack 2015-05-21 16:25:50 +02:00
Felix Hammerl
e9a8702b39 [WO-927] Clear file input after key import 2015-05-20 17:21:33 +02:00
Tankred Hase
25b9141a5f Merge pull request #353 from whiteout-io/dev/WO-891
[WO-891] Add logout to passphrase dialog
2015-05-19 18:31:16 +02:00
Tankred Hase
1d0efc02a2 Review text 2015-05-19 18:30:31 +02:00
Felix Hammerl
c3362c193d Add missing mocks 2015-05-19 17:39:30 +02:00
Felix Hammerl
7f0235c9b2 [WO-981] Set style.display instead of style 2015-05-19 16:39:59 +02:00
Felix Hammerl
8e0dfacd51 [WO-891] Add logout to passphrase dialog 2015-05-19 16:21:52 +02:00
Tankred Hase
467d001483 Bump mobile version code 2015-05-18 17:05:30 +02:00
Tankred Hase
e7fb3bcf6d Merge pull request #345 from whiteout-io/dev/WO-986
[WO-986] Use proper path for key download
2015-05-18 16:59:43 +02:00
Tankred Hase
ce740b2109 Remove empty lines 2015-05-18 16:57:28 +02:00
Felix Hammerl
0bfaba3bd9 Merge pull request #352 from whiteout-io/dev/WO-944
[WO-03-011] Fix no Reliable Sender Indication is implemented (Medium)
2015-05-18 16:49:08 +02:00
Tankred Hase
e7cbf9ed86 Fix browserify build 2015-05-18 16:14:12 +02:00
Tankred Hase
c76a392abf [WO-03-011] Fix no Reliable Sender Indication is implemented (Medium)
Display sender email address next to full name
2015-05-18 15:56:31 +02:00
Felix Hammerl
ca8c2d9a4f [WO-986] Use proper path for key download 2015-05-13 15:55:55 +02:00
Tankred Hase
f287c4cddf Merge pull request #344 from whiteout-io/dev/WO-982
[WO-982] Add placeholder to writer
2015-05-13 11:46:26 +02:00
Felix Hammerl
59006a98d7 Remove anonymized from bug report body 2015-05-12 12:04:48 +02:00
Felix Hammerl
73fcfba2a9 [WO-982] Add placeholder to writer 2015-05-12 11:06:27 +02:00
Tankred Hase
b473d2b7fe Bump mobile version code 2015-05-11 15:54:07 +02:00
Tankred Hase
4519ab65c6 Remove empty line 2015-05-11 15:53:28 +02:00
Tankred Hase
19bdf0aa49 Fix iframe resize issue on iOS 2015-05-11 15:23:10 +02:00
Tankred Hase
b8f21ac7eb Merge pull request #341 from whiteout-io/dev/WO-726
[WO-726] Nuke user DB on logout
2015-05-11 14:22:13 +02:00
Tankred Hase
ff2a7c3e4a Update navigation.js 2015-05-11 14:20:34 +02:00
Tankred Hase
7834f79045 Update app-config.js 2015-05-11 14:20:09 +02:00
Felix Hammerl
b35d993ff1 [WO-726] Nuke user DB on logout 2015-05-09 18:58:31 +02:00
Felix Hammerl
4e0388b349 Merge pull request #338 from whiteout-io/audit/WO-03-025
[WO-03-025] Unescape dashes in signed cleartext
2015-05-09 18:15:49 +02:00
Tankred Hase
add1cd3919 bump mobile manifest 2015-05-09 16:23:31 +02:00
Tankred Hase
d87449c57f Revert "Reset width before decription"
This reverts commit 4cf1ef3107.
2015-05-09 13:18:53 +02:00
Tankred Hase
4cf1ef3107 Reset width before decription 2015-05-09 11:53:33 +02:00
Tankred Hase
e5e1c118be Merge pull request #337 from whiteout-io/dev/WO-964
[WO-964] Do not wait for next watch timer for ui update and general clea...
2015-05-09 11:14:25 +02:00
Tankred Hase
8e03b6a2ff Merge pull request #334 from whiteout-io/dev/WO-976
[WO-976] Fix UI when trying to display a message with empty body
2015-05-09 10:52:28 +02:00
Andris Reinman
6963ea33e9 [WO-03-025] Unescape dashes in signed cleartext 2015-05-07 12:28:11 +03:00
Felix Hammerl
0074e0ca90 [WO-964] Do not wait for next watch timer for ui update and general cleanup 2015-05-06 15:42:55 +02:00
Felix Hammerl
9f5daa12b1 Merge pull request #336 from whiteout-io/dev/WO-978
[WO-978] Fix PGP key folder prefix ignored at down and upload
2015-05-05 15:49:07 +02:00
Felix Hammerl
44591cc099 Bump imap-client version 2015-05-05 15:18:56 +02:00
Felix Hammerl
ecf16b028b [WO-978] Fix PGP key folder prefix ignored at down and upload 2015-05-04 18:47:12 +02:00
Tankred Hase
bcaef5c330 Revert "[WO-03-008] Fix no Origin Checks for postMessage Communication (High)"
This reverts commit 2aa166ac19.
2015-05-04 14:56:31 +02:00
Tankred Hase
9454739818 Revert "Hide wmail account creation in iOS app"
This reverts commit 168eaf0086.

Conflicts:
	src/js/controller/login/add-account.js
2015-04-29 08:48:59 +02:00
Felix Hammerl
991f61d271 [WO-976] Fix UI when trying to display a message with empty body 2015-04-28 19:25:32 +02:00
Tankred Hase
f62257a595 Bump mobile version code 2015-04-28 14:37:18 +02:00
Tankred Hase
4f1ead0394 Merge pull request #333 from whiteout-io/dev/WO-975
Dev/wo 975
2015-04-28 14:32:47 +02:00
Tankred Hase
bd910df187 Remove redundant case for SW state 2015-04-28 14:31:18 +02:00
Tankred Hase
504e8ffd50 Add simple prefetch service-worker 2015-04-28 13:35:17 +02:00
Felix Hammerl
7c1d68ec6e Merge pull request #332 from whiteout-io/dev/WO-971
Catch notification error on Chrome for Android
2015-04-28 11:22:43 +02:00
Tankred Hase
4293031f1f Catch notification error on Chrome for Android 2015-04-28 10:13:13 +02:00
Tankred Hase
44dac729aa Merge pull request #330 from whiteout-io/dev/WO-939
[WO-939] Fix TLS cert rejection bug
2015-04-28 10:01:34 +02:00
Felix Hammerl
55add6a6d3 [WO-939] Fix TLS cert rejection bug 2015-04-27 18:15:36 +02:00
Tankred Hase
d36ddcef7f Fix platform checking in Chrome Web App 2015-04-27 16:52:15 +02:00
Tankred Hase
94188be7b3 Merge pull request #327 from whiteout-io/dev/WO-950
[WO-03-018] Fix weak Passwords & Misleading Passphrase Strength Check (L...
2015-04-27 13:37:38 +02:00
Tankred Hase
215a53e2a9 Merge pull request #329 from whiteout-io/dev/WO-973
Hide wmail account creation in iOS app
2015-04-27 13:23:20 +02:00
Tankred Hase
168eaf0086 Hide wmail account creation in iOS app 2015-04-27 13:19:49 +02:00
Felix Hammerl
9f39b67812 Merge pull request #326 from whiteout-io/dev/WO-961
[WO-03-008] Fix no Origin Checks for postMessage Communication (High)
2015-04-27 11:25:44 +02:00
Felix Hammerl
7540ffcab5 Merge pull request #328 from whiteout-io/dev/WO-952
[WO-03-020] Fix insecure Default in Implementation of BCC Feature (Low)
2015-04-27 11:20:37 +02:00
Tankred Hase
15ff8c85db [WO-03-020] Fix insecure Default in Implementation of BCC Feature (Low)
Display warning to user when using BCC feature
2015-04-24 17:14:13 +02:00
Tankred Hase
4efab0daf0 Upgrade to angular.js v1.3.15 2015-04-24 15:56:51 +02:00
Tankred Hase
701eb36b19 [WO-03-018] Fix weak Passwords & Misleading Passphrase Strength Check (Low)
Remove unsafe password strength indicator
2015-04-24 15:37:06 +02:00
Tankred Hase
b687986980 [WO-03-005] Fix off-by-one Error in Prime Worker Code of Forge library (Low)
Upgrade to forge v0.6.26
2015-04-23 19:17:48 +02:00
Tankred Hase
281e53a887 [WO-03-013] Set stricter X-Frame-Options HTTP headers 2015-04-23 17:44:30 +02:00
Tankred Hase
6216fe2f1a [WO-03-024] Fix links can be opened in the message frame in MSIE11 (High)
Add X-Content-Security-Policy HTTP header for IE10+
2015-04-23 17:34:41 +02:00
Tankred Hase
2aa166ac19 [WO-03-008] Fix no Origin Checks for postMessage Communication (High) 2015-04-23 17:09:10 +02:00
Tankred Hase
4a681a73d2 Merge pull request #325 from whiteout-io/dev/WO-947
[WO-03-014] Fix Spoofing of Signed Messages and general UI Concerns (High)
2015-04-22 18:59:11 +02:00
Tankred Hase
56bd5222d2 Merge pull request #322 from whiteout-io/dev/WO-955
[WO-955] WO-03-023 STARTTLS Setting leads to opportunistic STARTSSL
2015-04-22 18:57:13 +02:00
Tankred Hase
1032a1eb06 Update package.json 2015-04-22 18:56:12 +02:00
Tankred Hase
e6d109d42d [WO-03-013] Fix lack of X-Frame-Options Header on Whiteout Server (Medium) 2015-04-22 18:35:59 +02:00
Tankred Hase
0dc04e659f Add <math> html tag to DOMpurity backlist to prevent HTTP leaks 2015-04-22 18:01:53 +02:00
Tankred Hase
c8779caef2 [WO-03-014] Fix Spoofing of Signed Messages and general UI Concerns (High)
Added signature 'verified' and 'invalid' icons from ModernPGP spec
See https://github.com/ModernPGP/icons#signatures
2015-04-22 17:48:38 +02:00
Felix Hammerl
898e19e3ea Merge pull request #321 from whiteout-io/audit/WO-03-002
[WO-03-002] Fix Insecure Regex Usage on DOMPurify Sanitizer Output (Medi...
2015-04-22 17:38:32 +02:00
Tankred Hase
246d19b76e [WO-03-002] Fix Insecure Regex Usage on DOMPurify Sanitizer Output (Medium) 2015-04-22 14:45:52 +02:00
Tankred Hase
55406cf7e8 Merge pull request #323 from eldios/eldios-patch-1
Change Git cloning command to use HTTP
2015-04-22 11:11:19 +02:00
Felix Hammerl
b5c917f95a [WO-955] WO-03-023 STARTTLS Setting leads to opportunistic STARTSSL 2015-04-21 18:16:21 +02:00
Lele
a0378cc0b9 Change Git cloning command to use HTTP
..or it will give a permission denied error to everyone but the developers :)
2015-04-21 02:14:34 +02:00
Tankred Hase
8b42f83b35 Merge pull request #319 from whiteout-io/dev/WO-905
[WO-905] Add IMAP compression
2015-04-17 13:18:36 +02:00
Tankred Hase
9f94467ad1 Upgrade to imap-client v0.14.0 2015-04-17 13:16:20 +02:00
Tankred Hase
321b6a9710 Bump mobile version code 2015-04-17 12:17:56 +02:00
Tankred Hase
cf85fbd2ee Merge pull request #269 from whiteout-io/dev/wo-630
[WO-630] Added winstore-jscompat.js for Windows Apps compatibility
2015-04-16 16:56:28 +02:00
Andris Reinman
9518cb69fa [WO-630] Added winstore-jscompat.js for Windows Apps compatibility 2015-04-15 12:45:05 +02:00
Tankred Hase
ec7e8cbd68 Add rubber band scrolling in dropdown on iOS 2015-04-15 12:03:46 +02:00
Tankred Hase
d0f002bfd1 Hide error msg if public key verification does nto work 2015-04-14 18:46:08 +02:00
Tankred Hase
9841a59a9e Improve error message in public key verifier 2015-04-14 17:59:26 +02:00
Tankred Hase
1ffcaf5487 Added node.js 0.12 to travis.yml 2015-04-13 14:38:34 +02:00
Felix Hammerl
150a3c7888 [WO-905] Add IMAP compression 2015-04-12 23:43:13 +02:00
Tankred Hase
1af3eac566 Merge pull request #318 from whiteout-io/dev/WO-914
[WO-914] Limit dropdown folder list in width and size
2015-04-09 16:41:20 +02:00
Felix Hammerl
e437a95baa [WO-914] Limit dropdown folder list in width and size 2015-04-09 16:33:59 +02:00
Tankred Hase
2828771c2b Merge pull request #256 from whiteout-io/dev/styleguide
Dev/styleguide
2015-04-09 15:12:06 +02:00
Felix Hammerl
2148d06d49 Copy all iOS icons in post-build step 2015-04-09 14:58:12 +02:00
Mario Volke
dca2f4ead9 Add styleguide for basic components 2015-04-09 14:58:08 +02:00
Mario Volke
8807830122 Add basic layout and styling to styleguide 2015-04-09 14:58:08 +02:00
Mario Volke
69ed386765 Add styleguide to grunt dist and watch 2015-04-09 14:58:08 +02:00
Mario Volke
e6147e1fdc Add basic styleguide workflow with assemble 2015-04-09 14:58:08 +02:00
Tankred Hase
1d64c2dfb0 Fix visible outbox on startup 2015-04-09 14:46:33 +02:00
Tankred Hase
e5f281c124 Merge branch 'master' of github.com:whiteout-io/mail-html5 2015-04-09 14:34:36 +02:00
Tankred Hase
06d772159b [WO-919] Fix chrome rendering error in writer subject box 2015-04-09 14:34:10 +02:00
Tankred Hase
ff72822e36 Update README.md 2015-04-08 16:05:23 +02:00
Tankred Hase
09ff51f329 Update README.md 2015-04-08 16:04:38 +02:00
Tankred Hase
a2442554ad Bump mobile manifest version code 2015-04-07 18:07:48 +02:00
Tankred Hase
153d0626d2 Remove meta tag CSP directive from index.html since cca inject it by default now 2015-04-07 18:05:55 +02:00
Tankred Hase
222b7d35e3 Merge pull request #316 from whiteout-io/dev/WO-895
Dev/wo 895
2015-04-07 17:16:31 +02:00
Tankred Hase
07e0f39b55 Add update script for DB version 6 2015-04-07 17:15:38 +02:00
Tankred Hase
73febe287e Simplify spinner code 2015-04-07 16:45:51 +02:00
Tankred Hase
abbd893438 Merge branch 'dev/WO-895' of github.com:whiteout-io/mail-html5 into dev/WO-895 2015-04-07 16:14:48 +02:00
Tankred Hase
d67e0531d5 Prevent selection of unloaded message 2015-04-07 16:14:40 +02:00
Tankred Hase
210ab61ba1 Upgrade to imap-client v0.13.0 2015-04-07 16:13:51 +02:00
Tankred Hase
b752269c68 Show spinner for loading messages 2015-04-07 15:59:41 +02:00
Felix Hammerl
d8fb06cb08 [WO-895] Add paging and prefetching 2015-04-07 15:18:20 +02:00
Tankred Hase
88e83b6511 Improve error message upon private key import 2015-04-07 12:51:36 +02:00
Tankred Hase
1b8c6b6b8d [WO-906] Show confirm dialog for mobile phone number in account creation 2015-04-01 18:29:23 +02:00
Tankred Hase
8295806b1f Simplify public key verification screen 2015-04-01 17:42:45 +02:00
Tankred Hase
c30fbe8b6b Hide 'openpgp_keys' imap folder 2015-04-01 17:36:06 +02:00
Tankred Hase
5a8d7d8324 Remove word 'beta' in signup screens 2015-04-01 17:10:13 +02:00
Tankred Hase
c9981239c8 Merge pull request #317 from whiteout-io/dev/WO-885
Implement encrypted private key imap sync
2015-04-01 14:39:50 +02:00
Tankred Hase
c8f13511c1 Review imap key-sync 2015-04-01 14:24:46 +02:00
Tankred Hase
f41e6e12b9 Upgrade to imap-client v0.12.0 2015-04-01 12:43:54 +02:00
Tankred Hase
809de91354 [WO-895] Implement encrypted private key imap sync
* Add copy and paste private key import during setup
* Simplify key setup screen (login-initial) import option
* Make checkbox background color white
2015-04-01 00:48:16 +02:00
Tankred Hase
220b8af509 Link architecture image to in README 2015-03-18 14:23:13 +01:00
Tankred Hase
1d57b004d1 Move openpgp dependency to devDependencies in package.json 2015-03-18 14:11:24 +01:00
Tankred Hase
518ceec0ef Merge pull request #313 from whiteout-io/dev/WO-860
[WO-860] Introduce publickey-verifier
2015-03-18 13:23:35 +01:00
Felix Hammerl
1d4a9414bb [WO-860] Introduce publickey-verifier 2015-03-18 13:15:22 +01:00
Tankred Hase
0304bbf8fe Upgrade to OpenPGP.js v1.0.0 2015-03-15 11:46:56 +01:00
Tankred Hase
6ceb877472 Dont try to connect to imap when navigator is offline 2015-03-04 14:16:44 +01:00
Tankred Hase
1806f78ef3 Fix tabindexes for input fields 2015-03-01 19:11:16 +01:00
Tankred Hase
881b05df91 Switch name and password fields 2015-03-01 19:06:43 +01:00
Tankred Hase
369ad58134 Fix read-control position 2015-02-27 16:03:00 +01:00
Felix Hammerl
5f19bbeff0 Bump Android version 2015-02-27 12:23:37 +01:00
Tankred Hase
1c361e9c85 Clean up text in login html templates 2015-02-24 14:10:21 +01:00
Felix Hammerl
888204e1b9 Put read controls before reader content 2015-02-20 19:10:57 +01:00
Tankred Hase
427dee8214 Fix aws release script 2015-02-20 16:41:38 +01:00
Tankred Hase
e089139474 bump adroid version code 2015-02-20 16:13:07 +01:00
Tankred Hase
6873fd7f3d Merge pull request #299 from whiteout-io/dev/WO-854
Show invite dialog in writer when recipient has no public key
2015-02-20 16:01:38 +01:00
Tankred Hase
9bc2bc7912 Show invite dialog in writer when recipient has no public key 2015-02-20 16:00:04 +01:00
Felix Hammerl
9aebecd45f Merge pull request #298 from whiteout-io/dev/wo-897
Use iframe-resizer
2015-02-19 12:45:40 +01:00
Tankred Hase
9d68b6475c Use iframe-resizer
* dynamically resize iframe based on content
* scroll on complete read-view instead of just iframe-content
* open writer when email address is clicked in iframe
* convert tabs to spaces in read-directive file
* Scale html mails to viewport only from the outside
* Delete release branch before each release in aws_release.sh script
* Make read-controls in read view always visible
2015-02-18 23:01:02 +01:00
Felix Hammerl
2c1e1f669e Merge pull request #296 from whiteout-io/dev/WO-865
Dev/wo 865
2015-02-18 17:00:08 +01:00
Tankred Hase
91693c62ad Refactor config.cloudUrl to config.keyServerUrl 2015-02-16 23:17:29 +01:00
Tankred Hase
93dc53f7b7 Add login to wmail on singup screen
Remove red border on required text input on Firefox
2015-02-16 23:17:01 +01:00
Tankred Hase
59dc2008a4 Fix regex for creating anchors from urls in reader 2015-02-16 21:53:41 +01:00
Tankred Hase
10cd2795f3 Upgrade to angular.js 1.3.13 2015-02-16 15:22:41 +01:00
Tankred Hase
9c6d618ddc Merge pull request #295 from whiteout-io/dev/WO-795
Dev/wo 795
2015-02-16 15:07:48 +01:00
Tankred Hase
163ad5db79 Bump email.js libs to promisified versions 2015-02-16 13:35:15 +01:00
Felix Hammerl
54d495d8d9 [WO-804] Fix bug where message cannot be parsed when deleted from IMAP 2015-02-16 13:33:02 +01:00
Felix Hammerl
0faa5b3743 Track emails by uid instead hashKey attribute 2015-02-16 13:33:02 +01:00
Felix Hammerl
2e3e07aa1d [WO-855] Fix trying to set a flag when email is deleted 2015-02-16 13:33:02 +01:00
Felix Hammerl
3da5a55251 [WO-795] Port to promises 2015-02-16 13:33:01 +01:00
Tankred Hase
f28c7854c3 [WO-880] Use WebCrypto for native RSA keygen on iOS 2015-02-16 12:26:26 +01:00
Tankred Hase
57918bbd67 Use npm build of openpgp.js 2015-02-13 10:29:40 +01:00
Tankred Hase
c26a51f83d Bump android versioncode 2015-02-11 15:25:23 +01:00
Tankred Hase
6938750803 Upgrade to OpenPGP.js v0.10.0 2015-02-11 14:37:14 +01:00
Felix Hammerl
c94c419b38 Merge pull request #267 from whiteout-io/dev/WO-893
Dev/wo 893
2015-02-11 10:45:57 +01:00
Tankred Hase
5e246ee921 Fix invalid user id in PGP keys when realname is left empty 2015-02-10 18:37:41 +01:00
Tankred Hase
443cc3b59b Use keyserver.ubuntu.com for manual lookups in the app 2015-02-10 18:37:12 +01:00
Tankred Hase
da639b5a69 bump mobile manifest version 2015-02-10 16:04:42 +01:00
Felix Hammerl
0d17701ebd Merge pull request #266 from whiteout-io/dev/WO-889
Dev/wo 889
2015-02-10 15:36:19 +01:00
Tankred Hase
5bf0890c02 Ignore keys from HKP server in keychain.getUserKeyPair
Remove unused getPublicKeys function
2015-02-10 15:21:04 +01:00
Tankred Hase
f8e5ea6d89 Revert "[WO-878] Do not force import of private key for HKP keys"
This reverts commit 4fe3ceaea2.
2015-02-10 14:36:30 +01:00
Tankred Hase
7ffb7ca148 Remove spellcheck in keychain code input fields 2015-02-09 17:28:54 +01:00
Tankred Hase
5121347640 Update icons in Firefox App manifest 2015-02-08 12:31:29 +01:00
Tankred Hase
2c092b0240 Add native scrolling to contacts on iOS 2015-02-05 09:50:40 +01:00
Tankred Hase
2875228359 Bump android version code 2015-02-05 09:19:00 +01:00
Tankred Hase
274c23ea4c Merge pull request #261 from whiteout-io/dev/WO-878
[WO-878] Do not force import of private key for HKP keys
2015-02-04 11:27:11 +01:00
Felix Hammerl
4fe3ceaea2 [WO-878] Do not force import of private key for HKP keys 2015-02-03 22:48:11 +01:00
Tankred Hase
ff587672d9 Bump android version code 2015-02-03 13:49:10 +01:00
Tankred Hase
fef264248d Merge pull request #259 from whiteout-io/dev/WO-862
Dev/wo 862
2015-02-03 13:38:39 +01:00
Tankred Hase
9a9b0d4cea Change search to filter in contacts lightbox 2015-02-03 13:38:13 +01:00
Tankred Hase
c93eaf17f3 Implement HKP server support
* Add public key import lightbox for copy and paste
* Fix refresh of pgp key change in keychain
* Display additional contacts info
* Filter by name and email addres in autocomplete
* Accept all file endings for key import

Accept all types of files for key import
2015-02-02 20:15:10 +01:00
Tankred Hase
038437595e Merge pull request #255 from whiteout-io/dev/WO-851
[WO-851] Request OAuth token on each connection request
2015-02-02 16:50:12 +01:00
Felix Hammerl
0446f8219b [WO-851] Request OAuth token on each connection request 2015-02-02 16:08:27 +01:00
Tankred Hase
86653e8700 Merge pull request #257 from whiteout-io/dev/WO-857
[WO-857] improved error reporting after XHR
2015-02-02 15:43:56 +01:00
Felix Hammerl
900294a13d [WO-857] improved error reporting after XHR 2015-01-27 12:26:07 +01:00
Felix Hammerl
990950bc48 Merge pull request #254 from whiteout-io/dev/WO-852
Use realname in PGP keygen
2015-01-22 12:14:17 +01:00
Tankred Hase
978822ae55 Merge pull request #250 from whiteout-io/dev/WO-765
[WO-765] do not multiplex sockets through single websocket
2015-01-21 12:18:52 +01:00
Tankred Hase
75a382190a Update package.json 2015-01-21 12:18:08 +01:00
Tankred Hase
6ad3b7402e Use realname in PGP keygen 2015-01-20 13:15:03 +01:00
Tankred Hase
6a525ae643 Add comment in setup for SMS validation 2015-01-20 12:44:45 +01:00
Felix Hammerl
55ab661582 bump dependencies 2015-01-19 12:04:30 +01:00
Felix Hammerl
7c9e8e6a4e Merge pull request #253 from whiteout-io/dev/WO-788
Improve readability of text in desktop mail-list
2015-01-19 11:39:25 +01:00
Tankred Hase
295c781b62 Improve readability of text in desktop mail-list 2015-01-19 10:56:16 +01:00
Felix Hammerl
b7072648b7 Merge pull request #252 from whiteout-io/dev/WO-790
Hide unread count for sent folder
2015-01-19 10:44:24 +01:00
Felix Hammerl
753cd1a4d7 Merge pull request #251 from whiteout-io/dev/WO-773
Dev/wo 773
2015-01-19 10:34:47 +01:00
Tankred Hase
281f4a94cd Hide unread count for sent folder 2015-01-19 10:12:01 +01:00
Tankred Hase
c271dc91dc Remove redundant directives in write view 2015-01-19 10:05:05 +01:00
Tankred Hase
fc6b21e63a Fix spinner in key sync 2015-01-19 10:03:57 +01:00
Felix Hammerl
2be7beb3a1 [WO-765] do not multiplex sockets through single websocket 2015-01-15 17:42:53 +01:00
Tankred Hase
d3b54187cb Seperate PGP fingerprint w/ spaces to make it more readable 2015-01-15 16:19:22 +01:00
Felix Hammerl
c165ced523 Merge pull request #249 from whiteout-io/dev/WO-690
Fetch message contents when leaving read mode
2015-01-15 11:36:56 +01:00
Tankred Hase
d7a4058644 Fetch message contents when leaving read mode 2015-01-15 10:23:15 +01:00
Tankred Hase
7d266e6a79 Delete unrequired underscore-min.js 2015-01-14 18:36:01 +01:00
Tankred Hase
a07ee38fdb bump android version code 2015-01-13 18:52:02 +01:00
Tankred Hase
c660883a24 Merge pull request #247 from whiteout-io/dev/WO-757
Add phone number validation in wmail signup
2015-01-13 12:11:48 +01:00
Mario Volke
8ce33f9573 Fix flex-grow in multi col form 2015-01-13 12:08:06 +01:00
Tankred Hase
9d420f3cdc Add phone number validation in wmail signup 2015-01-13 11:32:44 +01:00
Tankred Hase
802f9619cf Update README.md 2015-01-13 10:20:10 +01:00
Felix Hammerl
242d067141 Merge pull request #246 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-01-13 10:09:19 +01:00
The Gitter Badger
b3942d9dce Added Gitter badge 2015-01-13 09:08:04 +00:00
Felix Hammerl
b68bebaf12 [WO-806] fix date filter on iOS 2015-01-12 16:16:32 +01:00
Tankred Hase
fb0454142c Fix typos 2015-01-12 14:50:58 +01:00
Tankred Hase
d41ed34837 Merge pull request #245 from whiteout-io/dev/WO-808
Dev/wo 808
2015-01-12 13:17:03 +01:00
Felix Hammerl
66cf02bcb3 Adapt resolution of Whiteout icon to platforms 2015-01-12 11:30:23 +01:00
Felix Hammerl
f1ba11abc3 Remove status bar tweak from background.js 2015-01-12 11:15:50 +01:00
Felix Hammerl
b3afa745c3 Copy missing icons @3x icons to iOS project 2015-01-10 13:16:03 +01:00
Felix Hammerl
c7195db4ca Copy splash screens in build script 2015-01-10 12:51:43 +01:00
Felix Hammerl
873f4ea1c9 Ignore splash screens in appcache manifest 2015-01-10 12:51:16 +01:00
Felix Hammerl
e3643717fe [WO-810] Add splash screens 2015-01-10 12:38:09 +01:00
Felix Hammerl
ab18cdd5f8 Tweak cordova config status bar settings 2015-01-10 01:39:04 +01:00
Tankred Hase
087d4e66d5 Add W3C app manifest and theme color to index.html 2015-01-09 18:01:22 +01:00
Tankred Hase
e01b1ac965 Upgrade to forge 0.6.20 2015-01-09 12:35:04 +01:00
Tankred Hase
00914cb3be Merge pull request #243 from whiteout-io/dev/WO-591
Dev/wo 591
2015-01-08 15:09:05 +01:00
Felix Hammerl
8412973c38 Exclude app icons from appcache manifest 2015-01-08 15:07:32 +01:00
Tankred Hase
b62c551b8b Merge pull request #244 from whiteout-io/dev/WO-805
[WO-805] Do not attempt to write to undefined when folders are not yet loaded
2015-01-08 14:47:50 +01:00
Felix Hammerl
b0476989fb [WO-805] Do not attempt to write to undefined when folders are not yet loaded 2015-01-08 13:54:30 +01:00
Felix Hammerl
dc02cb1da4 Add img/ path prefix to android icons 2015-01-08 13:44:26 +01:00
Felix Hammerl
bb206bc700 Set Bundle Version to 1 2015-01-08 13:44:26 +01:00
Felix Hammerl
1378c7b069 [WO-591] create a boatload of icons in all sizes for all platforms 2015-01-08 13:43:35 +01:00
Felix Hammerl
137c6fe971 Merge pull request #242 from whiteout-io/dev/hotfix-grunt-icons
Exclude all.svg from grunt svgstore
2015-01-08 13:39:26 +01:00
Mario Volke
6dc6442b9d Exclude all.svg from grunt svgstore 2015-01-08 13:32:12 +01:00
Tankred Hase
8dbdb030db Merge pull request #199 from seriousmumbo/patch-1
added path & updated filename for Chrome App
2015-01-08 13:00:21 +01:00
Tankred Hase
95ce49279d Merge pull request #165 from mpmks11/patch-3
Update README.md
2015-01-08 12:56:36 +01:00
Tankred Hase
36b0096973 Add id to chrome.window api to remember position and size 2015-01-02 12:53:27 +01:00
Tankred Hase
bd327db4e8 Updated cca release scripts for cca 0.5.1 2014-12-19 17:05:56 +01:00
Tankred Hase
6dffba9ff3 bump android versionCode 2014-12-19 15:32:09 +01:00
Tankred Hase
37fb3f5f8d Merge pull request #235 from whiteout-io/dev/WO-766
Dev/wo 766
2014-12-19 15:29:40 +01:00
Tankred Hase
b44d0a222a Fix bug where notiifcation api is not supported 2014-12-19 14:22:46 +01:00
Tankred Hase
3cc0a372e1 Update to angular 1.3.7 2014-12-19 12:00:32 +01:00
Tankred Hase
6a9603cb69 Reset showBugReporter in dialog before each display 2014-12-19 12:00:06 +01:00
Tankred Hase
cddc0988b7 Fix bug for password decrypt in auth service 2014-12-19 11:21:57 +01:00
Tankred Hase
b01aa6716c Review 2014-12-18 16:50:11 +01:00
Tankred Hase
6a8c24d813 Fix conrtoller unit tests 2014-12-18 15:25:20 +01:00
Tankred Hase
383761e6cb Fix redirect bug in login ctrl 2014-12-18 15:25:20 +01:00
Tankred Hase
6beddf4760 Begin conrtoller unit tests 2014-12-18 15:25:20 +01:00
Tankred Hase
eab07041f0 Refactor app controllers 2014-12-18 15:25:20 +01:00
Tankred Hase
085b104521 Refactor all login controllers to promises 2014-12-18 15:25:20 +01:00
Tankred Hase
ea74f3443c WIP: start refactoring login controllers 2014-12-18 15:25:20 +01:00
Tankred Hase
bfe827e084 Refactor integration tests for promises 2014-12-18 15:25:19 +01:00
Tankred Hase
c5a8e1c119 Test email dao 2014-12-18 15:25:19 +01:00
Tankred Hase
e5c602cee0 WIP: refactor email service 2014-12-18 15:25:19 +01:00
Tankred Hase
2af599c0ad Refactor account service 2014-12-18 15:25:19 +01:00
Tankred Hase
993ca8eac7 Refactor outbox 2014-12-18 15:25:19 +01:00
Tankred Hase
bc41486693 Use native promises in crypto services 2014-12-18 15:25:19 +01:00
Tankred Hase
e32456c3db Refactor keychain dao 2014-12-18 15:25:19 +01:00
Tankred Hase
a80169ebe2 WIP: started refactoring keychain 2014-12-18 15:25:19 +01:00
Tankred Hase
26553e49d7 Refactor auth 2014-12-18 15:25:19 +01:00
Tankred Hase
15b902acf6 Refactor admin and privatekey dao 2014-12-18 15:25:18 +01:00
Tankred Hase
cc886ad402 Use native promise api in services 2014-12-18 15:25:18 +01:00
Tankred Hase
7bb69c76b6 Refactor oauth 2014-12-18 15:25:18 +01:00
Tankred Hase
88a48ec540 Refactor crypto module 2014-12-18 15:25:18 +01:00
Tankred Hase
f4fe1a36a6 Refactor update scripts 2014-12-18 15:25:18 +01:00
Tankred Hase
dab09f1068 Refactor connection doctor 2014-12-18 15:25:18 +01:00
Tankred Hase
cb1c4fd0ed WIP: start refactoring auth service to promises 2014-12-18 15:25:18 +01:00
Tankred Hase
a58448483a Test public key dao 2014-12-18 15:25:18 +01:00
Tankred Hase
3944b1741e Test device storage dao 2014-12-18 15:25:18 +01:00
Tankred Hase
fb89ffd35a Fix rest dao and invitation dao 2014-12-18 15:25:17 +01:00
Tankred Hase
67adf4a1b8 Fix error handling in lawnchair dao 2014-12-18 15:25:17 +01:00
Tankred Hase
7aa0d2cf4a Test lawnchair dao
Test pgp promise api
2014-12-18 15:25:17 +01:00
Tankred Hase
502c6b7467 Refactor lawnchair dao to promises 2014-12-18 15:25:17 +01:00
Tankred Hase
01e0529854 Refactor pgp service to use promises 2014-12-18 15:25:17 +01:00
Tankred Hase
f9f086d622 Refactor public key service to use promises 2014-12-18 15:25:17 +01:00
Tankred Hase
99c2f24d7d Refactor rest dao to use promises 2014-12-18 15:25:17 +01:00
Felix Hammerl
ce07f30252 use imap-client v0.9.0 2014-12-18 15:22:10 +01:00
Andris Reinman
7b698e52b0 Merge pull request #234 from whiteout-io/dev/WO-785
use imap-client v0.9.0
2014-12-18 14:59:22 +02:00
Felix Hammerl
3ec4ad46e5 use imap-client v0.9.0 2014-12-18 12:44:34 +01:00
Tankred Hase
b5380bbef3 Merge pull request #233 from whiteout-io/dev/WO-673
[WO-673] Remove cruft from lawnchair
2014-12-18 12:37:46 +01:00
Felix Hammerl
10c3748249 [WO-673] Remove cruft from lawnchair 2014-12-18 12:37:00 +01:00
Tankred Hase
1979903943 Merge pull request #231 from whiteout-io/dev/WO-793
Sticky footer in desktop nav
2014-12-18 12:31:25 +01:00
Mario Volke
a5c6400601 Sticky footer in desktop nav 2014-12-18 12:17:34 +01:00
Tankred Hase
67384695f1 Update license links 2014-12-17 10:37:35 +01:00
Tankred Hase
ad9990a0ce Update README.md 2014-12-12 18:41:18 +01:00
Tankred Hase
67a9c07f7a Merge pull request #228 from whiteout-io/dev/WO-786
[WO-786] Select inbox after onConnect
2014-12-12 10:49:59 +01:00
Tankred Hase
276a82e5ef Review navigation 2014-12-12 10:49:16 +01:00
Felix Hammerl
c3efeb1132 [WO-786] Select inbox after onConnect 2014-12-12 10:19:38 +01:00
Tankred Hase
8c88f25875 Add comments to app.js 2014-12-11 10:28:23 +01:00
Felix Hammerl
738d2671f7 Merge pull request #227 from whiteout-io/dev/cleanup
Move directives to seperate files, cleanup app.js
2014-12-11 10:05:02 +01:00
Tankred Hase
3cd0bcc513 Move directives to seperate files, cleanup app.js 2014-12-10 21:41:16 +01:00
Tankred Hase
6eeba1ad2f Update app.js 2014-12-10 20:58:32 +01:00
Tankred Hase
fdb94e4e20 bump firefox app version 2014-12-09 18:16:30 +01:00
Felix Hammerl
0b53886889 Merge pull request #225 from whiteout-io/dev/openpgpjs_0.9
Upgrade to openpgp.js v0.9.0
2014-12-09 17:25:51 +01:00
Tankred Hase
8340584de9 Upgrade to openpgp.js v0.9.0 2014-12-09 16:43:41 +01:00
Tankred Hase
30c2c19652 Update download link 2014-12-08 18:54:38 +01:00
Tankred Hase
420bcbcaa8 Add screenshot 2014-12-08 18:53:04 +01:00
Tankred Hase
17c082e21b Increment android version code 2014-12-05 17:49:42 +01:00
Tankred Hase
e00f2ecb3d Close read mode after replying to a message 2014-12-05 17:02:19 +01:00
Tankred Hase
6f794ff26d Fix changing folder in chrome app 2014-12-05 16:57:53 +01:00
Tankred Hase
2272f3d58f Merge pull request #221 from whiteout-io/dev/WO-707
Dev/wo 707
2014-12-05 13:04:32 +01:00
Tankred Hase
dcfcd74373 Review url/history 2014-12-05 13:04:10 +01:00
Tankred Hase
f735430c68 Delete obsolete qunit deps from test 2014-12-04 18:56:44 +01:00
Tankred Hase
68d464483e Merge pull request #219 from whiteout-io/dev/WO-784
Allow line break in page footer
2014-12-04 16:54:55 +01:00
Tankred Hase
43eb385a14 Update readme 2014-12-04 16:47:14 +01:00
Tankred Hase
df9ba7fd66 Use status service to close read mode from action bar 2014-12-04 16:36:29 +01:00
Tankred Hase
33b30221f7 Add comments for code regions in controllers 2014-12-04 16:05:26 +01:00
Tankred Hase
eb4bc13e3f Add wo-touch-active class to mail-list item 2014-12-04 13:03:36 +01:00
Tankred Hase
175b97f7a2 Prevent CSP warnings for click handlers 2014-12-04 12:47:57 +01:00
Tankred Hase
4622ebd8d9 Use url query params to trak state in the app 2014-12-04 12:46:55 +01:00
Tankred Hase
95cbe0ea11 Display mail-list scrollbar in desktop mode 2014-12-03 19:06:35 +01:00
Tankred Hase
987ddbd796 Move dummy folders to dummy service 2014-12-03 19:05:54 +01:00
Mario Volke
7752675ec3 Allow line break in page footer 2014-12-03 17:33:19 +01:00
Tankred Hase
170b01d5f1 Merge pull request #218 from whiteout-io/dev/WO-708-fix
Handle paste event in woInputCode
2014-12-03 17:24:40 +01:00
Mario Volke
ee313d3765 Handle paste event in woInputCode 2014-12-03 16:24:58 +01:00
Tankred Hase
c012f54c89 WIP: start new routing 2014-12-03 16:16:49 +01:00
Tankred Hase
e06fff4385 Merge pull request #217 from whiteout-io/dev/WO-751
[WO-751] Change naming from favorite to flag
2014-12-03 15:58:39 +01:00
Tankred Hase
fee1151952 Merge pull request #151 from whiteout-io/dev/WO-633
[WO-633] angular template minification
2014-12-03 15:49:10 +01:00
Felix Hammerl
5e29c707e0 [WO-751] Change naming from flag to star 2014-12-03 15:31:05 +01:00
Mario Volke
5ac7955721 Fix missing icons in nav due to chrome bug with <use> and angular directives 2014-12-03 12:52:10 +01:00
Mario Volke
b5e305534e trigger ngtemplates on template change in watch task 2014-12-03 12:42:06 +01:00
Mario Volke
f0f215ad5b angular template minification
Conflicts:
	Gruntfile.js
2014-12-03 12:42:06 +01:00
Felix Hammerl
7d3e6b0f2f [WO-751] Change naming from favorite to flag 2014-12-03 10:46:42 +01:00
Tankred Hase
9d8fc023ca Merge pull request #216 from whiteout-io/dev/WO-751
[WO-751] Add flagging messages
2014-12-03 09:46:18 +01:00
Tankred Hase
6a17c5a77f Increase clickable area around star, rename action bar buttons 2014-12-03 09:45:00 +01:00
Felix Hammerl
46acefd3bc [WO-751] Add flagging messages 2014-12-02 18:36:52 +01:00
Felix Hammerl
dafe584d48 Override proxy port restrictions in development mode 2014-12-02 14:39:46 +01:00
Tankred Hase
2a6d4e0d9b Merge pull request #215 from whiteout-io/dev/WO-768
Implement move to junk
2014-12-02 10:57:02 +01:00
Tankred Hase
97f1132023 Implement move to junk 2014-12-02 10:55:22 +01:00
Felix Hammerl
c3b3efa696 Merge pull request #213 from whiteout-io/dev/WO-770
Broadcast search event from action bar to filter mail-list
2014-12-01 18:10:00 +01:00
Tankred Hase
e8e69ad32d Broadcast search event from action bar to filter mail-list 2014-12-01 17:33:09 +01:00
Felix Hammerl
32cc2806e9 [WO-746] Mark credentials dirty before storing updated certificate 2014-12-01 17:18:54 +01:00
Felix Hammerl
4edf79d8c4 [WO-778] Fix crypto initialization 2014-12-01 16:42:30 +01:00
Felix Hammerl
51715822f8 Merge pull request #212 from whiteout-io/dev/WO-767
[WO-767] Initialize lawnchair asynchronously during startup
2014-12-01 15:11:17 +01:00
Felix Hammerl
251264835f [WO-767] Initialize lawnchair asynchronously during startup 2014-12-01 14:55:06 +01:00
Tankred Hase
47270b659c Merge pull request #211 from whiteout-io/dev/WO-708
Dev/wo 708
2014-12-01 13:26:13 +01:00
Tankred Hase
189c82159f Fix unit tests 2014-12-01 13:25:25 +01:00
Tankred Hase
13c6061589 Merge pull request #210 from whiteout-io/dev/WO-745
[WO-745] Adapt changes in imap-client v0.8.0
2014-12-01 12:02:26 +01:00
Tankred Hase
876a0b0302 Integrate wo-input-code directive 2014-12-01 11:53:45 +01:00
Mario Volke
d15d45a16c added woInputCode directive 2014-12-01 10:49:37 +01:00
Tankred Hase
a999d26c29 Merge pull request #206 from whiteout-io/dev/WO-772
fix wrong respond-to breakpoints
2014-12-01 10:47:26 +01:00
Felix Hammerl
a177503bdd [WO-745] Adapt changes in imap-client v0.8.0 2014-12-01 10:45:41 +01:00
Mario Volke
4ca25fc86f fix back button in read view on desktop 2014-12-01 10:36:00 +01:00
Mario Volke
15a222a6ae fix wrong respond-to breakpoints 2014-12-01 10:36:00 +01:00
Tankred Hase
9bee0f3def Merge pull request #209 from whiteout-io/dev/WO-776
Show time of day instead of date for today in mail-list
2014-12-01 10:09:49 +01:00
Mario Volke
da3a128cf1 Show time of day instead of date for today in mail-list 2014-12-01 10:04:20 +01:00
Tankred Hase
81a2d64835 Use in dialog service instead of controller 2014-11-29 14:46:16 +01:00
Tankred Hase
5b4d7bcd4a Merge pull request #193 from whiteout-io/dev/WO-721
refactor keyfilBtn for broader usage
2014-11-29 13:03:59 +01:00
Tankred Hase
6668174852 Use wo-click-file-input directive for attachment input as well 2014-11-29 13:03:09 +01:00
Mario Volke
ac7af7168b refactor keyfilBtn for broader usage 2014-11-29 12:53:56 +01:00
Tankred Hase
c7463cd185 Merge pull request #207 from whiteout-io/dev/WO-771
make text-input height more constistent with buttons
2014-11-29 12:47:01 +01:00
Mario Volke
d985054fcd Add search--light modifier to align with btn--light in action bar 2014-11-29 12:43:51 +01:00
Tankred Hase
92a8348ea7 Merge pull request #208 from whiteout-io/dev/WO-774
fix touch events in woDropdown
2014-11-29 11:58:42 +01:00
Mario Volke
7443dcad99 fix touch events in woDropdown 2014-11-29 10:33:48 +01:00
Tankred Hase
b4884e4956 Merge pull request #205 from whiteout-io/dev/WO-727
Dev/wo 727
2014-11-27 19:46:42 +01:00
Tankred Hase
26bc7c91fc Reviewed reworked SVG icons and use old icons for some cases 2014-11-27 19:45:47 +01:00
Mario Volke
9f981f8168 make search icon smaller to fit previous style 2014-11-27 19:10:29 +01:00
Mario Volke
e66d450b81 refactor icons to same viewbox 2014-11-27 19:10:29 +01:00
Mario Volke
2a6cce858c remove duplicate trash icon 2014-11-27 19:10:29 +01:00
Mario Volke
3b1df177b9 fix svgs 2014-11-27 19:10:28 +01:00
Tankred Hase
45c4bbc525 Import reworked SVG icons 2014-11-27 19:10:28 +01:00
Tankred Hase
e2e15f9a3d Add logout and outbox icons in nav template 2014-11-27 19:10:28 +01:00
Tankred Hase
620fd51aa3 Merge pull request #192 from whiteout-io/dev/WO-760
add horizontal padding to mail-list footer in mobile/tablet mode
2014-11-27 19:02:09 +01:00
Tankred Hase
d0460bf4f3 Optimize account and set-passphrase dialogs 2014-11-27 19:00:30 +01:00
Tankred Hase
e70b874dc3 Merge pull request #189 from whiteout-io/dev/WO-749
Force line break in account view
2014-11-27 18:42:00 +01:00
Tankred Hase
520268e357 Merge pull request #191 from whiteout-io/dev/WO-750
increase clickable area around checkbox in desktop mail-list
2014-11-27 18:40:52 +01:00
Tankred Hase
ad794454ab adjust padding around checkbox 2014-11-27 18:39:56 +01:00
Mario Volke
941283bfb6 increase clickable area around checkbox in desktop mail-list 2014-11-27 18:32:29 +01:00
Tankred Hase
04da07813a Remove unlocked icon for decrypted message 2014-11-27 18:28:03 +01:00
Tankred Hase
324d252628 Merge pull request #190 from whiteout-io/dev/WO-740
fix whitelisting of lightbox for ngAnimate
2014-11-27 18:23:45 +01:00
Tankred Hase
28b0558129 Merge pull request #204 from whiteout-io/dev/WO-679
[WO-679] Include navigator.userAgent and app version in bug report
2014-11-27 16:37:28 +01:00
Felix Hammerl
cb4d27e58f [WO-679] Include navigator.userAgent and app version in bug report 2014-11-27 16:32:07 +01:00
Felix Hammerl
c0ee4a7db7 Merge pull request #203 from whiteout-io/dev/WO-722
Dev/wo 722
2014-11-27 16:26:31 +01:00
Felix Hammerl
aff71d506b Add focus-me directive 2014-11-27 16:23:42 +01:00
Felix Hammerl
b57be79b00 Add whitespace before FAQ link 2014-11-27 16:22:27 +01:00
Felix Hammerl
fb21de8035 remove todo in validate-phone.js 2014-11-27 15:59:32 +01:00
Felix Hammerl
bd13a993a2 remove timeout from imap and smtp 2014-11-27 15:24:15 +01:00
Tankred Hase
0d90af5ec1 Fix bug where read mode is closed after marking email as read 2014-11-27 15:15:44 +01:00
Felix Hammerl
12e65e0011 Fix email dao integration test 2014-11-27 14:52:57 +01:00
Tankred Hase
f8f7588c93 Fix integration test setup and teardown... some tests stil fails 2014-11-27 13:55:40 +01:00
Tankred Hase
f740b27659 Fix read-sandbox build 2014-11-26 21:29:02 +01:00
Tankred Hase
2f25557747 Use angular events to broadcast status updates 2014-11-26 21:12:40 +01:00
Tankred Hase
32d3ea1801 Fix unit tests 2014-11-26 19:51:15 +01:00
Tankred Hase
b3b947f6e5 Fix several minor runtime bugs in the app 2014-11-26 17:57:14 +01:00
Tankred Hase
2b6da522c6 Fix last unit tests 2014-11-26 13:43:10 +01:00
Tankred Hase
03b2e10bc3 Fix mail-list-ctrl unit test and move functions to services 2014-11-26 12:59:44 +01:00
Tankred Hase
1c1a5a4d54 Remove unnecessary bind in dialog service 2014-11-26 12:50:16 +01:00
Tankred Hase
156cff1854 Merge pull request #200 from whiteout-io/dev/WO-722-minor-fixes
Multiple minor fixes
2014-11-26 09:16:55 +01:00
Tankred Hase
eb099d9bfe Update lawnchair.js 2014-11-26 09:14:03 +01:00
Tankred Hase
c8665bc786 Begin fixing controller unit tests 2014-11-25 18:19:40 +01:00
Felix Hammerl
2764c6e230 Multiple minor fixes
* Fix dialog service instance binding
* Fix service/factory handling
* Inject userStorage lawnchair adapter to keychain service
2014-11-25 17:46:33 +01:00
Tankred Hase
2a2058c167 Finish testing account service 2014-11-25 12:07:26 +01:00
seriousmumbo
34e3a3fe46 added path & updated filename for Chrome App 2014-11-24 16:02:06 -07:00
Tankred Hase
7f6410e1f8 Write account.init unit test 2014-11-24 18:07:09 +01:00
Tankred Hase
c8980f6f51 Start writing account test 2014-11-21 17:25:55 +01:00
Tankred Hase
f2fee61d3b Fix unit tests for existing angular services 2014-11-21 15:06:29 +01:00
Tankred Hase
881afbff40 Fis all util service tests 2014-11-21 13:33:22 +01:00
Tankred Hase
3342b91d3f Move unit tests to subdirectories 2014-11-21 12:14:28 +01:00
Tankred Hase
cb5431dc16 Write dialog unit test 2014-11-21 12:13:06 +01:00
Tankred Hase
198118571f Fix angular bootstrap errors 2014-11-20 22:53:30 +01:00
Tankred Hase
7eeff8ec75 Fix build errors... still runtime errors though 2014-11-20 15:51:55 +01:00
Mario Volke
5109ccd899 add horizontal padding to mail-list footer in mobile/tablet mode 2014-11-20 15:15:57 +01:00
Tankred Hase
da5a9e2c17 Refactor app controller to use new services 2014-11-20 15:14:39 +01:00
Mario Volke
1e752885d4 fix whitelisting of lightbox for ngAnimate 2014-11-20 14:12:08 +01:00
Mario Volke
9b10346cb9 force line break in account view 2014-11-20 13:52:39 +01:00
Tankred Hase
4c04ba4e74 Refactor login controllers and delete AppController 2014-11-19 20:54:59 +01:00
Tankred Hase
e6b22bd0a0 Expose angular/common.js modules for util, app-config 2014-11-19 17:19:55 +01:00
Tankred Hase
1f5fa4ca41 Move controllers into subfolders 2014-11-19 15:53:05 +01:00
Tankred Hase
da416f4329 Add TODO comments to controllers 2014-11-19 15:46:20 +01:00
Tankred Hase
c221372ed4 Restructure architecture into angular modules and services 2014-11-19 15:23:10 +01:00
Tankred Hase
95ad15b0dd Export account service as common.js module 2014-11-19 15:15:57 +01:00
Tankred Hase
41879bf5b3 Refactor outbox to be an angular service 2014-11-18 20:28:10 +01:00
Tankred Hase
a5da52c8a6 Move outbox to services 2014-11-18 20:22:51 +01:00
Tankred Hase
38d908995a Refactor BOs and utils to services 2014-11-18 20:19:29 +01:00
Tankred Hase
ac09c7d91f Move auth, oauth, connection-doctor to service dir 2014-11-18 19:18:57 +01:00
Tankred Hase
c8d56b4bd1 Expose previous DAOs as angular services and as common.js modules 2014-11-18 18:44:00 +01:00
Tankred Hase
f7b7e174b0 Rename DAOs to services 2014-11-18 18:13:34 +01:00
Tankred Hase
628beb02e8 WIP: start new service architecture 2014-11-18 16:56:55 +01:00
Felix Hammerl
f11d4e8df3 disarm socket timeout in integration tests 2014-11-18 16:33:59 +01:00
Felix Hammerl
eabdeaf888 Fix corner case where email does not have modseq attribute 2014-11-18 16:33:59 +01:00
Tankred Hase
906909fd7d Merge pull request #188 from whiteout-io/dev/WO-724
Fix source maps in concat build
2014-11-18 14:58:55 +01:00
Tankred Hase
585ccf84a2 Fix source maps in concat build 2014-11-18 14:06:06 +01:00
Felix Hammerl
b12c99fbfe Merge pull request #187 from whiteout-io/dev/WO-724
[WO-724] Optimise grunt build and watch tasks
2014-11-18 09:30:31 +01:00
Tankred Hase
aed9d174a5 [WO-724] Optimise grunt build and watch tasks
* add grunt concat step before uglify
* split watch tasks for app and tests
2014-11-17 18:35:35 +01:00
Tankred Hase
c85b6344fc Add beta ta to version 2014-11-14 13:19:06 +01:00
Felix Hammerl
3156fd9601 use imap-client v0.7.0 2014-11-14 12:40:40 +01:00
Felix Hammerl
21356ae9ac Merge pull request #185 from whiteout-io/dev/wo-731
[WO-731] Treat modseq values as numbers
2014-11-14 12:14:43 +01:00
Felix Hammerl
57f11f1108 Add settings.whiteout.io to URLs 2014-11-13 12:39:48 +01:00
Andris Reinman
eb775525f5 [WO-731] Treat modseq values as numbers 2014-11-13 12:55:12 +02:00
Tankred Hase
3e54f66cb9 Fix contacts unit test 2014-11-12 20:56:28 +01:00
Tankred Hase
c2df2abbb0 Merge pull request #175 from whiteout-io/dev/WO-718
add padding around encrypted icon in mobile mail list
2014-11-12 20:51:20 +01:00
Mario Volke
99fbd475f4 add padding around encrypted icon in mobile mail list 2014-11-12 20:50:16 +01:00
Tankred Hase
2440817cfa Remove unnecessary jpg images 2014-11-12 20:49:51 +01:00
Tankred Hase
97ec23c973 Merge pull request #174 from whiteout-io/dev/WO-717
Desktop mode: align folder icons text in nav
2014-11-12 20:43:16 +01:00
Tankred Hase
5e82b2382c Remove test string for folder names 2014-11-12 20:42:57 +01:00
Mario Volke
18dc3dbf37 Desktop mode: align folder icons text in nav 2014-11-12 20:37:39 +01:00
Tankred Hase
5d982fdcac Merge pull request #173 from whiteout-io/dev/WO-716
align back icon in mobile toolbar with text in reader
2014-11-12 20:36:05 +01:00
Mario Volke
ea1e5c6380 align back icon in mobile toolbar with text in reader 2014-11-12 20:31:26 +01:00
Tankred Hase
d4984aafa7 Merge pull request #172 from whiteout-io/dev/WO-714
bigger spinner and vcenter fix in read view
2014-11-12 20:30:08 +01:00
Tankred Hase
9c5bb31d66 Remove unneeded fingerprint scope var in contacts 2014-11-12 20:29:27 +01:00
Tankred Hase
e1c594ce0f Use small spinner in read mode 2014-11-12 20:28:54 +01:00
Mario Volke
a2cce31a1f bigger spinner and vcenter fix in read view 2014-11-12 20:07:43 +01:00
Tankred Hase
996730f160 Merge pull request #177 from whiteout-io/dev/WO-728
Display text body preview in desktop mode
2014-11-12 19:52:33 +01:00
Tankred Hase
dfff273bf3 Increase width of sender in desktop mail list 2014-11-12 18:51:06 +01:00
Mario Volke
88370adbf3 added dash to desktop mail list as separator between body and subject 2014-11-12 18:38:10 +01:00
Mario Volke
aaf3743665 Display text body preview in desktop mode 2014-11-12 18:38:10 +01:00
Mario Volke
82f02312ea change grey background to fit better into common app styling 2014-11-12 18:38:10 +01:00
Mario Volke
5eafb448c8 Desktop mode: mail-list read backgroung grau shade a bit lighter 2014-11-12 18:38:10 +01:00
Tankred Hase
77fc111ee8 Merge pull request #181 from whiteout-io/dev/WO-715
Tablet mode: overlay action-bar over read-view
2014-11-12 18:32:59 +01:00
Tankred Hase
42c259dea6 Fix margin between read-controls in tablet mode 2014-11-12 18:25:15 +01:00
Mario Volke
5113583707 Tablet mode: overlay action-bar over read-view (like before) and position top-right, remove border 2014-11-12 18:16:23 +01:00
Tankred Hase
f8038ea735 Merge pull request #171 from whiteout-io/dev/WO-704
Refactor .write__submit to use .lightbox__controls
2014-11-12 18:09:24 +01:00
Tankred Hase
4d2cabc8c1 Remove resize triangle in writer body 2014-11-12 18:08:59 +01:00
Mario Volke
f82c7c7480 use lightbox controls for write view 2014-11-12 17:57:49 +01:00
Tankred Hase
fb3ca46017 Merge pull request #170 from whiteout-io/dev/WO-729
second lighter error color for buttons and labels
2014-11-12 17:52:49 +01:00
Mario Volke
68bcf9ebc7 second lighter error color for buttons and labels 2014-11-12 17:50:11 +01:00
Tankred Hase
7229923d70 Merge pull request #169 from whiteout-io/dev/WO-699
refactored focusMe directive into common directives as woFocusMe
2014-11-12 17:48:26 +01:00
Mario Volke
6e284dfd7e refactored focusMe directive into common directives as woFocusMe 2014-11-12 17:46:33 +01:00
Tankred Hase
70402d77a8 Merge pull request #184 from whiteout-io/dev/WO-711
Dev/wo 711
2014-11-12 17:41:04 +01:00
Mario Volke
38fce60e6c remove obsolete ng-animate css rules 2014-11-12 17:36:14 +01:00
Mario Volke
f0b1d7934d make nav css transition more stable on iOS 2014-11-12 17:36:14 +01:00
Mario Volke
aff3854cb9 activate ngAnimate for whitelisted classes only 2014-11-12 17:36:14 +01:00
Tankred Hase
64abd6ad63 Merge pull request #183 from whiteout-io/dev/WO-706
Dev/wo 706
2014-11-12 17:32:57 +01:00
Mario Volke
2bc96a5fb1 prepared new contact structure 2014-11-12 17:25:44 +01:00
Mario Volke
42c1bbc638 bugfix in utility gap classes 2014-11-12 17:25:44 +01:00
Mario Volke
8c84369e92 add more helpful utility classes 2014-11-12 17:25:44 +01:00
Tankred Hase
31a6091b25 Merge pull request #182 from whiteout-io/dev/form-cleanup
[WO-649] clean up login pages
2014-11-12 17:17:26 +01:00
Tankred Hase
4f12f2d0a7 Merge pull request #179 from whiteout-io/dev/WO-649
Dev/wo 649
2014-11-12 17:00:08 +01:00
Felix Hammerl
16308232ce Move ignoreUploadOnSent check to emailDao 2014-11-12 16:41:40 +01:00
Tankred Hase
cf1f60fbf9 [WO-649] clean up login pages
* add spinners to all login pages
* use inline error messages in all form instead of scope.onError
* create newsletter service
2014-11-12 16:12:26 +01:00
Tankred Hase
082cbf192b Refactore services code style 2014-11-11 21:50:01 +01:00
Tankred Hase
1d22231e8a Move directives to directive folder 2014-11-11 21:48:46 +01:00
Tankred Hase
510f147b97 Use only mail-config service for imap/smtp config
* remove 'pinned' attribute from imap/smtp config
* remove 'provider' attribute from auth module
* add 'oauthDomains' to app-config
* remove all static server config from the app-config
2014-11-11 19:30:58 +01:00
Tankred Hase
11d7a26c31 Fix tests 2014-11-10 18:36:26 +01:00
Tankred Hase
1bfdafd6b1 Change angular-csp.css for version 1.3.2 2014-11-10 14:40:53 +01:00
Tankred Hase
4bfeb99b7b Fix formvalidation, integrate wmail account creation UI 2014-11-10 14:40:53 +01:00
Tankred Hase
4468c91242 Upgrade to angular 1.3.2 2014-11-10 14:40:52 +01:00
Tankred Hase
93bd548b46 Use promise api for 2014-11-10 14:40:52 +01:00
Tankred Hase
074914044d Add faq links and rework google/password login workflow 2014-11-10 14:40:52 +01:00
Tankred Hase
069628c62b WIP: start implementing add-account controller 2014-11-10 14:40:52 +01:00
Mario Volke
5884b1231f rewritten account lightbox without tables 2014-11-10 14:40:52 +01:00
Tankred Hase
4b73492aa5 Review changes 2014-11-10 14:40:52 +01:00
Mario Volke
e06f602890 removed obsolete sass config variables 2014-11-10 14:40:52 +01:00
Mario Volke
915db579c4 Refactoring login screens and lightboxes,
added general form styling
2014-11-10 14:40:51 +01:00
Mario Volke
e34da3bdbf refactored waiting cursor class to utility class 2014-11-10 14:40:51 +01:00
Mario Volke
900dbc8cb9 make error color more present 2014-11-10 14:40:51 +01:00
Tankred Hase
eb3a266725 Merge pull request #160 from whiteout-io/dev/WO-710
Close dropdown after selection has been made
2014-11-10 13:58:52 +01:00
Mario Volke
da872daa7d fix dropdown toggle with touchstart 2014-11-10 13:51:20 +01:00
Tankred Hase
a6bd06f853 Merge pull request #161 from whiteout-io/dev/WO-712
Fix: Sender email address in mail-list item on mobile cut off on bottom
2014-11-10 13:46:07 +01:00
Tankred Hase
b3f1f4b3fe Merge pull request #166 from whiteout-io/dev/WO-629
Dev/wo 629
2014-11-10 13:38:31 +01:00
Tankred Hase
e8964cde39 [WO-629] implement move, delete, mark unread for desktop and mobile ui 2014-11-10 13:37:57 +01:00
mpmks11
acea305a5a Update README.md 2014-11-06 12:31:56 -08:00
Mario Volke
26e819c8e3 Fix: Sender email address in mail-list item on mobile cut off on bottom 2014-11-06 17:45:10 +01:00
Mario Volke
fc66df8894 Close dropdown after selection has been made 2014-11-06 17:34:59 +01:00
Tankred Hase
2b15eabcd0 [WO-629] Replace href javascript:; by # to prevent CSP warning when clicking on an anchor 2014-11-06 16:28:46 +01:00
Tankred Hase
24a181cf8d [WO-629] Remove orderBy filter for folders in UI since it is done in js already 2014-11-06 16:28:46 +01:00
Tankred Hase
8cc84ef8c6 Merge pull request #157 from whiteout-io/dev/WO-660
[WO-660] Add \Flagged to message flags
2014-11-06 16:13:54 +01:00
Tankred Hase
f62ad4b868 Update package.json 2014-11-06 16:01:40 +01:00
Tankred Hase
402bd80b34 Merge pull request #158 from whiteout-io/dev/WO-643
[WO-643] Refactor initialization workflow
2014-11-06 15:38:29 +01:00
Felix Hammerl
7959be55a7 [WO-643] Refactor initialization workflow
* Move initialization pre-flight checks to app-controller
* Refresh cached public keys for user during incomplete setups
* Reorder redirect checks in login ctrl from most specific (pubkey + privkey) to most generic (no keys)
* Add overridePermission flag to KeychainDAO.refreshKeyForUserId to refresh w/o asking for user permission
2014-11-06 15:36:59 +01:00
Felix Hammerl
40a4b33748 Use chai 1.9.x 2014-11-05 14:27:34 +01:00
Felix Hammerl
fe62759613 Disable logging during tests 2014-11-05 14:27:21 +01:00
Felix Hammerl
d67f2a5d53 [WO-660] Add \Flagged to message flags 2014-11-05 14:25:23 +01:00
Tankred Hase
4722af1457 [WO-629] Sort other folders alphabetically in navigation 2014-11-05 11:40:37 +01:00
Tankred Hase
69a3c9555d Merge pull request #156 from whiteout-io/dev/WO-696
[WO-696] Order wellknown folders first, others alphabetically
2014-11-05 11:38:08 +01:00
Felix Hammerl
14dc80ec3c [WO-696] List trash before flagged in wellknown folders 2014-11-05 11:36:42 +01:00
Felix Hammerl
8f1fd2de5f [WO-696] Order wellknown folders first, others alphabetically 2014-11-05 10:55:26 +01:00
Tankred Hase
7d223dc851 [WO-629] Hide outbox in folder list when empty 2014-11-04 21:32:44 +01:00
Tankred Hase
0c33f9070b [WO-629] Show correct folder name in mobile mail-list header and reader back button 2014-11-04 21:17:03 +01:00
Tankred Hase
5253680f86 Merge pull request #154 from whiteout-io/dev/WO-661
[WO-661] Introduce API to move message
2014-11-04 20:59:38 +01:00
Tankred Hase
b10c0896e9 [WO-629] Fix online status in desktop nav 2014-11-04 20:49:21 +01:00
Felix Hammerl
541b35818b [WO-661] Introduce API to move message 2014-11-04 20:31:09 +01:00
Tankred Hase
571d9dbf34 [WO-629] Fix mail-list header margin for mobile 2014-11-04 20:19:51 +01:00
Tankred Hase
325e36b2e0 [WO-629] Fix nav margins for mobile 2014-11-04 19:49:31 +01:00
Tankred Hase
8b081c759a [WO-629] Fix nav margins 2014-11-04 19:31:04 +01:00
Tankred Hase
650aa83958 [WO-629] Configure responsive breakpoints and start chrome app in desktop mode 2014-11-04 19:30:59 +01:00
Tankred Hase
a65435a771 [WO-629] List folders in navigation, switch back and forth 2014-11-04 17:20:05 +01:00
Tankred Hase
0bf68a0385 Fix grunt watch 2014-11-04 16:37:07 +01:00
Tankred Hase
8e737474f5 Merge pull request #148 from whiteout-io/dev/WO-651
[WO-651] Do not error if imap upload fails after send
2014-11-04 11:33:24 +01:00
Tankred Hase
8910376134 Fix readme indentation 2014-11-03 18:00:22 +01:00
Tankred Hase
4861ee23c3 Update README.md 2014-11-03 17:58:44 +01:00
Tankred Hase
4a43765f70 Merge branch 'release/v0.19.x' 2014-10-31 17:09:39 +01:00
Tankred Hase
568ccebcc1 Migrate to EB v3.x CLI and Frankfurt region 2014-10-31 16:03:16 +01:00
Tankred Hase
4760ddf314 Merge branch 'release/v0.19.x' 2014-10-29 18:51:41 +01:00
Tankred Hase
168a794708 Fix RSA keygen on Android 2014-10-29 18:36:32 +01:00
Tankred Hase
31fba2fed2 Merge branch 'dev/sockets' 2014-10-29 14:11:31 +01:00
Tankred Hase
10e6bd32e8 Use new chrome.sockets api, change manifest permissions
Prevent autocorrect on hostname text inputs
2014-10-29 14:00:39 +01:00
Tankred Hase
5efa410d7d Adjust dummy mail body during development 2014-10-27 17:30:42 +01:00
Tankred Hase
edcaf7e3c0 Fix padding in mail-list header 2014-10-27 17:30:21 +01:00
Tankred Hase
dc8ee2c498 Merge pull request #150 from whiteout-io/dev/desktop
Dev/desktop
2014-10-27 16:04:51 +01:00
Tankred Hase
29f82754d4 Manually fix Gruntfile merge 2014-10-27 16:03:54 +01:00
Tankred Hase
bd19135472 Convert common.js directive to common.js module 2014-10-27 15:19:24 +01:00
Mario Volke
2594ff515b added dropdowns for mobile toolbar
Conflicts:
	src/js/directives/common.js
2014-10-27 15:19:24 +01:00
Mario Volke
06498017df align SVG icons to their viewbox to achieve more consistent icon sizes and positioning 2014-10-27 15:19:24 +01:00
Mario Volke
8c2aebf3fd line with padding in read view and no attachments 2014-10-27 15:19:24 +01:00
Mario Volke
c3021a7244 Optimized mobile read view 2014-10-27 15:19:24 +01:00
Mario Volke
c9c05302d2 remove manifest job in grunt watch 2014-10-27 15:19:24 +01:00
Mario Volke
b53fdd3162 replace non semantic color variable in mail list 2014-10-27 15:19:23 +01:00
Mario Volke
4ef2b834b6 Implement desktop UI 2014-10-27 15:19:23 +01:00
Felix Hammerl
b96ae1dd89 [WO-627] Expose all IMAP folders to account.folders 2014-10-27 15:14:32 +01:00
Tankred Hase
52a2f4f43a bumper versionCode for Android 2014-10-23 13:34:51 +02:00
Tankred Hase
f938b3b83c [WO-659] fix scrolling to the top of the writer textarea 2014-10-23 13:11:37 +02:00
Tankred Hase
cce81337c3 Add grunt parameter to aws release 2014-10-22 20:26:47 +02:00
Tankred Hase
a728e34e32 Merge pull request #149 from whiteout-io/dev/WO-653
Use manifest config for webmail
2014-10-22 19:56:18 +02:00
Tankred Hase
eb81028123 Use regex to parse key server urls from manifest 2014-10-22 19:42:56 +02:00
Tankred Hase
c6b50d04f6 Use manifest config for webmail 2014-10-22 19:12:18 +02:00
Tankred Hase
f380db4e1d [WO-656] fix logout in chrome app 2014-10-22 17:22:18 +02:00
Tankred Hase
f9b1c66932 Fix bug when trying to open undefined folder before initial sync 2014-10-22 17:21:28 +02:00
Tankred Hase
dada15c2b4 Merge pull request #147 from whiteout-io/dev/WO-654
[WO-654] Update T-Systems Trust Center intermediate certficate
2014-10-22 16:47:01 +02:00
Felix Hammerl
5f9132ab5f [WO-651] Do not error if imap upload fails after send 2014-10-22 12:25:27 +02:00
Felix Hammerl
d6b842b0f4 [WO-654] Update T-Systems Trust Center intermediate certficate 2014-10-22 12:14:00 +02:00
Tankred Hase
0f800f7875 Clean browserified files and source maps from release builds 2014-10-22 11:04:27 +02:00
Tankred Hase
20ad94fc6b Update aws release script 2014-10-22 09:42:42 +02:00
Tankred Hase
a610440b5a Merge pull request #142 from whiteout-io/dev/WO-639
[WO-639] Use 5s timeout for incoming mail
2014-10-21 15:13:43 +02:00
Tankred Hase
d7c1718a1c Merge pull request #145 from whiteout-io/dev/WO-645
[WO-645] Fix: Credentials are not stored after logout
2014-10-21 15:01:48 +02:00
Tankred Hase
ce78e71cd7 Merge pull request #146 from whiteout-io/dev/WO-520
Dev/wo 520
2014-10-21 14:59:00 +02:00
Tankred Hase
486a48679f Upgrade to new pgpmailer and pgpbuilder 2014-10-21 14:55:04 +02:00
Tankred Hase
b556334407 Integrate OpenPGP.js 0.8.1 with promises support 2014-10-20 18:44:39 +02:00
Felix Hammerl
7a986fc60a [WO-645] Fix: Credentials are not stored after logout 2014-10-20 17:43:26 +02:00
Tankred Hase
a93d817962 Add minified build of openpgp.js v0.8.0 2014-10-20 16:47:47 +02:00
Tankred Hase
84ba1e5c44 Update aws release script to change git branches automatically 2014-10-20 16:41:19 +02:00
Tankred Hase
1fbb6b0c91 Create shell script for aws release 2014-10-20 16:24:04 +02:00
Tankred Hase
65036a5087 Seperate production dependencies in package.json for aws deployment 2014-10-20 16:24:04 +02:00
Tankred Hase
dd9680f626 Change license to MIT. 2014-10-17 12:11:19 +02:00
Felix Hammerl
1995836736 [WO-639] Use 5s timeout for incoming mail 2014-10-17 11:17:40 +02:00
Tankred Hase
35b2da32ff Remove src maps and browserified files from grunt manifest 2014-10-16 13:32:18 +02:00
Tankred Hase
5b8ad29e0a Merge pull request #139 from whiteout-io/dev/WO-628
[WO-628] Restrict connections for socket.io proxy
2014-10-16 13:15:17 +02:00
Tankred Hase
59853ecbca Update server.js 2014-10-16 13:14:49 +02:00
Felix Hammerl
eaff850d27 [WO-628] Restrict connections for socket.io proxy 2014-10-16 12:32:19 +02:00
Tankred Hase
5d09e32320 Merge pull request #141 from whiteout-io/dev/WO-567
Dev/wo 567
2014-10-16 12:12:07 +02:00
Tankred Hase
d971969b5f Stub GET requests to key server in integration test 2014-10-16 12:02:22 +02:00
Felix Hammerl
9723d6f0cd [WO-567] use mailreader v0.4.0 2014-10-16 09:48:22 +02:00
Felix Hammerl
3a6e0463fb [WO-567] fix TLS worker handling 2014-10-15 19:58:26 +02:00
Felix Hammerl
7be6c63060 Use worker thread in connection doctor 2014-10-15 19:16:20 +02:00
Tankred Hase
c6c058c2dc Use same browserify options for each build 2014-10-15 19:16:20 +02:00
Felix Hammerl
5ea660e5d4 [WO-567] ignore buffer in tests 2014-10-15 19:16:20 +02:00
Tankred Hase
046241e20d Upgrade forge to v0.6.14 2014-10-15 19:16:20 +02:00
Tankred Hase
2cb008c8c3 Stub node buffer using browserify ignore, src maps in tests 2014-10-15 19:16:20 +02:00
Felix Hammerl
c120818792 [WO-567] use multithreaded tls 2014-10-15 19:16:20 +02:00
Felix Hammerl
6e1ad91f6a [WO-567] use browserify-friendly tls-client 2014-10-15 19:16:20 +02:00
Felix Hammerl
033df2dea8 [WO-567] browserify mailreader worker 2014-10-15 19:16:20 +02:00
Tankred Hase
0519b73cdc Pipe source maps through browserify 2014-10-15 19:16:19 +02:00
Tankred Hase
c6fb31fd49 Fix phantom mocha tests 2014-10-15 19:16:19 +02:00
Tankred Hase
84d5bd8124 Integration test works again 2014-10-15 19:16:19 +02:00
Tankred Hase
85afb0be01 Fix angulat mocks for unit tests 2014-10-15 19:16:19 +02:00
Tankred Hase
7e09add0f4 Dao and crypto unit tests work 2014-10-15 19:16:19 +02:00
Tankred Hase
b5b95d1c5c Browserify build for unit tests works 2014-10-15 19:16:19 +02:00
Tankred Hase
b0a186884a Fix jshint self errors 2014-10-15 19:16:19 +02:00
Tankred Hase
98dfcfcb22 Start unit tests 2014-10-15 19:16:19 +02:00
Tankred Hase
b2b39abd66 Remove DOMpurify from main window 2014-10-15 19:16:19 +02:00
Tankred Hase
5d608cad67 Starting app works. Added source maps to build 2014-10-15 19:16:18 +02:00
Tankred Hase
fc613ce501 Correct worker paths 2014-10-15 19:16:18 +02:00
Tankred Hase
0bfef4a710 Browserify runtime dependencies work 2014-10-15 19:16:18 +02:00
Tankred Hase
7a20049bbc Use module.exports instead of exports 2014-10-15 19:16:18 +02:00
Tankred Hase
d9a2c77aa4 save package.json to use 4 spaces 2014-10-15 19:16:18 +02:00
Felix Hammerl
9bfda73969 WIP add unit tests 2014-10-15 19:16:18 +02:00
Tankred Hase
c36cd069e0 WIP: begin browserify build 2014-10-15 19:16:18 +02:00
Felix Hammerl
73ed053c66 Merge pull request #140 from whiteout-io/dev/wo-594
[WO-594] Return own hostname for 'hostname' call from socket.io
2014-10-14 18:40:21 +02:00
Andris Reinman
66ddac2c71 [WO-594] Return own hostname for 'hostname' call from socket.io 2014-10-14 13:51:52 +03:00
Tankred Hase
315a471f10 Update README.md 2014-10-14 09:05:36 +02:00
Tankred Hase
7b84f9dcb2 Add socket.io threat model explanation to README 2014-10-13 17:38:14 +02:00
Felix Hammerl
5e17d68740 use config defaults 2014-10-09 12:13:24 +02:00
Tankred Hase
cf20672735 Merge pull request #134 from whiteout-io/dev/WO-588
[WO-588] add options to get update notifications in batches
2014-10-02 18:17:01 +02:00
Felix Hammerl
b02989e766 [WO-588] move maxUpdateSize assignment 2014-10-02 18:15:52 +02:00
Tankred Hase
771b03e13a Update package.json 2014-10-02 18:11:17 +02:00
Felix Hammerl
9521d6b990 [WO-588] use 25 messages update batches 2014-10-02 17:58:35 +02:00
Felix Hammerl
38d760364d [WO-588] add options to get update notifications in batches 2014-09-30 17:54:35 +02:00
Tankred Hase
658daf21b1 Merge pull request #133 from whiteout-io/dev/WO-625
[WO-625] Catch exception on socket.oncert
2014-09-30 15:55:46 +02:00
Felix Hammerl
297f7c493f [WO-625] Catch exception on socket.oncert
Mozilla's socket is not extensible via Object.preventExtensions(obj)
and throws exceptions when non-prototype function .oncert is added.
The callback function is needed for the other shims.
2014-09-30 12:30:18 +02:00
Felix Hammerl
5c9f8dac23 Merge pull request #132 from whiteout-io/dev/WO-587
[WO-587] implement user logout
2014-09-29 18:21:46 +02:00
Tankred Hase
bedb69973c [WO-587] implement user logout 2014-09-26 19:14:53 +02:00
Tankred Hase
f66fbf592c Fix error msg in focus-me for non-textarea inputs 2014-09-26 17:50:18 +02:00
Tankred Hase
a92a5c5a3f Decrease space between signature warning and mail body 2014-09-26 16:59:21 +02:00
Tankred Hase
fe73f3db52 [WO-614] loosen CSP to allow displaying html mail images 2014-09-26 16:34:31 +02:00
Tankred Hase
0266f330c0 [WO-621] Put primary button on top when choosing 2014-09-26 15:17:27 +02:00
Tankred Hase
f42f9f640f Add documentation for selfhosting 2014-09-26 14:51:37 +02:00
Tankred Hase
b11a9220fe Fix text overflow for long attachment names 2014-09-26 14:51:16 +02:00
Tankred Hase
53a695b7dc Bump android versioncode 2014-09-24 12:59:52 +02:00
Tankred Hase
0613016581 Remove chrome.filesystem and use only standard apis 2014-09-24 12:46:19 +02:00
Tankred Hase
53341f02a2 Fix margin in writer for attachment box 2014-09-23 18:38:19 +02:00
Tankred Hase
3bfc3ad66b Merge pull request #131 from whiteout-io/dev/reader-zoom-to-fit
Zoom to fit content in read view
2014-09-23 18:01:48 +02:00
Tankred Hase
6be8b71247 Merge pull request #130 from whiteout-io/WO-563
[WO-563] Introduce connection doctor
2014-09-23 17:40:50 +02:00
Tankred Hase
675e1b13dd Review and css fixes 2014-09-23 17:40:19 +02:00
Felix Hammerl
77e0377fd1 [WO-563] Introduce connection doctor
* Uses predefined error messages from the config
* Show error and underlying error in login screen
2014-09-23 16:21:12 +02:00
Tankred Hase
91528f993b Merge pull request #125 from whiteout-io/WO-578
[WO-578] Fix downloads in browser with W3C API
2014-09-23 16:07:21 +02:00
Felix Hammerl
b6608a1c4d [WO-578] Fix downloads in browser with W3C API 2014-09-23 14:57:21 +02:00
Mario Volke
d93ee3be5d Merge branch 'master' into dev/reader-zoom-to-fit 2014-09-23 12:10:39 +02:00
Mario Volke
3156a20664 fix jshint 2014-09-23 12:09:00 +02:00
Mario Volke
320686f590 trigger read content scaling on window resize 2014-09-23 12:06:18 +02:00
Tankred Hase
7b99682299 [WO-608] Pin wmail ssl cert 2014-09-22 17:45:15 +02:00
Felix Hammerl
ba55dfc90b Merge pull request #129 from whiteout-io/dev/firefox-webapp
Add web app manifest for firefox webapp
2014-09-22 17:34:17 +02:00
Mario Volke
3ec9597371 fit to scale container width in read view 2014-09-22 17:33:06 +02:00
Tankred Hase
74f6b3312e [WO-598] Replace contentEditable in writer with textarea 2014-09-22 15:28:22 +02:00
Tankred Hase
f3ad08b066 Fix scope apply causing rendering error in login controller 2014-09-22 14:19:06 +02:00
Tankred Hase
8199ee741d Fix tests 2014-09-22 13:59:05 +02:00
Tankred Hase
1cc224dcf2 Don't focus on passphrase input in login-new-device 2014-09-22 13:18:27 +02:00
Tankred Hase
513d29ad79 Strip spaces from phone number 2014-09-22 13:15:45 +02:00
Tankred Hase
1311cd1c5e Firefox App and AppCache
* Add app manifest for firefox packaged app
* Ask user to reload when appcache is updated
* Fix boxshadow on all inputs and textareas
* Fix AppCache for Firefox
* Move Chrome App update code to updatehandler
2014-09-21 03:25:53 +02:00
Tankred Hase
909bca2da5 Exclude appcache.manifest from itself 2014-09-19 21:15:22 +02:00
Felix Hammerl
017ea707ad Merge pull request #126 from whiteout-io/dev/577
[WO-577]: implement wmail account creation
2014-09-19 19:16:25 +02:00
Tankred Hase
d1308aa14c Add SMS validation 2014-09-19 18:59:13 +02:00
Tankred Hase
a304f13cd2 Merge pull request #128 from whiteout-io/dev/WO-426
Hide mail list scrollbar in webkit and fix padding issues between iOS and desktop
2014-09-19 16:57:41 +02:00
Mario Volke
4ea983dcfb hide mail list scrollbar in webkit and fix padding issues between iOS and desktop 2014-09-19 16:55:28 +02:00
Tankred Hase
5a7dc6c95e Merge pull request #127 from whiteout-io/dev/fix-ie11
Dev/fix ie11
2014-09-19 15:52:42 +02:00
Tankred Hase
7c7d650cf2 [WO-577]: implement wmail account creation 2014-09-19 14:58:04 +02:00
Mario Volke
98bc50a285 added white whiteout logo for navigation 2014-09-19 14:22:46 +02:00
Mario Volke
a29e072165 fix with layering of navigation 2014-09-19 14:22:01 +02:00
Mario Volke
fcbe84841e overflow auto in read sandbox 2014-09-19 14:00:02 +02:00
Mario Volke
bf54d6281f logo in navigation as svg, and more flat styled navigation 2014-09-19 13:57:40 +02:00
Mario Volke
3a13a3056e tried to stabilize nav animation on IE11 2014-09-19 09:59:06 +02:00
Mario Volke
b05a98b951 fix reader iframe width in IE11 2014-09-19 09:28:23 +02:00
Tankred Hase
d31c8a69e6 Update to fixed crypto-lib 2014-09-18 14:59:35 +02:00
Felix Hammerl
d66890211a use uppercase recovery token 2014-09-18 14:42:53 +02:00
Tankred Hase
7497268c7a Allow only 6 chars in recovery token ui 2014-09-17 16:30:00 +02:00
Tankred Hase
9c85fb2ebe Add production config file 2014-09-17 16:17:14 +02:00
Tankred Hase
51434d82e0 Reduce size of recovery token to 6 2014-09-17 16:06:02 +02:00
Tankred Hase
42867880e7 Merge pull request #120 from whiteout-io/dev/WO-573
[WO-573] Use pattern validation for token input
2014-09-17 15:53:27 +02:00
Tankred Hase
ba9770b495 Merge branch 'master' of github.com:whiteout-io/mail-html5 2014-09-17 15:51:58 +02:00
Tankred Hase
d365de4e5b Use crypto-lib util function for keychain code generation 2014-09-17 15:51:32 +02:00
Tankred Hase
6ee9853506 Set log level to error 2014-09-17 15:49:53 +02:00
Tankred Hase
0aff411c3f Merge pull request #112 from whiteout-io/dev/WO-531
[WO-531] introduce option to query key w/o starting recovery
2014-09-17 15:05:26 +02:00
Tankred Hase
059349807b Merge pull request #124 from whiteout-io/dev/WO-565
[WO-565] Improve notifications
2014-09-17 14:57:25 +02:00
Tankred Hase
14294a5579 Focus window after clicking on notification 2014-09-17 14:43:53 +02:00
Felix Hammerl
86a87e26b8 [WO-565] Improve notifications
* Introduce 2 sec timeout for sent notifications
* Notify only for new messages in the inbox
* Close pending notes when a msg is marked unread in the inbox
2014-09-17 13:29:51 +02:00
Andris Reinman
b69e0951c9 Merge pull request #123 from whiteout-io/dev/self-hosting
[WO-592] implement webmail using socket.io
2014-09-17 12:23:06 +03:00
Tankred Hase
487bb31d45 [WO-592] implement webmail using socket.io
* Relax CSP to allow iframe assets to load
* Integrate socket.io proxy
* go to /# when controllers not initiated
* Add offline caching using AppCache manifest
2014-09-16 17:40:03 +02:00
Tankred Hase
e29f083c60 Merge pull request #122 from whiteout-io/dev/mv-remove-btn
move remove-button a bit to the right
2014-09-16 13:43:38 +02:00
Tankred Hase
37d7f76f75 Review remove-btn in input-tag 2014-09-16 13:43:14 +02:00
Felix Hammerl
43858b1927 move remove-button a bit to the right 2014-09-16 13:33:22 +02:00
Felix Hammerl
efdc78fc75 Merge pull request #121 from whiteout-io/dev/WO-285
Dev/wo 285
2014-09-16 12:14:18 +02:00
Felix Hammerl
a06d9b4d92 Use pointer cursor when hovering over tags 2014-09-16 12:09:21 +02:00
Tankred Hase
34b3bee520 Add test for lookupAddressBook 2014-09-16 00:11:44 +02:00
Tankred Hase
d9a23e3a7d Fix bugs when removing tags
Fix CC, BCC click lag
2014-09-15 23:08:18 +02:00
Tankred Hase
a600aaea87 Bind email addresses in pgp keychain to autocomplete 2014-09-15 19:22:44 +02:00
Felix Hammerl
221bbea17c Merge pull request #119 from whiteout-io/dev/WO-574
Skip setting passphrase in setup
2014-09-15 18:23:46 +02:00
Mario Volke
400a90f88e nicer line break of addresses in write view 2014-09-15 18:10:08 +02:00
Mario Volke
7e8d88e5a8 updated tests for write ctrl 2014-09-15 17:19:36 +02:00
Mario Volke
165eef0ee1 fix jshint in write.js 2014-09-15 17:10:28 +02:00
Mario Volke
196fa974bc refactored write view to utilize ngTagsInclude in preperation for auto complete feature 2014-09-15 16:56:25 +02:00
Mario Volke
8eae30b9da added comment in ngTagsInput 2014-09-15 16:55:00 +02:00
Mario Volke
4b108921f3 include ngTagsInput without NPM from forked instance of the library 2014-09-15 16:53:09 +02:00
Felix Hammerl
f55c2c796f [WO-573] Use pattern validation for token input 2014-09-15 15:25:26 +02:00
Tankred Hase
50f0bf951e Skip setting passphrase in setup 2014-09-15 14:26:12 +02:00
Mario Volke
ad5617dc7d added lib ngTagsInput to the app 2014-09-15 12:01:13 +02:00
Tankred Hase
da246d4a03 Update Readme for chrome.socket.secure 2014-09-13 14:47:24 +02:00
Tankred Hase
c0e8480b87 bump versioncode 2014-09-13 13:25:55 +02:00
Felix Hammerl
15710f4602 [WO-531] use query parameter instead of JSON parameter 2014-09-12 19:23:02 +02:00
Tankred Hase
2caeaeea3f Merge pull request #118 from whiteout-io/dev/WO-587
[WO-587] Explicitly include arbitrary headers in clearsigned regex
2014-09-12 18:09:47 +02:00
Tankred Hase
3cfbad1498 Fork own angular to fix npm install 2014-09-12 17:57:42 +02:00
Felix Hammerl
ad2b6d1237 [WO-587] Explicitly include arbitrary headers in clearsigned regex 2014-09-12 17:02:03 +02:00
Tankred Hase
ec238a5325 Update to angular 1.2.24 2014-09-12 15:45:37 +02:00
Tankred Hase
d5d74df9bf Merge pull request #117 from whiteout-io/dev/WO-585
[WO-585] Fix bug: Show content if only html is present
2014-09-12 15:11:33 +02:00
Felix Hammerl
a2bc734ba6 [WO-585] Fix bug: Show content if only html is present 2014-09-12 15:08:50 +02:00
Tankred Hase
292bd3cb77 bump android versionCode 2014-09-12 12:53:20 +02:00
Tankred Hase
72092b3943 Merge pull request #114 from whiteout-io/dev/WO-491
Add STARTTLS, add Outlook.com, Web.de, Gmx.net to list
2014-09-11 13:57:00 +02:00
Felix Hammerl
04b6c8b033 [WO-491] Add Web.de support 2014-09-11 13:41:20 +02:00
Felix Hammerl
54e733b24d [WO-491] Add GMX.net support 2014-09-11 13:41:20 +02:00
Felix Hammerl
a3d87c7da8 [WO-491] Allow STARTTLS, add Outlook.com
* Change UI to choose encryption type TLS/STARTTLS/None
* Change adapt login controller to STARTTLS changes
* Add Outlook.com to providers
2014-09-11 13:41:20 +02:00
Tankred Hase
4d62c07ed2 Merge pull request #116 from whiteout-io/dev/WO-493
[WO-493] Speed up tests
2014-09-11 13:22:19 +02:00
Felix Hammerl
30f0029907 [WO-493] Speed up tests 2014-09-11 10:50:07 +02:00
Felix Hammerl
54c9ca3a73 [WO-526] Fix key activation race condition
Add imported flag to public key to avoid unnecessary check
for deletion/update of personal public key, same behavior
as imported public keys
2014-09-02 14:38:17 +02:00
Felix Hammerl
ec5edff626 [WO-531] introduce option to query key w/o starting recovery 2014-09-02 13:26:51 +02:00
Felix Hammerl
c75e365c65 [WO-554] Fix tests 2014-09-02 13:26:03 +02:00
Felix Hammerl
30632205ce [WO-555] use pgpmailer v0.4.0 2014-08-27 16:58:43 +02:00
Andris Reinman
1ff9f44b2d Merge pull request #111 from whiteout-io/dev/WO-555
[WO-555] Remove cleartext prefix to encrypted messages
2014-08-27 10:06:53 +03:00
Felix Hammerl
8a737788e7 [WO-555] Remove cleartext prefix to encrypted messages 2014-08-26 15:47:37 +02:00
Tankred Hase
7bc9b90045 Update README.md 2014-08-15 22:50:16 +02:00
Tankred Hase
facc9f13da Fix status bar on iOS 2014-08-13 13:49:17 +02:00
Tankred Hase
e229e106dd Add mobile homescreen icons and cca build scripts 2014-08-13 13:37:55 +02:00
Tankred Hase
1ee280c74e Merge pull request #107 from whiteout-io/dev/WO-490
[WO-490] add bug reporting to error dialog
2014-08-12 18:46:09 +02:00
Tankred Hase
0e21616911 Cleanup bug reporter button 2014-08-12 18:40:48 +02:00
Felix Hammerl
275a602274 [WO-490] add bug reporting to error dialog 2014-08-12 17:52:47 +02:00
Tankred Hase
6bc2ee54f3 Merge pull request #108 from whiteout-io/dev/WO-489
[WO-489] add FAQ link option to error message
2014-08-12 17:47:18 +02:00
Tankred Hase
fc4bd0054f Review faq link 2014-08-12 17:44:10 +02:00
Felix Hammerl
f417a09b8d [WO-489] add FAQ link option to error message 2014-08-12 17:20:29 +02:00
Tankred Hase
f824f1737f Merge branch 'master' of github.com:whiteout-io/mail-html5 2014-08-12 17:09:35 +02:00
Tankred Hase
14624c877e Add server.js for potential selfhosting 2014-08-12 17:09:18 +02:00
Tankred Hase
53fae2cd52 Update README.md 2014-08-12 14:56:26 +02:00
Tankred Hase
ec2186080a use npm for ng-scroll-infinite 2014-08-08 14:56:44 +02:00
Tankred Hase
22246677f5 Add CSP warning in index.html 2014-08-08 14:56:24 +02:00
Tankred Hase
e8ba6e8572 Update README.md 2014-08-07 08:34:59 +02:00
Tankred Hase
0e482e475d Update README.md 2014-08-07 08:30:22 +02:00
Tankred Hase
7da5d58886 bump version code 2014-08-06 11:39:55 +02:00
Tankred Hase
57c7027832 [WO-404] Change download link for app 2014-08-05 20:05:59 +02:00
Tankred Hase
ceb1d2a69c Fix validation buf in read.js 2014-08-05 19:16:37 +02:00
Tankred Hase
04ed3dab68 Merge pull request #103 from whiteout-io/dev/WO-515
Dev/wo 515
2014-08-05 19:01:35 +02:00
Tankred Hase
1534ceeb6c Update package.json 2014-08-05 18:38:09 +02:00
Felix Hammerl
7adc095277 [WO-515] Fix folder handling
Use the first folder provided in well known folders

Add migration script to fix clients with multiple folders for same
category

Handle folder deletion smarter

Extract some magic number/strings to constants in emaildao
2014-08-05 18:38:09 +02:00
Felix Hammerl
bb9a641b4e add integration test copy step to watch task 2014-08-05 18:37:16 +02:00
Tankred Hase
995af4ca3c Merge pull request #109 from whiteout-io/dev/WO-480
Remove cached OAuth token before reconnect
2014-08-05 18:23:33 +02:00
Tankred Hase
c4337fba30 Remove cached OAuth token before reconnect 2014-08-05 17:53:11 +02:00
Felix Hammerl
ed43dfc55a [WO-530] fix typo 2014-08-05 16:50:29 +02:00
Tankred Hase
eb0002c8d5 Fix reader 2014-08-05 14:10:21 +02:00
Tankred Hase
77a80f5899 Merge branch 'master' of github.com:whiteout-io/mail-html5 2014-08-05 14:05:22 +02:00
Tankred Hase
aa22878033 Fix reader on empty body 2014-08-05 14:05:07 +02:00
Tankred Hase
fca6a386d1 Update README.md 2014-08-05 13:26:54 +02:00
Tankred Hase
d088eec89c Update README.md 2014-08-05 13:24:51 +02:00
Felix Hammerl
d278afb253 Merge pull request #104 from whiteout-io/dev/WO-498
[WO-498] Add newsletter signup
2014-08-04 18:30:55 +02:00
Tankred Hase
b887aaaa28 Fix back button tests 2014-08-04 16:49:02 +02:00
Tankred Hase
4a38820501 Merge pull request #101 from whiteout-io/dev/WO-475
[WO-475] give backbutton on android sane behavior
2014-08-04 15:59:50 +02:00
Tankred Hase
9e1a402b94 Set back button event in navigation.js 2014-08-04 15:53:55 +02:00
Felix Hammerl
3a713180f1 [WO-475] give backbutton on android sane behavior 2014-08-04 15:20:52 +02:00
Tankred Hase
64daec7536 Use SVG travis badge 2014-08-02 10:54:42 +02:00
Tankred Hase
6ce1f2361a [WO-498] Add newsletter signup 2014-08-01 19:01:16 +02:00
Tankred Hase
e8c45cc83f Fix bug where changing passphrase back to empty string blocked keygen 2014-07-31 20:28:38 +02:00
Tankred Hase
061fe0dd9c Make TLS checkboxe labels clickable 2014-07-31 20:14:02 +02:00
Tankred Hase
26f52981eb Increase margin after terms checkbox 2014-07-31 19:53:19 +02:00
Tankred Hase
e19d8a4e5b [WO-462] Rework login workflow
* Make keygen and import possibilities clearer in login-initial
* Show spinner when generating key
* Use mobile design (wide buttons) everywhere
* Show info about key-sync in login-new-device (for mobile users)
* remove info popovers in login screens
* allow keyfile import even when keysync has been activated
2014-07-31 19:27:22 +02:00
Tankred Hase
9b618cc20f [WO-524] Cleanup login ui
* Make design more mobile friendly
* Make label for terms agreement clickable (easier for touch)
* Button width is 100% for mobile
* Let user import key file as alternative to sync
* Make key import option more clear login-initial
* Make whiteout logo smaller in mobile mode
2014-07-31 15:58:27 +02:00
Tankred Hase
2b139578f0 bump versionCode 2014-07-30 18:20:49 +02:00
Tankred Hase
e072f118ca [WO-510] fix toBigInteger bug
* Add tests to reconstruct the issue
* Upgrade to OpenPGP.js v0.7.2
2014-07-30 17:34:31 +02:00
Tankred Hase
1e7255f8ce Merge branch 'master' of github.com:whiteout-io/mail-html5 2014-07-29 16:02:16 +02:00
Tankred Hase
746c06e24a Link PGP key in plaintext suffix 2014-07-29 16:02:05 +02:00
Tankred Hase
45d40d5d37 Use npm version of crypto-lib 2014-07-29 12:40:00 +02:00
Tankred Hase
2798c1812a Update README.md 2014-07-29 12:06:57 +02:00
Tankred Hase
bdbed0d6dd remove unneeded icons from /res 2014-07-29 11:53:03 +02:00
Tankred Hase
cefa47edc7 Update README.md 2014-07-28 19:15:36 +02:00
Felix Hammerl
a5d25ea43c use npm deps 2014-07-28 19:01:47 +02:00
Tankred Hase
a28528c23b bump versionCode 2014-07-24 15:25:21 +02:00
Tankred Hase
81eee6e67d bump versionCode 2014-07-24 14:43:10 +02:00
Tankred Hase
18f658cbb8 [WO-511] Change set-credentials text for oauth 2014-07-24 14:15:34 +02:00
Tankred Hase
129e95aef2 Merge pull request #98 from whiteout-io/dev/WO-507
[WO-507] use intermediate certs for gmail and tonline
2014-07-24 13:47:12 +02:00
Felix Hammerl
ed8ed07028 [WO-507] use intermediate certs for gmail and tonline 2014-07-24 13:24:01 +02:00
Tankred Hase
7b11b43dc4 Add build/singing scripts 2014-07-24 09:40:00 +02:00
Tankred Hase
8fa2641e78 Remove (Beta) suffix from manifest name for Android 2014-07-24 00:43:07 +02:00
Tankred Hase
679d7987c4 Change wo-touch to work on new webview 2014-07-23 19:37:37 +02:00
Tankred Hase
ad22d42720 Use ng-click in mail-list instead of wo-touch 2014-07-23 18:30:13 +02:00
Felix Hammerl
845af9b127 [WO-504] stop spinner if upload is not necessary 2014-07-23 17:20:57 +02:00
Tankred Hase
f8f4ee7945 Add validation for privatekey-upload directive 2014-07-23 17:13:38 +02:00
Tankred Hase
aed2a5ec14 Add _auth.storeCredentials again to login-existing 2014-07-23 17:11:33 +02:00
Tankred Hase
8617a4d0ed Add comments to emailDao 2014-07-23 13:57:39 +02:00
Tankred Hase
a137bf5bfd Merge pull request #94 from whiteout-io/dev/WO-421
Dev/wo 421
2014-07-23 13:55:36 +02:00
Tankred Hase
22d42358e4 Say no to drugs 2014-07-23 13:54:50 +02:00
Felix Hammerl
3e80138a10 [WO-188][WO-421] introduce password-based login
* add custom login ability
* encrypt email password
* allow arbitrary tcp connections
* add db migration script v3 -> v4
* add bug reporting capability with the axe logger
* fix nonexistent folder handling
* enable message upload after sent
* use plain text alternative body when replying to html mails
* Move set-credentials.* -> login-set-credentials.*
* Use login styles for set-credentials
* Make OAuth optional
2014-07-23 13:51:10 +02:00
Tankred Hase
2c3347bf84 Merge pull request #97 from whiteout-io/dev/WO-465
[WO-465] clear input
2014-07-23 10:41:23 +02:00
Tankred Hase
1120ef78af Merge pull request #96 from whiteout-io/dev/WO-464
[WO-464] jump to the next keychain code and allow paste
2014-07-23 10:09:55 +02:00
Felix Hammerl
a9db71a8b9 [WO-465] clear input 2014-07-22 21:32:11 +02:00
Felix Hammerl
10d19b5816 [WO-464] jump to the next keychain code and allow paste 2014-07-22 21:05:34 +02:00
Tankred Hase
26f62668c6 Fix add-account styles on mobile 2014-07-21 22:49:15 +02:00
Tankred Hase
a9c61a1fd1 Fix iframe width on first scrollable mail 2014-07-21 17:22:03 +02:00
Tankred Hase
17ff272d02 [WO-463] Use monospace font for keychain code 2014-07-21 16:24:50 +02:00
Tankred Hase
2019f7f657 [WO-448] Do not show reader on first select in mobile mode 2014-07-21 16:05:29 +02:00
Tankred Hase
23298e8f12 [WO-344] Fix delete and backspace events in writer headers 2014-07-21 15:18:56 +02:00
Tankred Hase
1c2f00cddd Fix tests 2014-07-21 15:18:23 +02:00
Tankred Hase
3bfbf77ac1 [WO-443] Fix writer bugs
* Fix writer body height in mobile mode
* User input type email in writer headers
* Only show and process encrypted preview for encrypted mails
2014-07-21 14:08:10 +02:00
Tankred Hase
7e4f8f1c80 Fix test 2014-07-18 17:06:36 +02:00
Tankred Hase
b4507b1bbc Change comment in PGP armor to whiteout 2014-07-18 16:58:33 +02:00
Tankred Hase
6f9d43a02d Relaxed CSP to work on iOS and Android 2014-07-17 21:43:07 +02:00
Tankred Hase
c803caf1d3 Relax CSP for connect-src 2014-07-17 18:03:21 +02:00
Tankred Hase
bfda677b1b Merge pull request #90 from whiteout-io/dev/WO-428
[WO-428] use integer to track busy state
2014-07-17 17:53:07 +02:00
Tankred Hase
5ed6408eb9 Merge pull request #93 from whiteout-io/dev/performance
Dev/performance
2014-07-17 17:49:34 +02:00
Tankred Hase
6a0ae4d55d Performance improvements and fixes for mail-list
* Use same list style in desktop as mobile
* Bugfix: don't download all body when list not displayed
* Use ng-infinite-scroll to load DOM nodes on demand
* Custom search filter for FTS and reomve angular filters
* Rubber band scrolling on iOS
* Add CSP support in cordova via html meta tag
2014-07-17 17:43:51 +02:00
Tankred Hase
fbfc2618eb Merge pull request #91 from whiteout-io/dev/WO-474
Render text body in iframe as well
2014-07-17 16:13:03 +02:00
Tankred Hase
1d0526a6a0 Render text body in iframe as well
* Remove recursive ng-includes/templates
* Use DOMPurify to sanitize reader input
* Remove ngSanitize
* Wait to show signature error until body has been parsed
* Fix scrollbar in iframe
* Allow iframe scrolling on iOS
* Move mail text body rendering to sandbox
* Cleanup html files
2014-07-16 10:22:45 +02:00
Felix Hammerl
1d0a1f9a79 [WO-428] add missing busy() call to plain text sending and encryption 2014-07-11 15:22:34 +02:00
Felix Hammerl
6d2896a70c [WO-428] use integer to track busy state 2014-07-11 15:03:03 +02:00
Tankred Hase
95e90ab3e7 Upgrade to imap-client v0.3.5 2014-07-11 14:00:24 +02:00
Tankred Hase
66bd88c07f Make public key shareable via link 2014-07-10 20:02:35 +02:00
Tankred Hase
4e897d01ff Add CSP fallback to sandbox.html for non-chrome app runtimes 2014-07-09 22:00:18 +02:00
Tankred Hase
021510d936 Merge pull request #87 from whiteout-io/dev/WO-455
fix signature behavior
2014-07-09 11:12:11 +02:00
Felix Hammerl
e460a75f4c use pgpbuilder v0.3.5 2014-07-09 10:54:04 +02:00
Felix Hammerl
63980eb7ac [WO-455] add test to provoque openpgp clearsigned message bug
https://github.com/openpgpjs/openpgpjs/issues/243
2014-07-08 19:17:57 +02:00
Tankred Hase
264e220b7c Add link to key sync blog post 2014-07-08 16:51:28 +02:00
Tankred Hase
1ead2d146d Change text 2014-07-07 17:26:16 +02:00
Tankred Hase
022ae347ae Merge pull request #86 from whiteout-io/dev/WO-259
Introduce proper signature checking
2014-07-07 12:40:08 +02:00
Tankred Hase
9e46f96a28 Release and use OpenPGP.js v0.7.1 2014-07-07 12:29:13 +02:00
Tankred Hase
6403b041e8 Signatures array must never be empty ... if so crash during development 2014-07-07 12:24:06 +02:00
Tankred Hase
1b8e662769 Use same signatures structure openpgp.js for clearSignedSignatures as detached 2014-07-07 11:58:41 +02:00
Tankred Hase
2b1ff2347c Update package.json 2014-07-07 10:49:46 +02:00
Felix Hammerl
30efac0792 [WO-259] introduce proper signature checking 2014-07-04 17:58:25 +02:00
Tankred Hase
b11161655a Add dev build w/ patched OpenPGP.js containing signature verification 2014-07-03 15:33:03 +02:00
Tankred Hase
ec16dc91ad Merge pull request #76 from whiteout-io/dev/WO-420
Dev/wo 420
2014-07-02 17:10:49 +02:00
Tankred Hase
6d044bb1a6 Update write.js 2014-07-02 16:51:18 +02:00
Tankred Hase
c987862343 Update requirejs 2014-07-02 16:47:02 +02:00
Felix Hammerl
c335fee0d5 add Function.prototype.bind polyfill in tests because phantomjs is buggy 2014-07-02 16:46:17 +02:00
Tankred Hase
0e46cdc624 Update package.json 2014-07-02 16:18:22 +02:00
Felix Hammerl
1283bb4a1c [WO-420] add bug reporting capability with the axe logger 2014-07-02 16:17:50 +02:00
Tankred Hase
8ebb24123a Merge pull request #85 from whiteout-io/dev/WO-279
[WO-279] Display error message if PGP signature is invalid
2014-07-02 15:31:33 +02:00
Tankred Hase
bf063b5dac [WO-279] Display error message if PGP signature is invalid 2014-07-02 15:26:51 +02:00
Tankred Hase
22fc2b29fe Merge pull request #84 from whiteout-io/dev/WO-437
Dev/wo 437
2014-07-02 15:22:27 +02:00
Tankred Hase
5aec80da47 Fix appController._pgp mocking in read controller test 2014-07-01 20:59:10 +02:00
Tankred Hase
b20c6977ca [WO-437] Allow users to import only the private PGP key block 2014-07-01 20:58:34 +02:00
Tankred Hase
f20dbede2c Add android release script 2014-07-01 18:47:50 +02:00
Tankred Hase
de1e843b2c Merge pull request #82 from whiteout-io/dev/WO-438
Fix signature verification for PGP messages
2014-07-01 17:24:33 +02:00
Tankred Hase
049ac96954 Fix signature verification for PGP messages
* Upgrade to OpenPGP.js v0.6.5
* Migrate PGP wrapper for breaking OpenPGP.js api changes
* Change PGP wrapper decrypt api to return one signature arg
* Change emailDao and keychainDao calls respectively
* Fix tests
* Add tests keygen with empty passphrase
* Add tests to check PGP verification with wrong public key
2014-07-01 17:15:16 +02:00
Felix Hammerl
0cd4430103 Merge pull request #77 from whiteout-io/dev/WO-292
Added integration tests for Apple Mail and Thunderbird
2014-06-27 17:54:28 +02:00
Felix Hammerl
a9cf763bed fix handling of clearsigned messages and missing signatures 2014-06-27 16:19:30 +02:00
Tankred Hase
f117c78d36 Merge pull request #81 from whiteout-io/dev/performance
Dev/performance
2014-06-27 14:45:19 +02:00
Tankred Hase
c1d9feb391 Make touchable areas of buttons larger 2014-06-27 14:28:22 +02:00
Andris Reinman
05553cbff4 Added integration tests for Apple Mail and Thunderbird 2014-06-27 14:16:47 +02:00
Tankred Hase
9373bee556 Add .active class for touchstart, Disable css transitions in mobile 2014-06-27 12:38:12 +02:00
Tankred Hase
a479d5850e Use custom wo-touch directive rather than ng-click 2014-06-27 12:36:43 +02:00
Tankred Hase
7c65b48f34 Put reader body into GPU layer 2014-06-27 12:31:44 +02:00
Tankred Hase
7b87551404 Put mail-list wrapper into GPU layer 2014-06-27 12:24:48 +02:00
Tankred Hase
493c13eac6 Add key server url to grunt build config 2014-06-26 17:21:28 +02:00
Tankred Hase
636e6ffad9 Improve spacing between reader body and display images button 2014-06-26 16:32:58 +02:00
Tankred Hase
2500b46f3a Merge pull request #80 from whiteout-io/dev/android
Add CCA scripts and css optimizations for Android
2014-06-26 15:17:22 +02:00
Tankred Hase
48c478961d Add CCA scripts and css optimizations for Android
Hide native account picker on Android after first time.

Get OAuth to work on iOS

Turn off css slide transistion
2014-06-26 15:01:13 +02:00
Felix Hammerl
37b1862e9f Merge pull request #79 from whiteout-io/dev/WO-55
Dev/wo 55
2014-06-26 14:58:15 +02:00
Felix Hammerl
ded1e5f7ef [review] remove TODOs 2014-06-26 14:32:45 +02:00
Felix Hammerl
99bccefdba [review] Remove unneccesary markup 2014-06-26 14:30:32 +02:00
Tankred Hase
ca0f91af27 Merge pull request #78 from whiteout-io/dev/WO-409
[WO-409] Render images in html mails
2014-06-26 13:23:30 +02:00
Tankred Hase
b5fda88b8a Implement client side key sync protocol and ui 2014-06-25 18:14:33 +02:00
Tankred Hase
c890cbe71d Upgrade to OpenPGP.js v0.6.0 2014-06-25 18:14:29 +02:00
Tankred Hase
5244c5c2d7 Refactor REST dao 2014-06-25 18:12:15 +02:00
Felix Hammerl
0d0b767b36 [WO-409] show images only on user request 2014-06-25 17:20:55 +02:00
Felix Hammerl
7a896a66d1 [WO-409] improve method to inline pictures 2014-06-25 16:05:14 +02:00
Felix Hammerl
3626b4d556 add test for inline images 2014-06-25 15:03:50 +02:00
Felix Hammerl
f31bded060 [WO-409] embed images from attachments in the html content 2014-06-25 14:13:46 +02:00
Felix Hammerl
fb1a20d2b0 [WO-409] render html in sandboxed iframe 2014-06-25 08:17:22 +02:00
Tankred Hase
e720753779 Implement setDeviceName and generateDeviceSecret 2014-06-23 17:21:03 +02:00
Tankred Hase
4880c162f8 Fix paths to unit 2014-06-23 17:21:02 +02:00
Tankred Hase
1e8894abe6 Rename new-unit to unit under test 2014-06-23 17:21:02 +02:00
Tankred Hase
a810fb06d1 Delete old qunit test directory 2014-06-23 17:21:02 +02:00
Tankred Hase
18d1c39b0a Implement and test crypto module 2014-06-23 17:21:02 +02:00
Tankred Hase
a7a562bef6 Upgrade to forge 0.5.5 2014-06-23 17:21:02 +02:00
Tankred Hase
7720097778 Start spec of functions in keychain dao
Upgrade to iScroll 5.1.2
2014-06-23 17:21:02 +02:00
Tankred Hase
27035c926c Remove pointer cursor for non-clickable online state label 2014-06-23 17:21:01 +02:00
Tankred Hase
df8b74bfb6 Load bodies when changing folder without scrolling 2014-06-23 13:09:09 +02:00
Felix Hammerl
fa1fbda11f [WO-429] minor refactoring to fix the tests 2014-06-23 13:03:56 +02:00
Tankred Hase
9465ce57ed [WO-429] Set account.online after setting imap cache to prevent race condition 2014-06-23 10:59:17 +02:00
Tankred Hase
af0ae907c9 Merge pull request #75 from whiteout-io/dev/WO-417
Dev/wo 417
2014-06-18 16:31:34 +02:00
Tankred Hase
b7a4c13766 Parse multiple user IDs for imported PGP keys
Use all pgp (sub) keys when en/decrypting a pgp message

Improve input validation for key import

Mark manually imported keys so that key refresh does not revoke them
2014-06-18 16:29:22 +02:00
Tankred Hase
77ad3613cf Fix attachment button clicked style 2014-06-17 19:49:28 +02:00
Tankred Hase
31d6d1e949 Merge pull request #74 from whiteout-io/dev/subject-box
refactored subject box
2014-06-17 19:43:32 +02:00
Tankred Hase
e28c9a62ff Cleanup and fix keyboard event handling in editor headers 2014-06-17 19:41:04 +02:00
Mario Volke
cdbdad0ba3 refactored subject box 2014-06-17 17:41:52 +02:00
Tankred Hase
cb60995ce1 Fix editor input field and content-editable on iOS 2014-06-17 17:23:36 +02:00
Tankred Hase
c4e2f66172 Fix bug that catches empty string in writer email-header auto-size directice 2014-06-17 17:22:56 +02:00
Tankred Hase
5dfaca7d6e Fix search field on iOS 2014-06-17 16:03:21 +02:00
Mario Volke
2b18c905f6 fixed conflict 2014-06-17 15:51:38 +02:00
Mario Volke
d1ff3f8624 changed input type=search to input type=text with new styling 2014-06-17 15:50:16 +02:00
Tankred Hase
00abb96dc2 Merge pull request #73 from whiteout-io/dev/WO-261
allow scrolling in login views, smaller margin of whiteout logo on mobil...
2014-06-17 15:36:35 +02:00
Tankred Hase
3017c9fb93 Merge pull request #72 from whiteout-io/dev/WO-344
Dev/wo 344
2014-06-17 15:33:44 +02:00
Mario Volke
504062abe1 allow scrolling in login views, smaller margin of whiteout logo on mobile 2014-06-17 15:26:26 +02:00
Mario Volke
29dfb9fe7e addressInput directive: prevent race conditions with focusMe directive, prevent loosing focus when hitting space in empty input field 2014-06-17 14:54:06 +02:00
Felix Hammerl
8eaf6c98a1 user pgpbuilder and pgpmailer v0.3.4 2014-06-17 14:47:19 +02:00
Tankred Hase
237c03fa8d Merge branch 'dev/WO-419'
Conflicts:
	package.json
2014-06-17 14:42:22 +02:00
Mario Volke
5a1b9c1af9 refactored addressInput directive in write view to not use stopPropagation 2014-06-17 14:31:03 +02:00
Felix Hammerl
583c06d622 Merge pull request #70 from whiteout-io/dev/WO-295
[WO-295] email-dao integration tests
2014-06-17 13:01:21 +02:00
Tankred Hase
64fe6e9aa6 Use fastlick instead of ng-touch 2014-06-17 12:58:53 +02:00
Felix Hammerl
6124bd1a04 Add comment to email dao code for integration test 2014-06-17 12:56:31 +02:00
Andris Reinman
20f12f042b [WO-295] email-dao integration tests 2014-06-17 12:56:31 +02:00
Tankred Hase
ec9a87d23a Make slide effect fast on chrome 2014-06-17 12:20:16 +02:00
Tankred Hase
b9da151a54 Change grey shade of list seperators 2014-06-17 11:46:49 +02:00
Tankred Hase
3a59f79223 Fix bugs 2014-06-16 16:18:24 +02:00
Tankred Hase
d23521312f Stop event propogation when pressing new mail button 2014-06-16 16:18:24 +02:00
Tankred Hase
b9a7e3b43c Remove iscroll from require-config 2014-06-16 16:18:24 +02:00
Tankred Hase
b5973cc370 Use native scrolling instead of iscroll 2014-06-16 16:18:24 +02:00
Tankred Hase
d6373e6249 Update package.json to use angularjs instead of angular 2014-06-16 16:18:24 +02:00
Mario Volke
d2d4cfa5df mail list optimized by removing box-shadow 2014-06-16 15:48:02 +02:00
Mario Volke
f65e0f35b8 fix background flicker in mail list view when closing navigation 2014-06-16 15:33:23 +02:00
Mario Volke
159d1e04dd fix scrolling when lightbox is higher than viewport 2014-06-16 15:28:27 +02:00
Mario Volke
54f35cd370 Back arrow icon in subject read view on mobile 2014-06-16 15:25:52 +02:00
Mario Volke
2a1cb893d0 optimized login views for mobile 2014-06-16 15:04:06 +02:00
Mario Volke
234c0ca485 optimized contact popup for mobile 2014-06-16 14:20:01 +02:00
Mario Volke
181902d3a7 mail list redesign for mobile, flexbox for mail list layout 2014-06-16 13:59:40 +02:00
Mario Volke
4a78d228c3 Refactored icons in mail list view and bugfix in search input 2014-06-16 12:18:31 +02:00
Tankred Hase
07222d24f4 Update package.json to use angularjs instead of angular 2014-06-16 12:01:23 +02:00
Tankred Hase
746c4f3b2d Add revocation link to login screens 2014-06-10 14:30:19 +02:00
Tankred Hase
3dc2222050 Change updated flag message 2014-06-10 14:23:51 +02:00
Tankred Hase
2592b35e4c Fix tests 2014-06-04 18:38:07 +02:00
Tankred Hase
c89ae65bb7 Fix bug not displaying already decrypted mail 2014-06-04 18:33:07 +02:00
Tankred Hase
f33febaa88 Merge pull request #66 from whiteout-io/dev/WO-398
[WO-398] update revoked public keys
2014-06-03 13:10:35 +02:00
Felix Hammerl
a29ece8c82 [WO-398] update revoked public keys 2014-06-03 13:07:11 +02:00
Tankred Hase
a730cad49d Merge pull request #67 from whiteout-io/dev/WO-373
refactor sync
2014-06-03 12:32:59 +02:00
Felix Hammerl
c71e1482c9 add documentation to email dao 2014-06-03 12:30:51 +02:00
Tankred Hase
088519f4f8 Remove sync keybaord shortcut 2014-06-03 11:48:11 +02:00
Tankred Hase
3a0d71b645 Review code 2014-06-02 17:54:29 +02:00
Felix Hammerl
7b5ed03716 update dependencies 2014-06-02 15:13:02 +02:00
Felix Hammerl
77e5e2a97e [WO-373] refactor sync
remove email-sync.js
remove delta sync
minor refactorings
2014-06-02 12:43:53 +02:00
Tankred Hase
726396d3f4 Update README.md 2014-05-23 11:36:12 +02:00
Felix Hammerl
5602bd2dc9 update dependencies 2014-05-22 08:49:08 +02:00
Felix Hammerl
fa45fcdb76 Merge pull request #65 from whiteout-io/dev/wo-399
[WO-399] Handle reply-to, in-reply-to and references headers
2014-05-21 18:39:37 +02:00
Andris Reinman
b9fc1c8244 [WO-399] Handle reply-to, in-reply-to and references headers 2014-05-21 15:19:18 +03:00
Tankred Hase
380a9da1fd Merge pull request #63 from whiteout-io/dev/WO-376
[WO-376] disable secure sending when bcc is used
2014-05-16 14:04:47 +02:00
Felix Hammerl
e25617134b [WO-376] disable secure sending when bcc is used 2014-05-16 13:09:55 +02:00
Tankred Hase
811f35c048 Merge pull request #62 from whiteout-io/dev/WO-390
[WO-390] include attachments in forwarded message
2014-05-15 19:48:51 +02:00
Tankred Hase
1e3c5c1760 Update README.md
Remove comment on stability.
2014-05-15 19:40:00 +02:00
Tankred Hase
65a1b1ac83 Merge pull request #64 from whiteout-io/dev/WO-388
[WO-388] update links to privacy for app
2014-05-15 19:38:43 +02:00
Felix Hammerl
79b24ee952 use mailreader v0.3.1 2014-05-15 16:28:33 +02:00
Felix Hammerl
eb685cf7f6 [WO-388] update links to privacy for app 2014-05-15 15:25:02 +02:00
Felix Hammerl
48b394f3bd [WO-390] include attachments in forwarded message 2014-05-14 17:29:27 +02:00
Tankred Hase
bb84da4324 Merge branch 'master' of github.com:whiteout-io/mail-html5 2014-05-13 17:09:28 +02:00
Tankred Hase
b02df18347 Make links in html clickable 2014-05-13 16:55:47 +02:00
Felix Hammerl
e54daf1fd7 fix tests 2014-05-13 16:43:39 +02:00
Felix Hammerl
533c3b20c9 update deps 2014-05-13 16:32:58 +02:00
Tankred Hase
e6de5366c9 Merge pull request #61 from whiteout-io/dev/WO-383
[WO-383] decrypt pgp/inline
2014-05-13 16:32:07 +02:00
Tankred Hase
c0a6514a13 Merge pull request #60 from whiteout-io/dev/WO-382
[WO-382] Lazy loading for attachments
2014-05-13 16:28:49 +02:00
Felix Hammerl
8767ccda3b [WO-383] decrypt pgp/inline 2014-05-13 13:13:36 +02:00
Felix Hammerl
1795f2af45 [WO-382] Lazy loading for attachments 2014-05-12 22:07:29 +02:00
Tankred Hase
ea7a0ceb2a Allow opening links from html mails 2014-05-12 19:09:03 +02:00
Tankred Hase
644e61cfc2 Change stable tag from alpha to beta 2014-05-12 17:52:04 +02:00
Tankred Hase
6c329b3772 Merge pull request #58 from whiteout-io/dev/WO-284
[WO-284] delete mails to trash folder
2014-05-12 17:37:16 +02:00
Felix Hammerl
79f71d5185 [WO-284] delete mails to trash folder 2014-05-12 15:16:54 +02:00
Tankred Hase
c4d0029f34 Merge pull request #59 from whiteout-io/dev/wo-286
Dev/wo 286
2014-05-12 14:54:36 +02:00
Tankred Hase
17c7fa70e0 Use tagged deps 2014-05-12 14:53:51 +02:00
Felix Hammerl
c6a82b3442 [WO-290] Fix bug where plaintext mail body is not shown in outbox 2014-05-12 13:57:25 +02:00
Tankred Hase
99edcee93b Show decrypting/parsing errors in mail reader 2014-05-12 13:44:02 +02:00
Tankred Hase
2a1a92f907 Dont show error popup on pgp decrypt error 2014-05-12 13:26:11 +02:00
Tankred Hase
a97c3a35e7 [WO-381] Fix bug that displayed ciphertext instead of plaintext 2014-05-12 13:18:51 +02:00
Felix Hammerl
453422cf11 use new pgpbuilder 2014-05-09 16:31:48 +02:00
Tankred Hase
747d9fce39 Fix scroling in iframe in Chrome App 2014-05-09 16:01:44 +02:00
Felix Hammerl
a7efdf1125 [WO-286] adapt to changes in data model for use of signed msgs and html 2014-05-09 11:44:14 +02:00
Felix Hammerl
f44db9d1bd Merge pull request #57 from whiteout-io/dev/wo-323
Dev/wo 323
2014-05-09 10:24:34 +02:00
Tankred Hase
36c08cdbb1 Remove $parse from frameLoad directive 2014-05-09 10:19:35 +02:00
Felix Hammerl
2d5b9afb88 Merge pull request #56 from whiteout-io/dev/WO-371
[WO-371] CC myself if I chose to CC myself
2014-05-09 10:17:21 +02:00
Felix Hammerl
39fe8f08db Merge pull request #55 from whiteout-io/dev/wo-321
[WO-321] Show spinner when app is logging in
2014-05-09 10:14:20 +02:00
Tankred Hase
c272b4f937 [WO-323] Render HTML content in sandboxed iframe 2014-05-08 16:32:46 +02:00
Tankred Hase
4fc4b02c26 Fix development mode for ui work 2014-05-08 16:25:20 +02:00
Tankred Hase
f903fb2291 [WO-348] Fix cursor over scrollbar 2014-05-08 00:33:41 +02:00
Tankred Hase
4da56b6fe7 [WO-371] CC myself if I chose to CC myself 2014-05-07 20:19:20 +02:00
Tankred Hase
171a3ec9dc [WO-321] Show spinner when app is logging in 2014-05-07 19:19:51 +02:00
Tankred Hase
5cb79330d0 Upgrade to angular 1.2.16 2014-05-06 16:58:27 +02:00
Felix Hammerl
a83e9d0c72 use imap-client v0.2.6 2014-04-30 09:20:40 +02:00
Tankred Hase
5a4889d57d Dont reselect inbox onLogin 2014-04-30 01:20:36 +02:00
Tankred Hase
5d5d84cdc9 Dont overwrite folder model imap onLogin 2014-04-30 01:04:13 +02:00
Tankred Hase
dc02106492 [WO-361] Fix flexbox styles by preventing shrink on the required dom nodes 2014-04-29 23:35:43 +02:00
Tankred Hase
4cf83fd6f1 Prevent out of bounce case when iterating over filteredMessages 2014-04-29 22:59:25 +02:00
Tankred Hase
2ec4982889 bump version of imap-client 2014-04-29 22:58:20 +02:00
Tankred Hase
404acf9fb0 Resolve merge conflicts 2014-04-29 22:47:08 +02:00
Tankred Hase
1a6cfad83d [WO-353] Fix first messsage not displayed 2014-04-29 22:11:56 +02:00
Tankred Hase
637980cc7b [WO-301] Fix incoming message not displayed 2014-04-29 22:11:50 +02:00
Felix Hammerl
49cadecd2d [WO-338] add notification for incoming unread mails 2014-04-29 17:59:17 +02:00
Tankred Hase
f5f8781a8c [WO-343] Remove reply selection on click 2014-04-29 17:09:02 +02:00
Tankred Hase
604e44267f Set unnecessary app version in package.json to 0.0.0 2014-04-29 16:00:51 +02:00
Felix Hammerl
f60d3b7af8 use imap-client v0.2.4 2014-04-29 15:37:19 +02:00
Tankred Hase
38b9f4d565 Upgraded all deps 2014-04-29 12:56:25 +02:00
Felix Hammerl
cae6197e4d Merge pull request #54 from whiteout-io/dev/css
[WO-198] Style message replies with different colors
2014-04-29 09:46:39 +02:00
Tankred Hase
77876f5432 [WO-198] Style message replies with different colors 2014-04-28 22:18:34 +02:00
Tankred Hase
f7fbec4823 Update README.md 2014-04-24 18:16:40 +02:00
Tankred Hase
2d54ee16eb Fix bug in loadVisibleBodies loop 2014-04-24 17:54:14 +02:00
Tankred Hase
5fef73ab99 Merge pull request #52 from whiteout-io/dev/css
Dev/css
2014-04-24 17:34:37 +02:00
Tankred Hase
4abcec6e33 Update package.json 2014-04-24 17:14:50 +02:00
Felix Hammerl
c6be8bdb18 update dependencies 2014-04-24 17:03:25 +02:00
Tankred Hase
35a7f30459 remove lightbox-effect class from ios.html 2014-04-24 16:59:38 +02:00
Tankred Hase
16fd3e8978 [WO-342] Fix focus-me directive for writer 2014-04-24 16:55:22 +02:00
Tankred Hase
433cc58d0b Fix tests for ui/css changes 2014-04-24 16:45:09 +02:00
Tankred Hase
2eff335680 Use local () instead of () in certain cases for performance 2014-04-24 15:44:54 +02:00
Tankred Hase
bb386299b9 [WO-334] Replace table for reply selection 2014-04-24 15:04:42 +02:00
Tankred Hase
ba22ee4674 [WO-336] Fix floating fingerprint popup in contacts view 2014-04-24 15:04:42 +02:00
Tankred Hase
23be9c823d Global key shortcut to close lightbox 2014-04-24 15:04:42 +02:00
Tankred Hase
6bb1bd2239 Fix mail-list filtering and iScroll refresh together with ngAnimate 2014-04-24 15:04:42 +02:00
Tankred Hase
af6f44177b Fix jumping send button in writer 2014-04-24 15:04:41 +02:00
Tankred Hase
edbac5a379 Seperate ng-repeat and ng-class in writer address headers for ng-animate 2014-04-24 15:04:41 +02:00
Tankred Hase
c08ff4f287 [WO-333] Fix lightbox outer scrollbar
* Use ng-animate with display:none instead of visibility:hidden
* Fix min-height in lightbox
* Start refactoring lightbox opening code using scope.state.lightbox
2014-04-24 15:04:41 +02:00
Tankred Hase
6adc9da8c1 Cleanup before refactor with ngAnimate
* Add ng-animate module in libs
* Move error dialog init to app.run
* Include error dialog template only once in index.html
* Fix race condition between ng-repeat, ng-class using ng-animate
2014-04-24 15:04:41 +02:00
Tankred Hase
716febfe70 Use scut sass mixins
* vcenter spinner in read-view
* vcenter lightbox
2014-04-24 15:04:41 +02:00
Tankred Hase
9ae46b2257 cleanup markup, fix editor body height when plaintext 2014-04-24 15:04:41 +02:00
Tankred Hase
44cbb803f3 [WO-332] Move spinner scss to component 2014-04-24 15:04:41 +02:00
Tankred Hase
fdd9c22144 [WO-312] Fix slowness for large inbox
* Fix memory leak causing iScroll to be re-initialized each time mail-list model changes
* Only do $scope.$apply() when keyboard shortcuts are actually executed
2014-04-24 15:04:41 +02:00
Tankred Hase
c2ce4e73ef [WO-329] Use flexbox in read-view, refactor address-headers in write and read views 2014-04-24 15:04:40 +02:00
Tankred Hase
0b3f19a8ce [WO-328] Show and style webkit scrollbars 2014-04-24 15:04:40 +02:00
Tankred Hase
138a462862 [WO-283] Implement BCC and dynamic address headers for writer 2014-04-24 15:04:40 +02:00
Tankred Hase
d0c59fc58f Use flexbox in write-view 2014-04-24 15:04:40 +02:00
Tankred Hase
c6c53a67dc [WO-264] fix css transition flickering in editor 2014-04-24 15:04:40 +02:00
Tankred Hase
0031d27abd Use pgpmailer v0.2.0 2014-04-24 14:57:39 +02:00
Tankred Hase
548abcfc01 Merge pull request #51 from whiteout-io/dev/browser
Dev/browser
2014-04-24 14:55:08 +02:00
Felix Hammerl
a10dd34794 use imapclient v0.2.2 2014-04-24 10:37:42 +02:00
Felix Hammerl
8c004d2418 integrate pgpmailer 2014-04-22 18:19:28 +02:00
Tankred Hase
834e0434d5 [WO-316] imap-client works 2014-04-17 18:56:48 +02:00
Tankred Hase
7e8c0d75b8 Update crypto lib version 2014-04-17 02:01:38 +02:00
Tankred Hase
80d6f31c8e [WO-273] Remove node deps
* Remove node-shims
* Remove multiple forge modules
* Add minified forge build under src/lib/forge
* Remove all transitive node-deps like inbox and simplesmtp from grunt copy
* Update to browser-ports in package.js for imap-client and mail-reader
2014-04-17 01:21:32 +02:00
Tankred Hase
7a160d36df Update LICENSE.txt 2014-04-15 18:34:33 +02:00
Tankred Hase
f9d38f246d Update README.md 2014-04-15 18:34:05 +02:00
Felix Hammerl
089292b3b9 Merge pull request #50 from whiteout-io/dev/legal
[WO-233] Implement opt-in for terms of service
2014-04-15 17:59:20 +02:00
Tankred Hase
becff37b4b [WO-233] Implement opt-in for terms of service 2014-04-15 17:43:33 +02:00
Tankred Hase
680ed6e0c3 Remove kerning 2014-04-15 12:44:11 +02:00
Tankred Hase
804e693c4d Update sass compilers, activate css kerning 2014-04-15 11:22:19 +02:00
Tankred Hase
f2dcb572ad Update pbkdf2.js 2014-04-12 14:17:10 +02:00
Tankred Hase
580baa34d2 Merge pull request #49 from whiteout-io/dev/change-passphrase
[WO-296] implement change passphrase ui
2014-04-11 18:45:52 +02:00
Tankred Hase
aee532da44 [WO-296] implement change passphrase ui 2014-04-11 18:39:13 +02:00
Tankred Hase
bfc354146a only show cc line in forwarded message when not empty 2014-04-05 12:14:20 +02:00
Tankred Hase
770a4f0ae9 Revert "upgrade to angular 1.2.16"
This reverts commit fb12488c5f.
2014-04-04 20:20:56 +02:00
Tankred Hase
b08703f71f use darker bg color for mail-list 2014-04-04 20:17:34 +02:00
Tankred Hase
67939a04d9 [WO-302] fix first message not selected 2014-04-04 19:48:51 +02:00
Tankred Hase
fb12488c5f upgrade to angular 1.2.16 2014-04-04 19:38:28 +02:00
Tankred Hase
a39749a359 change description for passphrase 2014-04-03 19:28:55 +02:00
Tankred Hase
2ab1e7d6c6 update to openpgp.js v0.5.1 2014-04-03 17:51:26 +02:00
940 changed files with 65717 additions and 20410 deletions

View File

@ -0,0 +1,12 @@
branch-defaults:
release/prod:
environment: mail-prod
release/test:
environment: mail-test
global:
application_name: mail
default_ec2_keyname: null
default_platform: Node.js
default_region: eu-central-1
profile: eb-cli
sc: git

10
.gitignore vendored
View File

@ -5,10 +5,10 @@ test/lib/
.sass-cache .sass-cache
src/css/ src/css/
dist/ dist/
compile/
release/ release/
test/integration/src/ test/integration/src/
src/lib/*.js src/img/icons/all.svg
src/js/crypto/aes-cbc.js test/*/index.js
src/js/crypto/crypto-batch.js **/*.browserified.js
src/js/crypto/rsa.js **/*.js.map
src/js/crypto/util.js

View File

@ -18,31 +18,37 @@
"unused": true, "unused": true,
"predef": [ "predef": [
"console", "$",
"importScripts", "inject",
"process", "Promise",
"QUnit", "resolves",
"test", "rejects",
"asyncTest",
"ok",
"equal",
"deepEqual",
"start",
"chrome",
"requirejs",
"define",
"self", "self",
"describe", "importScripts",
"it", "console",
"chai", "process",
"chrome",
"Notification",
"Event",
"sinon", "sinon",
"mocha", "mocha",
"chai",
"expect",
"describe",
"it",
"before", "before",
"beforeEach", "beforeEach",
"after", "after",
"afterEach" "afterEach",
"FastClick",
"angular",
"forge",
"Lawnchair",
"_",
"openpgp",
"PhoneNumber",
"DOMPurify"
], ],
"globals": { "globals": {}
}
} }

View File

@ -1,9 +1,7 @@
sudo: false
language: node_js language: node_js
node_js: node_js:
- "0.10" - "0.12"
before_install: before_install:
- gem install sass - gem install sass
- npm install -g grunt-cli - npm install -g grunt-cli
notifications:
email:
- build@whiteout.io

View File

@ -1,175 +1,66 @@
module.exports = function(grunt) { module.exports = function(grunt) {
'use strict'; 'use strict';
require('time-grunt')(grunt);
var version = grunt.option('release'), var version = grunt.option('release'),
zipName = (version) ? version : 'DEV'; zipName = (version) ? version : 'DEV';
var browserifyOpt = {
exclude: ['openpgp', 'node-forge', 'net', 'tls', 'crypto'], // node apis not required at build time
ignore: ['buffer'], // node apis to be stubbed for runtime
browserifyOptions: {
debug: true
}
};
// Project configuration. // Project configuration.
grunt.initConfig({ grunt.initConfig({
connect: {
dev: {
options: {
port: 8580,
base: '.',
keepalive: true
}
},
test: {
options: {
port: 8581,
base: '.'
}
},
prod: {
options: {
port: process.env.PORT || 8585,
base: './dist/',
keepalive: true,
middleware: function(connect, options) {
// Return array of whatever middlewares you want
return [
function(req, res, next) {
res.setHeader('Content-Security-Policy', "default-src 'self'; object-src 'none'; connect-src 'self' https://keys.whiteout.io; img-src 'self' data:;");
return next(); // General
},
// Serve static files. shell: {
connect.static(options.base)
];
}
}
}
},
jshint: {
all: ['Gruntfile.js', 'src/*.js', 'src/js/**/*.js', 'test/new-unit/*.js', 'test/unit/*.js', 'test/integration/*.js'],
options: { options: {
jshintrc: '.jshintrc' stderr: false
}
}, },
target: {
qunit: { command: 'dir=$(pwd) && cd node_modules/mailreader/ && npm install --production && cd $dir'
all: {
options: {
timeout: 20000,
urls: ['http://localhost:<%= connect.test.options.port %>/test/unit/index.html'
/*,
'http://localhost:<%= connect.test.options.port %>/test/integration/index.html'*/
]
}
}
},
mocha: {
all: {
options: {
urls: ['http://localhost:<%= connect.test.options.port %>/test/new-unit/index.html'],
run: false,
reporter: 'Spec'
}
} }
}, },
clean: { clean: {
dist: ['dist', 'src/lib/*.js', 'test/lib', 'test/integration/src'] dist: ['dist', 'compile', 'test/lib', 'test/integration/src'],
}, release: ['dist/**/*.browserified.js', 'dist/**/*.js.map', 'dist/js/app.templates.js']
sass: {
dist: {
files: {
'src/css/all.css': 'src/sass/all.scss'
}
}
},
autoprefixer: {
options: {
browsers: ['last 2 versions']
},
dist: {
files: {
'src/css/all.css': 'src/css/all.css'
}
}
},
csso: {
options: {
banner: '/*! Copyright © 2013, Whiteout Networks GmbH. All rights reserved.*/\n'
},
dist: {
files: {
'dist/css/all.min.css': 'src/css/all.css'
}
}
},
watch: {
css: {
files: ['src/sass/**/*.scss'],
tasks: ['dist-css']
},
js: {
files: ['src/js/**/*.js'],
tasks: ['copy:js']
},
lib: {
files: ['src/lib/**/*.js'],
tasks: ['copy:lib']
},
app: {
files: ['src/*.js', 'src/**/*.html', 'src/**/*.json', 'src/img/**/*', 'src/font/**/*'],
tasks: ['copy:app', 'copy:ca', 'copy:tpl', 'copy:img', 'copy:font', 'manifest-dev']
}
}, },
copy: { copy: {
npm: { libTest: {
expand: true, expand: true,
flatten: true, flatten: true,
cwd: 'node_modules/', cwd: './',
src: [ src: [
'requirejs/require.js', 'node_modules/mocha/mocha.css',
'crypto-lib/node_modules/node-forge/js/*.js', 'node_modules/mocha/mocha.js',
'imap-client/src/*.js', 'node_modules/chai/chai.js',
'imap-client/node_modules/inbox/src/*.js', 'node_modules/sinon/pkg/sinon.js',
'imap-client/node_modules/setimmediate/setImmediate.js', 'node_modules/browsercrow/src/*.js',
'imap-client/node_modules/inbox/node_modules/node-shims/src/*.js', 'node_modules/browsersmtp/src/*.js',
'imap-client/node_modules/inbox/node_modules/utf7/src/utf7.js', 'node_modules/openpgp/dist/openpgp.min.js',
'imap-client/node_modules/inbox/node_modules/xoauth2/src/xoauth2.js', 'node_modules/openpgp/dist/openpgp.worker.min.js',
'mailreader/src/*.js', 'src/lib/forge/forge.min.js',
'mailreader/node_modules/mailparser/src/*.js', 'dist/js/pbkdf2-worker.min.js'
'mailreader/node_modules/mailparser/node_modules/encoding/src/encoding.js',
'mailreader/node_modules/mailparser/node_modules/mimelib/src/mimelib.js',
'mailreader/node_modules/mailparser/node_modules/mimelib/node_modules/addressparser/src/addressparser.js',
'mailreader/node_modules/mailparser/node_modules/encoding/node_modules/iconv-lite/src/*.js',
'mailreader/node_modules/mailparser/node_modules/mime/src/mime.js',
'pgpmailer/src/*.js',
'pgpmailer/node_modules/simplesmtp/src/*',
'pgpbuilder/src/*.js',
'pgpbuilder/node_modules/mailbuilder/src/*.js'
], ],
dest: 'src/lib/'
},
npmDev: {
expand: true,
flatten: true,
cwd: 'node_modules/',
src: ['requirejs/require.js', 'mocha/mocha.css', 'mocha/mocha.js', 'chai/chai.js', 'sinon/pkg/sinon.js', 'angularjs/src/ngMock/angular-mocks.js'],
dest: 'test/lib/' dest: 'test/lib/'
}, },
cryptoLib: {
expand: true,
cwd: 'node_modules/crypto-lib/src/',
src: ['*.js'],
dest: 'src/js/crypto/'
},
lib: { lib: {
expand: true, expand: true,
cwd: 'src/lib/', flatten: true,
src: ['**'], cwd: './',
dest: 'dist/lib/' src: [
}, 'node_modules/openpgp/dist/openpgp.min.js',
js: { 'node_modules/openpgp/dist/openpgp.worker.min.js',
expand: true, 'src/lib/forge/forge.min.js'
cwd: 'src/js/', ],
src: ['**'],
dest: 'dist/js/' dest: 'dist/js/'
}, },
font: { font: {
@ -187,29 +78,496 @@ module.exports = function(grunt) {
tpl: { tpl: {
expand: true, expand: true,
cwd: 'src/tpl/', cwd: 'src/tpl/',
src: ['*'], src: ['read-sandbox.html'],
dest: 'dist/tpl/' dest: 'dist/tpl/'
}, },
ca: {
expand: true,
cwd: 'src/ca/',
src: ['*'],
dest: 'dist/ca/'
},
app: { app: {
expand: true, expand: true,
cwd: 'src/', cwd: 'src/',
src: ['*.html', '*.js', '*.json'], src: ['*.js', '*.json', 'manifest.*'],
dest: 'dist/' dest: 'dist/'
},
integration: {
expand: true,
cwd: 'src/',
src: ['**'],
dest: 'test/integration/src/'
} }
}, },
// Stylesheets
sass: {
dist: {
files: {
'src/css/read-sandbox.css': 'src/sass/read-sandbox.scss',
'src/css/all.css': 'src/sass/all.scss'
}
},
styleguide: {
files: {
'src/css/styleguide.css': 'src/sass/styleguide.scss'
}
}
},
autoprefixer: {
options: {
browsers: ['last 2 versions']
},
dist: {
files: {
'src/css/read-sandbox.css': 'src/css/read-sandbox.css',
'src/css/all.css': 'src/css/all.css'
}
},
styleguide: {
files: {
'src/css/styleguide.css': 'src/css/styleguide.css'
}
}
},
csso: {
options: {
banner: '/*! Copyright © 2013, Whiteout Networks GmbH. All rights reserved.*/\n'
},
dist: {
files: {
'dist/css/read-sandbox.min.css': 'src/css/read-sandbox.css',
'dist/css/all.min.css': 'src/css/all.css'
}
},
styleguide: {
files: {
'dist/styleguide/css/styleguide.min.css': 'src/css/styleguide.css'
}
}
},
// JavaScript
jshint: {
all: ['Gruntfile.js', 'src/*.js', 'src/js/**/*.js', 'test/unit/*-test.js', 'test/integration/*-test.js'],
options: {
jshintrc: '.jshintrc'
}
},
browserify: {
app: {
files: {
'dist/js/app.browserified.js': ['src/js/app.js']
},
options: browserifyOpt
},
pbkdf2Worker: {
files: {
'dist/js/pbkdf2-worker.browserified.js': ['src/js/crypto/pbkdf2-worker.js']
},
options: browserifyOpt
},
mailreaderWorker: {
files: {
'dist/js/mailreader-parser-worker.browserified.js': ['node_modules/mailreader/src/mailreader-parser-worker-browserify.js']
},
options: browserifyOpt
},
tlsWorker: {
files: {
'dist/js/tcp-socket-tls-worker.browserified.js': ['node_modules/tcp-socket/src/tcp-socket-tls-worker.js']
},
options: browserifyOpt
},
compressionWorker: {
files: {
'dist/js/browserbox-compression-worker.browserified.js': ['node_modules/imap-client/node_modules/browserbox/src/browserbox-compression-worker.js']
},
options: browserifyOpt
},
unitTest: {
files: {
'test/unit/index.browserified.js': [
'test/main.js',
'test/unit/util/dialog-test.js',
'test/unit/util/connection-doctor-test.js',
'test/unit/util/update-handler-test.js',
'test/unit/util/status-display-test.js',
'test/unit/crypto/pgp-test.js',
'test/unit/crypto/crypto-test.js',
'test/unit/service/rest-dao-test.js',
'test/unit/service/admin-dao-test.js',
'test/unit/service/auth-test.js',
'test/unit/service/oauth-test.js',
'test/unit/service/publickey-dao-test.js',
'test/unit/service/privatekey-dao-test.js',
'test/unit/service/lawnchair-dao-test.js',
'test/unit/service/keychain-dao-test.js',
'test/unit/service/devicestorage-dao-test.js',
'test/unit/service/newsletter-service-test.js',
'test/unit/service/mail-config-service-test.js',
'test/unit/service/invitation-dao-test.js',
'test/unit/service/publickey-verifier-test.js',
'test/unit/email/outbox-bo-test.js',
'test/unit/email/email-dao-test.js',
'test/unit/email/account-test.js',
'test/unit/email/search-test.js',
'test/unit/controller/login/add-account-ctrl-test.js',
'test/unit/controller/login/create-account-ctrl-test.js',
'test/unit/controller/login/validate-phone-ctrl-test.js',
'test/unit/controller/login/login-existing-ctrl-test.js',
'test/unit/controller/login/login-initial-ctrl-test.js',
'test/unit/controller/login/login-new-device-ctrl-test.js',
'test/unit/controller/login/login-privatekey-download-ctrl-test.js',
'test/unit/controller/login/login-privatekey-upload-ctrl-test.js',
'test/unit/controller/login/login-verify-public-key-ctrl-test.js',
'test/unit/controller/login/login-set-credentials-ctrl-test.js',
'test/unit/controller/login/login-ctrl-test.js',
'test/unit/controller/app/dialog-ctrl-test.js',
'test/unit/controller/app/publickey-import-ctrl-test.js',
'test/unit/controller/app/account-ctrl-test.js',
'test/unit/controller/app/set-passphrase-ctrl-test.js',
'test/unit/controller/app/contacts-ctrl-test.js',
'test/unit/controller/app/read-ctrl-test.js',
'test/unit/controller/app/navigation-ctrl-test.js',
'test/unit/controller/app/mail-list-ctrl-test.js',
'test/unit/controller/app/write-ctrl-test.js',
'test/unit/controller/app/action-bar-ctrl-test.js',
]
},
options: browserifyOpt
},
integrationTest: {
files: {
'test/integration/index.browserified.js': [
'test/main.js',
'test/integration/email-dao-test.js',
'test/integration/publickey-verifier-test.js'
]
},
options: browserifyOpt
}
},
exorcise: {
app: {
files: {
'dist/js/app.browserified.js.map': ['dist/js/app.browserified.js'],
}
},
unitTest: {
files: {
'test/unit/index.browserified.js.map': ['test/unit/index.browserified.js'],
}
},
integrationTest: {
files: {
'test/integration/index.browserified.js.map': ['test/integration/index.browserified.js'],
}
}
},
ngtemplates: {
mail: {
src: [
'tpl/**/*.html'
],
dest: 'dist/js/app.templates.js',
cwd: 'src/',
options: {
htmlmin: {
collapseWhitespace: true,
removeComments: true // we do not use comment directives
}
}
}
},
concat: {
options: {
separator: ';\n',
sourceMap: true
},
app: {
src: [
'src/lib/underscore/underscore.js',
'node_modules/jquery/dist/jquery.min.js',
'src/lib/angular/angular.js',
'src/lib/angular/angular-route.js',
'src/lib/angular/angular-animate.js',
'src/lib/ngtagsinput/ng-tags-input.min.js',
'node_modules/ng-infinite-scroll/build/ng-infinite-scroll.min.js',
'node_modules/iframe-resizer/js/iframeResizer.min.js',
'src/lib/fastclick/fastclick.js',
'src/lib/lawnchair/lawnchair-git.js',
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
'src/lib/lawnchair/lawnchair-adapter-indexed-db-git.js',
'src/lib/phonenumber/PhoneNumberMetadata.js',
'src/lib/phonenumber/PhoneNumberNormalizer.js',
'src/lib/phonenumber/PhoneNumber.js',
'dist/js/app.browserified.js',
'<%= ngtemplates.mail.dest %>'
],
dest: 'dist/js/app.min.js',
options: {
sourceMapName: 'dist/js/app.js.map'
}
},
readSandbox: {
src: [
'node_modules/dompurify/src/purify.js',
'node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js',
'src/js/controller/app/read-sandbox.js'
],
dest: 'dist/js/read-sandbox.min.js'
},
pbkdf2Worker: {
src: ['dist/js/pbkdf2-worker.browserified.js'],
dest: 'dist/js/pbkdf2-worker.min.js'
},
mailreaderWorker: {
src: ['dist/js/mailreader-parser-worker.browserified.js'],
dest: 'dist/js/mailreader-parser-worker.min.js'
},
tlsWorker: {
src: ['dist/js/tcp-socket-tls-worker.browserified.js'],
dest: 'dist/js/tcp-socket-tls-worker.min.js'
},
compressionWorker: {
src: ['dist/js/browserbox-compression-worker.browserified.js'],
dest: 'dist/js/browserbox-compression-worker.min.js'
},
unitTest: {
src: [
'src/lib/underscore/underscore.js',
'node_modules/jquery/dist/jquery.min.js',
'src/lib/angular/angular.js',
'src/lib/angular/angular-route.js',
'src/lib/angular/angular-mocks.js',
'src/lib/lawnchair/lawnchair-git.js',
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
'src/lib/lawnchair/lawnchair-adapter-indexed-db-git.js',
'src/lib/phonenumber/PhoneNumberMetadata.js',
'src/lib/phonenumber/PhoneNumberNormalizer.js',
'src/lib/phonenumber/PhoneNumber.js',
'test/unit/index.browserified.js'
],
dest: 'test/unit/index.js',
options: {
sourceMapName: 'test/unit/index.js.map'
}
},
integrationTest: {
src: [
'src/lib/underscore/underscore.js',
'node_modules/jquery/dist/jquery.min.js',
'src/lib/angular/angular.js',
'src/lib/angular/angular-mocks.js',
'src/lib/lawnchair/lawnchair-git.js',
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
'src/lib/lawnchair/lawnchair-adapter-indexed-db-git.js',
'test/integration/index.browserified.js'
],
dest: 'test/integration/index.js',
options: {
sourceMapName: 'test/integration/index.js.map'
}
}
},
uglify: {
app: {
files: {
'dist/js/app.min.js': ['dist/js/app.min.js']
},
options: {
mangle: false,
sourceMap: true,
sourceMapIn: 'dist/js/app.js.map',
sourceMapIncludeSources: true,
sourceMapName: 'dist/js/app.min.js.map'
}
},
readSandbox: {
files: {
'dist/js/read-sandbox.min.js': ['dist/js/read-sandbox.min.js']
},
options: {
sourceMap: true,
sourceMapName: 'dist/js/read-sandbox.min.js.map'
}
},
pbkdf2Worker: {
files: {
'dist/js/pbkdf2-worker.min.js': ['dist/js/pbkdf2-worker.min.js']
}
},
mailreaderWorker: {
files: {
'dist/js/mailreader-parser-worker.min.js': ['dist/js/mailreader-parser-worker.min.js']
},
options: {
sourceMap: true,
sourceMapName: 'dist/js/mailreader-parser-worker.min.js.map'
}
},
tlsWorker: {
files: {
'dist/js/tcp-socket-tls-worker.min.js': ['dist/js/tcp-socket-tls-worker.min.js']
},
options: {
sourceMap: true,
sourceMapName: 'dist/js/tcp-socket-tls-worker.min.js.map'
}
},
compressionWorker: {
files: {
'dist/js/browserbox-compression-worker.min.js': ['dist/js/browserbox-compression-worker.min.js']
},
options: {
sourceMap: true,
sourceMapName: 'dist/js/browserbox-compression-worker.min.js.map'
}
},
options: {
banner: '/*! Copyright © <%= grunt.template.today("yyyy") %>, Whiteout Networks GmbH.*/\n'
}
},
mocha_phantomjs: {
all: {
options: {
urls: [
'http://localhost:<%= connect.test.options.port %>/test/unit/index.html',
'http://localhost:<%= connect.test.options.port %>/test/integration/index.html'
]
}
}
},
// Assets
svgmin: {
options: {
plugins: [{
removeViewBox: false
}, {
removeUselessStrokeAndFill: false
}]
},
icons: {
files: [{
expand: true,
src: ['img/icons/*.svg', '!img/icons/all.svg'],
cwd: 'src/',
dest: 'compile/'
}]
}
},
svgstore: {
options: {
prefix: 'icon-',
svg: {
viewBox: '0 0 100 100',
xmlns: 'http://www.w3.org/2000/svg'
},
cleanup: ['fill', 'stroke']
},
icons: {
files: {
'src/img/icons/all.svg': ['compile/img/icons/*.svg'],
}
}
},
'string-replace': {
index: {
files: {
'dist/index.html': 'src/index.html'
},
options: {
replacements: [{
pattern: /<!-- @import (.*?) -->/ig,
replacement: function(match, p1) {
return grunt.file.read('src/' + p1);
}
}]
}
}
},
// Styleguide
assemble: {
options: {
assets: 'dist',
layoutdir: 'src/styleguide/layouts',
layout: 'default.hbs',
partials: ['src/styleguide/blocks/**/*.hbs'],
helpers: [
'handlebars-helper-compose',
'src/styleguide/helpers/**/*.js'
],
data: [
'dist/manifest.json'
],
flatten: true
},
styleguide: {
files: [{
'dist/styleguide/': ['src/styleguide/*.hbs']
}]
}
},
// Development
connect: {
dev: {
options: {
port: 8580,
base: '.',
keepalive: true
}
},
test: {
options: {
port: 8581,
base: '.'
}
}
},
// Utilities
watch: {
css: {
files: ['src/sass/**/*.scss'],
tasks: ['dist-css', 'offline-cache', 'dist-styleguide']
},
styleguide: {
files: ['src/styleguide/**/*.hbs', 'src/styleguide/**/*.js'],
tasks: ['dist-styleguide']
},
jsApp: {
files: ['src/js/**/*.js', 'src/*.html', 'src/tpl/**/*.html'],
tasks: ['dist-js-app']
},
jsUnitTest: {
files: ['test/unit/**/*-test.js', 'test/*.js'],
tasks: ['dist-js-unitTest']
},
jsIntegrationTest: {
files: ['test/integration/*-test.js', 'test/*.js'],
tasks: ['dist-js-integrationTest']
},
icons: {
files: ['src/index.html', 'src/img/icons/*.svg', '!src/img/icons/all.svg'],
tasks: ['svgmin', 'svgstore', 'string-replace', 'dist-styleguide', 'offline-cache']
},
lib: {
files: ['src/lib/**/*.js'],
tasks: ['copy:lib', 'offline-cache']
},
app: {
files: ['src/*.js', 'src/*.html', 'src/tpl/**/*.html', 'src/**/*.json', 'src/manifest.*', 'src/img/**/*', 'src/font/**/*'],
tasks: ['copy:app', 'copy:tpl', 'copy:img', 'copy:font', 'manifest-dev', 'offline-cache']
}
},
// Deployment
compress: { compress: {
main: { main: {
options: { options: {
@ -220,37 +578,152 @@ module.exports = function(grunt) {
cwd: 'dist/', cwd: 'dist/',
src: ['**/*'], src: ['**/*'],
dest: 'release/' dest: 'release/'
},
nodeWebkit: {
options: {
mode: 'zip',
archive: 'release/whiteout-mail_' + zipName + '.nw'
},
expand: true,
cwd: 'dist/',
src: ['**/*'],
dest: '/'
} }
}, },
nodewebkit: { // Offline caching
swPrecache: {
prod: {
handleFetch: true,
rootDir: 'dist'
}
},
manifest: {
generate: {
options: { options: {
version: '0.9.2', // node-webkit version basePath: 'dist/',
build_dir: './release/node-webkit/', // Where the build version of my node-webkit app is saved timestamp: true,
mac: true, // We want to build it for mac hash: true,
win: false, // We want to build it for win cache: ['socket.io/socket.io.js'],
linux32: false, // We don't need linux32 exclude: [
linux64: false, // We don't need linux64 'appcache.manifest',
'manifest.webapp',
'manifest.mobile.json',
'background.js',
'service-worker.js',
'styleguide/css/styleguide.min.css',
'styleguide/index.html',
'js/app.templates.js',
'js/app.js.map',
'js/app.min.js.map',
'js/app.browserified.js',
'js/app.browserified.js.map',
'js/crypto/pbkdf2-worker.browserified.js',
'js/pbkdf2-worker.browserified.js',
'js/pbkdf2-worker.min.js.map',
'js/read-sandbox.min.js.map',
'js/mailreader-parser-worker.browserified.js',
'js/mailreader-parser-worker.min.js.map',
'js/tcp-socket-tls-worker.browserified.js',
'js/tcp-socket-tls-worker.min.js.map',
'js/browserbox-compression-worker.browserified.js',
'js/browserbox-compression-worker.min.js.map',
'img/icon-100-ios.png',
'img/icon-114-ios.png',
'img/icon-120-ios.png',
'img/icon-128-chrome.png',
'img/icon-144-android.png',
'img/icon-144-ios.png',
'img/icon-152-ios.png',
'img/icon-180-ios.png',
'img/icon-192-android.png',
'img/icon-29-ios.png',
'img/icon-36-android.png',
'img/icon-40-ios.png',
'img/icon-48-android.png',
'img/icon-50-ios.png',
'img/icon-57-ios.png',
'img/icon-58-ios.png',
'img/icon-60-android.png',
'img/icon-60-ios.png',
'img/icon-72-android.png',
'img/icon-72-ios.png',
'img/icon-76-ios.png',
'img/icon-78-android.png',
'img/icon-80-ios.png',
'img/icon-87-ios.png',
'img/icon-96-android.png',
'img/Default-568h@2x~iphone.png',
'img/Default-667h.png',
'img/Default-736h.png',
'img/Default-Landscape-736h.png',
'img/Default-Landscape@2x~ipad.png',
'img/Default-Landscape~ipad.png',
'img/Default-Portrait@2x~ipad.png',
'img/Default-Portrait~ipad.png',
'img/Default@2x~iphone.png',
'img/Default~iphone.png'
],
master: ['index.html']
}, },
src: ['./dist/**/*'] // Your node-webkit app src: ['**/*.*'],
dest: 'dist/appcache.manifest'
}
}
});
// generate service-worker stasks
grunt.registerMultiTask('swPrecache', function() {
var fs = require('fs');
var path = require('path');
var swPrecache = require('sw-precache');
var packageJson = require('./package.json');
var done = this.async();
var rootDir = this.data.rootDir;
var handleFetch = this.data.handleFetch;
generateServiceWorkerFileContents(rootDir, handleFetch, function(error, serviceWorkerFileContents) {
if (error) {
grunt.fail.warn(error);
}
fs.writeFile(path.join(rootDir, 'service-worker.js'), serviceWorkerFileContents, function(error) {
if (error) {
grunt.fail.warn(error);
}
done();
});
});
function generateServiceWorkerFileContents(rootDir, handleFetch, callback) {
var config = {
cacheId: packageJson.name,
// If handleFetch is false (i.e. because this is called from swPrecache:dev), then
// the service worker will precache resources but won't actually serve them.
// This allows you to test precaching behavior without worry about the cache preventing your
// local changes from being picked up during the development cycle.
handleFetch: handleFetch,
logger: grunt.log.writeln,
dynamicUrlToDependencies: {
'socket.io/socket.io.js': ['node_modules/socket.io/node_modules/socket.io-client/socket.io.js'],
}, },
staticFileGlobs: [
rootDir + '/*.html',
rootDir + '/tpl/*.html',
rootDir + '/js/**/*.min.js',
rootDir + '/css/**/*.css',
rootDir + '/img/**/*.svg',
rootDir + '/img/*-universal.png',
rootDir + '/font/**.*',
rootDir + '/*.json'
],
maximumFileSizeToCacheInBytes: 100 * 1024 * 1024,
stripPrefix: path.join(rootDir, path.sep)
};
swPrecache(config, callback);
}
}); });
// Load the plugin(s) // Load the plugin(s)
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-mocha');
grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-csso'); grunt.loadNpmTasks('grunt-csso');
grunt.loadNpmTasks('grunt-contrib-sass'); grunt.loadNpmTasks('grunt-contrib-sass');
@ -258,17 +731,50 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-compress'); grunt.loadNpmTasks('grunt-contrib-compress');
grunt.loadNpmTasks('grunt-node-webkit-builder'); grunt.loadNpmTasks('grunt-manifest');
grunt.loadNpmTasks('grunt-mocha-phantomjs');
grunt.loadNpmTasks('grunt-exorcise');
grunt.loadNpmTasks('grunt-string-replace');
grunt.loadNpmTasks('grunt-svgmin');
grunt.loadNpmTasks('grunt-svgstore');
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-angular-templates');
grunt.loadNpmTasks('assemble');
// Build tasks // Build tasks
grunt.registerTask('dist-npm', ['copy:npm', 'copy:npmDev', 'copy:cryptoLib']); grunt.registerTask('dist-css', ['sass:dist', 'autoprefixer:dist', 'csso:dist']);
grunt.registerTask('dist-css', ['sass', 'autoprefixer', 'csso']); grunt.registerTask('dist-js', ['browserify', 'exorcise', 'ngtemplates', 'concat', 'uglify']);
grunt.registerTask('dist-js-app', [
'browserify:app',
'browserify:pbkdf2Worker',
'exorcise:app',
'ngtemplates',
'concat:app',
'concat:readSandbox',
'concat:pbkdf2Worker',
'offline-cache'
]);
grunt.registerTask('dist-js-unitTest', [
'browserify:unitTest',
'exorcise:unitTest',
'concat:unitTest'
]);
grunt.registerTask('dist-js-integrationTest', [
'browserify:integrationTest',
'exorcise:integrationTest',
'concat:integrationTest'
]);
grunt.registerTask('dist-copy', ['copy']); grunt.registerTask('dist-copy', ['copy']);
grunt.registerTask('dist', ['clean', 'dist-npm', 'dist-css', 'dist-copy']); grunt.registerTask('dist-assets', ['svgmin', 'svgstore', 'string-replace']);
grunt.registerTask('dist-styleguide', ['sass:styleguide', 'autoprefixer:styleguide', 'csso:styleguide', 'assemble:styleguide']);
// generate styleguide after manifest to forward version number to styleguide
grunt.registerTask('dist', ['clean:dist', 'shell', 'dist-css', 'dist-js', 'dist-assets', 'dist-copy', 'manifest', 'dist-styleguide']);
grunt.registerTask('offline-cache', ['manifest', 'swPrecache:prod']);
// Test/Dev tasks // Test/Dev tasks
grunt.registerTask('dev', ['connect:dev']); grunt.registerTask('dev', ['connect:dev']);
grunt.registerTask('test', ['jshint', 'connect:test', 'mocha']); grunt.registerTask('test', ['jshint', 'connect:test', 'mocha_phantomjs']);
grunt.registerTask('prod', ['connect:prod']); grunt.registerTask('prod', ['connect:prod']);
// //
@ -278,12 +784,12 @@ module.exports = function(grunt) {
grunt.registerTask('manifest-dev', function() { grunt.registerTask('manifest-dev', function() {
patchManifest({ patchManifest({
suffix: ' (DEV)', suffix: ' (DEV)',
version: '9999.9999.9999.9999' version: '9999.9999.9999'
}); });
}); });
grunt.registerTask('manifest-test', function() { grunt.registerTask('manifest-test', function() {
if (!version) { if (!version) {
throw new Error('You must specify the version: "--release=1.0"'); throw new Error('You must specify the version: "--release=1.0.0"');
} }
patchManifest({ patchManifest({
@ -293,13 +799,12 @@ module.exports = function(grunt) {
deleteKey: true deleteKey: true
}); });
}); });
grunt.registerTask('manifest-stable', function() { grunt.registerTask('manifest-prod', function() {
if (!version) { if (!version) {
throw new Error('You must specify the version: "--release=1.0"'); throw new Error('You must specify the version: "--release=1.0.0"');
} }
patchManifest({ patchManifest({
suffix: ' (Alpha)',
version: version, version: version,
deleteKey: true, deleteKey: true,
keyServer: 'https://keys.whiteout.io/' keyServer: 'https://keys.whiteout.io/'
@ -331,9 +836,9 @@ module.exports = function(grunt) {
fs.writeFileSync(path, JSON.stringify(manifest, null, 2)); fs.writeFileSync(path, JSON.stringify(manifest, null, 2));
} }
grunt.registerTask('release-dev', ['dist', 'manifest-dev', 'compress']); grunt.registerTask('release-dev', ['dist', 'manifest-dev', 'swPrecache:prod', 'compress']);
grunt.registerTask('release-test', ['dist', 'manifest-test', 'compress']); grunt.registerTask('release-test', ['dist', 'manifest-test', 'clean:release', 'swPrecache:prod', 'compress']);
grunt.registerTask('release-stable', ['dist', 'manifest-stable', 'compress']); grunt.registerTask('release-prod', ['dist', 'manifest-prod', 'clean:release', 'swPrecache:prod', 'compress']);
grunt.registerTask('default', ['release-dev']); grunt.registerTask('default', ['release-dev']);
}; };

View File

@ -1,6 +1,21 @@
Copyright © 2013, Whiteout Networks GmbH. All rights reserved. The MIT License (MIT)
The code is open for inspection and peer review by the security community. Copyright (c) 2014 Whiteout Networks GmbH.
The code is currently not licensed under an open source license. If you're
interested in contributing or getting a license, please get in touch with Permission is hereby granted, free of charge, to any person obtaining a copy
us (info@whiteout.io). of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

124
README.md
View File

@ -1,66 +1,142 @@
mail-html5 [![Build Status](https://travis-ci.org/whiteout-io/mail-html5.png)](https://travis-ci.org/whiteout-io/mail-html5) Whiteout Mail [![Build Status](https://travis-ci.org/whiteout-io/mail.svg?branch=master)](https://travis-ci.org/whiteout-io/mail)
========== ==========
Whiteout Mail is an easy to use email client with integrated OpenPGP encryption written in pure JavaScript. Download the official version under [whiteout.io](http://whiteout.io). Whiteout Mail is an easy to use email client with integrated OpenPGP encryption written in pure JavaScript. Download the official version under [whiteout.io](https://whiteout.io/#product).
![Screenshot](https://whiteout.io/img/screens.png)
### Features ### Features
You can read about product features and our future roadmap in our [FAQ](https://github.com/whiteout-io/mail-html5/wiki/FAQ). You can read about product features and our future roadmap in our [FAQ](https://github.com/whiteout-io/mail/wiki/FAQ).
### Privacy and Security ### Privacy and Security
We take the privacy of your data very seriously. Here are some of the technical details: We take the privacy of your data very seriously. Here are some of the technical details:
* Messages are [encrypted end-to-end ](http://en.wikipedia.org/wiki/End-to-end_encryption) using the [OpenPGP](http://en.wikipedia.org/wiki/Pretty_Good_Privacy) standard. This means that only you and the recipient can read your mail. Your messages and private PGP key are stored encrypted on your computer and are never sent to our our servers. * The code has undergone a [full security audit](https://blog.whiteout.io/2015/06/11/whiteout-mail-1-0-and-security-audit-by-cure53/) by [Cure53](https://cure53.de).
* Like most native email clients whiteout mail uses raw [TCP sockets](http://developer.chrome.com/apps/socket.html) to communicate directly with your mail server via IMAP/SMTP. * Messages are [encrypted end-to-end ](http://en.wikipedia.org/wiki/End-to-end_encryption) using the [OpenPGP](http://en.wikipedia.org/wiki/Pretty_Good_Privacy) standard. This means that only you and the recipient can read your mail. Your messages and private PGP key are stored only on your computer (in IndexedDB).
* Mail server [SSL certificates are pinned](http://security.stackexchange.com/questions/29988/what-is-certificate-pinning) under [`src/ca/`](https://github.com/whiteout-io/mail-html5/tree/master/src/ca) in order to protect against SSL certificate forgery and other man in the middle attacks. * Users have the option to use [encrypted private key sync](https://github.com/whiteout-io/mail/wiki/Secure-OpenPGP-Key-Pair-Synchronization-via-IMAP) if they want to use Whiteout on multiple devices.
* The app is deployed as a [Chrome Packaged App](https://developer.chrome.com/apps/about_apps.html) with [auditable static versions](https://github.com/whiteout-io/mail-html5/releases) in order to prevent [problems with host-based security](http://tonyarcieri.com/whats-wrong-with-webcrypto). * [Content Security Policy (CSP)](http://www.html5rocks.com/en/tutorials/security/content-security-policy/) is enforced to prevent injection attacks.
* [Content Security Policy (CSP)](http://www.html5rocks.com/en/tutorials/security/content-security-policy/) is enforced to prevent against injection attacks. * HTML mails are sanitized with [DOMPurify](https://github.com/cure53/DOMPurify) and are rendered in a sandboxed iframe.
* The code is still under heavy development and is not yet recommended for production use. That being said, we have done multiple code audits and penetration tests (which will be published regularly once all reported vulnerabilities are fixed). * Displaying mail images is optional and opt-in by default.
* Like most native email clients, whiteout mail uses raw [TCP sockets](http://developer.chrome.com/apps/socket.html) to communicate directly with your mail server via IMAP/SMTP. TLS is used to protect your password and message data in transit.
* The app is deployed as a signed [Chrome Packaged App](https://developer.chrome.com/apps/about_apps.html) with [auditable static versions](https://github.com/whiteout-io/mail/releases) in order to prevent [problems with host-based security](https://blog.whiteout.io/2014/04/13/heartbleed-and-javascript-crypto/).
* The app can also be used from any modern web browser in environments where installing an app is not possible (e.g. a locked down corporate desktop). The IMAP/SMTP TLS sessions are still terminated in the user's browser using JS crypto ([Forge](https://github.com/digitalbazaar/forge)), but the encrypted TLS payload is proxied via [socket.io](http://socket.io/), due to the lack of raw sockets in the browser. **Please keep in mind that this mode of operation is not as secure as using the signed packaged app, since users must trust the webserver to deliver the correct code. This mode will still protect user against passive attacks like wiretapping (since PGP and TLS are still applied in the user's browser), but not against active attacks from the webserver. So it's best to decide which threat model applies to you.**
### Architecture
![client architecture](https://whiteout.io/img/app_layers.png)
### Reporting bugs and feature requests ### Reporting bugs and feature requests
* We will launch a bug bounty program later on for independant security researchers. If you find any security vulnerabilities, don't hesitate to contact us [security@whiteout.io](mailto:security@whiteout.io). * We will launch a bug bounty program later on for independent security researchers. If you find any security vulnerabilities, don't hesitate to contact us [security@whiteout.io](mailto:security@whiteout.io).
* You can also just create an [issue](https://github.com/whiteout-io/mail-html5/issues) on GitHub if you're missing a feature or just want to give us feedback. It would be much appreciated! * You can also just create an [issue](https://github.com/whiteout-io/mail/issues) on GitHub if you're missing a feature or just want to give us feedback. It would be much appreciated!
### Testing ### Testing
You can download a prebuilt bundle under [releases](https://github.com/whiteout-io/mail-html5/releases) or build your own from source (requires [node.js](http://nodejs.org/download/), [grunt](http://gruntjs.com/getting-started#installing-the-cli) and [sass](http://sass-lang.com/install)): You can download a prebuilt bundle under [releases](https://github.com/whiteout-io/mail/releases) or build your own from source (requires [node.js](http://nodejs.org/download/), [grunt](http://gruntjs.com/getting-started#installing-the-cli) and [sass](http://sass-lang.com/install)):
npm install && npm test npm install && npm test
This will download all dependencies, run the tests and build the Chrome Packaged App bundle **DEV.zip** which can be installed under [chrome://extensions](chrome://extensions) in developer mode. This will download all dependencies, run the tests and build the Chrome Packaged App bundle **release/whiteout-mail_DEV.zip** which can be installed under [chrome://extensions](chrome://extensions) in developer mode.
### Development ### Development
For development you can start a connect dev server: For development you can start a connect dev server:
grunt dev grunt dev
Then visit [http://localhost:8580/dist/chrome.html#/desktop](http://localhost:8580/dist/chrome.html#/desktop) for front-end code or [http://localhost:8580/test/new-unit/](http://localhost:8580/test/new-unit/) to test JavaScript changes. You can also start a watch task so you don't have rebuild everytime you make a change: Then visit [http://localhost:8580/dist/#/account?dev=true](http://localhost:8580/dist/#/account?dev=true) for front-end code or [http://localhost:8580/test/unit/](http://localhost:8580/test/unit/) to test JavaScript changes. You can also start a watch task so you don't have rebuild everytime you make a change:
grunt watch grunt watch
## Releasing Chrome App
grunt release-test --release=0.0.0.x
grunt release-stable --release=0.x.0
## Deploying Web App & Selfhosting
The App can be used either as a Chrome Packaged App or just by hosting it on your own trusted web server. You can build the app from source.
### Build from source
Clone the git repository
git clone https://github.com/whiteout-io/mail.git
Build and generate the `dist/` directory:
npm install && grunt
### Running the server
To test the server, start it in development mode (without SSL):
node server.js --dev
Navigate to [http://localhost:8889](http://localhost:8889) (or whatever port is set using the `PORT` environment variable).
To start the server for production use (this automatically redirects to `https`)
npm start
**A note on security: The app should not be used without SSL so it's best to set up a reverse proxy or Loadbalancer with your SSL certificates. If you are not sure how to do this it might be easier to use our managed web hosting or packaged apps under [https://whiteout.io/#product](https://whiteout.io/#product).**
You can limit incoming and outgoing connections to the socket.io proxy by setting the following environment variables:
# the web socket proxy listens to this port
# if unset, defaults to 8889
PORT=12345
# the socket.io proxy accepts connections from these origins to tunnel them to tcp,
# separate with commas
# if unset, defaults to 'localhost:' + port
INBOUND_ORIGINS='foo:1234,bar:569'
# the socket.io proxy opens tcp connections with these ports to tunnel them to socket.io
# separate with commas
# if unset, defaults to '143,465,587,993' (25 is forbidden by default)
OUTBOUND_PORTS='123,456,789'
To start the server in development mode (no forced HTTPS, iframe loads http content), run `node server.js --dev`
## License ## License
Copyright © 2013, Whiteout Networks GmbH. All rights reserved. The MIT License (MIT)
The code is open for inspection and peer review by the security community. Copyright (c) 2014 Whiteout Networks GmbH.
The code is currently not licensed under an open source license. If you're
interested in contributing or getting a license, please get in touch with Permission is hereby granted, free of charge, to any person obtaining a copy
us (info@whiteout.io). of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
### Third party libraries ### Third party libraries
We work together with existing open source projects wherever possible and contribute any changes we make back upstream. Many of theses libraries are licensed under an open source license. Here are some of them: We work together with existing open source projects wherever possible and contribute any changes we make back upstream. Many of theses libraries are licensed under an open source license. Here are some of them:
* [OpenPGP.js](http://openpgpjs.org): An implementation of OpenPGP in Javascript * [OpenPGP.js](http://openpgpjs.org) (LGPL license): An implementation of OpenPGP in Javascript
* [Inbox](https://github.com/andris9/inbox): Simple IMAP client for node.js * [email.js](http://emailjs.org) (MIT license): IMAP, SMTP, MIME-building and MIME-parsing engine
* [Nodemailer](http://www.nodemailer.com): SMTP client for node.js * [Forge](https://github.com/digitalbazaar/forge) (BSD license): An implementation of TLS in JavaScript
* [Forge](https://github.com/digitalbazaar/forge): An implementation of TLS in Javascript
* [node-shims](https://github.com/whiteout-io/node-shims): Shims for wrapping node's net/tls (TCP socket) APIs around chrome.socket

19
config/default.js Normal file
View File

@ -0,0 +1,19 @@
'use strict';
var port = process.env.PORT || 8889;
module.exports = {
server: {
port: port,
inboundOrigins: (process.env.INBOUND_ORIGINS || ('localhost:' + port)).split(',').map(function(host) {
return host.trim();
}),
outboundPorts: (process.env.OUTBOUND_PORTS || '143,465,587,993').split(',').map(function(i) {
return parseInt(i, 10);
})
},
log: {
level: "silly",
http: ':remote-addr [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer"'
}
};

10
config/integration.js Normal file
View File

@ -0,0 +1,10 @@
'use strict';
module.exports = {
server: {
port: 8889
},
log: {
level: "error"
}
};

7
config/production.js Normal file
View File

@ -0,0 +1,7 @@
'use strict';
module.exports = {
log: {
level: "error"
}
};

View File

@ -1,39 +1,68 @@
{ {
"name": "mail-html5", "name": "whiteout-mail",
"version": "0.1.0-dev", "description": "Mail App with integrated OpenPGP encryption.",
"author": "Whiteout Networks",
"homepage": "https://whiteout.io",
"engines": { "engines": {
"node": ">=0.8" "node": ">=0.10"
}, },
"scripts": { "scripts": {
"postinstall": "grunt dist-npm", "test": "grunt && grunt test",
"test": "grunt test && grunt", "start": "node server.js"
"start": "grunt && grunt dev"
}, },
"dependencies": { "dependencies": {
"crypto-lib": "https://github.com/whiteout-io/crypto-lib/tarball/v0.1.0", "compression": "^1.0.11",
"imap-client": "https://github.com/whiteout-io/imap-client/tarball/v0.1.0", "config": "^1.0.2",
"mailreader": "https://github.com/whiteout-io/mailreader/tarball/v0.1.0", "express": "^4.8.3",
"pgpmailer": "https://github.com/whiteout-io/pgpmailer/tarball/v0.1.0", "morgan": "^1.2.3",
"pgpbuilder": "https://github.com/whiteout-io/pgpbuilder/tarball/v0.1.0", "npmlog": "^0.1.1",
"requirejs": "2.1.10" "socket.io": "^1.0.6"
}, },
"devDependencies": { "devDependencies": {
"angular": "https://github.com/angular/angular.js/tarball/v1.2.8", "assemble": "~0.4.42",
"axe-logger": "~0.0.2",
"browsercrow": "https://github.com/whiteout-io/browsercrow/tarball/master",
"browsersmtp": "https://github.com/whiteout-io/browsersmtp/tarball/master",
"chai": "~1.9.2",
"crypto-lib": "~0.2.1",
"dompurify": "~0.7.3",
"grunt": "~0.4.1", "grunt": "~0.4.1",
"mocha": "~1.13.0", "grunt-angular-templates": "~0.5.7",
"chai": "~1.7.2", "grunt-autoprefixer": "~0.7.2",
"sinon": "~1.7.3", "grunt-browserify": "3.7.0",
"grunt-contrib-connect": "~0.5.0", "insert-module-globals": "6.5.0",
"grunt-contrib-jshint": "~0.6.4",
"grunt-contrib-qunit": "~0.2.2",
"grunt-mocha": "~0.4.1",
"grunt-contrib-clean": "~0.5.0", "grunt-contrib-clean": "~0.5.0",
"grunt-csso": "~0.5.0",
"grunt-contrib-sass": "~0.5.0",
"grunt-autoprefixer": "~0.3.0",
"grunt-contrib-watch": "~0.5.3",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-compress": "~0.5.2", "grunt-contrib-compress": "~0.5.2",
"grunt-node-webkit-builder": "~0.1.17" "grunt-contrib-concat": "^0.5.0",
"grunt-contrib-connect": "~0.5.0",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-jshint": "~0.6.4",
"grunt-contrib-sass": "~0.7.3",
"grunt-contrib-uglify": "^0.6.0",
"grunt-contrib-watch": "~0.5.3",
"grunt-csso": "~0.6.1",
"grunt-exorcise": "^0.2.0",
"grunt-manifest": "^0.4.0",
"grunt-mocha-phantomjs": "^0.7.0",
"grunt-shell": "~1.1.1",
"grunt-string-replace": "~1.0.0",
"grunt-svgmin": "~1.0.0",
"grunt-svgstore": "~0.3.4",
"handlebars-helper-compose": "~0.2.12",
"iframe-resizer": "^2.8.3",
"imap-client": "~0.14.2",
"jquery": "~2.1.1",
"mailbuild": "^0.3.7",
"mailreader": "~0.4.0",
"mocha": "^1.21.4",
"ng-infinite-scroll": "~1.1.2",
"openpgp": "^1.0.0",
"pgpbuilder": "~0.6.0",
"pgpmailer": "~0.9.1",
"sinon": "~1.7.3",
"sw-precache": "^1.3.0",
"tcp-socket": "~0.5.0",
"time-grunt": "^1.0.0",
"wo-smtpclient": "~0.6.0"
} }
} }

View File

@ -1,21 +0,0 @@
THANK YOU FOR USING GLYPHICONS!
If you would like to be among the first ones to hear about all the news, follow @glyphicons on Twitter.
LICENSE:
-------------------
GLYPHICONS FREE are released under the Creative Commons Attribution 3.0 Unported (CC BY 3.0). The Glyphicons FREE can be used both commercially and for personal use, but you must always add a link to www.glyphicons.com in a prominent place (e.g. the footer of a website), include the CC-BY license and the reference to www.glyphicons.com on every page using Glyphicons.
Glyphicons Halflings are also a part of Bootstrap by Twitter, and are released under the same Apache 2.0 license as Bootstrap. While you are not required to include attribution on your Bootstrap-based projects, I'd certainly appreciate a visibile link back to glyphicons.com in any place you find appropriate (footer, docs, etc).
All logos and trademarks in social icons are the property of the respective trademark owners.®
CONTACT:
-------------------
Web: http://glyphicons.com/
Email: glyphicons@gmail.com
Twitter: http://twitter.com/glyphicons
If you want to use the icons without restrictions, please buy any version on www.glyphicons.com, thank you.
Jan Kovařík

View File

@ -0,0 +1,2 @@
storeFile=/Users/tanx/.keystore
keyAlias=mykey

45
res/aws_release.sh Executable file
View File

@ -0,0 +1,45 @@
#!/bin/sh
# go to root
cd `dirname $0`
cd ..
if [ "$#" -ne 3 ] || [ "$1" != "prod" ] && [ "$1" != "test" ] ; then
echo 'Usage: ./res/aws_release prod|test from-branch 1.0.0'
exit 0
fi
# switch branch
git checkout $2
git branch -D release/$1
git checkout -b release/$1
git merge $2 --no-edit
# abort if tests fail
set -e
# build and test
rm -rf node_modules/
npm cache clear
npm install
npm test
grunt release-$1 --release=$3
# install only production dependencies
rm -rf node_modules/
npm install --production
# delete .gitignore files before adding to git for aws deployment
find node_modules/ -name ".gitignore" -exec rm -rf {} \;
# Add runtime dependencies to git
sed -i "" '/dist/d' .gitignore
sed -i "" '/node_modules/d' .gitignore
git add .gitignore node_modules/ dist/
git commit -m "Update release"
# push to aws
eb deploy
# switch back to $2 branch
git checkout $2

73
res/cca_build.sh Executable file
View File

@ -0,0 +1,73 @@
#!/bin/sh
# reads values from JSON
jsonValue() {
KEY=$1
num=$2
awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~/'$KEY'\042/){print $(i+1)}}}' | tr -d '"' | sed -n ${num}p
}
# go to root
cd `dirname $0`
cd ..
DIR=release/cca
PROJNAME=`less dist/manifest.json | jsonValue name 1 | sed -e 's/^ *//' -e 's/ *$//'`
# create
rm -rf $DIR
mkdir -p $DIR
cca create $DIR/Whiteout --link-to=dist/manifest.json
#prepare
cd $DIR/Whiteout
cca prepare
#
# post-build tweaks
#
echo ""
echo "## Running post-build tweaks"
# cp signing config
echo "Copy Android signing config"
cp ../../../res/android-release-keys.properties .
# status bar should not overlay the web view
echo "Tweaking iOS status bar to not overlay the web view"
sed -i "" 's/StatusBarOverlaysWebView" value="true"/StatusBarOverlaysWebView" value="false"/' "platforms/ios/$PROJNAME/config.xml"
# status bar should use dark font on light background
echo "Tweaking iOS status bar to use dark font on light background"
sed -i "" 's/StatusBarStyle" value="lightcontent"/StatusBarStyle" value="darkcontent"/' "platforms/ios/$PROJNAME/config.xml"
# copy splash screens
echo "Copying splash screens"
cp ../../../src/img/Default* "platforms/ios/$PROJNAME/Resources/splash"
# fixing missing/wrong icons
echo "Fixing wrong/missing iOS icons"
cp ../../../src/img/icon-40-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-40.png"
cp ../../../src/img/icon-80-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-40@2x.png"
cp ../../../src/img/icon-120-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-40@3x.png"
cp ../../../src/img/icon-50-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-50.png"
cp ../../../src/img/icon-100-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-50@2x.png"
cp ../../../src/img/icon-60-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-60.png"
cp ../../../src/img/icon-120-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-60@2x.png"
cp ../../../src/img/icon-180-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-60@3x.png"
cp ../../../src/img/icon-72-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-72.png"
cp ../../../src/img/icon-144-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-72@2x.png"
cp ../../../src/img/icon-76-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-76.png"
cp ../../../src/img/icon-152-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-76@2x.png"
cp ../../../src/img/icon-29-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-small.png"
cp ../../../src/img/icon-58-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-small@2x.png"
cp ../../../src/img/icon-87-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon-small@3x.png"
cp ../../../src/img/icon-57-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon.png"
cp ../../../src/img/icon-114-ios.png "platforms/ios/$PROJNAME/Resources/icons/icon@2x.png"
# print reminder for manual work in xcode
echo ""
echo "### Reminder for manual steps required for iOS release"
echo "### Change deployment target to iOS 8.1"
echo "### Add retina icons to build, migrate to icon set, fix splash screens config"

11
res/cca_release_android.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
# go to root
cd `dirname $0`
cd ..
DIR=release/cca
#prepare
cd $DIR/Whiteout
cca build android --release

8
res/cca_run_android.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
# go to root
cd `dirname $0`
cd ..
cd release/cca/Whiteout
cca run android --device

8
res/cca_run_ios.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
# go to root
cd `dirname $0`
cd ..
cd release/cca/Whiteout
cca run ios

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Some files were not shown because too many files have changed in this diff Show More