Commit graph

491 commits

Author SHA1 Message Date
the-djmaze 0bbf8f4914 Added plain message tel uri detection 2022-09-21 09:52:30 +02:00
the-djmaze aa90583116 Resolve #516 2022-09-12 23:16:59 +02:00
the-djmaze 7dc4b283b3 Simplify message .priorityHigh 2022-09-12 23:13:04 +02:00
the-djmaze 47a861a243 Speedup listChecked().length to hasChecked() 2022-09-09 10:02:40 +02:00
the-djmaze 9dcdd7e41c Contact add Note and improved changes check 2022-09-08 09:37:27 +02:00
the-djmaze 56d64b325c Improved Contacts popup view 2022-09-06 23:18:14 +02:00
the-djmaze f1241cf803 Added some business fields to AddressBook 2022-09-06 22:35:04 +02:00
the-djmaze 2627a16c36 Improved Contacts to check if changes should be saved 2022-09-06 19:22:06 +02:00
the-djmaze c9ad0ef170 Improved new AddressBook system 2022-09-06 14:26:07 +02:00
the-djmaze fe20741409 Improved Contacts handling 2022-09-05 11:04:12 +02:00
djmaze 1a5b8819fa Merge remote-tracking branch 'origin/master' into addressbook 2022-09-02 15:15:01 +02:00
the-djmaze 732b6eb641 Use JavaScript Optional chaining 2022-09-02 11:52:07 +02:00
the-djmaze 3d5e094fd8 Resolve #506 2022-08-30 21:42:05 +02:00
the-djmaze aff2d4dd76 Moved handling of images using proxy in preperation of #491 2022-08-26 11:11:19 +02:00
the-djmaze e5113ef20a Resolve #497 2022-08-25 14:08:19 +02:00
the-djmaze f3009ee781 Resolve #484 2022-08-10 11:47:15 +02:00
the-djmaze eb0cd796b0 Improved mailbox handling of empty message subject and messagelist folder detection 2022-08-04 12:18:07 +02:00
the-djmaze 2837126d60 Get AddressBook Import/Export working 2022-07-25 22:55:48 +02:00
the-djmaze 859a18470e Revert nickname idea (it's not updating as it was not observing) 2022-07-25 13:25:02 +02:00
djmaze 052f34a9f5 Some cleanups for new AddressBook 2022-07-22 22:59:50 +02:00
the-djmaze f46e996570 Merge branch 'master' into addressbook
# Conflicts:
#	snappymail/v/0.0.0/app/templates/Views/User/PopupsContacts.html
2022-07-21 14:25:51 +02:00
the-djmaze 28d4a018fd Resolve #439 2022-06-16 01:16:19 +02:00
the-djmaze 8cf8502485 Filter more message flags/keywords/tags 2022-06-10 01:06:17 +02:00
the-djmaze 5a47893cd2 Process feedback of #419 2022-06-10 00:35:13 +02:00
the-djmaze c2d6ee90ac Improved message flags/keywords/tags #419 2022-06-08 14:54:51 +02:00
the-djmaze 78a3b1a5be Cleanup some MessageFlagsCache handling 2022-06-07 15:48:16 +02:00
the-djmaze a60d027169 Improved message cache handling and drop unused NEW_MESSAGE_CACHE 2022-06-07 11:54:19 +02:00
the-djmaze 9e4edd8843 Improved tags #419 2022-06-03 14:46:05 +02:00
the-djmaze 70e3e6423e Added message tags toggle for #419 2022-06-03 13:47:04 +02:00
the-djmaze a6d97a601c Translate some for #419 2022-06-02 23:13:20 +02:00
the-djmaze 855e2c61c5 Improved message flags/keywords handling for #419 2022-06-02 21:26:57 +02:00
the-djmaze 118505f91e Use JMAP rfc8621 section-2 totalEmails, unreadEmails and isSubscribed 2022-06-01 22:50:35 +02:00
the-djmaze 84c1fb5402 Merge branch 'master' into addressbook 2022-05-31 21:25:59 +02:00
the-djmaze 899648d8e4 Improved handling of imap message flags/keywords 2022-05-31 20:38:35 +02:00
the-djmaze 1e61171f9c Fix RFC 9051 IMAP4rev2 keywords and $ReadReceipt should be $MDNSent 2022-05-31 17:12:29 +02:00
the-djmaze fe9d0da14a Added Thunderbird labels colors as test for #419 2022-05-30 12:58:50 +02:00
the-djmaze a71874a8c4 Redesign AddressBook 2022-05-29 00:22:50 +02:00
the-djmaze e205a0d3e0 Resolve #248 View eml attachments 2022-05-11 23:13:24 +02:00
the-djmaze 671062af31 Resolve #348 2022-04-25 09:40:38 +02:00
the-djmaze c5cf9fc71d Some improvements, as found while investigating #322 2022-04-13 10:48:14 +02:00
the-djmaze 7585ac450e Cleanup Email.toLine() 2022-03-30 10:26:00 +02:00
the-djmaze c76823dc5f Some tiny changes 2022-03-14 15:42:05 +01:00
djmaze d6dc4d291c Split Sieve/Filters code from app.js so that i can work on the new Sieve GUI 2022-03-11 10:26:25 +01:00
the-djmaze 0106751e64 Bugfix: HTMLTemplateElement never has a <body> element 2022-03-09 16:53:04 +01:00
the-djmaze f4cd25f8ad Added Sieve parser code in master 2022-03-09 12:33:31 +01:00
the-djmaze 90d835059a Resolve #258 2022-03-04 09:31:14 +01:00
the-djmaze 06b5b83588 removed default export 2022-02-24 14:01:41 +01:00
the-djmaze bb4ff4fdc7 Bugfix: rl.app.setExpandedFolder() undefined 2022-02-23 22:23:16 +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 24b638cd82 Cleanup some JavaScript 2022-02-21 15:36:34 +01:00
the-djmaze e324e2f6b6 Replaced tricky delegateRunOnDestroy() with koArrayWithDestroy()
koArrayWithDestroy creates ko.observableArray and calls the desired onDestroy() on entry delete.
2022-02-17 12:48:57 +01:00
the-djmaze f4bed88e39 Cleanup pgp decrypt code and show green when decrypted 2022-02-17 10:18:47 +01:00
the-djmaze 6c795d4ced Bugfix: missing comma 2022-02-15 12:08:52 +01:00
the-djmaze 9b82830c36 Improved bug #228 2022-02-15 11:05:01 +01:00
the-djmaze e2c171f302 Resolve #202 2022-02-15 10:22:52 +01:00
the-djmaze 9d8325d5a8 Improved "View in separate window" with theme colors 2022-02-13 20:01:21 +01:00
the-djmaze 803113568f Resolve #228 2022-02-13 12:58:01 +01:00
the-djmaze 44ee236709 dispatchEvent(new CustomEvent(...)) to fireEvent(...) 2022-02-11 12:21:16 +01:00
the-djmaze e0e490c64f #89 Decrypt and verify with OpenPGP.js and GnuPG 2022-02-11 11:01:07 +01:00
the-djmaze 2037f21c45 Resolve #180 and now works with #89 2022-02-10 17:01:36 +01:00
the-djmaze 25a786d584 #89 added downloading of decrypted attachments 2022-02-10 16:35:55 +01:00
the-djmaze 9188a8bcd2 Improved cleanHtml and the handling of removeColors for dark mode 2022-02-10 10:25:21 +01:00
the-djmaze ad6e1bebf8 Much better HTML to Plain converter 2022-02-07 10:23:41 +01:00
the-djmaze 3fc5216841 Improved Composer handling with PGP messages 2022-02-04 13:40:59 +01:00
the-djmaze 96de0be977 #89 solve edit/reply encrypted message/draft 2022-02-04 09:54:59 +01:00
the-djmaze 6b2311663b #89 Hide PGP SIGNATURE from cleartext signed messages 2022-02-02 18:43:55 +01:00
the-djmaze 93db6e6e0e #89 verify detached signature using GnuPG 2022-02-02 14:36:49 +01:00
the-djmaze e265a0f1c1 Moved the message HTML parsing from PHP to JavaScript
Now we can properly parse PGP/MIME HTML messages
2022-02-02 13:02:48 +01:00
the-djmaze 6b26ddec7a #89 Redesign HTML parsing for securing PGP decrypted HTML 2022-02-01 11:46:12 +01:00
the-djmaze 4eb70c3f06 #89 show decrypted HTML with inline attachments 2022-01-31 17:29:41 +01:00
the-djmaze 0da681f074 OpenPGP.js now stores keys in localStorage
Renamed all deleteAccess to askDelete
2022-01-27 23:07:34 +01:00
the-djmaze 9ab72e7a34 #89 Improved handling of OpenPGP.js stored keys 2022-01-27 20:54:27 +01:00
the-djmaze ff7e41ad08 #89 Use OpenPGP.js v5.1.0 (still in progress) 2022-01-27 16:00:52 +01:00
the-djmaze a7eeeb4f55 Many more changes for #89 2022-01-20 16:38:27 +01:00
the-djmaze 3cc3a76b23 Composer changes for OpenPGP.js 2022-01-20 09:59:56 +01:00
the-djmaze a47397ef09 Revamp PGP management due to implementing Mailvelop and PEAR Crypt_GPG 2022-01-19 18:24:07 +01:00
the-djmaze bf84684965 Added GnuPG->verify() for testing #89
Bugfix SnappyMail\PGP\Keyservers
Renamed DoPgpVerify to DoMessagePgpVerify
2022-01-17 22:04:14 +01:00
the-djmaze fde44c0102 Changes for #89
This part fetches the required message parts for pgp verification.
2022-01-17 17:16:25 +01:00
the-djmaze 8dcd0cf833 Changes for #89
Now it does not fetch the PGP signature, because validation was broken anyway.
Instead it validates multipart/signed according to RFC 3156 section 5 and returns details for the signed part:
* BodyPartId
* SigPartId
* MicAlg

So in the future several implementations (GnuPG, OpenPGP.js, etc.) can use the correct data for verification.
2022-01-17 15:58:23 +01:00
the-djmaze 630dc1e854 Added toggle in message menu to switch between HTML/Plain content parts (when available) 2022-01-14 17:13:17 +01:00
the-djmaze 464e766fcc Put OpenPGP check outside "plain".
This allows also for checking HTML messages (but errors for now)
2022-01-13 12:00:12 +01:00
the-djmaze 0e2e44a269 Changes for #180 2022-01-10 14:30:55 +01:00
djmaze 954de06f86 Switch from ko.computed to ko.pureComputed
This should provide performance and memory benefits over regular computed observables
2021-12-31 13:30:05 +01:00
djmaze 94bfe09f63 Cleanup message attachments collections 2021-12-16 15:54:43 +01:00
djmaze 1d9c772b94 Improved "delete folder" error handling. 2021-12-13 14:32:15 +01:00
djmaze a512759289 Added: sort Folders on add/rename folder 2021-12-09 11:24:30 +01:00
djmaze c8e4d589cb Offload server CPU to client when fetching folder list 2021-12-08 14:08:25 +01:00
djmaze b98762dd68 Replace deprecated String.substr with String.slice 2021-12-08 11:35:41 +01:00
djmaze 2719f08e26 Revamp mailbox management so that reloading of the whole folder tree is not needed 2021-12-08 11:06:42 +01:00
djmaze 3a61bb3e5a Revamp the FullNameHash system for better readable urls
And reduce the folders caching footprint.
And it reduces server load.
2021-12-07 14:03:30 +01:00
djmaze e6b6531248 Move b64EncodeJSON to Utils 2021-12-07 12:40:55 +01:00
djmaze d734a3e415 Better mail message handling
* Cleanup HTML parsing
* Drop useless Microsoft 'Sensitivity' MIME Header
* Revamp Flags handling
2021-12-06 16:08:58 +01:00
djmaze 0d809dd574 Cleanup additional accounts in system menu 2021-12-02 11:12:21 +01:00
djmaze 6d7911a9ed Object.entries().forEach() to forEachObjectEntry() 2021-12-01 14:23:37 +01:00
djmaze 547d66ebcb Easier SystemFolders handling 2021-12-01 13:54:35 +01:00
djmaze 31db5ee238 Bugfix: saveSystemFolders failed at initialization of mailbox 2021-12-01 12:04:17 +01:00
djmaze d33ec54c1c FolderFullNameRaw is gone due to UTF8 2021-11-30 10:19:43 +01:00
djmaze 7afbc05d18 Cleanup request Folders response 2021-11-24 15:18:13 +01:00
djmaze 299ec7faf8 Support RFC 6855 / RFC 5738 (UTF8) 2021-11-22 21:01:30 +01:00
djmaze 6b8020b8f5 Improved additional account management 2021-11-15 10:56:52 +01:00
djmaze 5ba3d2edcd Bugfix: system folders initialization failed on first time login 2021-11-08 17:40:52 +01:00
djmaze 2cf2b1ee75 Bugfix: some folders were invisible while they should be visible
It all came down to a very complex subscribe system.
I changed that in a "is visible for whatever reason" system.
2021-11-03 19:25:52 +01:00
djmaze 6c797c34f8 Activated search subfolders as request by #154 2021-11-03 02:28:01 +01:00
djmaze 8d3bcdc2f2 Merge quota requests into folders request 2021-11-01 16:26:07 +01:00
djmaze d0210bd09a No need to call folderInformationMultiply at boot when LIST-STATUS is supported 2021-10-27 15:30:19 +02:00
djmaze 4d6d0622e5 Speedup generating folderlist 2021-10-26 15:43:27 +02: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 c8a5ae5c3a Improved kolab folder-type detection as they can also be appended with '.default' 2021-10-19 12:44:09 +02:00
djmaze c039e813a6 Forward if METADATA is supported to JavaScript 2021-10-15 12:34:45 +02:00
djmaze 0c237376e5 Get Kolab integration working 2021-10-15 11:58:06 +02:00
djmaze 7e2d86cefe Rename kolab to kolabType for better naming 2021-10-14 10:37:07 +02:00
djmaze ef9d1ed220 Improved Kolab folders visibility 2021-10-14 09:43:20 +02:00
djmaze fa6590b3ab Access rfc5464 METADATA in JavaScript 2021-10-13 15:42:56 +02:00
djmaze 134deb8d73 Drop unused user mail templates system 2021-09-17 10:32:58 +02:00
djmaze 96e2e6576c IMAP UID is integer 2021-09-10 16:28:29 +02:00
djmaze cca8ce065c Resolve issue #139 2021-09-02 12:09:16 +02:00
djmaze fa25be0631 Make unsubsribeLinks observable 2021-09-01 16:10:44 +02:00
djmaze 8a22ddff5e Improved #121 2021-08-25 16:27:17 +02:00
David Härdeman 17f107057a [snappymail] Rework FolderCollectionModel .js a bit
Following the previous bugfix, rework the .js code a bit to reduce the
amount of nested ifdeffery.
2021-08-25 00:24:53 +02:00
David Härdeman 0190170edd [snappymail] Include subfolders in folder list rebuild
Subfolders also need to be taken into consideration, otherwise
subfolder deletion/creation won't be reflected in the UI.

Fixes #72
2021-08-25 00:24:01 +02:00
djmaze 8934205ede Replace {'inbox-star-icon': isInboxStarred} with {'flag-icon': isFlagged} for future improvements 2021-08-24 21:10:49 +02:00
djmaze db1615f2ca Bugfix: FolderList INBOX detection 2021-08-24 20:45:40 +02:00
David Härdeman 72ff960114 [snappymail] Allow deletion of parent folder with subfolders
This change brings snappymails behaviour in line with RFC3501, section 6.3.4,
by allowing "real" (i.e. non-\Noselect) parent folders to be deleted and
by not performing a recursive deletion of subfolders.
2021-08-24 18:33:54 +02:00
djmaze ef4d604f6d Bugfixes and improvements for Folderlist 2021-08-24 18:23:17 +02:00
djmaze 327d6c32ca Improved FolderCollection handling and try to solve https://github.com/the-djmaze/snappymail/issues/112#issuecomment-904193275 2021-08-24 15:53:39 +02:00
djmaze 2def2fc118 IMAP \archive is not the same \all, so split it 2021-08-23 17:23:43 +02:00
djmaze cc03546484 Reduce JavaScript footprint 2021-08-20 15:40:07 +02:00
djmaze ba477e25ff Resolve issue #112 2021-08-19 15:14:47 +02:00
djmaze d536b5eeee Change ()=>{} into ()=>0 2021-08-13 09:58:43 +02:00
djmaze 5895804e9a More excessive DOM reductions 2021-08-12 14:44:38 +02:00
djmaze 0659b126e7 Better folder unread-count view 2021-07-30 12:26:27 +02:00
djmaze 4645209053 Cleanup some code 2021-07-22 16:24:24 +02:00
djmaze 5590fd4860 isNonEmptyArray => arrayLength 2021-07-21 21:34:17 +02:00
djmaze bb15cd1ec3 Resolve Issue #100 2021-07-19 11:57:47 +02:00
djmaze 8aa9b0b33f Speedup foldercollection 2021-04-23 13:01:51 +02:00
djmaze 89107387d5 Improved #81 2021-04-13 14:11:17 +02:00
djmaze 3d10bbface Added SpamResult 2021-04-09 09:01:48 +02:00
djmaze 168ee911b3 Added: Show spam score in % in message detailed info
Currently only for SpamAssassin and Rspamd
2021-04-08 15:56:46 +02:00
djmaze 89cbcf6f63 Remove unused properties and improved message view header 2021-04-07 16:35:46 +02:00
djmaze b594f6f5fe Improved #69 2021-03-29 22:05:08 +02:00
djmaze 0dbc534305 Drop unused NullFolder 2021-03-29 09:38:18 +02:00
djmaze 883bf6b026 Start https://github.com/the-djmaze/snappymail/issues/67#issuecomment-806948346 2021-03-26 15:07:14 +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 87bee226b4 Easier refresh Folders 2021-03-18 13:52:56 +01:00
djmaze 0b64083543 Array.isArray to isArray
Array.isNotEmpty to isNonEmptyArray
2021-03-16 16:49:14 +01:00
djmaze 986b8f056b prevent creation of _defineProperty() function 2021-03-16 16:08:01 +01:00
djmaze bde4d147bb Cleanup Filters/Sieve capa 2021-03-14 12:15:48 +01:00
djmaze 5a3745a8ca Resolved Issue #59 2021-03-12 23:55:33 +01:00
djmaze 6d16a533fe Resolved Issue #60 2021-03-12 23:54:47 +01:00
djmaze 6a454ec624 Convert user stores to single object instances
Removed unused ContactUserStore.exportingCsv and ContactUserStore.exportingVcf
2021-03-10 22:41:35 +01:00
djmaze 34b25eedea Improve Settings handling 2021-03-10 11:44:48 +01:00
djmaze e2d6528bf5 Bugfix: message threaded mode was broken (knockout computable requires call to observable) 2021-03-08 15:21:54 +01:00
djmaze db0d03db83 Bugfix: conflicting File object with native JS
Cleanup: Stores and tooltips
2021-02-17 14:40:21 +01:00
djmaze 10f9ce39d9 Revamp mobile including CSS flexbox for messageListItem 2021-02-15 15:20:22 +01:00
djmaze 8c780ad353 Replace deprecated Knockout throttle with new debounce extender
Replace admin general mainAttachmentLimit with input type="number"
2021-02-10 12:12:36 +01:00
djmaze e3e0474be2 Bugfix and cleanup CSS even more 2021-02-08 14:03:54 +01:00
djmaze 32c3f1f059 Cleanup links 2021-02-04 11:25:00 +01:00
djmaze 7ccc44616d Small code cleanups and fix translations 2021-01-27 00:26:31 +01:00
djmaze a1c994e6ab Merge branch 'master' into webpack2rollup 2021-01-25 22:30:23 +01:00
djmaze d23689dae8 Bugfix: invalid template id's
And cleanup strings
2021-01-25 22:29:55 +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 5e63ade9dd Bugfix: i made a translation bug in v2.2.0
Cleaned it up
2021-01-24 23:03:06 +01:00
djmaze f3bfa0e8c1 Cleanup and split Enums 2021-01-24 22:58:06 +01:00
djmaze 1535dd00f1 cleanup webpack export references 2021-01-22 16:32:08 +01:00
djmaze b6f0b634fb Cleanup calls to Knockout observableArray
Improved Knockout observableArray
2021-01-22 12:23:20 +01:00
djmaze a28b5c2b6c Cleanup and deduplicate languages 2021-01-21 17:21:19 +01:00
djmaze 14ba459d46 Always allow raw editing of Sieve scripts 2021-01-21 10:00:12 +01:00
djmaze 6f36d4b906 Added sample code for sieveparser branch 2021-01-20 14:57:59 +01:00
djmaze dd9f277ccf Split collectionToFileString() from SieveStorage to Sieve
Converted SieveStorage fileStringToCollection() to JavaScript sieveScriptToFilters()
Drop the old filtersSave()
2021-01-20 14:52:20 +01:00
djmaze c7d6426c88 Added: rainloop.user filters to sieve script 2021-01-20 10:10:59 +01:00
djmaze 76bc8aa107 Disable removal of rainloop.user script 2021-01-19 17:42:38 +01:00
djmaze ee37ad67bb Enable add/delete of Sieve scripts 2021-01-19 16:59:43 +01:00
djmaze e3125ebfff Get a working Sieve scripts manager 2021-01-19 16:01:30 +01:00
djmaze 61c3da14b4 Draft of new Filters design 2021-01-18 16:47:10 +01:00
djmaze d34729a1ae Resolve https://github.com/the-djmaze/snappymail/issues/47 2020-12-10 14:19:03 +01:00
djmaze 0ba7374468 Implemented https://github.com/RainLoop/rainloop-webmail/issues/2041
Based on https://tools.ietf.org/html/rfc5173
2020-11-26 12:34:54 +01:00
djmaze 2c40475bfa Bugfix: failed to set message data from dom 2020-11-05 10:38:17 +01:00
djmaze cc04e42444 Bugfix: revivePropertiesFromJson always set observables 2020-11-04 23:57:37 +01:00
djmaze d0bcb5483a Changes for https://github.com/the-djmaze/snappymail/issues/30
And remove some memory cleanup due to issues with the Contacts view
2020-10-30 11:49:05 +01:00
djmaze 7db7d5545b Improved observables 2020-10-27 11:09:24 +01:00
djmaze 3eb6ab1ef7 Improved knockout observables management to prevent memory leaks 2020-10-26 12:54:03 +01:00
djmaze b165a1de4f Added addComputables() to *Model 2020-10-25 14:14:14 +01:00
djmaze 22f606ea75 Bugfix: revamp MessageModel broke flags cache
And took the liberty to put all MessageFlagsCache functions into a class
2020-10-25 13:50:26 +01:00
djmaze d7a4639d6b Prevent memory leaks in *Model 2020-10-25 11:46:58 +01:00
djmaze 76c4f62186 Improved reviveFromJson() for *Model 2020-10-23 15:15:54 +02: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 53bf7c1d60 setFromJson was not called at reviveFromJson 2020-10-20 17:29:24 +02:00
djmaze 3a315bc543 Bugfix: Contacts management failed
It had a strange array type structure and buggy
2020-10-20 15:37:06 +02:00
djmaze 2470f1add6 ContactProperty and FilterCondition use reviveFromJson 2020-10-20 10:27:00 +02:00
djmaze 9844c1882c Split RainLoop/Actions.php and use JsonSerializable 2020-10-19 22:09:25 +02:00
djmaze 15e07a73e9 merge all Model JSON @Object parsers into a reviveFromJson() 2020-10-18 19:46:47 +02:00
djmaze 76648f04ae Cleaner CollectionModel code 2020-10-18 19:36:57 +02:00
djmaze ddc866735c Drop unused sModelName 2020-10-18 19:19:45 +02:00
djmaze 7d89de2fdb CollectionModels reviveFromJson 2020-10-18 11:46:22 +02:00
djmaze d747de7649 Revert my Squire node.remove() back to detach(node) and
Cleanup some code
2020-10-17 14:08:27 +02:00
djmaze b68d04aacd Bugfix: inboxFolderName was incorrect
You could have potentionally deleted INBOX and other issues
2020-10-15 12:23:11 +02:00
djmaze 1d6a636433 Split Common/Utils.js
Because admin app doesn't need most of them
2020-10-14 19:16:37 +02:00
djmaze ba7ed497b2 Cleanup JS and better terser compression 2020-10-09 11:58:15 +02:00
djmaze a0f8ac0dad Cleanup Date.fromNow() and friendlySize() 2020-10-03 14:02:33 +02:00
djmaze 2bd9528098 Clean message preview/print 2020-10-03 13:04:23 +02:00