Commit graph

65 commits

Author SHA1 Message Date
S-A-L13
876ed221c3
Update Fork (#2)
* Cleanup OpenPgpImportPopupView code

* update polish translation

* small fix

* Added Import S/MIME certificate popup
And much better handling of the sign and encrypt options

* bugfix: store in Passphrases

* Resolve #1448

* pre-verify S/MIME opaque signed messages so we have a body to view

* Fix timestampToString() for future dates

* Move php8.php to /app/libraries/polyfill/

* Improved Settings handling to prevent bugs in outer code

* Changed AbstractProvider::IsActive() to be abstract

* Example for #1449

* bugfix: previous IsActive() commit

* OpenSSL required due to S/MIME

* Use get_debug_type() instead of gettype()

* update polish translation

* Make all Enumerations classes abstract

* Added search functionality in Admin -> Config
And removed the unused ['capa']['quota']

* Cleanup Quota handling

* OPEN_PGP should be OPENPGP as it is one word

* Improve Capa handling

* Resolve #1451

* Bugfix TypeError: b64Encode(...).match(...) is null

* Small StorageType change

* Bugfix: mailvelope editor failed

* Bugfix: undefined getMailvelopePrivateKeyFor()

* Bugfix: MIME parser RegExp didn't escape `boundary` which caused issues

* Return detailed info on PgpImportKey

* Show GnuPG verify error

* Sort PGP keys by email and id

* Sort S/MIME certificates on emailAddress else validTo

* S/MIME import from signature use `BEGIN PKCS7`

* Optionally use existing private key to generate S/MIME certificate

* Chaned some error_log() to MailSo Logger()

* Force reload of S/MIME certificates list on import

* Make better use of SnappyMail\SensitiveString

* Fix view PGP key button

* Mask all POST data that has a key which contains `pass`

* v2.35.1

* Resolve #1455

* Improved GnuPG error handling

* Update pt/pt-PT translation

* update Polish translation

* Drop support for gnupg pecl extension as it fails with "no passphrase" issues

* Resolve #1456

* Resolve #1458

* v2.35.2

* fix changelog

* Resolve #1461

* Update pt/pt-PT translation

* compact-composer plugin v1.0.0

* Resolve #1462

* Fix decrypt error message

* `new Error()` to `Error()`

* Resolve #1463

* Show url for #1466

* Simplify SignMe/Remember me code

* Simplify language Notifications

* Bugfix: SetPassword expects \SnappyMail\SensitiveString

* https://github.com/the-djmaze/snappymail/issues/1450#issuecomment-1972147950

* improve: fire the 'squire2-toolbar' event after more props are added

* improve: add dark theme support and use 'button' element as menu trigger for consistent styling

* fix: use compact template in non-destructive way (do not replace the PopupsCompose template if a different wysiwyg is used)

* Update admin.json

* Update user.json

* CSS rainloopErrorTip location

* Improved error handling on PGP and S/MIME decrypt

* KnockoutJS remove unused `beforeRemove`

* KnockoutJS drop unused `as`

* KnockoutJS simplify renderMode because only 1 option is used

* KnoutJS cleanup templating.js a bit

* KnockoutJS drop unused `bindingRewriteValidators`

* KnockoutJS drop the twoWayBindings code

* KnockoutJS simplify virtualElements binding check

* KnockoutJS simplify applyBindingsToNodeInternal

* KnockoutJS use Array.isArray

* KnockoutJS drop alias `textinput` for `textInput`

* KnockoutJS scramble `createChildContext`

* KnockoutJS scramble `controlsDescendantBindings`

* KnockoutJS scramble `exportDependencies`

* KnockoutJS drop unused `throttleEvaluation`

* KnockoutJS drop unused `valueAllowUnset`

* KnockoutJS drop unused `templateNodes`

* KnockoutJS drop unused `optionsCaption`

* KnockoutJS drop unused `dontLimitMoves`

* KnockoutJS drop unused `uniqueName`

* KnockoutJS drop IE leftovers

* KnockoutJS drop unused `preprocess`

* KnockoutJS drop unused "disposeWhenNodeIsRemoved" and "disposeWhen"

* KnockoutJS don't scramble exportDependencies. controlsDescendantBindings, createChildContext

* KnockoutJS drop unused `$parentContext` and `$parents`

* KnockoutJS drop unused `$rawData`

* Knockoutjs built latest

* KnockoutJS drop unused template options `nodes`, `if`, `ifnot`

* KnockoutJS use more Array.isArray

* KnockoutJS cleanup code a bit

* KnockoutJS primitiveTypes can just be checked with Object()

* KnockoutJS rebuilt

* Verify S/MIME signed automatically and log Exception

* Automatically verify PGP and S/MIME signed messages

* `new Error` to `Error`

* By default throw AccountNotAllowed as confused in #1478

* GPG use pinentries for decrypt, sign and export

* Better GPG error handling

* GPG show error on view/export

* OpenPGP fix handling of importing keys

* Make "verify signatures automatically" optional, as it requires more IMAP fetching

* S/MIME don't post identity key and certificate, just fetch from server

* Show error to old browsers, instead of crashing

* Automatically verify S/MIME decrypted signed message

---------

Co-authored-by: the-djmaze <>
Co-authored-by: tinola <tinola@poczta.onet.pl>
Co-authored-by: Maarten <3752035+the-djmaze@users.noreply.github.com>
Co-authored-by: lmperfis <joint.striker@gmail.com>
Co-authored-by: Sergey Mosin <sergey@srgdev.com>
Co-authored-by: hguilbert <51283484+hguilbert@users.noreply.github.com>
2024-03-04 17:00:27 +01:00
the-djmaze
2084913a4d Rename moment to time as it has nothing todo anymore with momentjs
Change some observables to static as they never change later
2024-02-05 01:15:05 +01:00
the-djmaze
20a2f5f185 Added base code for RTL support #1056 2023-04-11 12:55:59 +02:00
the-djmaze
8d52b0afdf Bugfix: Notification enum conflicts with window.Notification 2023-02-20 15:59:37 +01:00
the-djmaze
c21817e5e0 v2.25.1 2023-01-30 15:49:58 +01:00
the-djmaze
98996ba4b7 Resolve #843 2023-01-17 14:26:00 +01:00
the-djmaze
a83cb9150e Change Intl.DateTimeFormat() into toLocaleString() for iOS < 14 2022-12-23 19:03:35 +01:00
the-djmaze
508c262a4b SETTINGS_LABELS remove 'LABEL_' and '_NAME' part 2022-12-23 17:54:13 +01:00
the-djmaze
a9b336d90f 'Y-m-d\\TH:i:s' as 'ISO8601' 2022-12-23 16:10:35 +01:00
the-djmaze
b0ed74575f Cleanup locate time handling 2022-12-23 12:22:57 +01:00
the-djmaze
8aa9d3009b Resolve #737 by new messagelist view per day 2022-12-22 17:15:54 +01:00
the-djmaze
d0db7f5ce3 Resolve #760 2022-12-12 13:03:41 +01:00
the-djmaze
93d8b5a419 Improve some login/logout handling 2022-10-18 23:32:47 +02:00
the-djmaze
b12852bd08 Reduce JavaScript footprint 2022-10-10 13:52:56 +02:00
the-djmaze
732b6eb641 Use JavaScript Optional chaining 2022-09-02 11:52:07 +02:00
the-djmaze
c0f494c758 Some small cleanups 2022-03-08 10:52:40 +01:00
the-djmaze
661cd2aaf9 Restructure JavaScript
Split list code from MessageUserStore into MessagelistUserStore
Move functions out of AppUser
2022-02-23 19:26:52 +01:00
the-djmaze
6aedba9d36 UploadErrorCode/UploadError use PHP UPLOAD_ERR_* numbers 2022-01-11 13:05:17 +01:00
djmaze
b98762dd68 Replace deprecated String.substr with String.slice 2021-12-08 11:35:41 +01:00
djmaze
6d7911a9ed Object.entries().forEach() to forEachObjectEntry() 2021-12-01 14:23:37 +01:00
djmaze
e52addf346 When login don't reload the whole browser. Just rebuilt screens 2021-11-01 11:24:11 +01:00
djmaze
fb86d15c02 Treat Kolab folders as SystemFolder and show the type in User -> Settings -> Folders 2021-10-21 17:15:00 +02:00
djmaze
4ca29a2e8f Cleanup knockout Components 2021-09-14 16:11:50 +02:00
djmaze
cc03546484 Reduce JavaScript footprint 2021-08-20 15:40:07 +02:00
djmaze
1f2208d304 Cleanup time handling 2021-07-19 14:26:32 +02:00
djmaze
ce63ba506a Keep AUTH_SPEC_TOKEN_KEY
And now we can embed theme and language in index.html template
2021-04-28 12:08:07 +02:00
djmaze
ca59c21602 Bugfix: translator "undefined" 2021-04-12 16:30:39 +02:00
djmaze
fa371e25bf Revamp language system for #82 2021-04-12 12:57:35 +02:00
djmaze
23e15fd161 Use own createElement() instead of doc.createElement 2021-03-25 09:38:45 +01:00
djmaze
7eaaa0a793 Upgrade i18n() to use Object.entries()
And replace quoted object keys to be without quotes
2021-03-24 21:26:40 +01:00
djmaze
11fd6736bb Set response ErrorCode as iError for easier fetch error handling 2021-03-18 12:33:13 +01:00
djmaze
7ccc44616d Small code cleanups and fix translations 2021-01-27 00:26:31 +01:00
djmaze
ad8fd8879b This version uses Rollup instead of WebPack.
Due to that the code is smaller and has changes to prevent Circular Dependencies
2021-01-25 22:00:13 +01:00
djmaze
0d13484cdc Cleanup and simplify i18n code
There's no need for I18N_NOTIFICATION_DATA and I18N_NOTIFICATION_MAP
Also bugfix: NEW_PASSWORD_FORBIDDENT => NEW_PASSWORD_FORBIDDEN
2021-01-04 12:08:41 +01:00
djmaze
0528bcf911 Cleanup language loader 2020-10-15 12:59:56 +02:00
djmaze
6f585e1f1d Use Intl.DateTimeFormat instead of momentjs where we can
Need to solve the Intl.RelativeTimeFormat to drop momentjs
2020-10-15 00:26:40 +02:00
djmaze
4977494f6b Bugfix: Translator append() should be appendChild() 2020-08-31 11:31:35 +02:00
djmaze
bdb36ec128 Use less jQuery, more native 2020-08-27 15:45:47 +02:00
djmaze
1d4224d733 Drop License code (not used by comunity) 2020-08-18 20:45:43 +02:00
djmaze
97a73c6639 Replace timeOutAction() with debounce
Replace delegateRun()
Revert my throttle/debounce setTimeout() to Function.prototype[throttle/debounce]
2020-08-18 20:24:17 +02:00
djmaze
1b811428e7 new Date().getTime() to Date.now() 2020-08-17 21:35:03 +02:00
djmaze
efc2dd89e1 Momentor.reload to CustomEvent 2020-08-14 21:19:06 +02:00
djmaze
e7180a86ce Made eslint using 'browser' environment and added globals, because RainLoop is used in browsers.
This also allowed to remove all webpack 'externals' overhead.
2020-08-12 00:25:36 +02:00
djmaze
ea48f5060b isArray to native Array.isArray
isUnd(*) to native undefined === *
isFunc to native typeof * === 'function'
isObject to native typeof * === 'object'
microtime() to native Date().getTime();
noop to native ()=>{}
noopFalse to native ()=>false
noopTrue to native ()=>true
boolToAjax to native *?'1':'0'
Underscore.js to native
2020-07-29 21:49:41 +02:00
djmaze
134cb7d52a Replace missed $.ajax with window.fetch 2020-07-23 20:35:37 +02:00
djmaze
43c92a82e6 Underscore.js _.delay() to native setTimeout() 2020-07-22 20:28:25 +02:00
djmaze
178e5f6ef7 Remove _.isNull 2020-07-22 10:54:28 +02:00
djmaze
756fe81091 Replaced _.has() with native Object.prototype.hasOwnProperty.call() 2020-07-20 22:06:21 +02:00
djmaze
db2d95d684 JavaScript inArray()/indexOf() to .includes() 2020-07-20 14:33:33 +02:00
djmaze
ec3fd5b7e4 Remove jquery-letterfx, just like https://github.com/RainLoop/rainloop-webmail/pull/1698/commits/cd55e3ccc2a3d5fb7ca06dc111c2ba6640423780 2020-07-20 11:26:40 +02:00