Commit graph

58 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
a0f7114a39 Bugfix: KnockoutJS failed to output text '0' 2024-02-12 20:07:08 +01:00
the-djmaze
7c1f70c51e Replace some ko.exportSymbol('*') in favour of ko['*']
and drop ko.exportProperty()
2024-02-11 15:37:24 +01:00
the-djmaze
7ca5991041 KnockoutJS use Symbol for isObservableArray() 2024-02-11 14:44:47 +01:00
the-djmaze
f105ed3f9d Changed Knockout a bit 2024-02-03 12:06:56 +01:00
the-djmaze
2a3cea63cc KnockoutJS drop unused rateLimit method 2024-01-09 14:52:05 +01:00
the-djmaze
f7f3b0d373 Drop the disabled Knockout twoWayBindings 2024-01-08 18:33:37 +01:00
the-djmaze
e55938b653 Drop support for _ko_property_writers and for two-way binding they must be observables 2024-01-08 05:25:48 +01:00
the-djmaze
81ccee1152 Remove some unused Knockout code 2024-01-08 05:24:15 +01:00
the-djmaze
cf910c678b Revamp Domains Settings IMAP disabled capabilities to extend it 2023-12-03 17:08:25 +01:00
the-djmaze
4dbcade830 Knockout simplify Object.setPrototypeOf 2023-03-06 11:05:44 +01:00
the-djmaze
ac424fc584 re-enable simplified knockoutjs checked binding 2023-01-30 14:03:45 +01:00
the-djmaze
2d832ff5ea Fix selectbox issue with domain connection type #689 2022-11-21 09:01:59 +01:00
the-djmaze
9b8778f823 Reduce Knockout.js footprint by using ECMAScript 2020 2022-09-13 23:49:18 +02:00
the-djmaze
a566f6ed5a More Optional chaining in Knockout.js 2022-09-13 22:00:31 +02:00
the-djmaze
a3a4a057e5 Dropped the knockout.js tasks from compiled code 2022-09-12 22:31:37 +02:00
the-djmaze
ef8b1f40e4 Use JavaScript Optional chaining in vendors/* 2022-09-12 22:07:51 +02:00
djmaze
30e9b89d9b notifySubscribers and equalityComparer are not used outside KnockoutJS 2021-12-31 17:10:40 +01:00
djmaze
679d7356e0 More ko.computed to pureComputed 2021-12-31 17:02:32 +01:00
djmaze
ac2238a23f Bugfix: Cannot write a value to a ko.computed unless you specify a 'write' option 2021-12-31 12:28:43 +01:00
djmaze
b98762dd68 Replace deprecated String.substr with String.slice 2021-12-08 11:35:41 +01:00
djmaze
dfa448c7cc v2.7.3 2021-10-11 14:39:36 +02:00
djmaze
4a403df168 Cleanup KnockoutJS and use ECMASCRIPT_2018 for its closure compiler 2021-10-01 17:36:21 +02:00
djmaze
bcc3dc51ef Speedup KnockoutJS by simplifying components loader system.
Custom loaders are not used, so it is removed
2021-09-29 12:51:51 +02:00
djmaze
4142526ba6 Cleanup KnockoutJS 2021-09-28 14:40:24 +02:00
djmaze
244d4c49c5 Remove unused KnockoutJS afterMove 2021-09-27 12:49:40 +02:00
djmaze
5839bcf62d Remove some unused KnockoutJS features 2021-09-13 16:20:29 +02:00
djmaze
74f74163c6 Bugfix: <!-- ko text: valueAccessor --> failed
https://knockoutjs.com/documentation/text-binding.html#note-3-using-text-without-a-container-element
2021-08-12 12:54:42 +02:00
djmaze
89075b18bf Remove unused KnockoutJS code 2021-08-10 15:16:21 +02:00
djmaze
3a32a09f2a KnockoutJS:
* remove deprecated allBindings as Accessor https://github.com/knockout/knockout/pull/2133
* remove unused event '*Bubble' https://knockoutjs.com/documentation/event-binding.html#note-4-preventing-the-event-from-bubbling
* remove unused 'completeOn' https://knockoutjs.com/documentation/binding-lifecycle-events.html#indicating-that-a-control-flow-binding-completes-asynchronously
2021-08-10 15:00:49 +02:00
djmaze
cbecdd93a0 More Knockout code to ES6 2021-07-29 11:43:47 +02:00
djmaze
c3c1fc2c0e Tiny knockoutjs speedup 2021-04-23 18:16:36 +02:00
djmaze
fac36e828b Cleanup Squire and Knockout with help of Chromium Code Coverage
Bugfix: Squire inlineNodeNames the 'I' tag was missing
Improved: Squire style editing
2021-02-23 22:50:48 +01:00
djmaze
75b7176ada Remove knockout evaluatorFunctionTarget
Drop deprecated knockout throttle extender
Added knockout debounce extender
2021-02-10 11:33:36 +01:00
djmaze
ebe2c0536f Bugfix: compose mail select contacts for cc/bcc failed
Cleanup: Inputosaurus and Knockout
Change: Knockout domData now uses WeakMap
Replaced: Knockout domManipulation with a documentFragment
2021-02-01 14:34:24 +01:00
djmaze
b6f0b634fb Cleanup calls to Knockout observableArray
Improved Knockout observableArray
2021-01-22 12:23:20 +01:00
djmaze
fa5476e486 Added support for 'length' property to Knockout observable 2021-01-22 09:46:04 +01:00
djmaze
bdd68d0d8f improved knockout observableArray with all Array.prototype functions 2020-11-03 15:53:50 +01:00
djmaze
1d57a62ddd Dropped more unused knockoutjs code 2020-10-29 11:15:04 +01:00
djmaze
5a0215987a knockoutjs replaced slow obj.__proto__ with Object.setPrototypeOf() 2020-10-28 20:19:38 +01:00
djmaze
d49916731f replaced ko.utils.array* with native 2020-10-28 20:17:45 +01:00
djmaze
ff6fb41812 Remove more unused knockout code 2020-10-28 13:58:37 +01:00
djmaze
188a40b196 Basic JSON object properties revival now handled by AbstractModel
This will be better for future use of JSON.stringify() and JSON.parse()
For now the difference between the PHP JSON being PascalCase and the JS object properties being camelCase is handled by AbstractModel
2020-10-20 17:39:00 +02:00
djmaze
36fa52307f Added: knockout.js observable toJSON() 2020-10-20 15:39:14 +02:00
djmaze
1e735bf4a9 Drop unused Knockout functionality
Especially dropped memoization for improved speed.
2020-10-13 14:56:23 +02:00
djmaze
e7975d4f82 Bugfix: Knockout 'with:' used on 1 place 2020-10-13 10:15:50 +02:00
djmaze
c2a5d0fda5 ko hidden: use html5 hidden attribute
ko visible: rollback to use style.display
2020-10-11 11:59:36 +02:00
djmaze
92836117ee Bugfix: put back the knockout bindings if/ifnot as they are in use 2020-10-09 12:44:39 +02:00
djmaze
ba7ed497b2 Cleanup JS and better terser compression 2020-10-09 11:58:15 +02:00
djmaze
ac535b1d03 Remove more unused Knockout code 2020-10-09 10:20:22 +02:00